APK ekstraktorius: ištraukite APK iš „Android“ įdiegtos programos. Kaip išgauti APK failus iš „Android“ įrenginio Kaip išgauti failą „Android“.

Daugelis žinote, kad Android aplikacijos diegimo procesas yra paprastas – atidarote Google Play prekyvietę, randate norimą programą ar žaidimą, paspaudžiate didelį mygtuką "Įdiegti" ir viskas. Tačiau „Android“ programos yra paketų, kurie taip pat įdiegiami rankiniu būdu, pavidalu. Šie paketai turi plėtinį „.apk“ ir jų praktinis panaudojimas yra daug. Pavyzdžiui, galite lengvai sukurti atsargines programų, kurios taip pat saugomos kaip APK failai, atsargines kopijas. Tai netgi padės, jei staiga programa ar žaidimas dings iš „Google Play“, kaip nutiko naudojant „Flappy Bird“. Jei pageidauja, bet kas gali atsisiųsti programą ir įdiegti ją savo išmaniajame telefone. Taip pat patogu įdiegti apk failus įrenginiuose, kuriuos dirbtinai riboja gamintojas (Amazon Kindle Fire arba Nokia X).

Tačiau kaip galite išskleisti įdiegtą apk failą? Galite lengvai rasti programą internete, atsisiųsti ir įdiegti ją savo Android įrenginyje. Šis metodas puikiai veikia su nemokamomis programėlėmis. Mokamos yra apsaugotos nuo atsisiuntimo dėl akivaizdžių priežasčių. Be to, programos, kurios įdiegus atsisiunčia papildomus failus, turėtų veikti gerai.

  • 1. „Android“ įrenginyje „Google Play“ ir atsisiųskite programą, kurią norite išskleisti.
  • 2. Atsisiųskite „APK Extractor“ programą. Ši programa yra nemokama ir paprasta naudoti.
  • 3. Atidarykite „APK Extractor“ programą ir pasirinkite bet kurią programą, kurią norite išskleisti. Galite pažymėti kelias programas vienu metu. APK failai bus išsaugoti įrenginio atminties aplanke ExtractedApks.

Išskleistus APK failus dabar galima nukopijuoti į kitą Android išmanųjį telefoną ar planšetinį kompiuterį ir įdiegti naudojant bet kurią failų tvarkyklę, pvz., Astro arba ES File Explorer.

APK failas, su kuriuo mes įdiegiame žaidimus, yra paketinis failas ir, jei reikia, jį galima išskleisti. Tai labai patogu, nes jau įdiegtas programas galima išskleisti į vieną failą.

Dažnai pasitaiko situacijų, kai, pavyzdžiui, baigėte žaidimą ir ištrynėte jį iš savo mobiliojo įrenginio. Tačiau po kurio laiko jie nusprendė vėl žaisti. Kad nepradėtų praėjimo nuo nulio, pakanka nuimti ARC ir panaudoti, kai reikia. Visas procesas bus atkurtas.

APK ištraukimas bus labai naudingas, kai jo prireiks per „Bluetooth“ draugui. Norėdami neįdiegti specialios programos, galite naudoti toliau pateiktą metodą.

ARC išgaunamas iš įdiegtų programų naudojant specialią programinę įrangą. Tam puikiai tinka patogi failų tvarkyklė. Astro failų tvarkyklė.

Failų tvarkyklė padės tvarkyti įrenginyje esančių programų atsargines kopijas, peržiūrėti vaizdo įrašus ir vaizdus bei užduočių tvarkyklę. Norėdami lengvai pašalinti diegimo ARC, jums reikės:

1. Kad Astro failų tvarkyklė veiktų, turėsite ją įdiegti savo įrenginyje, o tam reikės ieškoti Google Play. Baigę diegimo procesą, galite pradėti dirbti.

2. Paleiskite Astro File Manager. Ekrane atsidarys langas, kuriame bus nurodyti galimi atminties įrenginiai ir paslaugų, kuriose galite užsiregistruoti arba prisijungti, sąrašas.

3. Braukite kairėn, kad atidarytumėte pagrindinį programos meniu. Apatiniame kairiajame kampe spustelėkite įrankių piktogramą ir eikite į „Application Manager“.

4. Pamatysite sąrašą su visomis įdiegtomis programomis ir žaidimais.

