Jak a jak upravovat aplikace pro Android. Otevírání, úpravy a balení aplikací pro Android

To jsem zase já a můj návod na konvičky a konvičky na kávu s obrázky.

Tentokrát budu podrobně hovořit o výměně systémových součástí operačního systému Android na příkladu instalace úpravy stavového řádku.

Android je malý Linux. Při výměně souborů je nutné dodržovat řadu pravidel, aby se telefon neproměnil v cihlu, kterou lze oživit pouze úplným flashováním se ztrátou všech dat z vnitřní paměť zařízení. Vnitřní oddíly jsou na jednotkách flash naformátovány v jiném systému souborů než FAT32. Vlastnosti souboru mimo jiné ukládají oprávnění pro různé skupiny uživatelů (vlastník souboru, skupina vlastníků souboru, ostatní uživatelé). Při provozu s systémové soubory musí být uloženy, protože při bootu k nim systém prostě nemusí mít přístup a nespustí se normálně.
Začněme sadou nástrojů.

Budeme potřebovat:

  • Správce souborů, který ví, jak pracovat s právy root a oprávněními k souborům. Root Explorer je nejlepší (koupil jsi ho, že?)
  • Samotný upravený soubor, který chceme umístit na místo systémového (odkaz na konci článku).

Nyní používáme jednu z pohodlných funkcí Root Exploreru. Udělejme dlouhé poklepání požadovaný soubor pro vyvolání kontextové nabídky

A klikněte na položku " Zkomprimujte tento soubor" k uložení souboru do archivu zip na SD kartu. Po zazipování obdržíme následující zprávu:

Zmáčknout tlačítko " pobyt", abyste zůstali ve složce a udělali ještě jednu věc.

Nyní je vše připraveno k nahrazení souboru.
O přístupových právech ke každému souboru jsem již mluvil. Chcete-li je znovu vytvořit v novém souboru, musíte je nejprve prohlédnout ze starého. Jsou reprezentovány řadou znaků "rwxrwxrwx". 1. triáda - práva vlastníka, 2. - skupiny vlastníků, 3. - všichni ostatní uživatelé. Náš soubor má oprávnění "rw-r--r--".

Nyní přejděte na kartu SD, najděte tam upravený soubor a vyberte položku " kopírovat", ale s výběrem složky "/system/app" nespěcháme hned, protože tím okamžitě poškodíme systém. Místo toho soubor zkopírujeme do speciální složky pro dočasné soubory "/data/local/tmp " k převedení souboru do podoby, která bude mít systém.
Nejprve zavolejte kontextovou nabídku souboru a vyberte položku " Přejmenovat" a zadejte název souboru " SystemUI.apk". Je to tak, protože na Linuxu záleží na velikosti písmen v názvu, tj. " systemui.apk" a " SystemUI.apk" Jsou různé soubory.
Dále je potřeba změnit oprávnění k souboru, protože nyní jsou téměř jistě nastavena špatně. Chcete-li to provést, znovu vyvolejte kontextovou nabídku souboru dlouhým klepnutím a vyberte položku " Oprávnění". Pro naši hodnotu "rw-r--r--" by měly být příznaky nastaveny takto:

Lis " OK" a znovu vyvolejte kontextovou nabídku. Nyní musíme změnit vlastníka a skupinu této aplikace. Chcete-li to provést, vyberte položku " Změnit vlastníka". Zobrazí se okno s informacemi o aktuálním vlastníkovi souboru.
Zde je nutné udělat malou odbočku.
Ve složce "/system/app " jsou všechny soubory vlastněny uživatelem "root" (uid=0) a skupinou "root" (gid=0) a ve složce "/system/framework" uživatelem "system " (gid=1000) vlastní a skupina "systém" (gid=1000).
Na základě výše uvedeného jsme stanovili požadované hodnoty a stiskněte " OK".
A potřetí zavoláme kontextové menu pro soubor a vybereme položku " kopírovat" a v dialogovém okně kopírování přejděte do složky " / system / app". Nyní odvážně klikněte na " vložit“ a čtěte pozorně.
Téměř okamžitě systém oznámí, že proces stavového řádku náhle skončil a nabídne jeho spuštění. Všechny pokusy selžou. Mezi výskytem oken musíte mít čas na provedení řady akcí. Před stisknutím tlačítka je třeba vyvolat menu pro vypnutí zařízení, objeví se pod varováním. Nyní musíte položit prst přibližně na levou stranu tlačítka. Nyní musíte velmi rychle třikrát kliknout prstem, abyste měli čas zavřít varování, vybrat položku vypnutí a potvrdit své záměry.
Nyní čekáme, až se telefon vypne, restartuje a vychutná si výsledek nebo si ho neužije a bude hledat chyby.

