Hogyan lehet dekompilálni és témázni az Android APK-kat



Most nyomd meg a „Csere mindet” gombot, és ez megváltoztatja az összes @android: color / white-t, hogy inkább a background_holo_dark-ot használja. Most folytassa a teljes .xml görgetését, keresve bármilyen androidot: háttérsztringeket, amelyek hexa értéket (#fffffff) használnak, vagy bármi mást, mint amire most cseréltük őket. A megtaláltaknál változtassa meg a karakterláncokat az újak használatához (abs__background_holo_dark).

Tehát megváltoztattuk a hátteret, most meg fogjuk változtatni a szöveg színét. Tehát kövesse ugyanazt az eljárást, amelyet most tettünk, de ezúttal végezzen CTRL + F billentyűt az „android: textColor” kifejezésnél. Körülbelül 166 sort talál.



Látni fog olyan dolgokat, mint az „android: textColor =” # ffbbbbbb ”stb. Tehát nézzen be újra a Colors.xml fájlba, és meg kell találnunk, hogy mely sorokat cserélje le a szöveg színére.



Láthatja az androidot: textColor = ”# ffbbbbbb”, “#ffffffff”, “# ff717171” és “#ffcccccc” a képernyőképen és a keresési eredmények között a Note ++ -ban. Nyissa meg újra a Colors.xml fájlt, hogy megtalálja, melyik sort akarjuk használni a szöveg színéhez.



Tehát térjen vissza az első .xml fájlra, és végezze el ismét a CTRL + H billentyűt a Csere párbeszédablakban. Most másolja be az „android: textColor =” # ffbbbbbb ”karakterláncot a felső és az alsó részre, és változtassa meg az alsó sort„ android: textColor = ”@ color / text” -re.

Most még egyszer keressen az android: textColor összes sorában, és változtasson meg bármit, amelynek hex értéke van a karakterláncban. Végül, amikor eljut a styles.xml fájlhoz, el kell távolítania az inverzeket néhány sorból, kezdve a 260. sortól és lefelé folytatva néhány sort. Tehát törölje az „inverz” -t ezekből a húrokból.

Ezután látni fog néhány hexaértéket az 527., 536., 573., 579., 585., 601. és néhány más vonalon. Cserélje a (#ffffffff) szöveget a (@ color / text) értékre.



Nyomja meg a CTRL + F billentyűkombinációt a Notepad ++ kereséséhez cacheColorHint , osztó , @ * android: szín / , és Fordított .

A cacheColorHint a görgető háttér, ezért meg kell győződnünk arról, hogy a háttérszínünket használják. Az elválasztók nem magyarázhatóak, és ha akarja, megváltoztathatjuk a hexa értéküket. Az egyetlen dolog, hogy nem szabad hozzányúlni ahhoz, ami a @drawable-ra mutat. Ezek általában képek .png fájlként vannak tárolva az .apk mappa másutt.

Amikor a „ fordított ” , a textAppearanceInverse hivatkozásokat jeleníti meg. Kattintson duplán ezekre, és törölje az inverzeket ezekből a karakterláncokból.

Végül a @ * android: color / keresése csak kétszer ellenőrzi, hogy hiányoztak-e a keretszerkesztések. Ha bármit talál, amely azt mondja: „android: popupBackground”> @ * android: color / white ”, akkor módosítania kell„ android: popupBackground ”> @ color / abs__background_holo_dark” értékre. Ez magában foglalja a 911-es sort, ami zavaró lehet, mert már az androidra mutat: color / black.

Ezután megnyitjuk a res / values ​​/ colors.xml fájlt, és megváltoztatjuk, hogy így nézzen ki:

Következő res / values ​​/ styles.xml, és görgessen lefelé a 328. sorig. Változtassa meg így:

() értékét () kell módosítani

Tegye ugyanezt a 479-es sornál, módosítva könnyű' nak nek ' fekete' .

Most lépjen a res / values-v11 / styles.xml fájlba, és távolítsa el a könnyű' ahol azt mondja: Holo.Light ” .

Ezután most megnyitja a res / values-v14 / styles alkalmazást, amely sok karakterláncot tartalmaz. Tehát az első 46 sorban törölni akar minden Könnyű' és „ Inverz ” hivatkozásokat, majd változtassa meg a szülőket az 53. és az 54. sorban „@ * android: style / Theme.Holo” -ra.

A 69-es vonalon, a jobb oldali szülőnél távolítsa el a fényt a @ * android: style / Theme.Holo.Light.Dialog szülőből.

Ez sok munka, igaz? Talán ezentúl jobban értékelni fogja az alkalmazás témáit és a bőröket!

Ezután bemegyünk a res / color mappába. Vannak olyan szöveges fájlok, amelyek feketére mutatnak. Nyissa meg a res / colors / action_mode_item_text_color_state_list.xml fájlt

Így néz ki a készleten. Az alábbiakban bemutatjuk, hogyan kell elkészíteni.

Ezeket a mintákat módosítania kell a / res / colors mappában található következő xml fájlokban: Bottom_button.xml, Button_update.xml, Filelist_text_name.xml, Filelist_text_small.xml, Link_button.xml, Local_filelist_text_name.xml, Local_filelist_text_text_all. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Ha végzett ezzel, nyissa meg a / res / drawable elemet, és vannak xml-ek, amelyek a háttér színét szabályozzák. Tehát menjen át rajtuk, és így nézzen ki:

Ugyanezeket a módosításokat alkalmazza az összes többi drawable.xml fájlra.

Most nyissa meg a test.apk fájlt, és nyomja meg a CTRL + bal egérgombbal a smali és az AndroidManifest kiemeléséhez, majd kattintson a jobb gombbal, majd ismét a „Szerkesztés a Jegyzettömbbel ++” elemre. Egyetért az összes 1999-es smali fájlban. Amikor betöltődik, végezzen CTRL + F keresést a -0x100 (fekete) kifejezésre

Körülbelül 8 találatot fog kapni, és a kívánt smali / com / dropbox / android / activity / TextEditActivity.smali, az 599. soron. Kattintson duplán erre a sorra.

Az 599 sor -0x100-at tartalmaz, a 601-es sorban pedig a „SetTextColor”. Van egy olyan változó is, amely megegyezik az 599. sorral. Röviden elmagyarázva: -0x100, -0x1000000 és még 0x0 jelentése fekete, -0x1000000 szintén fekete, sőt 0x0 is. Változtassa meg az 599 sort a két 0 eltávolításával a 100-ból, és a / high16 eltávolításával:

Ezután a @ * android: style kifejezésre keresünk, de smali nyelven. Az xml tartalmazni fog egy extra „0” -t az x után, de szmáliban nem használjuk. A „0x103004f” helyett „0x103004f” kell lennie.

Keressen rá a Notepad ++ alkalmazásban a @ * android: style / kifejezésre, amely 0x103-at tartalmaz.

A második találat: „const v7, 0x1030073“. Keresse meg újra a public.xml fájlban a framework-res.apk fájlból. Látni fogja, hogy ez a „Theme.Holo.Light.Dialog” azonosítója. Meg kell változtatnia az ellentétes téma stílusának nyilvános azonosítójára.

Mivel ez a Theme.Holo.Light.Dialog, azt szeretnéd, hogy Theme.Holo.Dialog legyen. A Theme.Holo.Dialog azonosítója: „0x103006f”. Ez megváltoztatja az előugró párbeszédpanelt, hogy sötétebb Holo-alapú témát használjon a világosabb Holo.Light-alapú téma helyett.

A következő, amin változtatnunk kell, a „0x103006e”, amely a Theme.Holo.Light. Tehát folytassa, és tegye az ellenkező téma stílusává. A public.xml fájlban a framework-res.apk fájlban látni fogja a Theme.Holo azonosítóját: 0x0103006b. változtassuk ezt a sort így:

Ezekből még csak 2 van keresztül. A következő a „0x103000c”, amely a Theme.Light in the public.xml fájlra vonatkozik. Ennek ellentéte a Theme.Black, nem a ThemeHolo. Tehát a public.xml fájlban láthatja a Theme.Black azonosítóját: „0x01030008” - változtassa meg, hogy így nézzen ki:

Más alkalmazásokban más dolgokat lehetne szerkeszteni és módosítani, és elegendő gyakorlással szinte bármit át tudsz témázni. De egyelőre elkészültünk az összes kódfittel ( végül!) .

Tehát most megnyithatja a szkriptet az Apk Multi Tool alkalmazásból, és 12-re kattintva fordíthatja le az alkalmazást. Ha valamilyen hiba jelenik meg, megpróbálhatja megnézni a hibanaplóban, hogy mi hibázott, de valószínűleg hibát vagy más hibát követett el a kódszerkesztés során.

Amikor az összeállítás befejeződött, nyomja meg a 2, majd a 13 gombot az alkalmazás újbóli aláírásához.

A részvényalkalmazás tartalmaz egy „Sablonok” nevű mappát - ezt a 7zip használatával be kell húznia az aláíratlan apk-be. Másolja az unsigned.apk fájlt az „Apk-apk-here-for-signing” mappába az Apk Multi Tool alkalmazásban. Most nyomja meg a 18 gombot a terminál parancsfájljában az adott mappában lévő alkalmazások kötegelt aláírásához. Ha kész, a szkript automatikusan kilép. Most betöltheti az .apk-t a készülékére!

6 perc olvasás