Si të ndryshoni skedarët e lojës në android. Bazat e redaktimit të aplikacioneve të sistemit Android (apk)

Redaktimi aplikacionet e sistemit Android më së shpeshti kryhet kur përdoruesi i një smartphone, tableti ose pajisjeje tjetër të kontrolluar nga ky sistem operativ pushon së kënaquri aktual pamjen programet e instaluara në pajisje nga prodhuesi ose shitësi. Një arsye tjetër mund të jetë nevoja për të bërë jo vetëm ndryshime në lidhje me dizajnin grafik të aplikacioneve Android, por edhe ndikimin në vendndodhjen e elementeve të ndryshëm dhe performancën e funksioneve bazë.

Për të bërë ndryshime në kod, kërkohen aftësi elementare programimi në pothuajse çdo gjuhë (mundësisht Java dhe C ++). Për të zëvendësuar grafikën, duart e drejtpërdrejta dhe aftësia për të punuar në një redaktues grafik do të bëjnë.

Para së gjithash, duhet të vendosni nëse thjesht duhet të zëvendësoni grafikët në aplikacionet Android ose nëse duhet të ndryshoni rregullimin e elementeve në sistem dhe të bëni ndryshime më të thella në kod. Hapat e mëtejshëm varen nga kjo, të cilat përfshijnë ose punën me aplikacionin si arkiv, ose çmontimin dhe modifikimin e plotë të tij.

Ndryshimi i grafikës në aplikacionet e sistemit Android

Për të zëvendësuar ose modifikuar thjesht grafikën origjinale (ndryshoni ngjyrat e butonave, rivizatoni fotot, etj.), mjafton të keni një arkivues standard WinRAR në kompjuterin tuaj. Në të njëjtën kohë, përdoruesi duhet të ketë të drejta "rrënjë" në pajisje (të ngjashme me llogari administrator në Windows), dhe është gjithashtu e dëshirueshme që të keni një rikuperim alternativ (CWM) dhe një eksplorues rrënjë (për të hyrë në sistemin e skedarëve Android drejtpërdrejt në vetë pajisjen).

Para së gjithash, duhet të aktivizoni korrigjimin e USB-së në pajisje, më pas ta lidhni atë me kompjuterin duke përdorur një kabllo USB dhe të instaloni drejtuesit e nevojshëm. Zakonisht ato janë të vendosura në një disk virtual që shfaqet kur lidhet me një kompjuter.

Pastaj duhet të shkarkoni gjithashtu shtojcën ADB për menaxherin e skedarëve në internet. Kjo shtojcë ju lejon të shihni të gjithë sistemin Android si një disk të lidhur me dosje. Të gjitha aplikacionet e sistemit janë të vendosura në /system/app dhe /system/framework. Pasi të keni gjetur aplikacionin e dëshiruar, thjesht kopjoni atë në kompjuterin tuaj. Nëse shtojca nuk është e instaluar, mund të përdorni eksploruesin rrënjë për të kopjuar aplikacionin me shtesën apk në një kartë SD të lëvizshme dhe më pas nga ajo në kompjuterin tuaj.

Pas kopjimit aplikimin e dëshiruar mund të filloni të redaktoni grafikët. Nga rruga, të gjitha fotografitë në aplikacionet Android ruhen në format png, i cili hapet lehtësisht nga çdo redaktues grafik. Kur hapni skedarin e aplikacionit me WinRAR, mund të shihni një numër dosjesh. Do të na interesojë vetëm dosja res, brenda së cilës, nga ana tjetër, ka shumë dosje të ndryshme. Prej tyre duhen vetëm ato që në emër e kanë fjalën “të tërhequr”.

Tani le të kujtojmë llojin e pajisjes sonë dhe rezolucionin e ekranit të saj. Nëse ky është një smartphone, dhe rezolucioni është 240x320, atëherë do të jemi të interesuar kryesisht në dosjet e vizatueshme dhe të tërheqshme-ldpi. Nëse rezolucioni është 320x480 - dosjet e vizatimit dhe mdpi e tërheqshme, përkatësisht, dhe për rezolucionin 480x800 - dosjet e vizatimit dhe e tërheqjes-hdpi. Përveç tyre, zakonisht ka edhe dosje me fjalën "tokë" në emrat e tyre - këto janë grafika për modalitetin e portretit, d.m.th. kur pajisja është e anuar.

Nëse keni një tabletë në duart tuaja, atëherë ne do të jemi të interesuar vetëm për dosjet e vizatueshme dhe të vizatueshme-mdpi në çdo rezolucion të ekranit.

Duke kopjuar dosjet e zgjedhura në kompjuterin tuaj, mund t'i zëvendësoni ose ringjyroni imazhet origjinale me ato të dëshiruara dhe të këndshme për syrin. Vëmendje e veçantë duhet t'i kushtoni fotografive me rezolucion 9.png. Fakti është se përgjatë perimetrit të një imazhi të tillë ekziston një kornizë e veçantë e gjerë një piksel me shenja të veçanta, shkelja e integritetit të së cilës do të çojë në një dështim të aplikacionit. Prandaj, duhet pasur kujdes shtesë kur redaktoni skedarë të tillë.

Pas redaktimit të dosjes, duhet ta ngarkoni përsëri në arkiv, që është vetë aplikacioni me shtesën apk. Në këtë rast, është e nevojshme të zgjidhni opsionin "pa kompresim" në WinRAR.

