Loki és Bump!
Rövidre veszem, gondolom annyira mélyen azért titeket sem érdekel a téma. Kis programozói ismeret kell hozzá.
Elöljáróban annyit, hogy a revovery és maga a rom is ugyanúgy épül fel: van egy ramdisk és egy kernel és arra épülő többi sallang, a funkciók, felhasználói felület. Egy romban a system ugye külön van a boot.img-től amiben a ramdisk és a kernel van. Ramdisk betöltődik a memóriába, pl memóriacímeket tartalmaz és konfigurációkat, hogy mit honnan mivel. Nem érdekes most.
Hogyan működik a loki patch:
A telefon bekapcsolásakor az aboot (bootloader) rutinja indul, betölti a memóriába a kernel és a ramdisket a fejlécben megadott memóriacímre , EZUTÁN ellenőrzi azt egy verifikációs függvénnyel (aminek kulcsát nem tudjuk, így a módosított kernel és ramdisk nem indulna el, legyen az a romé vagy a recovery-é) a függvény visszatérési értékétől függően folytatódik a boot vagy security errort dob. A loki patch olyan img-t készít aminek fejlécébe olyan címet ad ki ahova a ramdisket betölteti ami éppen a verifikáló függvény memóriacíme. Így nem az ellenőrző függvény hívódik meg, hanem a ramdiskbe beiktatott kód, ami betölti a kernelt és további szükséges dolgokat és visszadob az abootnak egy OK-t hogy jó volt az ellenőrzés, így az aboot vígan tölti tovább a rendszert.
Így már érthető hogy a recoveryt miért a factory resettel érjük el:
Az aboot factory resetet végrehajtó függvényének címére a recovery indításának címe kerül, így annak indítása hajtódik végre a reset helyett.
A lényeg tehát az, hogy a bootloader a memóriába való betöltést KÖVETŐEN verifikálja a recovery-t illetve a boot.img-t, így azok fejléce olyan címeket tartalmazhat amik felüliratják a betöltendő adatokkal magát az aboot-ot is, így annak ellenörző függvényét is.
LG ügyesen javította ezt a hibácskát, így KK alatt már nem működik ez.
Hogyan működik a bump?
Hogy is vagy hogy nem, visszafetették az aboot titkosításának kulcsát. Így nincs más mit tenni, a módosított boot.img-t szignózni az eredeti LG-s kulccsal, így az aboot megeszi azt mintha csak gyári img lenne. Az alább linkelt python kód végzi a szignózást. Ez történhet gépen, vagy akár a telefonon is flashelés előtt mondjuk.
Hogy a sript pontosan hogyan fut le, a forráskódokból visszafejthető:
Loki forráskód:
You are not allowed to view links.
Register or
LoginLoki működése:
You are not allowed to view links.
Register or
LoginBumpolás forráskódja:
You are not allowed to view links.
Register or
LoginAztán a loki vagy a bump scriptek futását azt a telepito updater scriptjebenben hívják meg, ezt az updater scriptek olvasgatásából tanulmányozhatjátok, miként.