Editace systémové aplikace Android se nejčastěji provádí, když uživatel chytrého telefonu, tabletu nebo jiného zařízení tímto ovládá operační systém, přestává uspokojovat proud vzhled programy nainstalované v zařízení výrobcem nebo prodejcem. Dalším důvodem může být potřeba provést nejen změny týkající se grafický design Android aplikací, ale také ovlivnění umístění různých prvků a výkonu základních funkcí.

Aby bylo možné provést změny v kódu, jsou vyžadovány základní znalosti programování v téměř jakémkoli jazyce (nejlépe Java a C ++). K nahrazení grafiky postačí přímé ruce a schopnost pracovat v grafickém editoru.

V první řadě byste se měli rozhodnout, zda potřebujete pouze vyměnit grafiku v aplikacích pro Android nebo zda potřebujete změnit uspořádání prvků v systému a provést hlubší změny v kódu. Od toho se odvíjí další kroky, které zahrnují buď práci s aplikací jako archivem, popř kompletní demontáž a editaci.

Změna grafiky v aplikacích systému Android

K jednoduché výměně nebo úpravě původní grafiky (změna barvy tlačítek, překreslení obrázků atd.) stačí mít standardní archivátor WinRAR. Zároveň musí mít uživatel na zařízení práva „root“ (podobně jako účet správce na Windows) a je také žádoucí mít alternativní obnovu (CWM) a root explorer (pro přístup k souborovému systému Android přímo v samotném zařízení).

Nejprve je potřeba v zařízení povolit ladění USB, poté jej připojit k počítači pomocí USB kabelu a nainstalovat potřebné ovladače. Obvykle se nacházejí na virtuální disk který se objeví po připojení k počítači.

Pak je také potřeba stáhnout si na internetu ADB plugin pro správce souborů. Tento plugin umožňuje vidět celý systém Android jako propojenou jednotku se složkami. Všechny systémové aplikace jsou umístěny v /system/app a /system/framework. Po nalezení požadované aplikace ji jednoduše zkopírujte do počítače. Pokud plugin není nainstalován, můžete pomocí root exploreru zkopírovat aplikaci s příponou apk na vyměnitelnou SD kartu a poté z ní do počítače.

Po zkopírování požadovanou aplikaci můžete začít upravovat grafiku. Mimochodem, všechny obrázky v aplikacích pro Android jsou uloženy v formát png, kterou snadno otevře jakýkoli grafický editor. Když otevřete soubor aplikace pomocí WinRAR, můžete vidět řadu složek. Nás bude zajímat pouze složka res, uvnitř které je zase spousta různé složky. Z nich jsou potřeba pouze ty, které mají v názvu slovo „drawable“.

Nyní si připomeňme typ našeho zařízení a jeho rozlišení obrazovky. Pokud se jedná o smartphone, a rozlišení 240x320, pak nás budou zajímat především vytahovací a vytahovací-ldpi složky. Je-li rozlišení 320x480 - vykreslitelné a vykreslitelné-mdpi složky, v tomto pořadí, a pro rozlišení 480x800 - vykreslitelné a vykreslitelné-hdpi složky. Kromě nich jsou zde většinou i složky se slovem "land" v názvu - jedná se o grafiku pro režim na výšku, tzn. když je zařízení nakloněno.

Pokud máte v rukou tablet, pak nás budou zajímat pouze vykreslitelné a vykreslitelné-mdpi složky při jakémkoli rozlišení obrazovky.

Zkopírováním vybraných složek do počítače můžete původní obrázky nahradit nebo přebarvit na požadované a oku lahodící. Zvláštní pozornost byste měli věnovat obrázkům s rozlišením 9.png. Faktem je, že po obvodu takového obrázku je speciální rámeček široký jeden pixel se speciálními značkami, jejichž narušení integrity povede k selhání aplikace. Proto je třeba při úpravách takových souborů dbát zvýšené opatrnosti.

Po úpravě složky je potřeba ji nahrát zpět do archivu, což je samotná aplikace s příponou apk. V tomto případě je nutné ve WinRARu vybrat možnost „bez komprese“.

Opravená aplikace se stáhne zpět do zařízení buď pomocí root exploreru (nejprve se soubor zkopíruje na SD kartu a z ní do zařízení), nebo po ukončení obnovy - ihned z počítače do / system / app popř. / system / framework složka . Dále musíte nastavit oprávnění souboru pomocí příslušných možností v kořenovém průzkumníku nebo v pluginu ADB. Musí být ve formátu 644. Po restartu zařízení můžete vidět výsledek aktualizované aplikace.

