編集

Android One端末のroot化とXposedフレームワークの導入他

2017/04/28

自身のAndroid One端末(Android 6.01)のroot化とXposedフレームワークの導入他についての覚え書き。(TOPの写真はフリーのストックフォトサービス「ぱくたそ」様から拝借。)

初期型(Karbonn Sparkle V)だと内蔵メモリ不足が顕著なので、root化して、無効化しているシステムアプリ等を削除し、延命させようかな?と思った次第です。(日常、使用するうえでは別段困っていませんが、アプリアップデート時にキャッシュを削除しないと容量不足でアップデートできない時があるもので…)

■ root化

・Android One Toolkitを利用してのroot化


PCとAndorid One端末をUSBデバックモードで接続後、某所で配布されているAndroid 6.0.1対応済みの「Android One Toolkit」をPC上で実行し、まずはBootloaderをアンロック。


アンロック後、端末を再起動すると…初期化状態になっているし…無知でした。
初期化されてしまっているなら、ここからroot化して、不要なシステムアプリを削除していくよりも、カスタムROMを追加した方が楽だろうな…と思い、方針転換。


・カスタムROMの導入

カスタムROM自体は多数公開されていますが、今回は最初からroot化済みで、ストックROMから余分なアプリを削除して必要最低限なアプリ構成にしているROMを導入してみました。(De-Bloated Stock Sprout4 ROMとでも言うべきか…ROM作者様はノキアに勤めている方のようです。)

[Stock] [De-bloated] [Pre-Rooted] [BusyBox integrated] [246 MB] ROM for Sprout 4-8

カスタムROMの導入自体、これまでほとんどしたことがありませんが、現状の雑知識確認のため、まずは他サイトをいっさい見ずに行ってみました。(正規の手順的にはカスタムリカバリ導入後に行うんだと思いますが、その辺もスルーして試してみたかったという部分もあります。)

というわけで、この端末に限っては一時的にrootを取ってシステム領域に手を加える手法もあるため、カスタムリカバリは導入せずに行ってみました。(ROMインストール時に導入されていましたが…)

※ 詳しくは「Androidの「Multiwindow」システム」記事参照

adb reboot bootloader
fastboot boot twrp.img

※ fastbootモードで起動後、カスタムリカバリTWRPを一時的に導入

adb sideload De-bloated+Stock+MOB31E+Sprout4+ROM.zip

再起動後、端末セットアップが開始され、Wi-Fi接続後、これまで使っていたGoogleアカウントを追加すると自動復元(アプリ及び設定データ等の自動インストール)が始まるので、しばらく待機。

adb sideload Basic_apps_for_debloated_Sprout_ROMs.zip

上記ROMには標準カメラや標準メッセージアプリがない状態なので、必要に応じて、ファームに焼いても良い。(MiXplororも一緒にインストールされますが。)


■ CPU種別の調査

Xposedフレームワーク導入前に、Playストアから「Droid Hardware Info」をインストールし、CPU種別を調査。


カーネルアーキテクチャ部分を見て、CPU種別を判別。

ARM … ARMv7 or armeabi
ARM64 … AArch64 or arm64
x86 … x86 or x86abi  


■ Xposedフレームワークの導入

[OFFICIAL] Xposed for Lollipop/Marshmallow [Android 5.0/5.1/6.0, v87, 2017/01/28]

・上記フォーラムより、XposedInstaller_3.1.apkとxposed*.zip(自分の場合は、xposed-v87-sdk23-arm.zip)をダウンロード

・カスタムリカバリ経由で、xposed*.zipをファームに導入し、再起動

adb sideload xposed-v87-sdk23-arm.zip

・XposedInstaller_3.1.apkをインストール後、再起動


※ インストール/更新作業もしましたが、最初にzipファイルをファームに焼いているし、不要なんでしょうね…たぶん。

・必要なモジュールをダウンロードし、有効化後に再び再起動


現状、上記モジュールを追加。


GravityBoxの設定箇所その1。
その他の設定部分の「全てのアプリを終了」ボタンは他端末ではオンにしているものの、この端末ではオフのままにして、「[root] Recently」というアプリで代用しています。


GravityBoxの設定箇所その2。
再起動オプションを付けたり、充電時のLED動作をエミュレートしたりしています。
いろいろと設定を変更できるアプリですが、他はこの端末では必要性がないので、未設定。


GreenifyのXposedフレームワーク部分の設定。
Android6以降は省電力性にも優れているため、常駐させたままのアプリも多く、凍結させているようなアプリに関しては通知が邪魔になるため、「通知を除去しない」はオフのまま運用。(他のタブレットではオン運用。)


■ エリアメールの導入


対応する「areamail.apk」をシステムに書き込み、災害用キットをインストールして起動するものの、SIMエラーが出て使えないという…Docomo系MVNOのSIMなんですけどねぇ…


■ AELUのデータ復元

自動復元されたデータはクリア後のものではなく、クリア数日前のものだったため、他端末よりクリアデータを「Titanium Backup」で復元。


■ Mapfan2015のオフライン地図データ復元

アプリ自体は自動復元されたものの、オフライン地図データは提供期間終了に伴い、ダウンロードできず、アプリ起動時にエラーが出る状態でした。
「Titanium Backup」でアプリデータを復元し、SDカード内android/dataフォルダ内の地図データを手動コピーして、無事、起動するようになりました。
Android6以降、SDカードを内蔵ストレージとして扱うことができますが、その状態でもMapfan2015ではSDカード認識のため、アプリデータ復元時は注意が必要です。


以上!