5. Norėdami išimti ARK, paspauskite specialų mygtuką, esantį viršutiniame dešiniajame kampe. Iš pateiktų parinkčių pasirinkite ATSARGINĖ KOPIJA. Aiškumo dėlei šią operaciją atlieku su .

Dabar jums tereikia palaukti, kol procesas bus baigtas. Visi gauti failai bus aplanke Atsarginės kopijos – programos. Jie įdiegiami taip pat paprastai, kaip įprasti APK failai.

Daugelis „Android“ naudotojų žino, kad naudodami „Titanium Backup“ programą galite išgauti programą iš įrenginio kaip apk failą. Šiandien apžvelgsime metodą, kuriuo galite ištraukti programos apk failą tiesiai iš „Google Play“ parduotuvės.

Šio metodo pranašumas yra tas, kad nereikia iš pradžių įdiegti programos įrenginyje. Deja, šis metodas tinka tik nemokamoms programoms. Taigi, ko mums reikia:

1. Google Chrome

Sukurkite antrą „Google Chrome“ spartųjį klavišą darbalaukyje.

Dešiniuoju pelės mygtuku spustelėkite nuorodą ir pasirinkite „Ypatybės“. Lauke „Objektas“ pridėkite šias komandas, atskirtas tarpu:

Ignoruoti sertifikato klaidas

Leisti-paleisti-nesaugus-turinys

Tai atrodys maždaug taip:

...\chrome.exe“ – ignoruoti sertifikato klaidas – leisti-vykdyti-nesaugus-turinys

Spustelėkite „Taikyti“ ir „Gerai“.

Po šios operacijos turite iš naujo paleisti naršyklę, uždarydami visus veikiančius programos egzempliorius.

2. Google paskyros pavadinimas ir įrenginio ID

Tiesą sakant, mes imituosime programos atsisiuntimą į įrenginį, todėl turite žinoti savo paskyros pavadinimą, tai yra, „Google“ pašto dėžutės pavadinimą, taip pat „Android“ įrenginio identifikavimo numerį.

Su dėžute viskas aišku, bet norėdami sužinoti įrenginio ID, atidarykite rinkiklį išmaniajame telefone ir surinkite *#*#8255#*#*

Pasirodžiusiame ekrane turite rasti eilutę „Įrenginio ID:“.

ID numeris yra raidžių ir skaičių derinys po „android-“. Pavyzdžiui, jei eilutėje matote „Įrenginio ID: android-1122aa33bb445577“, tada identifikatorius yra derinys „1122aa33bb445577“. Užsirašykite šį derinį.

Jei dėl kokių nors priežasčių nepavyko sužinoti savo įrenginio ID naudodami aukščiau pateiktą metodą, galite tiesiog atsisiųsti įrenginio ID programą iš „Google Play“ parduotuvės.

3. APK atsisiuntimo programa

Atsisiųskite naršyklės plėtinį APK Downloader.

Pasirodžiusiame lange įveskite mūsų „Google“ paskyros adresą, ty el. pašto adresą. Slaptažodis (taip, baisu), taip pat įrenginio ID. Po to spustelėkite „Prisijungti“.

Kitame lange pasirinkite savo šalį ir mobiliojo ryšio operatorių, tada spustelėkite „Išsaugoti nustatymus“. Tada turėtų pasirodyti langas, nurodantis, kad plėtinys buvo sėkmingai suaktyvintas.

4. Google Play parduotuvė

Dabar eikite į mūsų mėgstamą „Google Play“ parduotuvę ir pasirinkite bet kurią nemokamą programą. Dešinėje naršyklės adreso juostos pusėje atsiras būdinga žalia galvutė su rodykle.

Spustelėkite šią piktogramą ir programa bus sėkmingai atsiųsta į kompiuterį kaip apk failas. Iš esmės dabar žinome, kaip sukurti atskirus nemokamų programų paskirstymus.

Neįmanoma patikrinti absoliutaus APK Downloader plėtinio kūrėjo vientisumo, todėl įveskite paskyros informaciją rizikuodami ir rizikuodami. Be to, tokie veiksmai iš esmės pažeidžia „Google Play“ parduotuvės naudojimo taisykles.