Aplikacioni i korrigjuar shkarkohet përsëri në pajisje ose duke përdorur eksploruesin rrënjë (së pari skedari kopjohet në kartën SD, dhe prej saj në pajisje), ose pas daljes nga rikuperimi - menjëherë nga kompjuteri në / sistemi / aplikacioni ose / system / dosje kornizë . Më pas, duhet të vendosni lejet e skedarit duke përdorur opsionet e duhura në eksploruesin rrënjë ose në shtojcën ADB. Ato duhet të jenë në formatin 644. Pas rindezjes së pajisjes, mund të shihni rezultatin e aplikacionit të përditësuar.

Redaktimi i kodit burimor të aplikacioneve të sistemit

Nevojitet pak më shumë përpjekje për të redaktuar kodin burimor të aplikacioneve të sistemit. Për të çmontuar dhe ndërtuar aplikacionin pasi të keni bërë ndryshime në të, do t'ju duhet të kryeni disa nga hapat e mëposhtëm.

1) Instaloni paketën e nevojshme softuerike në kompjuterin e tyre versionet e fundit: Java SE Runtime Environment dhe Android SDK Windows (programe për të punuar me aplikacionet dhe komponentët e tyre), APKtool ose APKManager ose Firmware_tool (një nga tre programet për çmontimin dhe dekompilimin e aplikacioneve të sistemit), Redaktori NotePad ++ (për të bërë ndryshime në burimi aplikacionet e sistemit Android).

2) Aktivizoni korrigjimin e USB-së në pajisje, lidheni atë me kompjuterin duke përdorur një kabllo USB, instaloni drejtuesit e nevojshëm për të punuar me pajisjen.

3) Duke përdorur një nga programet e mësipërme për të punuar me kodin e aplikacionit, duhet të nxirrni dosjen / sistemin / kornizën (plotësisht) nga telefoni në dosjen e duhur të programit dhe aplikacionet e sistemit nga dosja / system / app. Për shembull, për programin Firmware_tool, skedarët nga telefoni duhet të kopjohen në dosjen C: Firmwaretoolfw_project1_source2_system.img_unpacked në nëndosjet përkatëse (aplikacionet në dosjen e aplikacionit, skedarët nga korniza në dosjen kornizë). Kur përdorni këtë dhe programe të tjera, sigurohuni që të lexoni udhëzimet për to.

4) Instaloni "kornizën e referencës", d.m.th. një grup rregullash në përputhje me të cilat do të kryhet dekompilimi (d.m.th. çmontimi i kodit) dhe përpilimi (d.m.th. montimi i kodit) i aplikacioneve.

Kjo përfundon përgatitjen për të punuar me aplikacionet e sistemit.

Shkarkimi i aplikacioneve nga pajisja dhe ngarkimi i tyre përsëri kryhet në mënyrë të ngjashme me procedurën e përshkruar në seksionin "Ndryshimi i grafikës në aplikacionet e sistemit Android".

Redaktimi i kodit të aplikacionit Android zakonisht bëhet duke përdorur redaktorin NotePad ++ - një nga redaktuesit më të përshtatshëm të tekstit që ka mundësinë e nënvizimit të sintaksës së gjuhës së zgjedhur të programimit. Si rregull, kur redaktoni, mund të ndryshoni edhe grafikat gjatë rrugës duke përdorur të zgjedhurit redaktues grafik.

Pas përfundimit të redaktimit, aplikacioni i modifikuar ngarkohet përsëri në pajisje dhe vetë pajisja duhet të rindizet. Redaktorët më të avancuar për korrigjimin e aplikacioneve përpara se t'i shkarkoni në pajisje përdorin emulatorë të ndryshëm, për shembull, Eclipse nga Google.

Ky jam unë përsëri dhe udhëzimet e mia për çajnikët dhe tenxheret e kafesë me foto.

Këtë herë do të hyj në detaje për zëvendësimin komponentët e sistemit Android OS në shembullin e instalimit të një modifikimi të shiritit të statusit.

Android është një Linux i vogël. Është e nevojshme të ndiqni një sërë rregullash gjatë zëvendësimit të skedarëve në mënyrë që telefoni të mos kthehet në një tullë, e cila mund të ringjallet vetëm nga një ndezje e plotë me humbjen e të gjitha të dhënave nga memoria e brendshme e pajisjes. Ndarjet e brendshme janë të formatuara në një sistem skedarësh të ndryshëm nga FAT32 në disqet flash. Vetitë e skedarit, ndër të tjera, ruajnë lejet për grupe të ndryshme përdoruesish (pronari i skedarit, grupi i pronarit të skedarëve, përdorues të tjerë). Kur operoni me skedarët e sistemit ato duhet të ruhen, sepse në momentin e nisjes, sistemi thjesht mund të mos jetë në gjendje t'i qaset dhe të mos niset normalisht.
Le të fillojmë me paketën e veglave.

Do të na duhen:

  • Një menaxher skedari që di të punojë me të drejtat rrënjësore dhe lejet e skedarëve. Root Explorer është më i miri (e keni blerë, apo jo?)
  • Vetë skedari i modifikuar, të cilin duam ta vendosim në vend të atij sistemi (lidhja në fund të artikullit).

Tani ne përdorim një nga funksionet e përshtatshme eksplorues i rrënjëve. Le të bëjmë një trokitje të gjatë në skedarin e dëshiruar për të thirrur menunë e kontekstit

Dhe klikoni në artikullin " Zip këtë skedar" për të ruajtur skedarin në një arkiv zip në kartën SD. Pas zipjes, do të marrim mesazhin e mëposhtëm:

Shtyp butonin " qëndroj" për të qëndruar në dosje dhe për të bërë një gjë tjetër.

