ラベル Android の投稿を表示しています。 すべての投稿を表示
ラベル Android の投稿を表示しています。 すべての投稿を表示

2013年7月15日月曜日

BusyBox Installer

概要

Androidはデフォルト状態だとLinuxで使えるコマンドよりも随分と少ないコマンドしか利用できません
それをbusyboxという小さめのプログラムをインストールして介して様々なコマンドを利用できるようにしてくれます
そしてbusyboxを使ったオペレーションをスクリプトとして登録しておき実行する機能も持っています

インストール方法


Google Playからインストール

概要

スクリプトからのオペレーション実行
Scripterタブ→スクリプト名→Run script で実行できます

DroidWall - Android Firewall

概要

アプリごとの3G通信、Wifi接続時の通信可否を設定することができ、意図しない通信を抑止することができます。
広告を表示するためだけに通信しているアプリに関しては広告を非表示にするためにも利用できます

インストール方法

Google Playからインストール

設定


アプリごとに3G通信、Wifi接続時に通信を許可したい場合はチェックを入れる
メニューから、「ルール適用」をタップ
メニューから、「Firewallオフ」をタップして「Firewallオン」表示にする

全能ツールボックス(All-In-One Toolbox)

概要

root化の恩恵として、システムアプリのスタートアップ抑止ができる他、キャッシュ削除やメモリの解放などができます。


インストール方法

Google Playからインストール


設定

ツール→スタートアップ管理→起動速度アップ→システム を選択


アンインストールするまででもないけれど、自動起動をOFFにしたいアプリを選択

私の場合は

  • アドレス帳
  • ギャラリー
  • フォトスクリーン
  • Google One Time Init
  • はじめに
  • テレビ
  • SIM Toolkit
  • 電話帳

をスタートアップ起動解除しました

AdAway

概要

/etc/hostsを書き換えることで、広告へのリクエストを127.0.0.1(自端末)へのリクエストに置き換えることで広告除去を実現してくれるアプリ。
単純に127.0.0.1へのリクエストに置き換えるだけだと応答が帰って来ず、待ってしまうアプリも存在するのでそれを回避するために空っぽの応答を返すWEBサーバを起動しておく機能も有する。
そのため、アプリを問わず/etc/hostsに登録した広告へのリクエストは全て非表示にすることが可能。

インストール方法

1. Ver 2.2の場合
APKTOP: http://www.papktop.com/tag/adaway-apk から AdAway_2_2.apk をダウンロードし、端末に転送してインストール

2. Ver 2.3の場合
F-Droid: https://f-droid.org/FDroid.apk をインストールして、ストアからインストール

更新履歴を見る限りVer 2.2->Ver 2.3は広告リストのhostsのソースが追加されただけの模様


設定方法


1.広告リクエストに対して空っぽの応答を返すためのWEBサーバを起動

メニューから「設定」を選択

ウェブサーバーを有効化
ウェブサーバーを起動時に開始

にチェックを入れる



2.hostsのソースを追加
デフォルトだと日本の広告リストは入っていないので追加してあげます

メニューから「hostsのソース」を選択

「+」をタップしてURLに「https://dl.dropbox.com/u/11972277/hosts」を入力して「追加」をタップ


不要なソースのチェックを外して必要なもののみチェックを入れておく


TOPに戻り「ファイルをダウンロードして適用」をタップ


androidを再起動して設定を適用



これで、ブラウザやアプリで広告が表示されなくなります
※ただし、hostsで指定されている広告に限る

2013年6月16日日曜日

framework.odexのカスタマイズ

MVNO SIM利用時のセルスタンバイ対策や、テザリング時のAPN強制変更対策をするにはframework.odexのカスタマイズが必要になってきます
カスタマイズ時の手順についてのメモです

0.準備
・端末へbusyboxのインストール
Google PlayからBusybox Installerをインストール
起動して、Busyboxをインストール