Sveiki mūsų svetainės skaitytojai. Vieną dieną vienas iš lankytojų paprašė pagalbos; jam reikėjo išgauti APK failus iš „Android“ išmaniojo telefono. Todėl nusprendėme atsakyti į šį klausimą šiame straipsnyje. Naudodami šią operaciją galite sukurti atsargines visų įdiegtų programų, esančių išmaniajame telefone, planšetiniame kompiuteryje ar kitose programėlėse, kuriose veikia Android operacinė sistema, atsargines kopijas.

Kokiais atvejais kuriamos įdiegtų programų atsarginės kopijos?

Situacija viena. Turite atkurti gamyklinius telefono nustatymus, tačiau nėra interneto prieigos arba yra tik mobilioji prieiga. Nenorite vėl atsisiųsti programų iš „Google Play“, nes tai užtruks daug laiko. Būtent tokiais atvejais APK failus galima išgauti iš Android įrenginio arba .

Situacija antra. Turite įdiegtą įdomų žaidimą, kurio talpykla „sveria“ daug, o jūsų draugui jis patiko ir jis norėjo to paties žaislo, bet vėlgi, nėra prieigos prie interneto. Čia turėsite rezervuoti įdiegtą žaidimą. Instrukcijas, kaip tinkamai įdiegti žaidimus su talpykla, rasite čia.

Tokių situacijų yra daug.

Kaip išgauti APK failus iš „Android“ įrenginio?

Norėdami atlikti šią užduotį, mums reikės nemokamos ES Explorer programos, kurią galite rasti Google Play. Kodėl būtent šis dirigentas? Tai paprasta, tai puiki ir paprasta naudoti failų tvarkyklė ir jau turi integruotą programos atsarginių kopijų kūrimo funkciją. Naudodami šią funkciją galite išgauti norimus APK failus iš Android įrenginių.

1 būdas. Taigi, jūs įdiegėte „ES Explorer“, dabar paleiskite jį:

1 paveikslas

Norėdami tai padaryti, einame į programos meniu, paspauskite mygtuką, kurį nurodėme viršutiniame kairiajame įrenginio ekrano kampe. Išplėskite skyrių „Bibliotekos“ ir spustelėkite APP.

2 pav

Jei viską padarėte teisingai, prieš jus atsidarys langas su įdiegtomis vartotojo programomis. Tada pasirinkite programą, kurią norite išskleisti, ir paspauskite mygtuką Rezervas ekrano apačioje.


3 pav. 4 pav

Visos ištrauktos programos yra aplanke « telefono atmintis/atsarginės kopijos/programos“. Galbūt pastebėjote, kad 3 ir 4 paveiksluose kai kurie failai paryškinti raudonai arba žaliai, todėl štai: programos, kurių atsarginės kopijos anksčiau buvo sukurtos ir kurios yra aplanke, pažymėtos žalia spalva programėlės , o raudonai – programos, kurios taip pat buvo ištrauktos anksčiau, bet ištrintos iš aplanko programėlės (ištrinami tik išgauti failai, neįdiegti). Tai iš esmės viskas, ką reikia išgauti naudojant šį metodą.

5 pav

Dabar su šiais failais galite daryti ką tik norite: atsisiųskite juos į savo kompiuterį, nusiųskite draugui Bluetooth ryšiu arba el. paštu. Dar kartą priminsime, kad šis metodas sukuria atsargines kopijas tik toms programoms, kurias įdiegė vartotojas, bet ne sisteminių. Norėdami sukurti atsarginę sistemos programų kopiją, naudokite 2 metodą.

2 būdas. Paleidžiame tą patį „ES Explorer“. Ekrano viršuje yra atminties sekcijų pasirinkimas (6 pav.) arba eikite į meniu „Vietinė saugykla“ (7 pav.) ir pasirinkite elementą /Įrenginys .


6 pav. 7 pav

Toliau reikia eiti į sistema/programėlė . Čia pateikiamos visos įrenginyje įdiegtos programos: tiek naudotojas, tiek sistema. Tada ieškome reikiamo APK failo ir nukopijuojame jį į norimą aplanką. Taigi gausite paruoštą APK failą, kurį galėsite įdiegti kitose programėlėse.