Tani gjithçka është gati për të zëvendësuar skedarin.
Unë kam folur tashmë për të drejtat e aksesit për çdo skedar. Për t'i rikrijuar ato në një skedar të ri, fillimisht duhet t'i shikoni ato nga ai i vjetër. Ato përfaqësohen nga një seri personazhesh "rwxrwxrwx". Treshja e parë - të drejtat e pronarit, e dyta - grupet e pronarëve, e treta - të gjithë përdoruesit e tjerë. Skedari ynë ka leje "rw-r--r--".

Tani shkoni te karta SD, gjeni skedarin e modifikuar atje dhe zgjidhni artikullin " Kopjo", por nuk jemi me nxitim të zgjedhim menjëherë dosjen " / system / app", sepse do të dëmtojmë menjëherë sistemin. Në vend të kësaj, ne kopjojmë skedarin në një dosje të veçantë për skedarët e përkohshëm " / të dhëna / lokale / tmp " , për ta sjellë skedarin në një formë që do të marrë sistem.
Së pari, thirrni menunë e kontekstit të skedarit dhe zgjidhni artikullin " Riemërto" dhe futni emrin e skedarit " SystemUI.apk". Kjo është e drejtë, sepse në Linux ka rëndësi rasti i shkronjave në emër, d.m.th. " systemui.apk" dhe " SystemUI.apk" Janë skedarë të ndryshëm.
Tjetra, ju duhet të ndryshoni lejet në skedar, sepse tani ato pothuajse me siguri janë vendosur gabimisht. Për ta bërë këtë, thirrni përsëri menunë e kontekstit të skedarit me një trokitje të gjatë dhe zgjidhni artikullin " Lejet". Për vlerën tonë "rw-r--r--", flamujt duhet të vendosen si kjo:

shtyp " Ne rregull" dhe telefononi përsëri menunë e kontekstit. Tani duhet të ndryshojmë zotëruesin dhe grupin për këtë aplikacion. Për ta bërë këtë, zgjidhni artikullin " Ndrysho pronarin". Do të shfaqet një dritare me informacione për pronarin aktual të skedarit.
Këtu është e nevojshme të bëhet një digresion i vogël.
Në dosjen "/system/app " të gjithë skedarët janë në pronësi të përdoruesit "root" (uid=0) dhe grupit "root" (gid=0), dhe në dosjen "/system/framework" përdoruesi "system " (gid=1000) zotëron dhe grupin "system" (gid=1000).
Bazuar në sa më sipër, vendosni vlerat e dëshiruara dhe klikoni " Ne rregull".
Dhe për herë të tretë ne thërrasim menunë e kontekstit për skedarin dhe zgjedhim artikullin " Kopjo" dhe në dialogun e kopjimit shkoni te dosja " / system / app". Tani klikoni me guxim " ngjit"dhe lexoni me kujdes.
Pothuajse menjëherë, sistemi do të raportojë se procesi i shiritit të statusit ka përfunduar papritmas dhe do të ofrojë fillimin e tij. Të gjitha përpjekjet do të dështojnë. Midis shfaqjes së dritareve, duhet të keni kohë për të bërë një sërë veprimesh. Para se të shtypni butonin, duhet të telefononi menunë për fikjen e pajisjes, ajo do të shfaqet nën një paralajmërim. Tani duhet të vendosni gishtin afërsisht në anën e majtë të butonit. Tani duhet të klikoni shumë shpejt tre herë me gishtin tuaj në mënyrë që të keni kohë për të mbyllur paralajmërimin, zgjidhni artikullin e mbylljes dhe konfirmoni qëllimet tuaja.
Tani presim që telefoni të fiket, ta rinisim dhe të shijojmë rezultatin ose të mos e shijojmë dhe të kërkojmë gabime.

Ndonjëherë disa aplikacione në Android nuk i përshtaten përdoruesit për ndonjë arsye. Një shembull janë reklamat e bezdisshme. Dhe ndodh kështu - të gjithë janë të mirë në program, por vetëm përkthimi në të është ose i shtrembër, ose mungon plotësisht. Ose, për shembull, programi është provë, dhe merrni versioni i plotë nuk ka mundesi. Si të ndryshoni situatën?

Prezantimi

Në këtë artikull, ne do të flasim se si të çmontojmë një APK me një aplikacion, të shikojmë strukturën e tij të brendshme, të çmontojmë dhe dekompilojmë bajtkodin, dhe gjithashtu të përpiqemi të bëjmë disa ndryshime në aplikacione që mund të na sjellin këtë ose atë përfitim.

Për t'i bërë të gjitha këto vetë, do t'ju duhet të paktën një njohuri bazë për gjuhën Java, në të cilën janë shkruar aplikacionet Android, dhe gjuhën XML, e cila përdoret kudo në Android - nga përshkrimi i vetë aplikacionit dhe të drejtat e tij të aksesit deri te ruajtja e vargjeve. që do të shfaqet në ekran. Do t'ju duhet gjithashtu aftësia për të trajtuar softuerin e specializuar të konsolës.

Pra, cila është paketa APK në të cilën shpërndahet absolutisht i gjithë softueri për Android?

Dekompilimi i aplikacionit

Në këtë artikull, ne kemi punuar vetëm me kodin e aplikacionit të çmontuar, megjithatë, nëse bëni ndryshime më serioze në aplikacione të mëdha, do të jetë shumë më e vështirë të kuptoni kodin smali. Për fat të mirë, ne mund ta dekompilojmë kodin dex në kodin Java, i cili, megjithëse nuk është origjinal dhe i pa kompilueshëm, është shumë më i lehtë për t'u lexuar dhe kuptuar logjikën e aplikacionit. Për ta bërë këtë, na duhen dy mjete:

  • dex2jar - përkthyes i bajtkodit Dalvik në bajtkod JVM, në bazë të të cilit mund të marrim kodin Java;
  • jd-gui është vetë një dekompilues që ju lejon të merrni kodin Java të lexueshëm nga bytecode JVM. Përndryshe, mund të përdorni Jad (www.varanecas.com/jad); megjithëse është mjaft i vjetër, në disa raste gjeneron kod më të lexueshëm se Jd-gui.

