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.sdk

Diese 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.sh

WSRoot

Quelle: Wondershare
Datei: 20165195.zip
SHA-256: 8bfc3d5c75964e5fa28c8ffa39a87249ba10ea4180f55f546b2dcc286a585ea8

Download via Shell:

wget http://myphone-download.wondershare.cc/mgroot/20165195.zip

Das Paket enthält:

Matrix
fileWork

Matrix 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+.zip

LineageOS 16

Quelle: Google Drive

Datei: lineage-16.0-20220705-UNOFFICIAL-suez.zip
Version: LineageOS 16 / Android 9
Build: 05.07.2022
SHA-256: 5092be1878991848411fdd0f6728d0a31b77db0ec667c3293b422d68ef516c53

Browser Download: https://drive.usercontent.google.com/download?id=18c8Px5xW3Px3kYpFcNC2F05Yc_WJptVs&export=download&authuser=0&confirm=t&uuid=27c02060-e391-4c5b-b5fb-9b730e876302&at=AFYLz4MhPeu2U3w73kUxQdQydtbq:1787360719115

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-suez

Nach 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.zip

Amonet entpacken:

unzip amonet-suez-v1.1.2.zip

Offline-Root-Verzeichnis erstellen:

mkdir offline-root
unzip 20165195.zip -d offline-root
unzip 'SuperSU_18+.zip' -d offline-root

Danach 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.sh

Temporä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 devices

Anschließ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 2

Ein erfolgreicher Lauf endet mit:

<WSRoot><Exploit>0</Exploit></WSRoot>
<WSRoot><Done>0</Done></WSRoot>

Root Shell öffnen:

su
id

Erwartetes Ergebnis:

uid=0(root) gid=0(root) context=u:r:init:s0

Bootloader mit Amonet entsperren

In einem zweiten Terminal:

cd /tmp/linageos-suez/amonet
sudo ./step-1.sh

Bei 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

YES

bestä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.sh

Sofort bei:

Waiting for bootrom

nur 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 good

Bei:

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 enter

erneut 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 fastboot

Unlock prüfen

fastboot devices
fastboot getvar unlock_status
fastboot getvar product

Erwartet:

unlock_status: true
product: SUEZ

TWRP 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.sh

Die 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 TWRP

TWRP 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 devices

Das Fire Tablet muss nun als sideload Device erscheinen, also wird so etwas wie:

G000N...    sideload

ausgegeben…

LineageOS installieren:

adb sideload \
  /tmp/linageos-suez/lineage-16.0-20220705-UNOFFICIAL-suez.zip

Auf 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.

Beitrag Teilen via...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Seite ist durch reCAPTCHA und Google geschützt Datenschutz-Bestimmungen und Nutzungsbedingungen anwenden.