Įspėjimas! Gali tekti naudoti abu metodus. Gali būti, kad kai kurie išgauti sistemos APK failai gali būti neįdiegti kituose „Android“ įrenginiuose dėl to, kad jie yra skirti konkrečiai programinei įrangai.

Tai viskas.

Tikimės, kad šis įrašas padėjo išspręsti problemą ir jums pavyko iš „Android“ įrenginio išgauti APK failus. Jei žinote kitų būdų rezervuoti programas ar turite panašių klausimų, rašykite mums.

Sekite naujienas, laukia dar daug įdomių dalykų.

Kartais kai kurios „Android“ programos tam tikru būdu netinka vartotojui. Pavyzdys – įkyri reklama. Taip pat atsitinka, kad programa tinka visiems, bet vertimas joje yra kreivas arba jo visai nėra. Arba, pavyzdžiui, programa yra bandomoji, bet nėra galimybės gauti pilnos versijos. Kaip pakeisti situaciją?

Įvadas

Šiame straipsnyje mes kalbėsime apie tai, kaip išardyti APK paketą su programa, pažvelgti į jo vidinę struktūrą, išardyti ir dekompiliuoti baito kodą, taip pat pabandysime atlikti keletą programų pakeitimų, kurie gali mums atnešti vienokios ar kitokios naudos.

Norėdami visa tai padaryti patys, jums reikės bent jau pagrindinių Java kalbos, kuria rašomos Android programos, ir XML kalbos, kuri naudojama visur Android – nuo ​​pačios programos aprašymo ir jos prieigos teisių iki eilučių saugojimo žinių. bus rodomas ekrane. Taip pat reikės mokėti naudotis specializuota konsolės programine įranga.

Taigi, kas yra APK paketas, kuriame platinama absoliučiai visa „Android“ programinė įranga?

Programos dekompiliavimas

Šiame straipsnyje mes dirbome tik su išardytu programos kodu, tačiau jei didelėse programose bus atlikti rimtesni pakeitimai, suprasti smali kodą bus daug sunkiau. Laimei, mes galime dekompiliuoti dex kodą į Java kodą, kuris, nors ir nėra originalus ir nesukompiliuotas atgal, yra daug lengviau skaitomas ir suprantamas programos logika. Norėdami tai padaryti, mums reikės dviejų įrankių:

  • dex2jar yra Dalvik baito kodo vertėjas į JVM baitinį kodą, kurio pagrindu galime gauti kodą Java kalba;
  • jd-gui yra pats dekompiliatorius, leidžiantis gauti skaitomą Java kodą iš JVM baito kodo. Kaip alternatyvą galite naudoti Jad (www.varaneckas.com/jad); Nors jis yra gana senas, kai kuriais atvejais jis sukuria skaitomesnį kodą nei Jd-gui.

Taip jie turėtų būti naudojami. Pirmiausia paleidžiame dex2jar, kaip argumentą nurodydami kelią į apk paketą:

% dex2jar.sh mail.apk

Dėl to Java paketas mail.jar atsiras dabartiniame kataloge, kurį jau galima atidaryti jd-gui, kad būtų galima peržiūrėti Java kodą.

APK paketų išdėstymas ir gavimas

„Android“ programos paketas iš esmės yra įprastas ZIP failas, kurio turiniui peržiūrėti ar išgauti nereikia jokių specialių įrankių. Pakanka turėti archyvatorių - 7zip Windows arba konsolės išpakavimas Linux. Bet tai apie įvyniojimą. Kas viduje? Apskritai viduje turime tokią struktūrą:

  • META-INF/- yra skaitmeninis programos sertifikatas, identifikuojantis jos kūrėją, ir paketo failų kontrolinės sumos;
  • res/ - įvairūs ištekliai, kuriuos programa naudoja savo darbe, pavyzdžiui, vaizdai, deklaratyvus sąsajos aprašymas, taip pat kiti duomenys;
  • AndroidManifest.xml- paraiškos aprašymas. Tai apima, pavyzdžiui, reikalingų leidimų sąrašą, reikiamą Android versiją ir reikiamą ekrano skiriamąją gebą;
  • klases.dex- sukompiliuotas programos baito kodas Dalvik virtualiajai mašinai;
  • ištekliai.arsc- taip pat ištekliai, bet kitokio pobūdžio - ypač eilutės (taip, šis failas gali būti naudojamas rusifikacijai!).