Ato duhet të përdoren si kjo. Së pari, ne nisim dex2jar, duke specifikuar rrugën drejt paketës apk si argument:

%dex2jar.sh mail.apk

Si rezultat, paketa mail.jar Java do të shfaqet në drejtorinë aktuale, e cila tashmë mund të hapet në jd-gui për të parë kodin Java.

Rregullimi i paketave APK dhe marrja e tyre

Paketa aplikacionet android, në fakt, është një skedar i rregullt ZIP, për shikimin e përmbajtjes dhe zbërthimin e të cilit nuk kërkohen mjete speciale. Mjafton të keni një arkivues - 7zip për Windows ose tastierë unzip në Linux. Por kjo ka të bëjë me mbështjellësin. Çfarë ka brenda? Brenda, ne përgjithësisht kemi strukturën e mëposhtme:

  • META-INF/- përmban certifikatë dixhitale aplikacioni që vërteton krijuesin e tij dhe kontrollet e skedarëve të paketës;
  • res/ - burime të ndryshme që aplikacioni përdor në punën e tij, si imazhe, një përshkrim deklarativ i ndërfaqes dhe të dhëna të tjera;
  • AndroidManifest.xml- përshkrimi i aplikacionit. Kjo përfshin, për shembull, një listë të lejeve të kërkuara, të nevojshme versioni android dhe rezolucioni i kërkuar i ekranit;
  • klasat.dex- bitekodi i përpiluar i aplikacionit për makinën virtuale Dalvik;
  • burimet.arsc- gjithashtu burime, por të një lloji tjetër - në veçanti, vargjet (po, ky skedar mund të përdoret për Rusifikimin!).

Skedarët dhe drejtoritë e listuara janë, nëse jo në të gjitha, atëherë, ndoshta, në shumicën dërrmuese të APK-ve. Sidoqoftë, ka disa skedarë/drejtori më pak të zakonshme që ia vlen të përmenden:

  • aseteve- analog i burimeve. Dallimi kryesor është se për të hyrë në një burim, duhet të dini identifikuesin e tij, ndërsa lista e aseteve mund të merret në mënyrë dinamike duke përdorur metodën AssetManager.list() në kodin e aplikacionit;
  • lib- Bibliotekat vendase Linux të shkruara me ndihmën e NDK (Native Development Kit).

Ky direktori përdoret nga prodhuesit e lojërave për të vendosur motorin e tyre të lojës të shkruar në C/C++ atje, si dhe nga krijuesit e aplikacioneve me performancë të lartë (për shembull, Google Chrome). Kuptoi pajisjen. Por si të merrni skedarin e paketës së aplikacionit të interesit? Meqenëse nuk është e mundur të merrni skedarë APK nga pajisja pa rrënjosje (ato janë në drejtorinë / të dhëna / aplikacion), dhe rrënjosja nuk këshillohet gjithmonë, ekzistojnë të paktën tre mënyra për të marrë skedarin e aplikacionit në kompjuter:

  • Shtesa e Shkarkuesit APK për Chrome;
  • Aplikacioni i vërtetë APK Leecher;
  • hosting të ndryshëm të skedarëve dhe warezniki.

Cilin të përdorni është çështje shije; ne preferojmë të përdorim aplikacione të veçanta, kështu që ne do të përshkruajmë përdorimin e Real APK Leecher, veçanërisht pasi është shkruar në Java dhe, në përputhje me rrethanat, do të funksionojë edhe në Windows, madje edhe në nix.

Pas fillimit të programit, duhet të plotësoni tre fusha: Email, Fjalëkalim dhe ID e pajisjes - dhe zgjidhni një gjuhë. Dy të parat janë posta elektronike dhe fjalëkalimi i llogarisë suaj Google që përdorni në pajisje. E treta është ID e pajisjes dhe mund ta merrni duke thirrur kodin në telefonues # #8255## dhe më pas gjetja e linjës Device ID. Kur plotësoni, duhet të vendosni vetëm ID-në pa prefiksin android.

Pas plotësimit dhe ruajtjes, shpesh shfaqet mesazhi "Gabim gjatë lidhjes me serverin". Nuk ka lidhje me Google Play, ndaj mos ngurroni ta injoroni atë dhe të kërkoni paketa që ju interesojnë.

Rishikimi dhe modifikimi

Le të themi se keni gjetur një paketë për të cilën jeni të interesuar, e keni shkarkuar, shpaketuar ... dhe kur u përpoqët të shikonit disa skedarë XML, u habitët kur zbuluat se skedari nuk është një skedar teksti. Si ta dekompiloni atë dhe si të punoni me paketat në përgjithësi? A është vërtet e nevojshme të instaloni SDK-në? Jo, nuk keni nevojë të instaloni SDK. Në fakt, për të gjitha hapat për të shpaketuar, modifikuar dhe paketuar paketat APK, nevojiten mjetet e mëposhtme:

  • arkivues ZIP për paketim dhe paketim;
  • i vogël- montues/çmontues i bytekodit të makinës virtuale Dalvik (code.google.com/p/smali);
  • aapt- një mjet për paketimin e burimeve (si parazgjedhje, burimet ruhen në formë binare për të optimizuar performancën e aplikacionit). Përfshihet me Android SDK, por mund të merret veçmas;
  • Nënshkrues- mjet për nënshkrim dixhital paketa e modifikuar (bit.ly/Rmrv4M).

