ADVARSEL! Fjern ikke springer eller gøre dem ubetinget! Optimizer vil gå ned, og din ART patch vil mislykkes! For at undgå dette, skal du bruge betingede spring. For eksempel, hvis der er behov for at hoppe, erstatte springet med if-eq v0,v0 (bytes: 32 00 ?? ??). Hvis der ikke er behov for at hoppe i bestemt sted, kan du indsætte spring ligesom if-ne v0,v0 (bytes: 33 00 ?? ??); også velkommen til at bruge din egen tilsvarende.
Patch filen skal have samme navn som målet APK-fil (dette er små bogstaver).
Hvis filen er en brugerdefineret patch til programmet allerede findes, kan du blot tilføje i begyndelsen af filnavnet på enhver tekst og gemme det som nær den eksisterende.
Hvis du ønsker at skrive en patch engang en række programmer på en enkelt virksomhed, så enden den brugerdefinerede patch filnavn, kan du bruge _%25ALL%25, for eksempel navnet på patch til alle de stemmer SVOX vil se sådan ud: com.svox.classic.langpack_%25ALL%25.txt. på _%25ALL%25 erstattes af navnet en del af pakken, som varierer afhængigt af anvendelsen af firmaet.
Brug ikke specialtegn/formatering i patch filen. (enkelte mellemrum kun)
For at søge efter mønstre af bytes til at bruge IDA Pro 6.1 program. Det kan åbne dalvik-cache, odex, libraries og classes.dex.
Hvis du ønsker at patch dalvik-cache eller odex, glem ikke, at de bytes af data i forskellige firmwareversioner kan variere. Og glem ikke, at de bytes er ikke alle classes.dex sammenfaldende med dalvik-cache og odex. I dette kan du se, hvis du åbner classes.dex og odex-file i IDA Pro programmet.
[BEGIN]
<patch kommentarer, der er synlige for brugeren pre-patch>
Patch for XYZ Pro 5.0.5
[PACKAGE]
<udpakker classes.dex og anvender alle de patches fra [CLASSES] til ham. Og genererer, baseret på det ændrede classes.dex, odex-fil.>
[CLASSES]
<mønster søg/erstat efter classes.dex (se nedenfor)>
{"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]
<mønster søg/erstat til navngivne indfødte biblioteker (se nedenfor)>
{"name":"libtitanium.so"}
{"original":"00 ** 50 e2"}
{"replaced":"00 00 50 e1"}
[OTHER FILES]
<mønster søg/erstat til navngivne andre filer i /data/data/Package_Target_APK/ (se nedenfor)>
{"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"}
[ADD-BOOT]
<tilføjer automatisk den aktuelle bruger patch til BootList. Bør anvendes i patch biblioteket (eller i plasteret [CLASSES] uden [ODEX] eller uden [PACKAGE])>
[END]
<patch kommentarer der er synlige for det bruger post-patch>
Tillykke! programmet er cracked!
“search” – søgning kan du søge efter et mønster og gemme bytes på bestemte positioner.
{"search":"63 R00 R01 R02 38 00 04 00 12 10 0F 00"}
I dette eksempel bytes i grøn gøre op dit mønster maske, mens bytes i gul mærket R00 -> R02 gemmes.
Lagrede bytes skal være i orden R00, R01, R02, R03…
Lagrede bytes kan ikke gentages.
"group" - markerer mønstre i gruppen (gruppe tal kunne være 1 eller højere). Hvad betyder det? Hvis mindst et mønster fra gruppen lykkedes, vil blive vist vellykket patch bekræftelse. Det er nyttigt, når du forsøger at lave en universel patch til flere versioner af den særlige app (f.eks patch alle versioner af Google Play for at deaktivere automatisk opdatering).
“original” – dette er et mønster maske anvendes til at finde offset hvor plastret vil blive anvendt.
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
I dette eksempel bytes i grøn gøre op dit mønster maske, mens bytes i gul er wildcards (??, **)
“replaced” – dette vil følge en “original” erklæring, dette er hvad offset vil blive overskrevet med.
{"replaced":"12 00 6A W00 W01 W02 00 00 12 00 0F 00"}
I dette eksempel bytes i grøn overskriver destinationsplaceringen .. bytes i gul gemmes byte fra tidligere gennemført “search”
“name” – det bruges til at målrette et specifikt bibliotek ved navn (se ovenfor i [LIB])
S0 , S1 - sætter smali variabel til 0 eller 1 henholdsvis.
For eksempel, er der en variabel: const/4 v?,0x00 . Spørgsmålstegn viser, at tallen er ukendt (for eksempel er det blevet ændret i den nyere version), men du er sikker på, at dette var lig med 0, og du ønsker at indstille til 1. I dette tilfælde mønster vil ligne:
{"original":"12 ?? ?? ?? ?? ??"}
{"replaced":"12 S1 ?? ?? ?? ??"}
Og omvendt, at indstille variablen til 0:
{"original":"12 ?? ?? ?? ?? ??"}
{"replaced":"12 S0 ?? ?? ?? ??"}
“replace_from_file” – dette vil følge en “original” erklæring, dette er hvad offset vil blive overskrevet med bytes fra fil (filen skal gemmes nær brugerdefinerede patch).
{"replace_from_file":"array.bin"}
Dette gøres for at undgå at skrive meget lange skabeloner til at erstatte.
[LIB-ARMEABI],[LIB-ARMEABI-V7A],[LIB-MIPS] or [LIB-X86] - for Bibliotek fra /lib/armeabi/, /lib/armeabi-v7a/, /lib/mips/, /lib/x86/.
[ODEX-PATCH] - Bruger til patch allerede er oprettet ODEX. For eksempel har en applikation er blevet patchet med den automatiske funktion ved Fjern Licens Verifikation, men du er nødt til at foretage yderligere ændringer ved hjælp af en brugerdefineret Patch. Hvis vi bruger en simpel [PACKAGE]-[CLASSES], [ODEX] eller [CLASSES]-[ODEX], ODEX-fil vil blive oprettet med ingen ændringer, og først derefter patch.
Eksempel:
[BEGIN]
[ODEX-PATCH]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[END]
Tillykke! ODEX ændret!
[CLASSES] uden [PACKAGE] - Patches Dalvik-cache applikationer. Glem ikke, at systemet opdaterer regelmæssigt Dalvik-cache applikationer, og alle de ændringer af den forsvinde. Derfor skal vi tilføje så [ADD-BOOT]. Patch til Dalvik-cache forældet, som upålidelige. Men han havde brug for ROM Toolbox, da han fandt ODEX-fil og opfører sig hysterisk.
Eksempel:
[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]
Tillykke!
[ODEX] - Kopier Dalvik-cache i /data/app/ og omdøbe til ODEX-fil, så alle de patches anvendes på denne ODEX-fil. Kontrolsummer for de ODEX forkert, kan ikke passere inspektion, i modsætning ODEX-fil oprettet [PACKAGE] - [CLASSES].
Eksempel:
[BEGIN]
[ODEX]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[END]
Tillykke!
[CLASSES]-[ODEX] - Patches Dalvik-cache og derefter Kopi Dalvik-cache i /data/app/ og omdøbe til ODEX-fil. Checksums for de ODEX og Dalvik-cache er forkert, kan ikke passere inspektion, i modsætning ODEX-fil oprettet [PACKAGE] - [CLASSES].
Eksempel:
[BEGIN]
[CLASSES]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? ?? 00 00 12 00 0F 00"}
[ODEX]
[END]
Tillykke!
[COMPONENT] - Aktivere eller deaktivere komponenter til Applications.
Eksempel:
[BEGIN]
[COMPONENT]
{"disable":"com.superApp.adsActivity"}
{"enable":"com.superApp.fullVersion.Provider"}
{"disable":"com.android.vending.CHECK_LICENSE"}
[END]
Tillykke!
[SQLITE] - Nogle gange målapplikationen skal ændre noget i databasen, så for at hjælpe kommer denne mulighed:
Tillykke!
[BEGIN]
Nulstil prøveperiode
[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]
Tillykke! Du har nye prøveperioden!
database - sti til databasen på enheden.
execute - SQLite spørring.
[SET_PERMISSIONS] - Analog linux kommando "chmod permissions file_name" for filer i data retning af applicationen:
Example:
[BEGIN]
Trial Reset
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]
Tillykke! Du har nye prøveperioden!