Išvardyti failai ir katalogai yra, jei ne visuose, tai galbūt daugumoje APK. Tačiau verta paminėti dar kelis ne tokius įprastus failus / katalogus:

  • turto- išteklių analogas. Pagrindinis skirtumas yra tas, kad norint pasiekti išteklius reikia žinoti jo identifikatorių, tačiau turto sąrašą galima gauti dinamiškai naudojant AssetManager.list() metodą programos kode;
  • lib- savosios Linux bibliotekos, parašytos naudojant NDK (Native Development Kit).

Šį katalogą naudoja žaidimų gamintojai, kurie ten talpina C/C++ parašytą žaidimo variklį, taip pat didelio našumo programų (pvz., Google Chrome) kūrėjai. Mes išsiaiškinome įrenginį. Bet kaip gauti jus dominančios programos paketo failą? Kadangi neįmanoma pasiimti APK failų iš įrenginio be root (jie yra /data/app kataloge), o įsišaknijimas ne visada patartinas, yra bent trys būdai, kaip gauti programos failą į kompiuterį:

  • APK Downloader plėtinys, skirtas Chrome;
  • Tikra APK Leecher programa;
  • įvairių failų talpinimas ir Varezniks.

Kurį naudoti – skonio reikalas; mes norime naudoti atskiras programas, todėl apibūdinsime „Real APK Leecher“ naudojimą, ypač todėl, kad jis parašytas „Java“ ir atitinkamai veiks „Windows“ arba „Nix“.

Paleidus programą, reikia užpildyti tris laukus: El. paštas, Slaptažodis ir Įrenginio ID – ir pasirinkti kalbą. Pirmieji du yra jūsų „Google“ paskyros, kurią naudojate įrenginyje, el. paštas ir slaptažodis. Trečias yra įrenginio identifikatorius, kurį galima gauti įvedus kodą rinkiklyje # #8255## tada suraskite įrenginio ID eilutę. Pildant tereikia įvesti ID be android priešdėlio.

Užpildžius ir išsaugojus dažnai pasirodo pranešimas „Klaida jungiantis prie serverio“. Tai neturi nieko bendra su „Google Play“, todėl drąsiai nekreipkite dėmesio į tai ir ieškokite jus dominančių paketų.

Peržiūrėti ir keisti

Tarkime, radote jus dominantį paketą, atsisiuntėte jį, išpakavote... ir kai bandėte peržiūrėti kokį nors XML failą, nustebote sužinoję, kad failas nėra tekstas. Kaip jį dekompiliuoti ir kaip apskritai dirbti su paketais? Ar tikrai reikia įdiegti SDK? Ne, SDK diegti visai nebūtina. Tiesą sakant, visiems APK paketų išskleidimo, modifikavimo ir pakavimo veiksmams reikalingi šie įrankiai:

  • ZIP archyvatorius išpakavimui ir pakavimui;
  • smali- Dalvik virtualios mašinos baitinių kodų surinkėjas/disassembleris (code.google.com/p/smali);
  • aapt- išteklių pakavimo įrankis (pagal numatytuosius nustatymus ištekliai saugomi dvejetaine forma, siekiant optimizuoti programos veikimą). Įtraukta į Android SDK, bet galima įsigyti atskirai;
  • signataras- modifikuoto paketo skaitmeninio pasirašymo įrankis (bit.ly/Rmrv4M).

Visus šiuos įrankius galite naudoti atskirai, tačiau tai nepatogu, todėl geriau naudoti aukštesnio lygio programinę įrangą, sukurtą jų pagrindu. Jei dirbate su Linux arba Mac OS X, yra įrankis, vadinamas apktool. Tai leidžia išpakuoti išteklius pradine forma (įskaitant dvejetainius XML ir arsc failus), atkurti paketą su pakeistais ištekliais, tačiau jis nežino, kaip pasirašyti paketus, todėl pasirašymo programą turėsite paleisti rankiniu būdu. Nepaisant to, kad programa yra parašyta Java, jos diegimas yra gana nestandartinis. Pirmiausia turite gauti patį jar failą:

$ 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 $ eksportuoti PATH=~/bin:$PATH