Editace zdrojového kódu systémových aplikací

Trochu více úsilí je potřeba k úpravě zdrojového kódu systémových aplikací. Chcete-li aplikaci rozebrat a sestavit po provedení změn v ní, budete muset provést několik následujících kroků.

1) Nainstalujte potřebný softwarový balíček do počítače v jejich nejnovější verze: Java SE Runtime Environment a Android Windows SDK(programy pro práci s aplikacemi a jejich komponentami), APKtool nebo APKManager nebo Firmware_tool (jeden ze tří programů pro rozebírání a dekompilaci systémových aplikací), editor NotePad ++ (pro provádění změn ve zdrojovém kódu aplikací systému Android).

2) Povolte v zařízení ladění USB, připojte jej k počítači pomocí USB kabelu, nainstalujte potřebné ovladače pro práci se zařízením.

3) Pomocí jednoho z výše uvedených programů pro práci s kódem aplikace je třeba extrahovat složku / systém / framework (zcela) z telefonu do příslušné složky programu a systémových aplikací ze složky / system / app. Například u programu Firmware_tool je třeba soubory z telefonu zkopírovat do složky C: Firmwaretoolfw_project1_source2_system.img_unpacked v příslušných podsložkách (aplikace do složky app, soubory z frameworku do složky frameworku). Při používání tohoto i jiných programů si nezapomeňte přečíst pokyny k nim.

4) Nainstalujte "referenční framework", tzn. soubor pravidel, podle kterých se bude provádět dekompilace (tj. rozebrání kódu) a kompilace (tj. sestavení kódu) aplikací.

Tím je příprava na práci se systémovými aplikacemi hotová.

Stažení aplikací ze zařízení a jejich zpětné načtení se provádí obdobně jako v části „Změna grafiky v aplikacích systému Android“.

Úprava kódu aplikace pro Android se obvykle provádí pomocí editoru NotePad ++ – jednoho z nejpohodlnějších textových editorů, který má možnost zvýraznit syntaxi zvoleného programovacího jazyka. Zpravidla při úpravách můžete grafiku měnit i za pochodu pomocí zvoleného grafického editoru.

Po dokončení úprav se upravená aplikace nahraje zpět do zařízení a samotné zařízení se musí restartovat. Pokročilejší editory pro ladění aplikací před jejich stažením do zařízení používají různé emulátory, například Eclipse od Google.

Programy pro platformu Android jsou jediným souborem s příponou apk, což je velmi pohodlné. Ve skutečnosti instalace jakéhokoli programu do smartphonu nebo tabletu přichází na řadu snadné kopírování do vašeho gadgetu. Co je soubor apk a jak můžete vidět, co je uvnitř?

Co je soubor APK?

Zkratka APK znamená Android Package Kit, spustitelný balíček souborů pro aplikace pro Android. Toto je archiv obsahující zkompilované a připravené kódy a další zdroje. apk soubory jsou uloženy na internetových stránkách jako Google Play, odkud si je můžete stáhnout a nainstalovat do svého gadgetu. Nejsou šifrované.

Jeho struktura je vývojářem připravena pro běh v prostředí virtuální stroj Dalvik nebo Art. Tyto stroje jsou zabudovány do operačního systému Android a spouštějí všechny aplikace, které jsou na vašem zařízení.

Samotný soubor apk je běžný archiv, který můžete otevřít v jakémkoli archivátoru Prostředí Windows. Například WinRAR, popř správce souborů, který otevírá archivy ZIP. Podívejme se, co je tam uvnitř.

  • Spustitelný soubor s příponou dex (název může být jakýkoli), což je pouze kód programu.
  • Vedle něj je resources.arsc, to je registr zdrojů, které by měl program používat. Toto je struktura XML.
  • AndroidManifest.xml je povinný soubor pro jakýkoli program, manifest, který o něm obsahuje hlavní informace. Zde lze zaznamenat například verzi programu, požadovanou verzi Androidu, informace o vývojáři, požadovaná rozlišení obrazovky a podobně.
  • Adresář res obsahuje interní prostředky, které program potřebuje ke spuštění. Zde mohou být všechny obrázky, ikony, ikony, mapy a tak dále.
  • Adresář lib je nativní knihovny pro práci programu, například kód C++. Pokud se nepoužívají knihovny, může tento adresář chybět.
  • Adresář aktiv je doplňkové zdroje pro aplikaci, někdy také může chybět. Které prostředky by měly být použity, je popsáno v souboru resources.arsc.
  • Adresář META-INF - metadata programu. Například soubor MANIFEST.MF, který může obsahovat cesty k datům a jejich kontrolní součty. Zde lze uložit soubory certifikátů RSA, informace o verzi Manifest a podobné informace o službách.