Ju mund t'i përdorni të gjitha këto mjete veç e veç, por kjo është e papërshtatshme, kështu që është më mirë të përdorni softuer të nivelit më të lartë të ndërtuar mbi bazën e tyre. Nëse jeni në Linux ose Mac OS X, ekziston një mjet i quajtur apktool. Kjo ju lejon të shpaketoni burimet në formën e tyre origjinale (përfshirë skedarët binar XML dhe arsc), të rindërtoni paketën me burime të modifikuara, por nuk di të nënshkruajë paketat, kështu që do t'ju duhet të ekzekutoni manualisht programin e nënshkruesit. Përkundër faktit se programi është shkruar në Java, instalimi i tij është mjaft jo standard. Së pari ju duhet të merrni vetë skedarin 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 $ eksport PATH=~/bin:$PATH

Nëse punoni në Windows, atëherë ekziston një mjet i shkëlqyer për të i quajtur Virtual Ten Studio, i cili gjithashtu grumbullon të gjitha këto mjete (përfshirë vetë apktool), por në vend të një ndërfaqeje CLI, ai i siguron përdoruesit një ndërfaqe grafike intuitive me të cilën mund të kryeni operacione për zbërthimin, çmontimin dhe dekompilimin me disa klikime. Ky mjet është Donation-ware, domethënë dritaret ndonjëherë shfaqen me një propozim për të marrë një licencë, por kjo, në fund të fundit, mund të tolerohet. Nuk ka kuptim ta përshkruani atë, sepse mund ta kuptoni ndërfaqen në pak minuta. Por apktool, për shkak të natyrës së tij të konsolës, duhet të diskutohet më në detaje.


Merrni parasysh opsionet e apktool. Shkurtimisht, ekzistojnë tre komanda kryesore: d (deshifroni), b (ndërtoni) dhe if (instaloni kornizën). Nëse gjithçka është e qartë me dy komandat e para, atëherë çfarë bën i treti, operatori i kushtëzuar? Ai shpaketon kornizën e specifikuar të ndërfaqes së përdoruesit, e cila nevojitet kur zbërtheni një paketë sistemi.

Konsideroni opsionet më interesante të komandës së parë:

  • -s- mos i çmontoni skedarët dex;
  • -r- mos i shpaketoni burimet;
  • -b- mos futni informacionin e korrigjimit në rezultatet e çmontimit të skedarit dex;
  • --kornizë-rrugë- përdorni kornizën e specifikuar të UI në vend të apktool-it të integruar. Tani merrni parasysh disa opsione për komandën b:
  • -f- montim i detyruar pa kontrolluar ndryshimet;
  • -a- specifikoni rrugën për aapt (mjet për ndërtimin e arkivit APK) nëse për ndonjë arsye dëshironi ta përdorni nga një burim tjetër.

Përdorimi i apktool është shumë i thjeshtë, gjithçka që duhet të bëni është të specifikoni një nga komandat dhe shtegun për në APK, për shembull:

$ apktool d mail.apk

Pas kësaj, të gjithë skedarët e paketës së nxjerrë dhe të çmontuar do të shfaqen në drejtorinë e postës.

Përgatitja. Çaktivizo reklamat

Teoria është, sigurisht, e mirë, por pse është e nevojshme nëse nuk dimë çfarë të bëjmë me paketën e papaketuar? Le të përpiqemi ta zbatojmë teorinë për përfitimin tonë, përkatësisht, modifikojmë disa softuer që të mos na shfaqin reklama. Për shembull, le të jetë Virtual Torch - një pishtar virtual. Për ne, ky softuer është i përsosur, sepse është plot me reklama të bezdisshme dhe është mjaft i thjeshtë për të mos humbur në egërsinë e kodit.


Pra, duke përdorur një nga metodat e mësipërme, shkarkoni aplikacionin nga tregu. Nëse vendosni të përdorni Virtuous Ten Studio, thjesht hapni skedarin APK në aplikacion dhe zbërthejeni atë, për të cilin krijoni një projekt (File -> Projekt i ri), pastaj zgjidhni Import File nga menyja e kontekstit të projektit. Nëse zgjedhja juaj ra në apktool, atëherë mjafton të ekzekutoni një komandë:

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

Pas kësaj, një pemë skedari do të shfaqet në drejtorinë com.kauf.particle.virtualtorch, e ngjashme me atë të përshkruar në seksionin e mëparshëm, por me një drejtori shtesë smali në vend të skedarëve dex dhe një skedari apktool.yml. E para përmban kodin e çmontuar të skedarit dex të ekzekutueshëm të aplikacionit, i dyti përmban informacionin e shërbimit të nevojshëm nga apktool për të mbledhur paketën përsëri.

Vendi i parë që duhet të shohim është, sigurisht, AndroidManifest.xml. Dhe këtu menjëherë takojmë rreshtin e mëposhtëm:

Është e lehtë të merret me mend se ajo është përgjegjëse për dhënien e lejeve të aplikacionit për të përdorur lidhjen e internetit. Në fakt, nëse thjesht duam të heqim qafe reklamat, me shumë mundësi do të na mjaftojë të ndalojmë aplikacionin nga interneti. Le të përpiqemi ta bëjmë. Fshini rreshtin e specifikuar dhe provoni të përpiloni softuerin duke përdorur apktool:

$ apktool b com.kauf.particle.virtualtorch