Jei dirbate su Windows, tada yra puikus įrankis, pavadintas Virtuous Ten Studio, kuris taip pat kaupia visus šiuos įrankius (įskaitant patį apktool), tačiau vietoj CLI sąsajos suteikia vartotojui intuityvią grafinę sąsają, su kuria galite atlikti išpakavimo, išmontavimo ir dekompiliavimo operacijas keliais paspaudimais. Šis įrankis yra Donation-ware, tai yra, kartais pasirodo langai, kuriuose prašoma gauti licenciją, bet galiausiai tai gali būti toleruojama. Nėra prasmės to apibūdinti, nes sąsają galite suprasti per kelias minutes. Tačiau apktool dėl savo konsolinio pobūdžio turėtų būti aptartas išsamiau.


Pažvelkime į apktool parinktis. Trumpai tariant, yra trys pagrindinės komandos: d (dekodavimas), b (build) ir if (diegti sistemą). Jei su pirmomis dviem komandomis viskas aišku, tai ką daro trečiasis sąlyginis teiginys? Jis išpakuoja nurodytą vartotojo sąsajos sistemą, kuri reikalinga tais atvejais, kai išardote bet kurį sistemos paketą.

Pažvelkime į įdomiausias pirmosios komandos parinktis:

  • -s- neišardykite dex failų;
  • -r- neišpakuokite išteklių;
  • -b- neįterpti derinimo informacijos į dex failo išardymo rezultatus;
  • --rėmo kelias- naudokite nurodytą vartotojo sąsajos sistemą, o ne įmontuotą apktool. Dabar pažvelkime į keletą b komandos parinkčių:
  • -f- priverstinis surinkimas be pakeitimų tikrinimo;
  • -a- nurodykite kelią į aapt (APK archyvo kūrimo įrankį), jei dėl kokių nors priežasčių norite jį naudoti iš kito šaltinio.

Naudoti apktool yra labai paprasta; norėdami tai padaryti, tiesiog nurodykite vieną iš komandų ir kelią į APK, pavyzdžiui:

$ apktool d mail.apk

Po to visi išskleisti ir išardyti paketo failai bus rodomi pašto kataloge.

Paruošimas. Reklamos išjungimas

Teorija, žinoma, gera, bet kam to reikia, jei nežinome, ką daryti su išpakuota pakuote? Pabandykime pritaikyti teoriją savo naudai, ty modifikuoti kokią nors programinę įrangą, kad ji mums nerodytų reklamos. Pavyzdžiui, tebūnie Virtualus žibintuvėlis – virtualus žibintuvėlis. Ši programinė įranga mums idealiai tinka, nes pilna erzinančios reklamos ir, be to, pakankamai paprasta, kad nepasiklystų kodo džiunglėse.


Taigi, naudodami vieną iš aukščiau pateiktų metodų, atsisiųskite programą iš rinkos. Jei nuspręsite naudoti Virtuous Ten Studio, tiesiog atidarykite APK failą programoje ir išpakuokite jį, sukurkite projektą (Failas -> Naujas projektas), tada projekto kontekstiniame meniu pasirinkite Importuoti failą. Jei jūsų pasirinkimas buvo apktool, tiesiog paleiskite vieną komandą:

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

Po to kataloge com.kauf.particle.virtualtorch atsiras failų medis, panašus į aprašytą ankstesniame skyriuje, tačiau vietoj dex failų ir apktool.yml failo bus papildomas Smali katalogas. Pirmajame yra išardytas programos vykdomojo dex failo kodas, antrajame yra paslaugų informacija, reikalinga apktool surinkti paketą atgal.

Žinoma, pirmiausia turėtume ieškoti AndroidManifest.xml. Ir čia iškart susiduriame su tokia eilute:

Nesunku atspėti, kad ji yra atsakinga už programos leidimų naudotis interneto ryšiu suteikimą. Tiesą sakant, jei norime tiesiog atsikratyti reklamos, greičiausiai tiesiog užblokuosime programą iš interneto. Pabandykime tai padaryti. Ištriname nurodytą eilutę ir bandome sukurti programinę įrangą naudodami apktool:

$ apktool b com.kauf.particle.virtualtorch

