Android APatch – moderní root pro (skoro) všechny

Je mnoho důvodů, proč jsou mobilní telefony běžící pod operačním systémem Android stále tak populární. Výrobci dokážou uživatelům nabídnout velmi levné modely pro každodenní použití, špičkové telefony s extrémním výkonem ale také například odolné přístroje do těch nejnáročnějších prostředí. Pro mnoho uživatelů a technologických nadšenců však tento systém znamená především svobodu, která se jim naskytne, pokud si stůj telefon takzvaně „rootnou“.

Rooting je proces, pomocí kterého mohou uživatelé získat privilegovanou kontrolu nad přístrojem. Běžný uživatel má v operačním systému velmi omezená práva a možnosti, rooting mu umožní nahlédnout do míst, funkcí či aplikací, které jsou jinak lidem skryty. Při použití správných nástrojů se tak může z běžného telefonu plného nucených aplikací (bloatware) může stát úplně jiný přístroj s jedinečnou konfigurací.

Systém Android je založen na upraveném linuxovém jádru, rooting poskytuje uživateli podobný přístup k administrátorským či superuživatelským oprávněním jako Linux či jiný unixový operační systém.

Stejně jako u produktů Apple se i zde pro získání přístupu k superuživateli využívá zranitelností operačního systému či systémových aplikací, nebo aspoň tak tomu do nedávna bylo.

Jaké jsou možnosti?

Historicky nejrozšířenějším nástrojem byl jednoznačně SuperSU od Chainfire. Root umožnil uživatelům udělovat či odepírat aplikacím oprávnění superuživatele, což jim poskytlo úplnou kontrolu nad operačním systémem a potažmo celým telefonem. Následníkem se mu stal mocný nástroj Magisk od Topjohnwu, který díky svému způsobu fungování a schopnostem bezpochyby znamenal revoluci v rootování Androidů. Magisk se dodnes těší veliké oblíbenosti a pro komunitu vývojářů nástrojů, systémových hacků a neoficiálních aplikací je to něco jako základní kámen.

V roce 2023 byl publikován nový nástroj a způsob, jak dosáhnout plnohodnotného rootu – KernelSU od čínského vývojáře Weishu. Jak již název napovídá, jedná se o metodu, která pracuje přímo s kernelem ala jádrem systému.

Před několika týdny spatřil světlo světa další nástroj, založený na podobném principu, který však slibuje ještě větší funkčnost a podporu napříč modely telefonů – APatch od hackera Maxe Baumgärtela. Na první pohled nás tato metoda a její promo zaujalo, a tak jsme se ji rozhodli vyzkoušet.

Root nástroje: SuperSU, Magisk a KernelSU
Root nástroje: SuperSU, Magisk a KernelSU

Hlavní vlastnosti jednotlivých řešení:

SuperSUhttps://supersuroot.org

  • Jedna z prvních globálně používaných root aplikací
  • Modifikuje systémový oddíl
  • Změny jsou viditelné – náchylné na detekci

Magiskhttps://github.com/topjohnwu/Magisk

  • Open-source root platforma
  • V současnosti nejpopulárnější metoda
  • Bezsystémový root – místo modifikace systému upravuje bootovací oddíl (ramdisk)
  • Nabízí rozšíření jako Magisk moduly či Hide Root

KernelSUhttps://github.com/tiann/KernelSU

APatchhttps://github.com/bmax121/APatch

  • Root fungující v jádru/kernelu OS
  • Široká podpora – vyžaduje pouze boot.img OS (ROM)
  • Efektivnější možnosti skrytí rootu
  • SuperKey – systémový call s vyššími privilegii než root
  • Možnost rootu bez úpravy SELinux
  • KernelPatch moduly

APatch rooting

https://apatch.top

Na stránkách autora a online článcích stojí, že APatch je univerzální metoda a lze ji použít na většinu mobilních telefonů. Přece je zde však několik podmínek nutných k úspěšné modifikaci systému.