Přehled oblíbených editorů souborů APK

Jak již bylo zmíněno, apk soubor můžete rozbalit pomocí libovolného archivátoru ZIP. Poté si můžete prohlédnout tam uložené prostředky.

S obrázky nebudou vůbec žádné problémy, lze je otevřít v jakémkoli vhodném programu. Formát XML otevře jakékoli textový editor např. Notepad++. Pokud víte, jak tento formát funguje, lze je již upravovat. Ale pro kompilované spustitelné soubory budete muset použít speciální nástroje.

Editor Eclipse. Jedná se o plnohodnotné multiplatformní prostředí pro programátora. Můžete vyvíjet v jakýchkoli moderních jazycích a připravovat spustitelné soubory, včetně Androidu. Prostředí lze flexibilně konfigurovat pomocí četných pluginů.

Android SDK . Jak již název napovídá, jedná se o specializovaný vývojový nástroj mobilní programy jen pro android. S ním můžete snadno dekompilovat spustitelné soubory cizí aplikace nebo napsat vlastní od začátku. Liší se tím, že volitelně připojuje různé moduly pro ladění a testování vašeho kódu, pro testování programů na kompatibilitu s různými gadgety a tak dále.

APK downloader. Toto je plugin pro Prohlížeč Chrome, což velmi usnadňuje stahování apk programů z libovolných stránek a prohlížení jejich struktury. Chcete-li to provést, můžete dokonce být neregistrováni na Google Play.

Editor APK. Editor, který vám umožní pracovat se zdroji uvnitř balíčků apk. Není tak silný jako Eclipse, ale rozhoduje o nastavení jednoduché úkoly. Můžete například odstranit reklamní bloky z programu, rusifikujte rozhraní, nahraďte ikony nebo textury svými vlastními a mnoho dalšího.

Někdy některé aplikace na Androidu uživateli z nějakého důvodu nevyhovují. Příkladem je otravné reklamy. A stává se to tak - každý je v programu dobrý, ale pouze překlad v něm je buď pokřivený, nebo úplně chybí. Nebo například program je zkušební a získejte plná verze není žádná možnost. Jak změnit situaci?

Úvod

V tomto článku si povíme, jak rozebrat APK s aplikací, podíváme se na její vnitřní strukturu, rozebereme a dekompilujeme bajtkód a také se pokusíme provést několik změn v aplikacích, které nám mohou přinést tu či onu výhodu.

K tomu všemu budete potřebovat alespoň základní znalost jazyka Java, ve kterém jsou psány aplikace pro Android, a jazyka XML, který se v Androidu používá všude – od popisu samotné aplikace a jejích přístupových práv až po ukládání řetězců které se zobrazí na obrazovce. Budete také potřebovat schopnost pracovat se specializovaným konzolovým softwarem.

Jaký je tedy balíček APK, ve kterém je distribuován absolutně veškerý software pro Android?

Dekompilace aplikace

V článku jsme pracovali pouze s rozebraným kódem aplikace, pokud však v velké aplikace provést vážnější změny, bude mnohem obtížnější porozumět malému kódu. Naštěstí můžeme dekompilovat kód dex do kódu Java, který, i když není původní a nelze jej zpětně zkompilovat, je mnohem snazší číst a pochopit logiku aplikace. K tomu potřebujeme dva nástroje:

  • dex2jar - překladač Dalvik bytecode do JVM bytecode, na jehož základě můžeme získat Java kód;
  • jd-gui je samotný dekompilátor, který vám umožňuje získat čitelný kód Java z bytecode JVM. Případně můžete použít Jad (www.varanecas.com/jad); ačkoli je poměrně starý, v některých případech generuje čitelnější kód než Jd-gui.

Měly by být použity takto. Nejprve spustíme dex2jar a jako argument uvedeme cestu k balíčku apk:

%dex2jar.sh mail.apk

V důsledku toho se balíček mail.jar Java objeví v aktuálním adresáři, který již lze otevřít v jd-gui pro zobrazení kódu Java.

Uspořádání APK balíčků a jejich získání

Balík aplikace pro Android, je ve skutečnosti běžný soubor ZIP, k jehož prohlížení obsahu a rozbalení nejsou potřeba žádné speciální nástroje. Stačí mít archivátor - 7zip pro Windows nebo rozbalit konzoli v Linuxu. Ale to je o obalu. Co je uvnitř? Uvnitř máme obecně následující strukturu:

  • META-INF/- obsahuje digitální certifikát aplikace, osvědčující jejího tvůrce a kontrolní součty souborů balíčků;
  • res/ - různé zdroje, které aplikace používá při své práci, jako jsou obrázky, deklarativní popis rozhraní a další data;
  • AndroidManifest.xml- popis aplikace. To zahrnuje například seznam požadovaných oprávnění verze pro Android a požadované rozlišení obrazovky;
  • třídy.dex- zkompilovaný bytekód aplikace pro virtuální stroj Dalvik;
  • zdroje.arsc- také zdroje, ale jiného druhu - zejména řetězce (ano, tento soubor lze použít pro rusifikaci!).