Gautas APK failas bus rodomas com.kauf.particle.virtualtorch/build/ kataloge. Tačiau jo įdiegti nepavyks, nes jame nėra skaitmeninio parašo ir failų kontrolinių sumų (paprasčiausiai nėra META-INF/ katalogo). Turime pasirašyti paketą naudodami apk-signer įrankį. paleistas. Sąsaja susideda iš dviejų skirtukų – pirmame (Key Generator) kuriame raktus, antrajame (APK Signer) pasirašome. Norėdami sukurti mūsų privatų raktą, užpildykite šiuos laukus:

  • Tikslinis failas- raktų saugyklos išvesties failas; jame paprastai saugoma viena raktų pora;
  • Slaptažodis Ir Patvirtinti- saugyklos slaptažodis;
  • Pseudonimas- rakto pavadinimas saugykloje;
  • Alias ​​slaptažodis Ir Patvirtinti- slapto rakto slaptažodis;
  • Galiojimas- galiojimo laikas (metais). Numatytoji vertė yra optimali.

Likę laukai paprastai yra neprivalomi, tačiau bent vienas turi būti užpildytas.


ĮSPĖJIMAS

Norėdami pasirašyti programą naudodami apk-signer, turite įdiegti Android SDK ir programos nustatymuose nurodyti visą kelią iki jos.

Visa informacija pateikiama tik informaciniais tikslais. Nei redaktoriai, nei autorius neatsako už bet kokią galimą žalą, padarytą dėl šio straipsnio medžiagos.

Dabar galite pasirašyti APK naudodami šį raktą. Skirtuke APK Signer pasirinkite naujai sugeneruotą failą, įveskite slaptažodį, rakto slapyvardį ir slaptažodį, tada suraskite APK failą ir drąsiai spustelėkite mygtuką „Sign“. Jei viskas bus gerai, paketas bus pasirašytas.

INFORMACIJA

Kadangi paketą pasirašėme savo raktu, jis prieštaraus pradinei programai, o tai reiškia, kad bandydami atnaujinti programinę įrangą per rinką gausime klaidą.

Skaitmeninis parašas reikalingas tik trečiosios šalies programinei įrangai, taigi, jei modifikuojate įdiegtas sistemos programas nukopijuodami jas į /system/app/ katalogą, jų pasirašyti nereikia.

Po to atsisiųskite paketą į savo išmanųjį telefoną, įdiekite jį ir paleiskite. Voila, skelbimo nebėra! Tačiau vietoj to pasirodė pranešimas, kad mes neturime interneto arba neturime atitinkamų leidimų. Teoriškai to gali pakakti, tačiau pranešimas atrodo erzinantis ir, tiesą sakant, mums tiesiog pasisekė su kvaila programa. Paprastai parašyta programinė įranga greičiausiai išaiškins savo kredencialus arba patikrins, ar yra interneto ryšys, o kitaip tiesiog atsisako paleisti. Kaip tokiu atveju būti? Žinoma, redaguokite kodą.

Paprastai programų autoriai sukuria specialias klases reklamoms rodyti ir šių klasių metodams iškviesti, kai paleidžiama programa arba viena iš jos „veiklų“ (paprasčiau tariant, programų ekranai). Pabandykime surasti šias klases. Mes einame į smali katalogą, tada com (org yra tik atvira grafinė biblioteka cocos2d), tada kauf (čia ji yra, nes tai kūrėjo vardas ir visas jo kodas) - ir štai, rinkodaros katalogą. Viduje randame krūvą failų su smali plėtiniu. Tai yra klasės, o žymiausia iš jų – Ad.smali klasė, iš kurios pavadinimo nesunku atspėti, kad būtent joje rodoma reklama.

Galėtume pakeisti jos veikimo logiką, tačiau būtų daug paprasčiau paprasčiausiai pašalinti bet kurio metodo iškvietimus iš pačios programos. Todėl mes paliekame rinkodaros katalogą ir einame į gretimą dalelių katalogą, o tada į virtualitorch. Čia ypatingo dėmesio nusipelno failas MainActivity.smali. Tai standartinė „Android“ klasė, sukurta „Android SDK“ ir įdiegta kaip įėjimo į programą taškas (analogiškai pagrindinei funkcijai C). Atidarykite failą redaguoti.

