VAROITUS! Älä poista hyppyjä tai tee niistä ehdottomia! Optimoija kaatuu ja ART-paikkasi epäonnistuu! Tämän välttämiseksi käytä ehdollisia hyppyjä. Esimerkiksi, jos on tarve hypätä, korvaa hyppy if-eq v0,v0 (bytes: 32 00 ?? ??). Jos ei ole tarvetta hypätä tietyssä paikassa, voit laittaa hypyn kuten if-ne v0,v0 (bytes: 33 00 ?? ??); voit käyttää myös omaa vastaavaa.
Paikkaustiedoston pitää olla samanniminen kuin kohde-APK (kirjainkoko merkitsee).
Jos tiedosto on mukautettu paikkaus jo olemassa olevalle sovellukselle, voit yksinkertaisesti lisätä tiedostonimen alkuun mitä tekstiä vain, ja tallentaa sen mahdollisimman lähellä samankaltaista.
Jos haluat kirjoittaa paikkauksen kerralla yhden yhtiön ohjelmasarjaa varten, mukautetun paikkaustiedoston nimen loppuun voit käyttää _%25ALL%25, esimerkiksi kaikkien votes SVOX -paikkauksen nimi näyttää tältä: com.svox.classic.langpack_%25ALL%25.txt. Kohta _%25ALL%25 korvataan paketin nimiosalla, joka vaihtelee firman sovelluksen mukaan.
Älä käytä erikoismerkkejä/muotoilua paikkaustiedostossa. (vain yksittäiset samanvälit)
Käytettävien tavumallien etsintään IDA Pro 6.1. Se voi avata dalvik-cachen, odex:n, kirjastot ja classes.dex:n.
Jos haluat paikata dalvik-cachen tai odex:n, älä unohda että datan tavut voivat vaihdella eri laitteisto-ohjelmistoversioissa. Äläkä unohda, etteivät kaikki tavut classes.dex:ssä vastaa toisiaan dalvik-cachen ja odex:n kanssa. Tämän näet, jos avaat classes.dex:n ja odex-tiedoston IDA Pro:ssa.
[BEGIN]
<paikkauskommentit, jotka näkyvät käyttäjälle ennen paikkausta>
Paikkaus XYZ Pro 5.0.5
[PACKAGE]
<purkaa classes.dex:n ja ottaa kaikki paikkaukset kohteesta [CLASSES] itselleen. Ja muodostaa, perustuen muokattuun classes.dex:ään, odex-tiedoston.>
[CLASSES]
<mallin etsintä/korvaus classes.dex:lle (katso alla)>
{"search":"63 R00 R01 R02 38 00 04 00 12 10 0F 00"}
{"group":"1"}
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A W00 W01 W02 00 00 12 S0 0F 00"}
[LIB]
<mallin etsintä/korvaus nimetyille natiiveille kirjastoille (katso alla)>
{"name":"libtitanium.so"}
{"original":"00 ** 50 e2"}
{"replaced":"00 00 50 e1"}
[OTHER FILES]
<mallin etsintä/korvaus nimetyille muille tiedostoille kansiossa /data/data/Package_Target_APK/ (katso alla)>
{"name":"/files/shell.dex"}
{"original":"0F 00 00 00 1A 00 00 00 0F 00 00 00 59 00 00 00 2F"}
{"replaced":"0F 00 00 00 0F 00 00 00 0F 00 00 00 59 00 00 00 2F"}
[OTHER FILES]
<mallin etsintä/lisäys nimetyille muille tiedostoille kansiossa /mnt/sdcard/ (jos /mnt/sdcard/ polkua ei löydy, Lucky Patcher etsii muita vaihtoehtoja sd-kortille)>
{"name":"/mnt/sdcard/Android/package-name/files/lives.xml"}
{"original":"63 68 65 6C 70 61"}
{"insert":"63 68 65 6c 70 61 61 61"}
[FILE_IN_APK]
<mallin etsintä/korvaus tiedostolle apk-tiedostosta (tämä paikkaus toimii vain uudelleen rakennetulle apk:lle, jossa on tämä mukautettu paikkaus)>
{"name":"assets/bin/Data/Managed/O7SharpCompress.dll"}
{"original":"0F 00 00 00 1A 00 00 00 0F 00 00 00 59 00 00 00 2F"}
{"replaced":"0F 00 00 00 0F 00 00 00 0F 00 00 00 59 00 00 00 2F"}
[ADD-BOOT]
<automaattisesti lisää nykyisen käyttäjän paikkauksen käynnistyslistaan. Tulee käyttää paikkauskirjastossa (tai paikkauksessa [CLASSES] ilman [ODEX] tai ilman [PACKAGE])>
[END]
<paikkauskommentit, jotka näkyvät käyttäjälle paikkauksen jälkeen>
Onnittelut! Ohjelma murrettu!
“search” – etsi sallii sinun atsiä malleja ja varastoida tavuja tiettyihin paikkoihin.
{"search":"63 R00 R01 R02 38 00 04 00 12 10 0F 00"}
Tässä esimerkissä vihreät tavut tekevät mallisi maskin, kun taas keltaiset tavut nimettyinä R00 -> R02 varastoidaan.
Varastoitujen tavujen täytyy olla järjestyksessä R00, R01, R02, R03…
Varastoituja tavuja ei voi toistaa.
"group" - merkitsee ryhmän mallit (ryhmänumero voi olla 1 tai korkeampi). Mitä se tarkoittaa? Jos ryhmän malleista ainakin yksi menestyi, paikkauksen onnistumisen varmistus näytetään. Tämä on hyödyllistä kun yrität tehdä yleistä paikkausta tietyn sovelluksen monille versioille (esimerkiksi, paikkausta Google Playn kaikille versioille automaattisten päivitysten käytöstä poistoon).
“original” – tämä on mallimaski, jolla etsitään offset, jonne paikkaus käytetään.
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
Tässä esimerkissä vihreät tavut tekevät mallisi maskin, kun taas keltaiset tavut ovat jokerimerkkejä (??, **)
“replaced” – tämä seuraa “original” lausetta, tällä offset ylikirjoitetaan.
{"replaced":"12 00 6A W00 W01 W02 00 00 12 00 0F 00"}
Tässä esimerkissä vihreät tavut ylikirjoittavat kohdesijainnin.. keltaiset tavut ovat varastoituja tavuja aiemmin tehdystä “etsinnästä”
“name” – tätä käytetään kohdentamaan tietty kirjasto nimellä (katso yllä kohteessa [LIB])
S0 , S1 - asettaa smali-muuttujan arvoksi 0 tai 1, vastaavasti.
Esimerkiksi, on muuttuja: const/4 v?,0x00 . Kysymysmerkki osoittaa, että muuttujan numero on tuntematon (esimerkiksi, se on muuttunut uudemmassa versiossa), mutta olet varma, että tämä muuttuja on yhtä kuin 0, ja haluat asettaa sen olemaan 1. Tässä tapauksessa malli näyttää:
{"original":"12 ?? ?? ?? ?? ??"}
{"replaced":"12 S1 ?? ?? ?? ??"}
Ja toisin päin, asetetaan muuttuja 0:ksi:
{"original":"12 ?? ?? ?? ?? ??"}
{"replaced":"12 S0 ?? ?? ?? ??"}
“replace_from_file” – tämä seuraa “original” lausetta, tällä offset ylikirjoitetaan tavuilla tiedostosta (tiedosto pitää tallentaa mukautetun paikkauksen lähelle).
{"replace_from_file":"array.bin"}
Näin vältetään turhan pitkien korvausmallineiden kirjoitus.
“insert” – Jos haluat lisätä dataa, joka on pidempi kuin alkuparäinen malli.
(Esimerkki)tiedosto ennen paikkausta sisältää:"chelpa end"
{"original":"63 68 65 6C 70 61"}
{"insert":"63 68 65 6c 70 61 61"}
tiedosto paikkauksen jälkeen sisältää:"chelpaa end"
[LIB-ARMEABI],[LIB-ARMEABI-V7A],[LIB-MIPS] tai [LIB-X86] - kirjastoihin kohteista /lib/armeabi/, /lib/armeabi-v7a/, /lib/mips/, /lib/x86/.
[ODEX-PATCH] - Käytetään paikkaukseen johon on jo luotu odex. Esimerkiksi, sovellus on paikattu automaattisessa tilassa 'poista käyttöluvan tarkistus', mutta sinun pitää tehdä lisämuutoksia käyttäen mukautettua paikkausta. Jos käytämme yksinkertaista [PACKAGE]-[CLASSES], [ODEX] tai [CLASSES]-[ODEX], odex-tiedosto luodaan ilman muutoksia, ja vasta sitten paikataan.
Esimerkki:
[BEGIN]
[ODEX-PATCH]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[END]
Onnittelut! ODEX muokattu!
[CLASSES] ilman [PACKAGE] - Paikkaa dalvik-cache-sovellukset. Älä unohda että järjestelmä jaksottain päivittää dalvik-cache-sovellukset ja kaikki sen muutokset häviävät. Joten meidän pitää lisätä silloin [ADD-BOOT]. Dalvik-cachen paikkaus vanhentunut, epäluotettava. Mutta se tarvittiin ROM Toolboxia varten, koska se löysi odex-tiedoston ja sekosi.
Esimerkki:
[BEGIN]
[CLASSES]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[ADD-BOOT]
[END]
Onnittelut!
[ODEX] - Kopioi dalvik-cache kansioon /data/app/ ja nimeää uudelleen odex-tiedostoksi, jolloin kaikki paikkaukset käytetään tähän odex-tiedostoon. Odex:n tarkistussummat väärin, ei läpäise tarkastusta, erilainen kuin luotu odex-tiedosto [PACKAGE] - [CLASSES].
Esimerkki:
[BEGIN]
[ODEX]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[END]
Onnittelut!
[CLASSES]-[ODEX] - Paikkaa dalvik-cachen ja sitten kopioi dalvik-cachen kansioon /data/app/ ja nimeää uudelleen odex-tiedostoksi. Odex:n ja dalvik-cachen tarkistussummat väärin, ei läpäise tarkastusta, erilainen kuin luotu odex-tiedosto [PACKAGE] - [CLASSES].
Esimerkki:
[BEGIN]
[CLASSES]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[ODEX]
[END]
Onnittelut!
[COMPONENT] - Ottaa käyttöön tai poistaa käytöstä komponentit sovelluksiin.
Esimerkki:
[BEGIN]
[COMPONENT]
{"disable":"com.superApp.adsActivity"}
{"enable":"com.superApp.fullVersion.Provider"}
{"disable":"com.android.vending.CHECK_LICENSE"}
[END]
Onnittelut!
[SQLITE] - Joskus kohdesovelluksen pitää muuttaa jotain tietokannassa, silloin tämä mahdollisuus auttaa:
Esimerkki:
[BEGIN]
Kokeilukauden nollaus
[SQLITE]
{"database":"/data/data/com.package.megaapp/databases/settings.db"}
{"execute":"DELETE FROM table_settings WHERE name = 'SETTING__LIC'"}
{"execute":"UPDATE table_settings SET UsedDays=0 WHERE name='Trial_set'"}
[END]
Onnittelut! Sinulla on uusi kokeilukausi!
database - Laitteen tietokannan polku, tai voit käyttää vain tietokannan nimeä, jolloin Lucky Patcher etsii tiedoston.
execute - SQLite query.
[SET_PERMISSIONS] - Analoginen linux-komento "chmod permissions file_name" tiedostoille sovelluksen data-hakemistossa:
Esimerkki:
[BEGIN]
Kokeilukauden nollaus
[SET_PERMISSIONS]
{"file_name":"/files/stats"}
{"permissions":"777"}
[OTHER FILES]
{"name":"/files/stats"}
{"original":"4D 4D 46 31"}
{"replaced":"00 4D 46 30"}
[SET_PERMISSIONS]
{"file_name":"/files/stats"}
{"permissions":"444"}
[END]
Onnittelut! Sinulla on uusi kokeilukausi!