今回はHackintoshのお話ではなく、AndroidのHackネタです。

筆者はAmazonの戦略に乗ってAmazonの販促ツールでもある安価なタブレットのKindleやらAlexaを複数台所有しております。
以下がそのリストになります。多すぎる〜〜笑

・Fire HD 10(2019) New!!サイバーマンデーで購入!
・Fire HD 10(2017)
・Fire HD 8(2017)
・Fire HD 8(2016)
・Fire 7 (2015)    FWダウングレードして文鎮化。。。

たまたま3月頃から放置して9ヶ月近く全く使うことなくアップデートせず眠らせておいたKindle Fire HD8(2017)のOSバージョンが、実はroot化可能だということが判明したので、今回トライしてみました。

対象バージョンは以下、5.6.4.0(636568520)となります。

root化の仕組みはFireHDのCPUの脆弱性を利用したツールを用いてroot権を取得する方法となります。

mtk-suというコマンドラインのツールを使います。以下で入手可能です。
https://forum.xda-developers.com/hd8-hd10/orig-development/experimental-software-root-hd-8-hd-10-t3904595

上記URLで以下画像のRelease19をクリックでダウンロードできます。(※2019年12月11日現在)

このmtk-suツールの使い方は二通りあり、ひとつはPC経由で行う方法、もうひとつはPCを使わずにAndroidアプリを使ってFireHD単体で行う方法です。

筆者はLinux(elementaryOS)でadbを使うのでその方法を紹介します。
macOSXでadbする場合の方法は以下に記載しています。

root化手順

まずはしたごしらえ、adbのインストール。
ターミナルで以下のようにします。

sudo apt install adb

Linux上のModemManagerサービスを無効化します。

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

USBでFireHDと接続後、以下コマンドを入力。

adb devices

上記後、FireHD側にメッセージが表示されますので、許可します。

そしてダウンロードしたファイルのmtk-suを以下コマンドでFireHDへ転送します。解凍後arm64とarmが両方出てきますが、arm版を使いました。

adb push mtk-su /data/local/tmp/

転送後、Fire側でのシェルに移動します。

adb shell

以下を実施でroot化されます。

cd /data/local/tmp
chmod 755 mtk-su
./mtk-su -v

以下のような表示になれば成功です。

127|shell@giza:/data/local/tmp $ ./mtk-su -v                                   
armv8l machine
param1: 0x3000, param2: 0x10000, type: 1
Building symbol table
kallsyms_addresses pa 0x40afc100
kallsyms_num_syms 67998, addr_count 67998
kallsyms_names pa 0x40b80f00, size 817197
kallsyms_markers pa 0x40c48800
kallsyms_token_table pa 0x40c49100
kallsyms_token_index pa 0x40c49500
Patching credentials
Parsing current_is_single_threaded
ffffffc000328888+50: ADRP x0, 0xffffffc000f0a000
ffffffc000328888+54: ADD xd, x0, 2592
init_task VA: 0xffffffc000f0aa20
Potential list_head tasks at offset 0x338
comm swapper/0 at offset 0x5a8
Found own task_struct at node 1
cred VA: 0xffffffc034e2b000
Parsing avc_denied
ffffffc0002d0364+20: ADRP x0, 0xffffffc001062000
ffffffc0002d0364+24: LDR [x0, 4092]
selinux_enforcing VA: 0xffffffc001062ffc
Setting selinux_enforcing
Retrying...
Retrying...
Retrying...
Retrying...
Could not set selinux
setns failed: Operation not permitted
starting /system/bin/sh
UID: 0  cap: 3fffffffff  selinux: enforcing  

root化後にやっておくこと

自動アップデートの無効化。FireHDはスタンバイ(アイドル)中に勝手にアップデート動作をします。意図せずアップデートされて、root化の穴が塞がれてしまわないようにしておきましょう。

pm disable com.amazon.device.software.ota
pm disable com.amazon.device.software.ota.override
pm disable com.amazon.kindle.otter.oobe
pm disable com.amazon.kindle.otter.oobe.forced.ota
pm disable com.amazon.settings.systemupdates

ランチャーの入れ替え

Novaランチャーを使います。事前にGooglePlayストアで落としてインストールしておき、以下コマンドでメインランチャーを入れ替えます。

pm enable com.teslacoilsw.launcher
pm disable com.amazon.firelauncher

Silkブラウザの無効化

事前にGooglePlayストアでChromeブラウザを落としておき、Amazon標準のブラウザであるSilkを以下コマンドで無効化します。

pm disable com.amazon.cloud9
pm disable com.amazon.cloud9.contentservice
pm disable com.amazon.cloud9.systembrowserprovider

不要なアマゾンサービスの無効化

pm disable amazon.alexa.tablet
pm disable com.amazon.advertisingidsettings
pm disable com.amazon.ags.app
pm disable com.amazon.alexa.externalmediaplayer.fireos
pm disable com.amazon.alexa.modeswitch
pm disable com.amazon.alexa.youtube.app
pm disable com.amazon.avod
pm disable com.amazon.comms.knightcontacts
pm disable com.amazon.comms.knightmessaging
pm disable com.amazon.comms.multimodaltachyonarm
pm disable com.amazon.csapp
pm disable com.amazon.dee.app
pm disable com.amazon.dp.contacts
pm disable com.amazon.dp.fbcontacts
pm disable com.amazon.geo.client.maps
pm disable com.amazon.geo.mapsv2
pm disable com.amazon.geo.mapsv2.services
pm disable com.amazon.kcp.tutorial
pm disable com.amazon.kindle
pm disable com.amazon.kindle.kso
pm disable com.amazon.kindle.otter.oobe
pm disable com.amazon.kindle.otter.oobe.forced.ota
pm disable com.amazon.kindle.personal_video
pm disable com.amazon.kindle.unifiedSearch
pm disable com.amazon.knight.blink
pm disable com.amazon.knight.calendar
pm disable com.amazon.knight.ecs
pm disable com.amazon.knight.hds
pm disable com.amazon.kor.demo
pm disable com.amazon.mp3
pm disable com.amazon.photos
pm disable com.amazon.photos.importer
pm disable com.amazon.settings.systemupdates
pm disable com.amazon.tahoe
pm disable com.amazon.tv.ottssocompanionapp
pm disable com.amazon.unifiedsharegoodreads
pm disable com.amazon.unifiedsharesinaweibo
pm disable com.amazon.unifiedsharetwitter
pm disable com.amazon.venezia
pm disable com.amazon.weather
pm disable com.amazon.webapp
pm disable com.amazon.windowshop
pm disable com.amazon.zico
pm disable com.android.contacts
pm disable com.android.deskclock
pm disable com.android.email
pm disable com.audible.application.kindle
pm disable com.goodreads.kindle

ホーム画面がスッキリ。これで普通にAndroidタブレットのように使うことができるようになりました。

で、root化が終わって普通に使うのに飽きたら、TWRPを導入することで、カスタムOSへ入れ替えることができます。