Viduje yra smali kodas (vietinis surinkėjas). Jis gana painus ir sunkiai skaitomas dėl savo žemo lygio pobūdžio, todėl jo nenagrinėsime, o tiesiog kode surasime visas nuorodas į Reklamos klasę ir jas pakomentuosime. Paieškoje įvedame eilutę „Skelbimas“ ir patenkame į 25 eilutę:

Lauko privatus skelbimas:Lcom/kauf/marketing/Ad;

Čia sukuriamas skelbimo laukas, kuriame saugomas skelbimų klasės objektas. Komentuojame prieš eilutę padėdami ženklą ###. Tęsiame paieškas. 423 eilutė:

Naujos instancijos v3, Lcom/kauf/marketing/Ad;

Čia vyksta objekto kūrimas. Komentuokime. Tęsiame paiešką ir 433, 435, 466, 468, 738, 740, 800 ir 802 eilutėse randame skelbimų klasės metodų iškvietimus. Komentuokime. Atrodo, kad viskas. Sutaupyti. Dabar paketą reikia vėl sudėti ir patikrinti, ar jis veikia ir ar nėra reklamos. Dėl eksperimento grynumo grąžiname iš AndroidManifest.xml pašalintą eilutę, surenkame paketą, pasirašome ir įdiegiame.

Mūsų jūrų kiaulytė. Matosi reklama

Oi! Reklama dingo tik veikiant programai, bet liko pagrindiniame meniu, kurį matome paleidę programinę įrangą. Taigi, palaukite, bet įėjimo taškas yra MainActivity klasė, o reklama dingo programai veikiant, bet liko pagrindiniame meniu, taigi įėjimo taškas skiriasi? Norėdami nustatyti tikrąjį įvesties tašką, iš naujo atidarykite failą AndroidManifest.xml. Ir taip, jame yra šios eilutės:

Jie nurodo mums (ir, dar svarbiau, „Android“), kad veikla, pavadinta Pradėti, turėtų būti pradėta reaguojant į ketinimo (įvykio) android.intent.action.MAIN generavimą iš kategorijos android.intent.category.LAUNCHER. Šis įvykis sugeneruojamas, kai paleidimo priemonėje paliečiate programos piktogramą, todėl jis nustato įėjimo tašką, būtent pradžios klasę. Labiausiai tikėtina, kad programuotojas pirmiausia parašė programą be pagrindinio meniu, kurios įėjimo taškas buvo standartinė MainActivity klasė, o tada pridėjo naują langą (veiklą), kuriame yra meniu ir aprašyta klasėje Pradėti, ir rankiniu būdu padarė jį įrašu. tašką.

Atidarykite failą Start.smali ir vėl ieškokite eilutės „Ad“, 153 ir 155 eilutėse randame „FirstAd“ klasės paminėjimą. Jis taip pat yra šaltinio kode ir, sprendžiant iš pavadinimo, yra atsakingas už skelbimų rodymą pagrindiniame ekrane. Pažiūrėkime toliau, yra FirstAd klasės egzemplioriaus sukūrimas ir ketinimas, kuris, atsižvelgiant į kontekstą, yra susijęs su šiuo atveju, o tada etiketė cond_10, į kurią sąlyginis perėjimas atliekamas tiksliai prieš sukuriant egzempliorių. iš klasės:

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

Greičiausiai programa kažkaip atsitiktinai apskaičiuoja, ar reklama turi būti rodoma pagrindiniame ekrane, o jei ne, peršoka tiesiai į cond_10. Gerai, supaprastinkime jos užduotį ir pakeiskime sąlyginį perėjimą besąlyginiu:

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

Kode nebėra paminėjimų apie FirstAd, todėl uždarome failą ir iš naujo surenkame virtualų žibintuvėlį naudodami apktool. Nukopijuokite jį į savo išmanųjį telefoną, įdiekite, paleiskite. Voila, dingo visa reklama, su kuo mes visus sveikiname.

Rezultatai

Šis straipsnis yra tik trumpas įvadas į „Android“ programų įsilaužimo ir modifikavimo metodus. Daugelis problemų liko užkulisiuose, pvz., apsaugos pašalinimas, užmaskuoto kodo analizavimas, programų išteklių vertimas ir pakeitimas, taip pat programų, parašytų naudojant Android NDK, keitimas. Tačiau turint pagrindines žinias, tik laiko klausimas viską išsiaiškinti.