29 November 2018

Amazon Fire HD 10のroot権限無しでシステムアプリを無効化

Amazon Fire HD 10 で root 権限を取らずに、システム・アプリを無効化した時のメモ

この作業を行ったFire HD 10(2017)のシステムは Fire OS 5.3.6.4 (2018/11/13) です。 (「設定」ー「端末オプション」ー「システムアップデート」で表示されるバージョン)

参考にしたWebページ

・xda [GUIDE][NO ROOT][LATEST VERSION] Disable System Apps on Fire HD 7/8/10:
FireOS 5.6.0.0 のAmazon関連パッケージ一覧

環境構築

Amazon Facebook ShareアプリでOSの脆弱性を用いて、システム管理ユーザIDに昇格して「pm hide」コマンドを通してしまう方法のようだ。

Amazon Facebook Share (com.amazon.unifiedsharefacebook.apk)の配布元は
xdaよりダウンロード (上のxda GUIDEの本文に貼られたリンク)

ダウンロードしたファイルを、Fire HDの /sdcard/Download に保存してインストールする

adb install -r -d /sdcard/Download/com.amazon.unifiedsharefacebook.apk

adb shellでFire HDのシェルに入り、run-as コマンドを用いて、id=2000以外に昇格できることを確認する。

$ adb shell
 
$ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics) …(以下略)
 
$ run-as com.amazon.unifiedsharefacebook
$ id
uid=32067(amz_u0a67) gid=32067(amz_u0a67) groups=1003(graphics), …(以下略)

この状態で、pm hide コマンドを用いて、パッケージを無効化していく

$ pm hide [パッケージ名]

パッケージを戻すときは、pm unhide を用いる。pm hideで無効化したものは、pm disable したものと違って、pm list コマンドでは表示できなくなってしまう。どのパッケージを無効化したかは、記録しておくこと。

無効化したパッケージ

パッケージ名説明
com.amazon.kindle.otter.oobe.forced.otaOTA(自動システムアップデート)関連
com.amazon.kindle.otter.oobe
com.amazon.device.software.otaOTA(自動システムアップデート)関連
com.amazon.device.software.ota.overrideOTA(自動システムアップデート)関連
amazon.alexa.tabletAlexa 関連
com.amazon.alexa.modeswitchAlexa 関連
com.amazon.alexa.youtube.appAlexa 関連
com.amazon.vans.alexatabletshopping.appAlexa 関連
com.amazon.alexa.externalmediaplayer.fireosAlexa 関連
com.amazon.dee.appAlexa
com.amazon.knight.calendarAlexa 関連
com.amazon.comms.knightcontactsAlexa 関連
com.amazon.comms.knightmessagingAlexa 関連
com.amazon.knight.blinkAlexa 関連
com.amazon.virtual.dash.knight.appAlexa 関連
com.amazon.knight.ecsAlexa 関連
com.amazon.knight.hdsAlexa 関連
jp.co.omronsoft.iwnnime.mlazwnn 日本語変換IME
jp.co.omronsoft.iwnnime.languagepack.zhcn_azwnn 日本語変換IME
com.amazon.geo.client.mapsAmazonマップ
com.amazon.geo.mapsv2.servicesAmazonマップ
com.amazon.geo.mapsv2Amazonマップ
com.amazon.ags.appAmazonゲーム
com.amazon.kindle.ksoAmazonキャンペーン
com.amazon.cloud9Silk Webブラウザ
com.amazon.cloud9.kidsSilk Webブラウザ
com.amazon.cloud9.systembrowserproviderSilk Webブラウザ
com.amazon.cloud9.contentserviceSilk Webブラウザ
com.amazon.kcp.tutorialチュートリアル
com.amazon.dp.contacts連絡先 同期
com.amazon.dp.fbcontacts
com.amazon.pmペアレンタル・モニター
com.amazon.unifiedsharesinaweibo中国 SNS微博
com.amazon.tahoeFree Time
com.amazon.kindle.personal_videoAmazonビデオ
org.mopria.printpluginMopria Print Service
com.amazon.mp3Amazonミュージック
com.amazon.photos.importerAmazonフォトインポート
com.kingsoft.office.amzKingsoftオフィス
com.amazon.kor.demo店頭用デモ画面
com.audible.application.kindleAudible
com.amazon.windowshopAmazonでお買い物
com.goodreads.kindleGoodreads
com.amazon.unifiedsharegoodreadsGoodreads
com.amazon.csappヘルプ
com.amazon.advertisingidsettings広告設定
com.amazon.comms.multimodaltachyonarmTachyon Calling App
com.amazon.kindle.unifiedSearch検索
com.android.calendarAndroid標準アプリ:カレンダー
com.android.deskclockAndroid標準アプリ:時計
com.android.emailAndroid標準アプリ:メール
com.android.protipsAndroid標準アプリ:ホーム画面のヒント

条件により無効化できるパッケージ

パッケージ名説明
com.amazon.photosAmazonフォト(壁紙設定機能の無いランチャーを使う時に必要)
com.amazon.firelauncherAmazonホーム画面(他のランチャーがあれば不要)

Amazonホーム画面以外のランチャーを使う

任意のホーム画面をダウンロードし、インストールした後に、Launcher Hijackをインストールしてランチャーを選択する。

・xda New: Any Launcher, No Root (Launcher Hijack V3)

「Android 設定」 ー 「ユーザー補助」 ー 「To detect home button press」を有効(ON)に変更する。

Amazonホーム画面以外のランチャーで、ウィジェットを有効化する

xdaのHow to Use a Custom Launcher With Widgets on Amazon Fire OSに書かれている方法でOK

私が使っているのは Xperia Home(com.sonymobile.home)なので、adbでシェルに入り、次のように権限を与えるコマンドを実行する

adb shell
appwidget grantbind --package com.sonymobile.home --user 0