・dexopt-wrapperを入手
http://forum.xda-developers.com/showpost.php?p=3864655&postcount=36 このあたり

・smali,baksmaliを入手
https://code.google.com/p/smali/ このあたり

・7za.exeの入手
http://www.7-zip.org/ このあたり

・javaのインストール
http://java.com/ja/download/ このあたり

・adb接続
USB Driverのインストールとadb接続 F-11D編を参照

1.端末からカスタマイズに必要なファイルをダウンロード
C:\> mkdir framework
C:\> cd framework
C:\framework> adb pull /system/framework/framework.jar .
C:\framework> adb pull /system/framework/framework.odex .
C:\framework> adb pull /system/framework/bouncycastle.odex .
C:\framework> adb pull /system/framework/core.odex .
C:\framework> adb pull /system/framework/core-junit.odex .
C:\framework> adb pull /system/framework/ext.odex .

2.逆アセンブラ
C:\framework> java -jar baksmali-1.3.2.jar -c:core-junit.odex -x framework.odex

3.編集
・テザリング時のAPN固定対策
out\com\android\internal\telephony\gsm\GsmDataConnectionTracker.smali
を編集して、MVNO SIM時の挙動をdocomo以外のSIMを刺した場合と同等にする

・セルスタンバイ対策
out\com\android\internal\telephony\gsm\GsmServiceStateTracker.smali
を編集して、searching,registration deniedの際の挙動をin serviceと同等にする

4.classes.dexをframework.jarに統合
C:\framework> 7za u -tzip framework.jar classes.dex

5.端末にframework.jarとodexへの変換プログラムを転送
C:\framework> adb push framework.jar /data/local/tmp/framework.jar
C:\framework> adb push dexopt-wrapper /data/local/tmp/
C:\framework> adb shell chmod 755 /data/local/tmp/dexopt-wrapper

6.端末上で変換
C:\framework> adb shell
shell@android:/ $ cd /data/local/tmp
shell@android:/ $ ./dexopt-wrapper framework.jar framework.odex

7.署名をコピー
shell@android:/ $ busybox dd if=/system/framework/framework.odex of=framework.odex bs=1 count=20 skip=52 seek=52 conv=notrunc

8.既存framework.odexのバックアップと、置換
shell@android:/ $ su
shell@android:/ # busybox cp /system/framework/framework.odex{,.YYYYMMDD}
shell@android:/ # busybox cp framework.odex /system/framework/framework.odex

9.再起動
shell@android:/ # reboot

ndk-build環境を整える・・・Windows7 64bitの場合

1.Android NDKをダウンロードして解凍
http://developer.android.com/tools/sdk/ndk/index.html#Downloads
のあたりからandroid-ndk-r8e-windows-x86_64.zipとかをダウンロードしてきて適当な場所へ解凍

2.PATHの追加
C:\android-ndk-r8eに解凍した場合
コンピュータのプロパティ→システムの詳細設定→環境変数→システムの環境変数→Path→編集 で
C:\android-ndk-r8e
を追加


3.バージョン確認
C:\>ndk-build -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i586-pc-mingw32

使えるようになってますね

Android 4.0.3(ICS)のroot化・・・F-11D(V26R42B)の場合

ビルド番号がV26R42Bでfastbootと青LEDモードが無くとのことで、この方法を利用したroot取得はできなくなったようです。

なので、Androidの脆弱性(exploit)を突いた方法をメモ

1.adb接続
※USB Driverのインストールとadb接続 F-11D編を参照

2.exploitコードの入手とexploitプログラムのビルド
※exploitコードはhttps://github.com/hiikezoe/break_setresuidのあたりから入手可能
※ndk-buildはndk-build環境を整える・・・Windows7 64bitの場合を参照
C:\> ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

