Werbefrei,
für immer!
Amazon Fire HD 10 (2017) – LineageOS 16 installieren
Diese Anleitung beschreibt die Installation von LineageOS 16 (Android 9) auf einem Amazon Fire HD 10 der 7. Generation aus dem Jahr 2017.
Der beschriebene Ablauf wurde auf zwei identischen Geräten erfolgreich durchgeführt.
Getestete Hardware und Firmware
Modell: KFSUWI
Codename: suez
SoC: MediaTek MT8173
RAM: 2 GB
Speicher: 32 GB
Fire OS: 5.3.7.3
Build: 40.6.5.9_user_659664620
Android: 5.1.1
API-Level: 22
Den Softwarestand vor Beginn prüfen:
adb shell getprop ro.product.model
adb shell getprop ro.product.device
adb shell getprop ro.build.version.fireos
adb shell getprop ro.build.version.incremental
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.sdkDiese Anleitung bezieht sich auf suez mit Fire OS 5.3.7.3. Sämtliche Daten auf dem Tablet werden im Verlauf gelöscht.
Benötigte Dateien
Die Dateien werden nicht auf diesem Blog gespiegelt, sondern ausschließlich über ihre ursprünglichen Quellen bezogen. Da es sich teilweise um ältere Projekte und Downloadserver handelt, kann ich deren dauerhafte Verfügbarkeit nicht garantieren.
Die angegebenen SHA-256-Prüfsummen beziehen sich auf die Dateien, mit denen diese Installation durchgeführt wurde.
Amonet
Quelle: XDA Developers
Datei: amonet-suez-v1.1.2.zip
SHA-256: d5f439df03a4ae911bebd05d1c4afaa7e6740ebc596a87c55b5d2571a750f59f
Browser Download: https://xdaforums.com/attachments/amonet-suez-v1-1-2-zip.4731548/
Amonet übernimmt den eigentlichen Bootloader-Unlock. Das Paket enthält die BootROM-Payloads, LK/TZ/Preloader-Komponenten, TWRP sowie die benötigten Shell- und Python-Skripte.
Die für diese Anleitung wesentlichen Bestandteile sind:
amonet/
├── bin/
│ ├── lk.bin
│ ├── preloader.bin
│ ├── twrp.img
│ └── tz.img
├── brom-payload/
│ └── build/
│ └── payload.bin
├── modules/
├── bootrom-step-minimal.sh
├── fastboot-step.sh
└── step-1.shWSRoot
Quelle: Wondershare
Datei: 20165195.zip
SHA-256: 8bfc3d5c75964e5fa28c8ffa39a87249ba10ea4180f55f546b2dcc286a585ea8
Download via Shell:
wget http://myphone-download.wondershare.cc/mgroot/20165195.zipDas Paket enthält:
Matrix
fileWorkMatrix und fileWork werden zusammen mit dem folgenden SuperSU-Paket verwendet, um unter dem vorhandenen Fire OS temporären Root-Zugriff zu erhalten. Dieser ist Voraussetzung für den ersten Amonet-Schritt.
SuperSU
Quelle: Wondershare
Datei: SuperSU_18+.zip
SHA-256: b572c1a982d1e0baeb571d3bc0df7f6be11b14553c181c9e0bf737cc4a4fbbfd
Download via Shell:
wget http://myphone-download.wondershare.cc/mgroot/SuperSU_18+.zipLineageOS 16
Quelle: Google Drive
Datei: lineage-16.0-20220705-UNOFFICIAL-suez.zip
Version: LineageOS 16 / Android 9
Build: 05.07.2022
SHA-256: 5092be1878991848411fdd0f6728d0a31b77db0ec667c3293b422d68ef516c53
Hierbei handelt es sich um den verwendeten inoffiziellen LineageOS-Build für das Amazon Fire Tablet Gen 7 – Codename „suez„. Google Apps sind für die reine Installation nicht erforderlich.
Arbeitsverzeichnis erstellen
mkdir -p /tmp/linageos-suez
cd /tmp/linageos-suezNach dem Download sollten dort die vier Archive liegen (Ordner-Hierarchie bspw. mit „tree linageos-suez“ anzeigen lassen):
linageos-suez/
├── 20165195.zip
├── SuperSU_18+.zip
├── amonet-suez-v1.1.2.zip
└── lineage-16.0-20220705-UNOFFICIAL-suez.zipAmonet entpacken:
unzip amonet-suez-v1.1.2.zipOffline-Root-Verzeichnis erstellen:
mkdir offline-root
unzip 20165195.zip -d offline-root
unzip 'SuperSU_18+.zip' -d offline-rootDanach ergibt sich:
offline-root/
├── Matrix
├── Superuser.apk
├── ddexe
├── debuggerd
├── fileWork
├── install-recovery.sh
├── krdem
├── mount
├── patch_boot.sh
├── pidof
├── push_root.sh
├── start_wssud.sh
├── su
├── su_arm64
├── supersu.zip
├── supolicy
├── toolbox
└── wsroot.shTemporären Root-Zugriff herstellen
auf dem Fire Tablet zuerst USB-Debugging aktivieren -> Geräteeinstellungen -> 7 Mal auf die Seriennummer -> Entwickler Optionen -> ADB Aktivieren)
Dann die USB Verbindung mit USB-A oder USB-C / Micro USB Adapterkabel herstellen und direkt die Verbindung zum FireTablet in der Shell prüfen („adb“ muss hierfür natürlich installiert sein):
sudo apt-get install adb
adb devicesAnschließend den kompletten Root-Ordner übertragen:
cd /tmp/linageos-suez/offline-root
adb shell 'rm -rf /data/local/tmp/c'
adb shell 'mkdir /data/local/tmp/c'
adb push . /data/local/tmp/c/
adb shell 'chmod 755 /data/local/tmp/c/*'Root-Exploit starten:
adb shell
cd /data/local/tmp/c
./Matrix /data/local/tmp/c 2Ein erfolgreicher Lauf endet mit:
<WSRoot><Exploit>0</Exploit></WSRoot>
<WSRoot><Done>0</Done></WSRoot>Root Shell öffnen:
su
idErwartetes Ergebnis:
uid=0(root) gid=0(root) context=u:r:init:s0Bootloader mit Amonet entsperren
In einem zweiten Terminal:
cd /tmp/linageos-suez/amonet
sudo ./step-1.shBei der getesteten Firmware erkennt Amonet:
PL version: 5 (5)
LK version: 5 (2)
TZ version: 268 (263)Anschließend wird eine Bestätigung angefordert:
TZ, Preloader or LK are too new, RPMB downgrade necessary (or brick option used)
Brick preloader to continue via bootrom-exploit? (Type "YES" to continue)Mit
YESbestätigen.
Amonet schreibt LK und TZ und beendet den Schritt mit:
Rebooting…, continue with bootrom-step-minimal.sh
BootROM-Exploit ausführen
Beim BootROM-Exploit wird eine bekannte Schwachstelle im BootROM des MediaTek-Chip ausgenutzt (aka „Dirty COW“ / CVE-2016-5195). Dadurch kann der eigens hierfür entwickelte Exploit „Amonet“ eigenen Code ausführen, bevor der reguläre Bootloader und Android gestartet werden. So wird unter anderem die Partitionstabelle angepasst, der RPMB-Schutz zurückgesetzt bzw. auf einen kompatiblen Stand gebracht, ein modifizierter Preloader installiert und schließlich ein entsperrter Fastboot-Modus ermöglicht.
Hinweis:
Dieser Schritt ist der kritischste Teil des gesamten Vorgangs. Dabei werden grundlegende Boot-Komponenten und die Partitionierung des internen Speichers verändert. Ein falsches Image, eine nicht kompatible Geräte-/Firmwareversion oder ein Abbruch während eines Schreibvorgangs kann dazu führen, dass das Tablet nicht mehr startet („Brick“) und unter Umständen nur noch über den BootROM oder im schlimmsten Fall gar nicht mehr wiederhergestellt werden kann. Deshalb sollte dieser Ablauf ausschließlich mit exakt passenden Dateien für das hier genannte Gerät mit dem Codenamen „suez“ durchgeführt werden.
USB trennen und Exploit Script starten:
cd /tmp/linageos-suez/amonet
sudo ./bootrom-step-minimal.shSofort bei:
Waiting for bootromnur das USB-Kabel einstecken. Keine Taste drücken!
Das Gerät wird als MediaTek-BootROM erscheinen:
Found port = /dev/ttyACM0
Handshake
Disable watchdog
* * * Remove the short and press Enter * * *Es wurde kein Hardware-Short gesetzt. Daher einfach ENTER drücken.
Danach folgt unter anderem:
Init crypto engine
Disable caches
Disable bootrom range checks
Load payload
Send payload
Let's rock
Wait for the payload to come online...
all goodBei:
Running in minimal mode, assuming LK and TZ to have already been flashed.
If this is correct (i.e. you used "brick" option in step 1) press entererneut ENTER.
Amonet modifiziert anschließend die GPT, führt den RPMB-Downgrade durch und installiert den modifizierten Preloader.
Erfolgreicher Verlauf:
Downgrade rpmb
Recheck rpmb
rpmb downgrade ok
Inject payload
Force fastboot
Flash preloader
Reboot to unlocked fastbootUnlock prüfen
fastboot devices
fastboot getvar unlock_status
fastboot getvar productErwartet:
unlock_status: true
product: SUEZTWRP installieren
TWRP (Team Win Recovery Project) ist eine alternative, touchbasierte Recovery-Umgebung für Android-Geräte. Sie startet unabhängig vom eigentlichen Android-Betriebssystem und ermöglicht administrative Arbeiten wie das Löschen bzw. Formatieren von Partitionen, Backups sowie insbesondere das Installieren („Flashen“) von Custom ROMs. Mir dient TWRP dazu, LineageOS per ADB Sideload auf das Fire HD 10 zu übertragen und zu installieren.
cd /tmp/linageos-suez/amonet
sudo ./fastboot-step.shDie Warnung zum Factory Reset mit ENTER bestätigen.
Das Script schreibt TWRP und löscht userdata:
Sending 'recovery_x' ...
Writing 'recovery_x' ...
Erasing 'userdata' ...
Your device should now reboot into TWRPTWRP startet anschließend automatisch.
Bei Keep System Read only?:
Swipe to Allow Modifications
Ein zusätzlicher Wipe ist nicht erforderlich und hier direkt im Menü verbleiben!
LineageOS 16 installieren
In der TWRP Umgebung -> Advanced → ADB Sideload → Swipe to Start Sideload
Jetzt in der Shell die korrekte Verbindung kontrolieren:
adb devicesDas Fire Tablet muss nun als sideload Device erscheinen, also wird so etwas wie:
G000N... sideloadausgegeben…
LineageOS installieren:
adb sideload \
/tmp/linageos-suez/lineage-16.0-20220705-UNOFFICIAL-suez.zipAuf den Abschluss der Installation warten:
ADB Sideload Complete
Successful
script succeeded: result was [1.000000]Anschließend in TWRP -> Reboot System.
Der erste Start von LineageOS benötigte bei mir 2h, also Geduld und das Teblet einfach am Strom liegen lassen… 🙂
Damit lässt sich das alte Fire HD 10 trotz seiner überschaubaren Hardwareausstattung noch einigermaßen sinnvoll einsetzen.
Zu beachten ist, dass auch Android 9 und LineageOS 16 inzwischen veraltet sind. Für sensible Daten oder sicherheitskritische Anwendungen ist das Gerät daher nicht mehr geeignet. Für lokale Dashboards, Kiosk-Anwendungen und ähnliche Aufgaben ist die Kombination aus LineageOS und der weiterhin brauchbaren Hardware dagegen eine interessante Möglichkeit, ein altes Fire Tablet weiterzuverwenden.