Skedari APK që rezulton do të shfaqet në drejtorinë com.kauf.particle.virtualtorch/build/. Megjithatë, nuk mund të instalohet sepse nuk ka një nënshkrim dixhital dhe kontrolle të skedarëve (thjesht nuk ka një direktori META-INF/). Ne duhet ta nënshkruajmë paketën me programin apk-signer. Nisur. Ndërfaqja përbëhet nga dy skeda - në të parën (Key Generator) ne krijojmë çelësa, në të dytën (APK Signer) ne nënshkruajmë. Për të krijuar çelësin tonë privat, plotësoni fushat e mëposhtme:

  • Skedari i synuar- skedari dalës i dyqanit të çelësave; zakonisht ruan një palë çelësa;
  • Fjalëkalimi dhe Konfirmo- fjalëkalimi për ruajtje;
  • Alias- emri i çelësit në depo;
  • Fjalëkalimi i pseudonimit dhe Konfirmo- fjalëkalimi i çelësit sekret;
  • Vlefshmëria- Periudha e vlefshmërisë (në vite). Vlera e paracaktuar është optimale.

Fushat e mbetura, në përgjithësi, janë opsionale - por duhet të plotësoni të paktën një.


PARALAJMËRIM

Për të nënshkruar një aplikacion me apk-signer, duhet të instaloni Android SDK dhe të specifikoni rrugë e plotë përpara tij në cilësimet e aplikacionit.

I gjithë informacioni jepet vetëm për qëllime informative. As redaktorët dhe as autori nuk janë përgjegjës për ndonjë dëm të mundshëm të shkaktuar nga materialet e këtij artikulli.

Tani mund të nënshkruani APK-në me këtë çelës. Në skedën APK Signer, zgjidhni skedarin e krijuar rishtazi, futni fjalëkalimin, pseudonimin kryesor dhe fjalëkalimin për të, më pas gjeni skedarin APK dhe klikoni me guxim butonin "Sign". Nëse gjithçka shkon mirë, paketa do të nënshkruhet.

INFO

Meqenëse e kemi nënshkruar paketën me çelësin tonë, ajo do të jetë në konflikt me aplikacionin origjinal, që do të thotë se kur të përpiqemi të përditësojmë softuerin përmes tregut, do të kemi një gabim.

Vetëm softueri i palëve të treta ka nevojë për një nënshkrim dixhital, kështu që nëse po modifikoni aplikacionet e sistemit që janë instaluar duke i kopjuar në drejtorinë /system/app/, atëherë nuk keni nevojë t'i nënshkruani ato.

Pas kësaj, ne e hedhim paketën në smartphone, instalojmë dhe ekzekutojmë. Voila, reklama është zhdukur! Në vend të kësaj, megjithatë, u shfaq një mesazh se ne nuk kemi internet ose nuk kemi lejet e duhura. Në teori, kjo mund të jetë e mjaftueshme, por mesazhi duket i bezdisshëm dhe, për të qenë i sinqertë, thjesht patëm fat me një aplikim budalla. Një softuer i shkruar mirë ka shumë të ngjarë të qartësojë kredencialet e tij ose të kontrollojë për një lidhje interneti dhe përndryshe thjesht refuzon të fillojë. Si të jesh në këtë rast? Sigurisht, modifikoni kodin.

Në mënyrë tipike, autorët e aplikacioneve krijojnë klasa të veçanta për shfaqjen e reklamave dhe metodat e thirrjeve të këtyre klasave gjatë lëshimit të aplikacionit ose një prej "aktiviteteve" të tij (me fjalë të thjeshta, ekranet e aplikacionit). Le të përpiqemi të gjejmë këto klasa. Shkojmë te drejtoria smali, pastaj com (në org ka vetëm një të hapur biblioteka grafike cocos2d), pastaj kauf (pikërisht atje, sepse ky është emri i zhvilluesit dhe i gjithë kodi i tij është atje) - dhe ja ku është, drejtoria e marketingut. Brenda gjejmë një mori skedarësh me ekstensionin smali. Këto janë klasa, dhe më e dalluara prej tyre është klasa Ad.smali, me emrin e së cilës është e lehtë të merret me mend se shfaq reklama.

Ne mund të ndryshonim logjikën e punës së tij, por do të ishte shumë më e lehtë të hiqnin marrëzi thirrjet për ndonjë nga metodat e tij nga vetë aplikacioni. Prandaj, ne dalim nga direktoria e marketingut dhe shkojmë te drejtoria fqinje e grimcave, dhe më pas te virtual Torch. vëmendje të veçantë skedari MainActivity.smali meriton këtu. Kjo është një klasë standarde Android që gjenerohet nga Android SDK dhe vendoset si pikë hyrëse në aplikacion (e ngjashme me funksionet kryesore në C). Hapni skedarin për redaktim.

Brenda është kodi smali (assembler lokal). Është mjaft konfuze dhe e vështirë për t'u lexuar për shkak të natyrës së tij të nivelit të ulët, kështu që ne nuk do ta studiojmë atë, por thjesht do t'i gjejmë të gjitha përmendjet e klasës Ad në kod dhe do t'i komentojmë ato. Ne futemi në vargun "Ad" në kërkim dhe arrijmë në rreshtin 25:

Reklamë private në terren:Lcom/kauf/marketing/Ad;

Këtu, krijohet një reklamë në terren për të ruajtur një objekt të klasës Ad. Ne komentojmë duke vendosur shenjën ### përpara rreshtit. Ne vazhdojmë kërkimin. Rreshti 423:

Instance e re v3, Lcom/kauf/marketing/Ad;