3.exploitプログラム,suプログラムの転送
※suバイナリはhttp://androidsu.com/superuser/のあたりから入手可能
※Windows上のコマンドプロンプトからAndroid端末にプログラムを転送する
※/data/local/tmp/でないと後の手順でプログラムを実行できない
C:\> adb push exploit /data/local/tmp/exploit
C:\> adb push su /data/local/tmp/

4.プログラムの実行
※Windows上のコマンドプロンプトからAndroid端末のShellを開き、実行するためのパーミッションを付与しプログラムを実行する
C:\> adb shell
shell@android:/ $ chmod 755 /data/local/tmp/exploit
shell@android:/ $ /data/local/tmp/exploit
shell@android:/ # ←$が#に変わり一時的にroot権限に昇格!

5.suプログラムをシステム領域にコピー
※読み込み専用のシステム領域を書き込み可能な状態にして、システム領域にsuプログラムを配置する
shell@android:/ # mount -o rw,remount /system /system
shell@android:/ # dd if=/data/local/tmp/su of=/system/bin/su
shell@android:/ # chown root.root /system/bin/su
shell@android:/ # chmod 06755 /system/bin/su

6.Superuserをインストール
Google PlayでSuperuserを探してインストール

7.Suバイナリの更新(suバイナリが古い場合)
infoタブを開いて、su binaryをタップ

アップデートをタップ

これでroot化は完了

2013年5月25日土曜日

USB Driverのインストールとadb接続 F-11D編

■ドライバインストール先OS
Windows 7 Professional SP1 64bit

■Android端末
F-11D V26R42B

■Android端末側の設定
システム設定→{}開発者向けオプション→USBデバッグ を有効にする


USBケーブルで端末とPCを接続

「カメラとして接続」をタップして「USBでパソコンに接続」を開く

「メディアデバイス(MTP)」を選択

■ドライバのダウンロードと定義追加
携帯電話(F-11D USBドライバ ダウンロード) - FMWORLD.NET(個人) : 富士通からF-11D ADB用USBドライバをダウンロード

ダウンロードしたファイルそのままだとF-11Dの定義がないためWindowsがドライバを見つけられないので定義を追加
usb_driver_F-11D_1.0.zipを展開してusb_driver_F-11D_1.0\android_winusb.infの
[Google.NTamd64]の項目に以下の行を追加(※とりあえず一番下の176行目に追加)
;DOCOMO F11D
%SingleAdbInterface% = USB_Install, USB\VID_04C5&PID_135E
%CompositeAdbInterface% = USB_Install, USB\VID_04C5&PID_135E&MI_01

■ドライバのインストール デバイスマネージャを開く
※ポータブルデバイス→F-11D と表示されている場合はこれを削除して「ハードウェア変更のスキャン」を実行
ほかのデバイス→DOCOMO F-11Dを右クリックして「ドライバーソフトウェアの更新」を選択


「コンピュータを参照してドライバーソフトウェアを検索します」を選択


「参照」をクリックして、usb_driver_F-11D_1.0.zipを展開した場所を選択


警告が出るが「このドライバソフトウェアをインストールします」を選択

インストール完了


デバイスマネージャには、Android Phone→Android Composite ADB Interfaceとして表示される


■Android SDKのインストール Android SDK | Android DevelopersからADT Bundle for Windows 64bit版をダウンロード

ダウンロードしたadt-bundle-windows-x86_64-20130514.zipを適当なディレクトリへ展開

・PATHの追加
コンピュータのプロパティ→システムの詳細設定→環境変数→システムの環境変数→Path→編集 で
C:\adt-bundle-windows-x86_64-20130219\sdk\platform-tools;C:\adt-bundle-windows-x86_64-20130219\sdk\tools

を追加


■adb接続設定
コマンドプロンプトから
android update adb

を実行
C:\Users\xxx\.android\adb_usb.iniが作成されるので、その最後の行に
0x04C5
を追加
■adb接続
コマンドプロンプトから
adb kill-server
adb shell

を実行
shell@android:/ $

みたいなのが出てくれば成功