Uvedené soubory a adresáře jsou, pokud ne ve všech, pak možná v naprosté většině souborů APK. Existuje však několik méně běžných souborů/adresářů, které stojí za zmínku:

  • aktiva- analogie zdrojů. Hlavní rozdíl je v tom, že pro přístup ke zdroji potřebujete znát jeho identifikátor, zatímco seznam aktiv lze získat dynamicky pomocí metody AssetManager.list() v kódu aplikace;
  • lib- nativní linuxové knihovny napsané s pomocí NDK (Native Development Kit).

Tento adresář používají výrobci her, aby tam umístili svůj herní engine napsaný v C/C++, stejně jako tvůrci vysoce výkonných aplikací (např. Google Chrome). Rozuměl zařízení. Ale jak získat soubor balíčku aplikace, která vás zajímá? Vzhledem k tomu, že není možné získat soubory APK ze zařízení bez rootování (jsou v adresáři / data / app) a rootování není vždy vhodné, existují alespoň tři způsoby, jak dostat soubor aplikace do počítače:

  • rozšíření APK Downloader pro Chrome;
  • Aplikace Real APK Leecher;
  • různé hostování souborů a warezniki.

Který z nich použít, je věcí vkusu; raději používáme jednotlivé aplikace, proto popíšeme použití Real APK Leecher, zejména proto, že je napsán v Javě, a proto bude fungovat i ve Windows, dokonce i v nixu.

Po spuštění programu je potřeba vyplnit tři pole: Email, Heslo a ID zařízení – a vybrat jazyk. První dva jsou e-mail a heslo vašeho účtu Google, který v zařízení používáte. Třetí je ID zařízení a můžete jej získat vytočením kódu na číselníku # #8255## a poté najděte řádek ID zařízení. Při vyplňování je potřeba zadat pouze ID bez předpony android-.

Po vyplnění a uložení se často objeví hláška „Chyba při připojování k serveru“. S Google Play to nemá nic společného, ​​takže to klidně ignorujte a hledejte balíčky, které vás zajímají.

Revize a úprava

Řekněme, že jste našli balíček, který vás zajímá, stáhli jste si ho, rozbalili... a když jste se pokusili zobrazit nějaký soubor XML, s překvapením jste zjistili, že soubor není textový soubor. Jak jej dekompilovat a jak s balíčky obecně pracovat? Je opravdu nutné instalovat SDK? Ne, sadu SDK instalovat nemusíte. Ve skutečnosti jsou pro všechny kroky k rozbalení, úpravě a zabalení balíčků APK potřeba následující nástroje:

  • ZIP archivátor pro vybalování a balení;
  • malý- assembler/disassembler bytecode virtuálního stroje Dalvik (code.google.com/p/smali);
  • aapt- nástroj pro balení zdrojů (ve výchozím nastavení jsou zdroje uloženy v binární formě pro optimalizaci výkonu aplikace). Je součástí sady Android SDK, ale lze ji získat samostatně;
  • Signatář- nástroj pro digitální podpis upravený balíček (bit.ly/Rmrv4M).

Všechny tyto nástroje můžete používat samostatně, ale je to nepohodlné, proto je lepší použít software vyšší úrovně, který je postaven na jejich základě. Pokud používáte Linux nebo Mac OS X, existuje nástroj s názvem apktool . Umožňuje rozbalit prostředky do jejich původní podoby (včetně binárních souborů XML a arsc), znovu sestavit balíček s upravenými prostředky, ale neumí balíčky podepisovat, takže budete muset spustit utilitu signer ručně. Přestože je utilita napsána v Javě, její instalace je spíše nestandardní. Nejprve musíte získat samotný soubor jar:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

Pokud pracujete na Windows, pak je tu pro něj výborný nástroj s názvem Virtuous Ten Studio , který také všechny tyto nástroje kumuluje (včetně samotného apktool), ale místo rozhraní CLI poskytuje uživateli intuitivní GUI, se kterým můžete provádět operace s rozbalením, rozebráním a dekompilací několika kliknutími. Tento nástroj je Donation-ware, tedy okna se občas objeví s návrhem na získání licence, ale to se nakonec dá tolerovat. Nemá smysl to popisovat, protože rozhraní pochopíte za pár minut. Ale apktool, kvůli jeho konzolové povaze, by měl být probrán podrobněji.