Këtu krijohet objekti. Ne komentojmë. Ne vazhdojmë kërkimin dhe gjejmë në linjat 433, 435, 466, 468, 738, 740, 800 dhe 802 thirrjet e metodave të klasës Ad. Ne komentojmë. Dukej se kaq është. Ne kursejmë. Tani paketa duhet të mblidhet përsëri dhe të kontrollohet për performancën e saj dhe praninë e reklamave. Për pastërtinë e eksperimentit, ne e kthejmë linjën e hequr nga AndroidManifest.xml, e mbledhim paketën, e nënshkruajmë dhe e instalojmë.

Derri ynë gini. Reklamim i dukshëm

Op-pa! Reklamimi u zhduk vetëm gjatë ekzekutimit të aplikacionit, por mbeti në menynë kryesore, të cilën e shohim kur lëshojmë softuerin. Pra, prisni, por pika e hyrjes është klasa MainActivity, dhe reklama u zhduk gjatë ekzekutimit të aplikacionit, por mbeti në menynë kryesore, pra pika e hyrjes është e ndryshme? Për të zbuluar pikën e vërtetë të hyrjes, ne rihapim skedarin AndroidManifest.xml. Dhe po, ai përmban rreshtat e mëposhtëm:

Ata na thonë (dhe më e rëndësishmja, androidi) se aktiviteti me emrin Start duhet të nisë në përgjigje të gjenerimit të synimit (ngjarjes) android.intent.action.MAIN nga kategoria android.intent.category.LAUNCHER. Kjo ngjarje gjenerohet kur trokitni lehtë mbi ikonën e aplikacionit në lëshuesin, kështu që ajo përcakton pikën e hyrjes, përkatësisht klasën Start. Me shumë mundësi, programuesi fillimisht shkroi një aplikacion pa një meny kryesore, pika hyrëse në të cilën ishte klasa standarde MainActivity, dhe më pas shtoi një dritare (aktivitet) të re që përmban menunë dhe të përshkruar në klasën Start, dhe e bëri manualisht një hyrje. pikë.

Hapim skedarin Start.smali dhe përsëri kërkojmë rreshtin "Ad", gjejmë në rreshtat 153 dhe 155 përmendjen e klasës FirstAd. Është gjithashtu në kodin burimor dhe, duke gjykuar nga emri, është përgjegjës për shfaqjen e reklamave në ekranin kryesor. Ne shikojmë më tej, ekziston një krijimi i një shembulli të klasës FirstAd dhe një qëllim, sipas kontekstit që lidhet me këtë shembull, dhe më pas etiketës cond_10, kalimi i kushtëzuar në të cilin kryhet pikërisht përpara krijimit të një shembulli të klasës. :

If-ne p1, v0, :cond_10 .rreshti 74 i ri-instance v0, Landroid/content/Intent; ... :cond_10

Me shumë mundësi programi është disi rastësisht llogarit nëse do të shfaqen reklamat në ekranin kryesor, dhe nëse jo, hidhet direkt në cond_10. Ok, le të thjeshtojmë detyrën e saj dhe të zëvendësojmë tranzicionin e kushtëzuar me një të pakushtëzuar:

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

Nuk ka më përmendje të FirstAd në kod, kështu që ne mbyllim skedarin dhe ri-montim pishtarin tonë virtual duke përdorur apktool. Kopjoni në smartphone, instaloni, ekzekutoni. Voila, të gjitha reklamat janë zhdukur, urime për të gjithë ne.

Rezultatet

Ky artikull është vetëm një hyrje e shkurtër e metodave të hapjes dhe modifikimit të aplikacioneve Android. Shumë çështje mbetën në prapaskenë, të tilla si heqja e mbrojtjes, analizimi i kodit të turbullt, përkthimi dhe zëvendësimi i burimeve të aplikacionit, si dhe modifikimi i aplikacioneve të shkruara me duke përdorur android NDK. Sidoqoftë, të kesh njohuri themelore, të kuptuarit e gjithë kësaj është vetëm çështje kohe.

Në këtë artikull do të mësoni se nga përbëhet një aplikacion android, si të hapni një skedar APK dhe me cilat programe.

Çfarë është një skedar APK?

Formati APK sistemi operativ Android, i përdorur për arkivimin e skedarëve të aplikacionit të ekzekutueshëm dhe emri i vetë skedarit mund të jetë çdo gjë, por zgjerimi duhet të duket vetëm si .apk. Analogët APK në sistemet e tjera operative janë .msi në Windows, .sis në Symbian, .rpm ose .deb në Linux.

Le të shohim se çfarë ka brenda
Në thelb .apk është Arkivi ZIP, kështu që mund të shikoni pajisjen e brendshme duke përdorur ndonjë menaxher skedari ose një arkivues si WinRAR ose aplikacioni celular Xplore.





Në të njëjtën kohë, ia vlen të mbani mend se ju merrni vetëm akses vizual në burimet e brendshme, opsionet e redaktimit janë jashtëzakonisht të kufizuara.
Merrni parasysh strukturën
Brenda .apk shohim një numër skedarësh dhe dosjesh, le të zbulojmë se për çfarë shërbejnë:
  • AndroidManifest.xml është një lloj "pasaporte" e aplikacionit nga e cila mund të mësoni të gjitha pikat kryesore, kërkesat, versionin, lejet dhe më shumë.
  • META-INF ky skedar përmban meta të dhëna, d.m.th. të dhëna për të dhënat, shumat e kontrollit, shtigjet e të dhënave, shtigjet e burimeve dhe shumat e kontrollit, certifikatat. Ju mund ta hapni këtë skedar me ndonjë redaktori i tekstit, por rekomandohet Notepad++.
  • Dosja res përmban të gjitha burimet e programit, grafike, si ikona, foto, tekst, elementë GUI. Ju gjithashtu mund të përdorni lehtësisht dosjen.
  • klasa.dex - i menjëhershëm kod programimi aplikacionet që funksionojnë Makine virtuale Dalvik VM, ju mund të shihni se çfarë ka brenda këtij skedari vetëm duke dekompiluar .apk, ne do të flasim për këtë në artikuj të tjerë. burimet.arsc -përpiluar skedar XML, ky skedar përmban të dhëna për të gjitha burimet e përfshira në program.
  • lib - një dosje me biblioteka vendase, burimet e të cilave mund të aksesohen vetëm kur përdorni programe të specializuara. Gjithashtu në APK, mund të ketë skedarë dhe dosje të tilla si com, org, udk, por jo gjithmonë.