Hardwarové a softwarové požadavky:

  • V současnosti jsou podporovány telefony běžící pouze na architektuře ARM64, to zjistíte jednoduchým adb příkazem:

c:\.TEST>adb shell uname -m
aarch64

  • Podporované verze kernelu 3.18 – 6.1:

c:\.TEST>adb shell cat /proc/version
Linux version 4.4.194-perf+ (ci@Common_192-168-67-142_12026_docker) (gcc version 4.9.x 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Jun 3 04:13:41 CST 2020

Informace o kernelu v nastavení OS
Informace o kernelu v nastavení OS
  • Konfigurace kernelu:

CONFIG_KALLSYMS=y and CONFIG_KALLSYMS_ALL=y

c:\.TEST>adb shell zcat /proc/config.gz | grep CONFIG_KALLSYMS
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y

  • Aktuálně chybí podpora telefonů Samsung Knox

První dva body filtrují starší telefony běžící na již nepodporovaných verzích operačního systému, respektive jádra Android. Bezpečnostní prvky současných telefonů Samsung jako je DEFEX či RKP je v současné chvíli také vyřazují ze hry. A jak jsme se přesvědčili i v naší laboratoři, i konfigurace kernelu může být problémem, kdy jeden z námi testovaných telefonů nepodporoval všechny symboly kallsyms, díky čemuž nemohlo dojít k modifikaci bootovacího sektoru (boot.img).

c:\.TEST>adb shell
a41:/ $ zcat /proc/config.gz | grep -w CONFIG_KALLSYMS
CONFIG_KALLSYMS=y
a41:/ $ zcat /proc/config.gz | grep -w CONFIG_KALLSYMS_ALL
# CONFIG_KALLSYMS_ALL is not set

Kernel patch problem
Kernel patch problem

Pokud mobilní telefon splnil všechny předpoklady, může se jít na věc. Stejně jako v případě KernelSU, i APatch rooting proces je pro zkušené mobilní kutily poměrně jednoduchý a jsou k jeho provedení potřebné pouze 3 věci:

  • Mobilní aplikace APatch https://github.com/bmax121/APatch/releases
  • Originální bootovací image disk (boot.img); Tento soubor se nachází v ROM (Android Read Only Memory) balíku – soubor obsahující obraz operačního systému Android a přidružených aplikací. V případě užívání oficiálního systému je většina ROM souborů dostupná na stránkách výrobce.
  • Custom recovery (CWM,TWRP,…); Tyto 3rd party nástroje umožňují spravovat kritické operace telefonu a operačního systému, především pak flashovat vlastní verze Android OS známé jako Custom ROM.

Jako první je dobré si obstarat samotný bootovací image operačního systému. V případě, že telefon běží na originální (stock ROM) verzi OS Android, měla by být ROMka dostupná na stránkách mobilního výrobce, popřípadě na neoficiálních agregujících portálech jako je například https://firmwarefile.com. V případě upravené (custom ROM) verze OS pak systémový archiv naleznete rovněž na stránkách onoho výrobce systému. Pokud na těchto místech hledaný firmware nenajdete je tu ještě Google či XDA fórum.

Samotný boot.img soubor se nachází přímo ve struktuře ROM archivu:

c:\Program Files\Java\jdk-21\bin>jar -tf "c:\.DOWNLOAD\Arrow-v11.0-potter-OFFICIAL-20220921-GAPPS.zip"
META-INF/com/android/metadata
system.new.dat.br
system.patch.dat
META-INF/com/google/android/update-binary
META-INF/com/google/android/updater-script
boot.img
install/bin/backuptool.functions
install/bin/backuptool.sh
system.transfer.list
META-INF/com/android/otacert

Z komprimovaného balíku je potřeba boot.img soubor pouze vyextrahovat a nahrát do mobilního telefonu.

c:\.TEST>adb push boot.img /storage/emulated/0/Download
jdb.exe: 1 file pushed, 0 skipped. 10.6 MB/s (23664 bytes in 0.002s)

Ve druhém kroku se instaluje patchovací klient – mobilní aplikace APatch. APK soubor je dostupný z více zdrojů, z bezpečnostního hlediska však doporučujeme využívat pouze oficiální GitHub stránku skupiny bmax121.

Aplikaci buď stáhnete a nainstalujete přímo přes mobilní prohlížeč, či sideload přes USB kabel z laptopu:

c:\.TEST > adb install APatch_10763_10763-release-signed.apk

V mobilní aplikaci se následně upravuje exportovaný boot image a nastavuje SuperKey, který bude v budoucnu využíván jako verifikační klíč.

Kroky v aplikaci APatch
Kroky v aplikaci APatch

Aplikace APatch ukládá zmodifikovaný boot image do stejného adresáře jako originální obraz.

apatch05

Samotný flash/instalace injektovaného boot.img obrazu se provádí v Recovery aplikaci, iniciované z bootloaderu. Recovery jsou device-specific, je tedy nutné najít image přesně pro daný mobilní telefon. Pro naše testy využíváme modul od TWRP (Team Win Recovery Project). Custom recovery se dá instalovat do mobilního telefonu natrvalo, nebo ji možné ji nahrát a vyvolat pouze jednorázově (a ponechat tak v telefonu originální Recovery aplikaci).

c:\.TEST>adb reboot bootloader
c:\.TEST>fastboot.exe boot twrp-3.7.0_9-0-potter.img
Sending 'boot.img' (17546 KB) OKAY [ 0.381s]
Booting OKAY [ 0.680s]
Finished. Total time: 1.075s

V Recovery aplikaci se jako první krok doporučuje záloha aktuálního boot sektoru. Modifikace kritických částí jádra je vždy proces nesoucí sebou velké riziko, a tak je důležité myslet na zadní vrátka a případnou možnost vrácení telefonu do původního stavu, pokud rooting nedopadne úspěšně.

Backup kroky v Custom Recovery TWRP
Backup kroky v Custom Recovery TWRP

V dalším kroku se již může přehrát upravený boot image a telefon restartovat.

Flash kroky v Custom Recovery TWRP
Flash kroky v Custom Recovery TWRP

Pokud telefon bez jakýchkoliv problémů nastartuje do systému, je již na 90% vyhráno. Jako poslední krok je nutné v aplikaci APatch patch aktivovat – pomocí SuperKey (superCall) systémového volání.

Finální kroky v aplikaci APatch
Finální kroky v aplikaci APatch

A to je vše. Telefon se již nyní nachází ve stavu, kdy běží pod plnohodnotnými právy uživatele root. Tady je kontrola před aktivací a po ní pomocí jedné z populárních root check aplikací Rootbeer:

RootBeer root check
RootBeer root check

Pro uživatele však tímto stavem cesta nekončí, ba naopak teprve začíná. Ti geekové, kteří jsou zvyklí na Magisk a případně také LSPosed moduly mohou i zde své oblíbené nástroje dále využívat, APatch umožňuje jak import KPM, tak APM modulů.

  • KPM (Kernel Patch Module) – Nástroje, které vkládají libovolný kód přímo do jádra OS, k dispozici je funkce jádra inline-hook a syscall-table-hook
  • APM (Android Patch Module) – Magisk/LSPosed moduly. Pro tuto funkci však musí linuxový kernel obsahovat Overlay Filesystem.

Závěrem:

Komunita Androidích uživatelů a vývojářů zažívá zlaté časy, ještě nikdy v historii nebylo na internetu k dostání tolik možností, jak si upravit mobilní telefony k obrazu svému. Některé historicky populární aplikace se bohužel staly minulostí a na nová Android SDK již nejsou aplikovatelné. Buďme však rádi za talentované vývojáře, kteří vymýšlejí nástroje jako jsou Magisk/Zygisk, KernelSU či nový APatch a dovolují nám mít ten luxus si zadarmo hrát a tvořit vlastní podobu prostředí OS Android. Svoboda není samozřejmost, a to platí jak o naší společnosti či internetu, tak o mobilním světě.