Zvažte možnosti apktool. Stručně řečeno, existují tři hlavní příkazy: d (decode), b (build) a if (install framework). Pokud je u prvních dvou příkazů vše jasné, co pak dělá třetí, podmíněný operátor? Rozbalí zadaný rámec uživatelského rozhraní, který je potřeba, když pitváte systémový balíček.

Zvažte nejzajímavější možnosti prvního příkazu:

  • -s- nerozebírejte soubory dex;
  • -r- nerozbalujte zdroje;
  • -b- nevkládejte informace o ladění do výsledků rozebrání souboru dex;
  • --frame-path- místo vestavěného apktool použijte určený rámec uživatelského rozhraní. Nyní zvažte několik možností pro příkaz b:
  • -F- nucená montáž bez kontroly změn;
  • -A- zadejte cestu k aapt (nástroj pro vytváření archivu APK), pokud jej z nějakého důvodu chcete použít z jiného zdroje.

Použití apktool je velmi jednoduché, vše, co musíte udělat, je zadat jeden z příkazů a cestu k APK, například:

$ apktool d mail.apk

Poté se všechny extrahované a rozložené soubory balíčků objeví v adresáři pošty.

Příprava. Zakázat reklamy

Teorie je to samozřejmě dobrá, ale proč je potřeba, když nevíme, co s rozbaleným balíkem? Zkusme aplikovat teorii ve svůj vlastní prospěch, totiž upravíme nějaký software tak, aby nám nezobrazoval reklamy. Nechť je to například Virtual Torch – virtuální pochodeň. Pro nás je tento software perfektní, protože je plný otravných reklam a je dostatečně jednoduchý, aby se neztratil v divočině kódu.


Pomocí jedné z výše uvedených metod si tedy stáhněte aplikaci z trhu. Pokud se rozhodnete používat Virtuous Ten Studio, stačí otevřít soubor APK v aplikaci a rozbalit jej, pro který vytvořte projekt (Soubor -> Nový projekt), poté v kontextová nabídka projektu, zvolte Importovat soubor. Pokud vaše volba padla na apktool, stačí provést jeden příkaz:

$ apktool d com.kauf.particle.virtualtorch.apk

Poté se v adresáři com.kauf.particle.virtualtorch objeví strom souborů, podobný tomu popsanému v předchozí části, ale s dalším malým adresářem namísto souborů dex a souboru apktool.yml. První obsahuje rozložený kód spustitelného dex souboru aplikace, druhý obsahuje servisní informace, které apktool potřebuje k sestavení balíčku zpět.

První místo, kam se musíme podívat, je samozřejmě AndroidManifest.xml. A zde se okamžitě setkáváme s následujícím řádkem:

Je snadné uhodnout, že je zodpovědná za udělení oprávnění aplikace používat internetové připojení. Ve skutečnosti, pokud se chceme pouze zbavit reklam, bude nám s největší pravděpodobností stačit, když aplikaci zakážeme na internetu. Zkusme to udělat. Smažte zadaný řádek a zkuste zkompilovat software pomocí apktool:

$ apktool b com.kauf.particle.virtualtorch

Výsledný soubor APK se objeví v adresáři com.kauf.particle.virtualtorch/build/. Nebude jej však možné nainstalovat, protože nemá digitální podpis a kontrolní součty soubory (jen to nemá adresář META-INF/). Balíček musíme podepsat pomocí nástroje apk-signer. Spuštěno. Rozhraní se skládá ze dvou záložek – na první (Key Generator) vytváříme klíče, na druhé (APK Signer) se podepisujeme. Chcete-li vytvořit náš soukromý klíč, vyplňte následující pole:

  • Cílový soubor- výstupní soubor úložiště klíčů; obvykle ukládá jeden pár klíčů;
  • Heslo A Potvrdit- heslo pro ukládání;
  • Přezdívka- název klíče v úložišti;
  • Aliasové heslo A Potvrdit- heslo tajného klíče;
  • Platnost- Doba platnosti (v letech). Výchozí hodnota je optimální.

Zbývající pole jsou obecně nepovinná – musíte však vyplnit alespoň jedno.


VAROVÁNÍ

Chcete-li podepsat aplikaci pomocí apk-signer, musíte nainstalovat Android SDK a zadat úplnou cestu k ní v nastavení aplikace.

Veškeré informace jsou poskytovány pouze pro informační účely. Redakce ani autor nenesou odpovědnost za případné škody způsobené materiály tohoto článku.