Tani le të shohim strukturën e brendshme në më shumë detaje, për këtë na duhet një program dekompilues, Java dhe një skedar APK. Mjeti kryesor për çmontimin e .apk është Apktool, por këtë program punon vetëm nga linja, e cila nuk është shumë e përshtatshme. Për analizë më të shpejtë dhe më të përshtatshme, mund të përdorni APKing, është ende i njëjti Apktool, por me aftësinë për të punuar nga menyja e kontekstit.
Dhe kështu instalojmë APKing si çdo aplikacion për Windows dhe duke zgjedhur .apk klikojmë mbi të me butonin e djathtë të mausit dhe në të njëjtën kohë Shift, pas së cilës do të shohim sa vijon:


Dhe ne zgjedhim veprimin e nevojshëm, për shembull, dekompilojmë plotësisht, atëherë programi do të përfundojë operacionin dhe do të krijojë një dosje me të njëjtin emër.


Duke hapur dosjen, do të kemi akses në të gjitha burimet e skedarit APK.


Kjo eshte skedarët e tekstit mund të modifikohet, duke respektuar rregullat bazë, mund të përdorni programin popullor Notepad ++, për shembull, merrni parasysh AndroidManifest.xml

Apk editor pro, të cilin mund ta shkarkoni për android në faqen tonë të internetit, do t'ju lejojë të hakoni / ndryshoni përmbajtjen e skedarëve të çdo aplikacioni për pajisje celulare dhe përshtateni sipas dëshirës tuaj.

Veçoritë

Programi është një mjet profesional që në duart e përdoruesve të avancuar mund të bëhet një mjet i fuqishëm për redaktimin e aplikacioneve për android. Funksionaliteti është praktikisht i njëjtë software për kompjuterë personalë.

Çfarë mund të bëjë ky shërbim?

  1. Ndryshoni (përktheni) emrat e aplikacioneve të tjera.
  2. Ndryshoni paraqitjet e arkitekturës, ngjyrat, shabllonet e cilësimeve grafike (p.sh. madhësia e ikonës).
  3. Ndryshoni dizajnin e zërit, skedarët e medias.
  4. Hiq reklamat.
  5. Anashkaloni bllokimin e përmbajtjes me pagesë.
  6. Zhvendosni aplikacionin nga memoria e brendshme e pajisjes në kartën SD.
  7. Ndryshoni rezolucionin dhe më shumë.

Për të kuptuar se si të përdorni programin, duhet të shkarkoni apk editor pro dhe të shkoni te menyja. Pastaj zgjidhni njërën aplikacioni i instaluar në android ose skedar apk. Pas kësaj, si parazgjedhje, do të hapen të dhënat që përdoruesi mund të ndryshojë:

  • redaktimi i burimeve;
  • zëvendësimi i skedarit;
  • redaktimi i përgjithshëm;
  • redaktimi i të dhënave.

Programi do t'ju kërkojë të instaloni versionin e modifikuar. Nuk funksionon në të gjitha rastet, kështu që version i vjeter duhet të hiqet manualisht dhe të instalohet një i ri. Pas çinstalimit, zgjidhni dosjen e redaktuesit apk (për lehtësi, mund të përdorni ES Explorer) midis programeve në android dhe gjeni skedarin e modifikuar të aplikacionit, instaloni atë në pajisje.

Programi është i ndryshëm ndërfaqe miqësore për përdoruesit. Navigimi është mjaft i thjeshtë, por përdoruesi duhet të ketë njohuri bazë të gjuhës angleze për ta marrë atë siç duhet.

Avantazhet dhe disavantazhet

  1. Programi i ofron përdoruesit një gamë të gjerë opsionesh për personalizimin e aplikacioneve.
  2. Ekziston një seksion Ndihmë në meny, i cili përshkruan thjesht dhe në detaje një sasi të madhe të veçorive të programit të redaktorit. Prandaj, përdoruesit që janë larg programimit nuk do të duhet të kërkojnë shembuj dhe udhëzime redaktimi në burimet e palëve të treta.
  3. Ju mund ta shkarkoni programin falas nga faqja jonë e internetit.

Përdorimi i këtij mjeti kërkon disa aftësi dhe njohuri. Në duart e një përdoruesi të papërvojë, redaktimi mund të çojë në shkelje të integritetit sistemi i skedarëve, e cila përfundimisht do të shkaktojë dështimin e aplikacioneve. Në menynë në artikullin Ndihmë ka shembuj të konvertimit me fotografi dhe këshilla për përdorimin e saktë të apk editor pro në android. Prandaj, nëse doni të merreni me këtë program, thjesht ndiqni udhëzimet.

Redaktori është një mjet mjaft i dobishëm për ata që përballen me një ndërfaqe të papërshtatshme aplikacioni (mungesë e gjuhës ruse, reklama të vazhdueshme, banderola, etj.). Nëse e keni përdorur tashmë këtë program, ndani përshtypjet tuaja më poshtë në komente.



Po ngarkohet...
Top