Nyní můžete podepsat APK pomocí tohoto klíče. Na záložce APK Signer vyberte nově vygenerovaný soubor, zadejte heslo, alias klíče a heslo k němu, poté najděte soubor APK a odvážně klikněte na tlačítko „Podepsat“. Pokud vše proběhne v pořádku, bude balíček podepsán.

INFO

Vzhledem k tomu, že jsme balíček podepsali vlastním klíčem, bude v konfliktu s původní aplikací, což znamená, že když se pokusíme aktualizovat software prostřednictvím marketu, zobrazí se chyba.

Digitální podpis potřebuje pouze software třetích stran, takže pokud upravujete systémové aplikace, které jsou nainstalovány, zkopírováním do adresáře /system/app/, nemusíte je podepisovat.

Poté balíček pustíme do smartphonu, nainstalujeme a spustíme. Voila, reklama je pryč! Místo toho se ale objevila hláška, že nemáme internet nebo nemáme příslušná oprávnění. Teoreticky by to mohlo stačit, ale zpráva vypadá otravně a upřímně řečeno jsme měli štěstí na hloupou aplikaci. Dobře napsaný software s největší pravděpodobností objasní své přihlašovací údaje nebo zkontroluje připojení k internetu a jinak jednoduše odmítne spustit. Jak být v tomto případě? Kód samozřejmě upravte.

Typicky autoři aplikací vytvářejí speciální třídy pro zobrazování reklam a volají metody těchto tříd během spouštění aplikace nebo některé z jejích „aktivit“ (zjednodušeně řečeno obrazovky aplikace). Zkusme najít tyto třídy. Jdeme do adresáře smali, pak com (v org je pouze otevřená grafická knihovna cocos2d), pak kauf (přesně tam, protože toto je jméno vývojáře a je tam celý jeho kód) - a tady to je, marketingový adresář. Uvnitř najdeme hromadu souborů s příponou smali. Jsou to třídy a nejpozoruhodnější z nich je třída Ad.smali, podle jejíhož názvu lze snadno uhodnout, že zobrazuje reklamy.

Mohli bychom změnit logiku jeho práce, ale mnohem jednodušší by bylo hloupě odstranit volání kterékoli z jeho metod ze samotné aplikace. Proto opustíme marketingový adresář a přejdeme do sousedního adresáře částic a poté do virtualtorch. Zvláštní pozornost si zde zaslouží soubor MainActivity.smali. Toto je standardní třída Androidu, která je vygenerována sadou Android SDK a nastavena jako vstupní bod do aplikace (analogicky k hlavní funkci v C). Otevřete soubor pro úpravy.

Uvnitř je malý kód (místní assembler). Vzhledem ke své nízkoúrovňové povaze je spíše nepřehledná a obtížně čitelná, takže ji nebudeme studovat, ale jednoduše najdeme v kódu všechny zmínky o třídě Ad a okomentujeme je. Ve vyhledávání zadáme řetězec "Ad" a dostáváme se na řádek 25:

Field private ad:Lcom/kauf/marketing/Ad;

Zde se vytvoří polní reklama pro uložení objektu třídy Ad. Komentujeme nastavením znaku ### před řádek. Pokračujeme v hledání. Řádek 423:

New-instance v3, Lcom/kauf/marketing/Ad;

Zde je objekt vytvořen. Komentujeme. Pokračujeme v hledání a nacházíme v řádcích 433, 435, 466, 468, 738, 740, 800 a 802 volání metod třídy Ad. Komentujeme. Vypadá to, že je to ono. šetříme. Nyní je třeba balíček sestavit zpět a zkontrolovat jeho výkon a přítomnost reklamy. Pro čistotu experimentu vrátíme řádek odstraněný z AndroidManifest.xml, vyzvedneme balíček, podepíšeme jej a nainstalujeme.

Naše morče. Viditelná reklama

Op-pa! Reklama zmizela pouze za běhu aplikace, ale zůstala v hlavní nabídce, kterou vidíme při spuštění softwaru. Takže počkat, ale vstupním bodem je třída MainActivity a reklama během běhu aplikace zmizela, ale zůstala v hlavním menu, takže vstupní bod je jiný? Abychom odhalili skutečný vstupní bod, znovu otevřeme soubor AndroidManifest.xml. A ano, obsahuje následující řádky:

Říkají nám (a co je důležitější Android), že aktivita s názvem Start by měla být spuštěna v reakci na vygenerování záměru (události) android.intent.action.MAIN z kategorie android.intent.category.LAUNCHER. Tato událost se generuje, když klepnete na ikonu aplikace ve spouštěči, takže definuje vstupní bod, konkrétně třídu Start. S největší pravděpodobností programátor nejprve napsal aplikaci bez hlavního menu, jehož vstupním bodem byla standardní třída MainActivity, a poté přidal nové okno (aktivitu) obsahující menu a popsané ve třídě Start a ručně z něj udělal záznam. směřovat.

Otevřeme soubor Start.smali a opět hledáme řádek "Ad", najdeme v řádcích 153 a 155 zmínku o třídě FirstAd. Je také ve zdrojovém kódu a soudě podle názvu má na starosti zobrazování reklam na hlavní obrazovce. Podíváme se dále, je zde vytvoření instance třídy FirstAd a záměru, podle kontextu souvisejícího s touto instancí, a dále popisek cond_10, jehož podmíněný přechod se provede přesně před vytvořením instance třídy. :

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

S největší pravděpodobností program nějak náhodně vypočítá, zda je nutné zobrazovat reklamy na hlavní obrazovce, a pokud ne, skočí přímo na cond_10. Dobře, zjednodušíme její úkol a nahradíme podmíněný přechod nepodmíněným přechodem:

#if-ne p1, v0, :cond_10 goto:cond_10

V kódu již nejsou žádné zmínky o FirstAd, takže soubor zavřeme a znovu sestavíme naši virtuální pochodeň pomocí apktool. Zkopírujte do smartphonu, nainstalujte, spusťte. Voila, všechny reklamy jsou pryč, gratulujeme nám všem.

Výsledek

Tento článek je pouze stručným úvodem do metod otevírání a úprav aplikací pro Android. Mnoho problémů zůstalo v zákulisí, jako je odstranění ochrany, analýza zmateného kódu, překlad a nahrazení prostředků aplikací a také úpravy aplikací napsaných pomocí pomocí androidu NDK. Mít základní znalosti, porozumět tomu všemu je však jen otázkou času.

Apk editor pro, který si můžete stáhnout pro Android na našem webu, vám umožní hacknout / změnit obsah souborů libovolné aplikace pro mobilní zařízení a upravte si jej podle svých představ.

Zvláštnosti

Program je profesionální nástroj, který se v rukou pokročilých uživatelů může stát mocným nástrojem pro úpravu aplikací pro Android. Funkčnost je prakticky stejná software pro osobní počítače.

Co tato utilita umí?

  1. Změňte (přeložte) názvy jiných aplikací.
  2. Změňte rozvržení architektury, barvy, vzory nastavení grafiky(například velikost ikony).
  3. Změna zvukového designu, mediálních souborů.
  4. Odebrat reklamy.
  5. Obejít placené blokování obsahu.
  6. Přesuňte aplikaci z vnitřní paměti zařízení na SD kartu.
  7. Změna rozlišení a další.

Abyste pochopili, jak nástroj používat, musíte si stáhnout apk editor pro a přejít do nabídky. Pak si vyberte buď nainstalovaná aplikace na Androidu nebo jeho apk souboru. Poté se ve výchozím nastavení otevřou data, která může uživatel změnit:

  • editace zdrojů;
  • výměna souboru;
  • obecné úpravy;
  • editaci dat.

Program vás vyzve k instalaci upravené verze. Nefunguje to ve všech případech, takže stará verze musí být odstraněn ručně a nainstalován nový. Po odinstalaci byste měli mezi programy na Androidu vybrat složku editoru apk (pro pohodlí můžete použít ES Explorer) a najít upravený soubor aplikace a nainstalovat jej do zařízení.

Program je jiný uživatelsky přívětivé rozhraní. Navigace je celkem jednoduchá, ale uživatel potřebuje mít základní znalost angličtiny, aby to správně zvládl.

Výhody a nevýhody

  1. Program nabízí uživateli široké možnosti přizpůsobení aplikací.
  2. V menu je sekce Nápověda, která jednoduše a podrobně popisuje velké množství funkcí programu editoru. Uživatelé, kteří mají do programování daleko, proto nebudou muset hledat příklady a pokyny k úpravám na zdrojích třetích stran.
  3. Program si můžete zdarma stáhnout z našich webových stránek.

Použití tohoto nástroje vyžaduje určité dovednosti a znalosti. V rukou nezkušeného uživatele mohou úpravy vést k porušení integrity souborový systém, což nakonec způsobí pád aplikací. V nabídce v položce Nápověda jsou příklady převodů s obrázky a tipy pro správné použití apk editoru pro pro Android. Proto, pokud se chcete zabývat tímto programem, postupujte podle pokynů.

Redaktor - dost užitečný nástroj pro ty, kteří se potýkají s nepohodlným aplikačním rozhraním (nedostatek ruského jazyka, neustálá reklama, bannery atd.). Pokud jste tento program již použili, podělte se o své dojmy níže v komentářích.