Android-də apk formatını necə açmaq olar. Apk faylı nədir, onu necə açmaq və onunla necə işləmək olar

İstifadəçilər kompüterlərində heç bir proqramın belə faylları açmaması ilə üzləşirlər. Və bu tamamilə normaldır, çünki APK uzantısı olan bir fayl Android əməliyyat sistemi üçün quraşdırma faylıdır və belə bir faylı Windows-da işə salmaq mümkün deyil.

Özünüzü oxşar vəziyyətdə tapırsınızsa və APK faylını necə açacağınızı bilmirsinizsə, onda iki seçiminiz var:

  • APK faylını Android cihazınıza köçürün və faylı orada işə salın. Bu halda, siz bu faylda olan proqramla tanış ola biləcəksiniz.
  • Siz həmçinin APK faylını Windows kompüterinizdə çıxara bilərsiniz. Bu halda, siz bu faylın strukturu, eləcə də məzmunu ilə tanış ola bilərsiniz.,

APK faylını işə salmaq və onun içindəki proqramla tanış olmaq istəyirsinizsə, ilk işiniz bu faylı Android cihazınıza köçürməkdir. Bu, sizin üçün əlverişli olan hər hansı bir şəkildə edilə bilər. Məsələn, USB kabel və ya Bluetooth simsiz interfeysindən istifadə edərək Android cihazınızı kompüterinizə qoşa bilərsiniz.

Bundan sonra, Android əməliyyat sistemi olan mobil cihazda onu işə salmalısınız. Bunu etmək üçün hər hansı bir fayl menecerini açın, cihazın yaddaşında APK faylını tapın və açın. Bundan sonra bu faylda olan cümlə görünəcək. Quraşdırıldıqdan sonra Android masaüstündə quraşdırılmış proqrama qısa yol görünəcək. Bununla siz proqramı APK faylınızdan aça bilərsiniz.

İkinci üsul, APK faylını arxivatordan istifadə edərək Windows kompüterində açmaqdır. Fakt budur ki, APK faylı əslində sadədir. Buna görə də onu istənilən arxivatordan istifadə edərək aça bilərsiniz. Məsələn, bu məqsədlər üçün məşhur WinRAR arxivindən istifadə edə bilərsiniz.

APK faylını arxiv kimi açmaqla onun nədən ibarət olduğunu görə bilərsiniz. Əksər hallarda bu fayla aşağıdakı qovluqlar və fayllar daxildir:

    • MANIFEST.MF – bu APK faylında olan digər fayllar haqqında məlumat olan fayl (fayl yoxlama məbləğləri);
    • CERT.RSA – bu ərizənin imzalandığı sertifikat;
    • CERT.SF – sertifikat və resurslar haqqında məlumat olan fayl;
  • lib – Dəstəklənən hər bir prosessor növü üçün Linux kitabxanaları burada saxlanılır:

    • armeabi – ARMv6 və daha köhnə prosessorlar üçün;
    • armeabi-v7a – ARMv7 və daha yeni prosessorlar üçün;
    • x86 – x86 arxitekturalı prosessorlar üçün;
    • mips – MIPS prosessorları üçün;
  • res – resources.arsc-də faylda olmayan resurslar (aşağıya bax).
  • Aktivlər – AssetManager üçün resurslar.
  • AndroidManifest.xml – bu proqramı təsvir edən fayl. Bu proqramın adını, paketin adını, proqram versiyasını və həmin proqrama aid olan digər məlumatları saxlayır.
  • classes.dex – DEX formatında icra edilə bilən proqram kodu;
  • resources.arsc – proqramın işləməsi üçün lazım olan tərtib edilmiş resurslar;

ARK fayllarının açılması kifayət qədər populyar bir sualdır. Bu tip sənəd smartfon və planşetlərdə istifadə olunur. Onlar proqramları cihazlara quraşdırmaq imkanı verir. Quraşdırma paketinə fayllar və proqramın özü daxildir.


APK fayllarını kompüterdə necə açmaq və onları necə işə salmaq barədə sual yaranarsa, bunun üçün xüsusi Android simulyatorlarının olduğunu bilməlisiniz. Bunlara YouWave və BlueStacks daxildir. Belə hərəkətləri həyata keçirməyə imkan yaradırlar. Bu halda 7-Zip adlı alətə diqqət yetirməyə dəyər. Bu pulsuz arxivdir. İnterfeys Proqram sadə interfeysə malikdir. Pəncərə aşağıdakılardan ibarətdir:

Əsas menyu;
fayl meneceri;
alətlər panelləri.

Rus dilində göstərişləri olan funksional düymələr istifadəyə rahatlıq əlavə edir. Alət quraşdırıldıqdan sonra avtomatik olaraq OS menyusuna inteqrasiya edə bilir. Komanda xəttindən istifadə etmək mümkündür.

Tərtibatçı Platforması

Əgər kompüterinizdə APK faylları açmaq və onlara düzəlişlər etmək lazımdırsa, Eclipse tətbiqinə diqqət yetirməlisiniz. Açıq mənbə koduna əsaslanır. Tətbiqin əsas məqsədi proqram təminatının hazırlanması prosesində məhsuldarlığı artırmaqdır. Platforma müxtəlif əməliyyat sistemləri ilə işləməkdə sabitdir.

WinRAR

Bu, APK fayllarını nəzərdən keçirmək üçün kompüterdə aça bilən arxivçidir. Kommunal məlumat emalının yüksək sürətinə malikdir. WinRAR sizə məlumat massivini müəyyən ölçülərdə müəyyən sayda həcmlərə bölməyə imkan verir. Tətbiq həmçinin informasiya təhlükəsizliyini təmin etməyə imkan verir. Bunun üçün parol istifadə olunur.

Kompüterdə APK sənədini necə açmaqla bağlı sualınız varsa, WinZip proqramına diqqət yetirməlisiniz. Bu faylları sıxışdırmaq üçün nəzərdə tutulmuş proqramdır. O, həmçinin tələb olunan məlumat paketlərini açmağa qadirdir. Proqramda intuitiv interfeysə daxil edilmiş çoxlu müxtəlif alətlər var. Faydalı proqramın danılmaz üstünlüyü materialın çıxarılmasını mümkün qədər asanlaşdıran xüsusi bir sehrbazdır. Müəyyən aparıcı suallara diqqət yetirmək ehtiyacı da daxil olmaqla, hərəkətlərin ardıcıllığına riayət etmək kifayətdir.

Proqram zədələnmiş məlumatları bərpa etməyə imkan verir. Bundan əlavə, fayllardakı səhvlərin yoxlanılması və onların düzəldilməsi avtomatik olaraq həyata keçirilir. E-poçtdan istifadə edərkən paketi birbaşa proqramdan dostunuza yönləndirmək mümkündür. Bu vəzifə daxili alətlərə verilir.

İsti düymələr birdən çox faylı eyni vaxtda emal etməyə imkan verir. Proqram sistem menyusuna inteqrasiya oluna bilər, ona görə də alətdən istifadə etmək çox sadədir. Lazım gələrsə, hər zaman kömək etməyə hazır olduqları bir dəstək mərkəzi var. İnkişaf komandası ilə e-poçt vasitəsilə əlaqə saxlamaq asandır.

Digər kommunal xidmətlər

Kompüterinizdə APK faylını açmaq üçün digər proqramları da nəzərdən keçirməyə dəyər. Onlardan biri Hamster Freedir. Bu arxivatordan istifadə etmək asandır və çoxnüvəli prosessorları tam dəstəkləyir. Proqramın istifadəsi pulsuzdur, gözəl interfeysə malikdir və rus dilini dəstəkləyir. Menyuya inteqrasiya sayəsində siz məlumat paketlərini çıxarmaq seçimi daxil olmaqla, əsas funksiyalara dərhal daxil ola bilərsiniz.

Universal Extractor adlı başqa bir proqram var. O, həmçinin təqdim olunan məlumat növü ilə işləməyi dəstəkləyir. Tətbiq paketdən məlumat çıxarmağa imkan verir. İşi mükəmməl yerinə yetirəcək bir yardım proqramı olan ExtractNow-u da qeyd etmək lazımdır. Proqram faylları açmağı və onları qablaşdırmağı yaxşı bilir.

Eyni anda bir neçə paketdən məlumat çıxarmaq mümkündür. Proqram sadə interfeysə malikdir. Verilənləri emal etmək üçün onu siçanla əsas pəncərəyə köçürmək kifayətdir. Bundan əlavə, proqram məlumat axtarış sistemindən istifadə edir. Lazım gələrsə, kömək alətləri verilir. Proqram minimuma endirilirsə, sistemin bildiriş sahəsində xüsusi bir simge görünəcək. "Bütün pəncərələrin üstündə" adlı bir funksiya da var. Görülən bütün əməliyyatlar hesabatlarda göstərilir.

Sonda YouWave proqramı haqqında bir neçə söz demək istərdim. O, kompüterinizdə virtual maşın işlətməyə imkan verir, onunla Android üçün proqramlar və oyunlar oynaya bilərsiniz.

ARK fayllarını açmaq üçün təqdim olunan üsullardan maksimum rahatlıq yaradacaq birini seçə bilərsiniz.

Bu yazıda Android-də *.apk fayllarından proqram və ya oyunları necə quraşdırmaq barədə danışacağıq. Gec və ya tez, Android ilə işləyən cihazların sahibləri sistemin standart funksionallığının cansıxıcı olduğu və onu genişləndirmək üçün qarşısıalınmaz bir istək meydana gəldiyi bir vəziyyətlə qarşılaşırlar.

Tətbiqlərin quraşdırılmasının iTunes Store ilə işləməyə əsaslandığı iOS-dan fərqli olaraq, Google tərtibatçıları standart alətlərdən istifadə edərək proqramların quraşdırılması imkanını təmin ediblər. Ancaq bunun üçün naməlum mənbələrdən olan proqramların quraşdırılmasına icazə verməlisiniz, Parametrlər -> Proqramlar bölməsinə keçin və Naməlum mənbələrin yanındakı qutuyu işarələyin.

Android əməliyyat sistemi üçün bütün proqramlar *.apk fayl uzantısı ilə gəlir. Bu cür faylların strukturuna gəlincə, mahiyyətcə apk faylı adi bir arxivdir, məzmununa istənilən arxivçi ilə baxa bilərsiniz. Android əməliyyat sistemi bu cür faylları müstəqil olaraq tanıyır və onlarla nə etmək lazım olduğunu başa düşür. Beləliklə, Android-də proqramları bir neçə yolla quraşdıra bilərsiniz.

1. Android-də *.apk faylını quraşdırın

Birincisi və fikrimizcə, ən çox yayılmış yol fayl menecerindən istifadə edərək Android-də *.apk faylını quraşdırmaqdır. Bunun üçün sizə lazım olan tək şey *.apk faylını cihazınızın SD kartına köçürməkdir. Sonra proqramları quraşdırmaq imkanı olan hər hansı mövcud fayl menecerindən istifadə edin. ASTRO File Manager və ya ES File Explorer istifadə etməyi tövsiyə edirik.

Sonra fayl menecerini işə salın, *.apk faylını tapın və standart Android quraşdırıcısından istifadə edərək proqramı quraşdırın.

Bundan əlavə, standart brauzerdən istifadə edərək, fayl menecerlərindən istifadə etmədən proqramı quraşdıra bilərsiniz. Sadəcə ünvan çubuğuna content://com.android.htmlfileprovider/sdcard/FileName.apk daxil edin və quraşdırma avtomatik olaraq başlayacaq. Bu nümunədə *.apk faylı SD kartın kök qovluğunda yerləşir.

2. Proqram menecerindən istifadə edərək quraşdırma

Android-də *.apk fayllarını quraşdırmağın ikinci, ən asan yolu proqram menecerlərindən istifadə etməkdir. Bu proqramlar *.apk faylları vasitəsilə proqramların quraşdırılmasını mümkün qədər sadələşdirmək üçün yaradılmışdır. Və bu həqiqətdir! Sizə tövsiyə etdiyimiz SlideME Mobentoo App Installer adlı proqramı sınaqdan keçirdik.

SlideME Mobentoo Tətbiq Quraşdırıcısı cihazınızın SD kartını mümkün qədər tez skan edəcək və tapılan bütün *.apk fayllarının siyahısını göstərəcək. Bundan sonra, demək olar ki, bir kliklə lazımi proqramları asanlıqla quraşdıra bilərsiniz.

3. Kompyuter və USB vasitəsilə quraşdırma

Yuxarıda göstərilənlərə əlavə olaraq, bir daha bilirik və bəlkə də ən əlverişli yol - Android cihazını USB kabel vasitəsilə kompüterə qoşaraq *.apk proqramlarının quraşdırılması. InstallAPK proqramından və USB sürücülərindən istifadə etməyi tövsiyə edirik.

Sadəcə olaraq, InstallAPK proqramını kompüterinizə quraşdırın, sonra smartfonunuzu USB kabel vasitəsilə birləşdirin və *.apk faylına iki dəfə klikləyin. Proqram müstəqil olaraq *.apk faylını müəyyən edəcək və tətbiqi Android cihazınızda quraşdırmağa başlayacaq.

Nəinki peşəkar mobil proqram tərtibatçıları, hətta bəzən ən adi istifadəçilər də kompüterlərində APK fayllarını açmaq üçün hansı proqrama sahib olduqları ilə maraqlanırlar. Həm də - hansı ən yaxşısıdır. Əslində bu suala birmənalı cavab vermək mümkün deyil. Hamısı ARC faylını açmağı planlaşdırdığınız dəqiq məqsədlərdən asılıdır.

ARK faylı nədir?

Əslində, bu fayl formatı adi ZIP arxivindən başqa bir şey deyil. Onun içərisində Android mobil əməliyyat sistemində tətbiqin uğurlu işləməsi üçün lazım olan hər cür proqram komponentləri var. Və ümumiyyətlə, ARK formatı bu əməliyyat sistemi üçün "doğma" formatdır. Müvafiq olaraq, müəyyən bir proqramın APK faylını yükləmək haqqında danışarkən, demək istədikləri sadəcə Android üçün proqramı yükləməkdir.

ARK faylları necə və niyə açılır

Kompüterdə APK faylları üçün ən yaxşı proqramın hansı olması sualına qayıdaraq, əvvəlcə bunun hansı məqsədlə edilməsinə qərar vermək yaxşı olardı:

  1. Sadəcə olaraq mobil proqramı kompüterinizdə işə salmaq üçün;
  2. ARK arxivini kompüterinizdə paketdən çıxarmaq üçün;
  3. Yaxud təkcə bu arxivi çap etmək deyil, həm də ona dəyişiklik edə bilmək.

Birinci halda, sizə sözdə emulyatorlara diqqət yetirməyi məsləhət görə bilərik. Bunlar mobil proqramları birbaşa şəxsi kompüterinizdə işə salmağa imkan verən xüsusi proqramlardır. Hal-hazırda, bir çox oxşar proqramlar var və konkret bir şey tövsiyə etmək çox çətindir. Bir çox istifadəçi məşhurlara üstünlük verir .. Bununla belə, başqa emulyatorlar da var.

Arxivi açmaq lazımdırsa, ARK faylı, artıq qeyd edildiyi kimi, ən adi kompüter arxivi olduğundan, demək olar ki, hər hansı bir Windows arxivatorundan istifadə edərək çap edilə bilər. Məsələn, məşhur Win RAR bu vəzifənin öhdəsindən mükəmməl gələcək.

Kompüterində Apple əməliyyat sistemi olanlar üçün kimi bir proqram tövsiyə edə bilərik Arxiv Utiliti. Bu, həm də maraqlılara sirli ARK arxivinin içərisində nə olduğunu öyrənməyə imkan verəcək.

Yaxşı, təkcə arxivi açmaq deyil, həm də təhlil etmək, həm də ona dəyişikliklər etmək və yenidən yığmaq üçün tərtibatçılar üçün ayrıca proqramlar var. Məsələn, APK fayllarını kompüterdə oxumaq və APK formatları ilə işləmək üçün proqram təklif olunur - . Bu, öz emulyatoru və s. olan həqiqətən peşəkar alətlər dəstidir.


Bəzən Android-də bəzi proqramlar istifadəçiyə müəyyən mənada uyğun gəlmir. Buna misal olaraq intruziv reklamı göstərmək olar. Həm də olur ki, proqram hamı üçün yaxşıdır, amma içindəki tərcümə ya əyri, ya da tamamilə yoxdur. Və ya, məsələn, proqram sınaqdır, lakin tam versiyanı əldə etmək üçün heç bir yol yoxdur. Vəziyyəti necə dəyişdirmək olar?

Giriş

Bu yazıda APK paketini proqramla necə sökmək, onun daxili strukturuna baxmaq, bayt kodunu sökmək və dekompilyasiya etmək, həmçinin bizə bu və ya digər fayda gətirə biləcək tətbiqlərdə bir neçə dəyişiklik etməyə çalışacağıq.

Bütün bunları özünüz etmək üçün sizə Android proqramlarının yazıldığı Java dili və Android-də hər yerdə istifadə olunan XML dili haqqında ən azı əsas biliklərə ehtiyacınız olacaq - tətbiqin özünü və onun giriş hüquqlarını təsvir etməkdən tutmuş sətirləri saxlamağa qədər. ekranda görünəcək. Siz həmçinin xüsusi konsol proqram təminatından istifadə etmək bacarığına ehtiyacınız olacaq.

Beləliklə, tamamilə bütün Android proqramının paylandığı APK paketi nədir?

Tətbiqin dekompilyasiyası

Bu yazıda biz yalnız sökülən proqram kodu ilə işlədik, lakin böyük proqramlarda daha ciddi dəyişikliklər edilərsə, smali kodunu anlamaq çox çətin olacaq. Xoşbəxtlikdən, dex kodunu Java koduna dekompilyasiya edə bilərik, bu, orijinal olmasa da və geri tərtib edilməsə də, tətbiqin məntiqini oxumaq və başa düşmək daha asandır. Bunu etmək üçün bizə iki vasitə lazımdır:

  • dex2jar Dalvik bayt kodunun JVM bayt koduna tərcüməçisidir, bunun əsasında Java dilində kod əldə edə bilərik;
  • jd-gui, JVM bayt kodundan oxunaqlı Java kodu əldə etməyə imkan verən dekompilyatorun özüdür. Alternativ olaraq siz Jad (www.varaneckas.com/jad) istifadə edə bilərsiniz; Olduqca köhnə olmasına baxmayaraq, bəzi hallarda Jd-gui-dən daha oxunaqlı kod yaradır.

Onlardan belə istifadə edilməlidir. Əvvəlcə apk paketinə gedən yolu arqument kimi göstərərək dex2jar-ı işə salırıq:

% dex2jar.sh mail.apk

Nəticədə, Java koduna baxmaq üçün jd-gui-də artıq açıla bilən cari kataloqda mail.jar Java paketi görünəcək.

APK paketlərinin təşkili və qəbulu

Android proqram paketi mahiyyətcə məzmununa baxmaq və ya çıxarmaq üçün heç bir xüsusi alət tələb etməyən adi ZIP faylıdır. Arxivatorun olması kifayətdir - Windows üçün 7zip və ya Linux-da konsol unzip. Ancaq bu, sarğı haqqındadır. İçində nə var? Ümumiyyətlə, içəridə aşağıdakı quruluşumuz var:

  • META-INF/- proqramın yaradıcısını müəyyən edən rəqəmsal sertifikatı və paket fayllarının yoxlama məbləğlərini ehtiva edir;
  • res/ - tətbiqin öz işində istifadə etdiyi müxtəlif resurslar, məsələn, şəkillər, interfeysin deklarativ təsviri, həmçinin digər məlumatlar;
  • AndroidManifest.xml- tətbiqin təsviri. Buraya, məsələn, tələb olunan icazələrin siyahısı, tələb olunan Android versiyası və tələb olunan ekran qətnaməsi daxildir;
  • siniflər.dex- Dalvik virtual maşını üçün tərtib edilmiş proqram bayt kodu;
  • resurslar.arsc- həm də resurslar, lakin fərqli bir növ - xüsusən də sətirlər (bəli, bu fayl Ruslaşdırma üçün istifadə edilə bilər!).

Sadalanan fayllar və qovluqlar, ümumiyyətlə, olmasa da, bəlkə də APK-lərin böyük əksəriyyətindədir. Bununla belə, qeyd etməyə dəyər bir neçə daha az yayılmış fayl/kataloq var:

  • aktivlər- resursların analoqu. Əsas fərq ondan ibarətdir ki, resursa daxil olmaq üçün onun identifikatorunu bilmək lazımdır, lakin aktivlərin siyahısı tətbiq kodunda AssetManager.list() metodundan istifadə etməklə dinamik şəkildə əldə edilə bilər;
  • lib- NDK (Native Development Kit) istifadə edərək yazılmış doğma Linux kitabxanaları.

Bu kataloqdan C/C++ dilində yazılmış oyun mühərrikini orada yerləşdirən oyun istehsalçıları, həmçinin yüksək performanslı proqramların yaradıcıları (məsələn, Google Chrome) tərəfindən istifadə olunur. Cihazı tapdıq. Bəs sizi maraqlandıran tətbiqin paket faylını necə əldə etmək olar? Kök olmadan APK fayllarını cihazdan götürmək mümkün olmadığından (onlar /data/app qovluğunda yerləşir) və kökləmə həmişə məsləhət görülmədiyi üçün proqram faylını kompüterinizə çatdırmağın ən azı üç yolu var:

  • Chrome üçün APK Downloader uzantısı;
  • Real APK Leecher proqramı;
  • müxtəlif fayl hosting və Varezniks.

Hansından istifadə etmək zövq məsələsidir; biz ayrı-ayrı proqramlardan istifadə etməyi üstün tuturuq, ona görə də Real APK Leecher-in istifadəsini təsvir edəcəyik, xüsusən də o, Java-da yazılmışdır və müvafiq olaraq Windows və ya Nix-də işləyəcəkdir.

Proqramı işə saldıqdan sonra üç sahəni doldurmalısınız: E-poçt, Parol və Cihaz ID - və dil seçin. İlk ikisi cihazda istifadə etdiyiniz Google hesabınızın e-poçtu və paroludur. Üçüncüsü, cihazın identifikatorudur və kodu yığan cihaza yazmaqla əldə edilə bilər # #8255## və sonra Cihaz ID xəttini tapın. Doldurarkən, yalnız android- prefiksi olmadan ID-ni daxil etməlisiniz.

Doldurub saxladıqdan sonra tez-tez "Serverə qoşulma zamanı xəta" mesajı görünür. Bunun Google Play ilə heç bir əlaqəsi yoxdur, ona görə də ona məhəl qoymayın və sizi maraqlandıran paketləri axtarın.

Baxın və dəyişdirin

Tutaq ki, sizi maraqlandıran bir paket tapdınız, onu endirdiniz, paketdən çıxardınız... və bəzi XML faylına baxmaq istəyəndə bu faylın mətn olmadığını görəndə təəccübləndiniz. Onu necə dekompilyasiya etmək və ümumiyyətlə paketlərlə necə işləmək olar? SDK quraşdırmaq həqiqətən lazımdırmı? Xeyr, ümumiyyətlə SDK quraşdırmaq lazım deyil. Əslində, APK paketlərini çıxarmaq, dəyişdirmək və paketləmək üçün bütün addımlar aşağıdakı alətləri tələb edir:

  • ZIP arxivi qablaşdırma və qablaşdırma üçün;
  • smali- Dalvik virtual maşın bayt kodu montajçısı/sökücü (code.google.com/p/smali);
  • aapt- resursların qablaşdırılması üçün alət (standart olaraq, tətbiqin işini optimallaşdırmaq üçün resurslar ikili formada saxlanılır). Android SDK-ya daxildir, lakin ayrıca əldə edilə bilər;
  • imzalayan- dəyişdirilmiş paketi rəqəmsal imzalamaq üçün alət (bit.ly/Rmrv4M).

Bütün bu vasitələrdən ayrıca istifadə edə bilərsiniz, lakin bu əlverişsizdir, ona görə də onların əsasında qurulmuş daha yüksək səviyyəli proqram təminatından istifadə etmək daha yaxşıdır. Linux və ya Mac OS X üzərində işləyirsinizsə, apktool adlı bir alət var. O, resursları orijinal formada (ikili XML və arsc faylları daxil olmaqla) paketdən çıxarmağa, dəyişdirilmiş resurslarla paketi yenidən qurmağa imkan verir, lakin o, paketləri necə imzalamağı bilmir, ona görə də imzalayan yardım proqramını əl ilə işə salmalı olacaqsınız. Yardımçı proqramın Java-da yazılmasına baxmayaraq, onun quraşdırılması olduqca qeyri-standartdır. Əvvəlcə jar faylının özünü əldə etməlisiniz:

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

Əgər siz Windows-da işləyirsinizsə, onda onun üçün Virtuous Ten Studio adlı əla alət var ki, o da bütün bu vasitələri (apktoolun özü də daxil olmaqla) özündə cəmləşdirir, lakin CLI interfeysi əvəzinə istifadəçiyə intuitiv qrafik interfeys təqdim edir. bir neçə kliklə qabların açılması, sökülməsi və dekompilyasiyası üçün əməliyyatları yerinə yetirin. Bu alət Donation-ware-dir, yəni bəzən lisenziya almağı xahiş edən pəncərələr görünür, lakin sonda buna dözmək olar. Bunu təsvir etməyin mənası yoxdur, çünki interfeysi bir neçə dəqiqə ərzində başa düşə bilərsiniz. Lakin apktool, konsol xarakterinə görə, daha ətraflı müzakirə edilməlidir.


Gəlin apktool seçimlərinə baxaq. Bir sözlə, üç əsas əmr var: d (deşifrə), b (qurmaq) və if (quraşdırma çərçivəsi). Əgər ilk iki əmrlə hər şey aydındırsa, onda üçüncü, şərti ifadə nə edir? O, hər hansı bir sistem paketini parçaladığınız hallarda lazım olan müəyyən edilmiş UI çərçivəsini açır.

Birinci əmrin ən maraqlı variantlarına baxaq:

  • -s- dex fayllarını sökməyin;
  • -r- resursları qablaşdırmadan çıxarmayın;
  • -b- dex faylının sökülməsinin nəticələrinə sazlama məlumatı daxil etməyin;
  • --çərçivə yolu- apktool-da quraşdırılmış interfeys əvəzinə müəyyən edilmiş UI çərçivəsini istifadə edin. İndi b əmri üçün bir neçə varianta baxaq:
  • -f- dəyişiklikləri yoxlamadan məcburi montaj;
  • -a- nədənsə başqa mənbədən istifadə etmək istəsəniz, aapt-a (APK arxivi yaratmaq üçün alət) yolunu göstərin.

Bunu etmək üçün apktool-dan istifadə etmək çox sadədir, sadəcə olaraq əmrlərdən birini və APK-ya gedən yolu göstərin, məsələn:

$ apktool d mail.apk

Bundan sonra paketin bütün çıxarılan və sökülən faylları poçt kataloqunda görünəcək.

Hazırlıq. Reklamın deaktiv edilməsi

Nəzəriyyə, əlbəttə ki, yaxşıdır, amma qablaşdırılmamış paketlə nə edəcəyimizi bilmiriksə, nəyə ehtiyac var? Gəlin nəzəriyyəni öz xeyrimizə tətbiq etməyə çalışaq, yəni bəzi proqram təminatını elə dəyişdirək ki, o, bizə reklam göstərməsin. Məsələn, Virtual Məşəl olsun - virtual məşəl. Bu proqram bizim üçün idealdır, çünki o, zəhlətökən reklamlarla doludur və üstəlik, kod cəngəlliyində itməmək üçün kifayət qədər sadədir.


Beləliklə, yuxarıda göstərilən üsullardan birini istifadə edərək, proqramı bazardan yükləyin. Əgər Virtuous Ten Studio-dan istifadə etmək qərarına gəlsəniz, sadəcə olaraq proqramda APK faylını açın və onu açın, layihə yaradın (Fayl -> Yeni layihə), sonra layihənin kontekst menyusunda Faylı İmport et seçin. Seçiminiz apktool-a düşdüsə, sadəcə bir əmri yerinə yetirin:

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

Bundan sonra, com.kauf.particle.virtualtorch kataloqunda əvvəlki bölmədə təsvir edilənə bənzər bir fayl ağacı görünəcək, lakin dex faylları və apktool.yml faylı əvəzinə əlavə smali kataloqu ilə. Birincisi proqramın icra edilə bilən dex faylının sökülən kodunu, ikincisi apktool-un paketi geri yığması üçün lazım olan xidmət məlumatlarını ehtiva edir.

Baxmalı olduğumuz ilk yer, əlbəttə ki, AndroidManifest.xml-dir. Və burada dərhal aşağıdakı sətirlə qarşılaşırıq:

Tətbiqə İnternet bağlantısından istifadə üçün icazələrin verilməsindən məsul olduğunu təxmin etmək çətin deyil. Əslində, sadəcə reklamdan xilas olmaq istəyiriksə, çox güman ki, sadəcə tətbiqi İnternetdən bloklamalıyıq. Gəlin bunu etməyə çalışaq. Göstərilən xətti silirik və apktool istifadə edərək proqramı qurmağa çalışırıq:

$ apktool b com.kauf.particle.virtualtorch

Nəticədə yaranan APK faylı com.kauf.particle.virtualtorch/build/ kataloqunda görünəcək. Bununla belə, onu quraşdırmaq mümkün olmayacaq, çünki onun rəqəmsal imzası və fayl yoxlama məbləğləri yoxdur (sadəcə META-INF/ kataloqu yoxdur). Biz apk-signer yardım proqramından istifadə edərək paketi imzalamalıyıq. Başladı. İnterfeys iki nişandan ibarətdir - birincidə (Açar Generator) açarlar yaradırıq, ikincisində (APK Signer) imzalayırıq. Şəxsi açarımızı yaratmaq üçün aşağıdakı sahələri doldurun:

  • Hədəf Faylı- açar anbarının çıxış faylı; adətən bir cüt açarı saxlayır;
  • parolTəsdiq edin- saxlama üçün parol;
  • ləqəb- anbarda olan açarın adı;
  • ləqəb parolTəsdiq edin- gizli açar parol;
  • Etibarlılıq- etibarlılıq müddəti (illərlə). Varsayılan dəyər optimaldır.

Qalan sahələr, ümumiyyətlə, isteğe bağlıdır - lakin ən azı biri doldurulmalıdır.


XƏBƏRDARLIQ

apk-signer istifadə edərək proqram imzalamaq üçün siz Android SDK quraşdırmalı və proqram parametrlərində ona gedən tam yolu göstərməlisiniz.

Bütün məlumatlar yalnız məlumat məqsədləri üçün verilir. Nə redaktorlar, nə də müəllif bu məqalənin materiallarının vurduğu hər hansı mümkün zərərə görə məsuliyyət daşımır.

İndi bu açarla APK-nı imzalaya bilərsiniz. APK İmzalayan sekmesinde, yeni yaradılan faylı seçin, parol, əsas ləqəbi və parolu daxil edin, sonra APK faylını tapın və cəsarətlə "İmzala" düyməsini basın. Hər şey yaxşı olarsa, paket imzalanacaq.

MƏLUMAT

Paketi öz açarımızla imzaladığımız üçün o, orijinal proqramla ziddiyyət təşkil edəcək, yəni proqram təminatını bazar vasitəsilə yeniləməyə çalışdığımız zaman xəta alacağıq.

Rəqəmsal imza yalnız üçüncü tərəf proqram təminatı üçün tələb olunur, ona görə də siz quraşdırılmış sistem proqramlarını /system/app/ qovluğuna kopyalayaraq dəyişdirirsinizsə, onları imzalamağa ehtiyac yoxdur.

Bundan sonra paketi smartfonunuza endirin, quraşdırın və işə salın. Voila, reklam getdi! Bunun əvəzinə, İnternetin olmadığı və ya müvafiq icazələrin olmadığı mesajı ortaya çıxdı. Teorik olaraq, bu kifayət qədər ola bilər, lakin mesaj zəhlətökən görünür və düzünü desəm, axmaq bir tətbiqlə bəxtimiz gətirdi. Normalda yazılmış proqram təminatı çox güman ki, öz etimadnaməsini aydınlaşdıracaq və ya İnternet bağlantısını yoxlayacaq və əks halda sadəcə işə salmaqdan imtina edəcək. Bu halda nə etməli? Əlbəttə ki, kodu redaktə edin.

Tipik olaraq, proqram müəllifləri proqram və ya onun "fəaliyyətlərindən" biri (sadə dillə desək, proqram ekranları) işə salındıqda reklamların nümayişi və bu siniflərin çağırış metodları üçün xüsusi siniflər yaradırlar. Gəlin bu sinifləri tapmağa çalışaq. Biz smali kataloquna gedirik, sonra com (org-da yalnız cocos2d açıq qrafik kitabxanası var), sonra kauf (buradadır, çünki bu, tərtibatçının adıdır və bütün kodu oradadır) - və budur, marketinq kataloqu. İçəridə biz smali uzantılı bir dəstə fayl tapırıq. Bunlar siniflərdir və onlardan ən diqqət çəkəni Ad.smali sinfidir ki, adından asanlıqla təxmin etmək olar ki, bu, reklam nümayiş etdirən sinifdir.

Biz onun işinin məntiqini dəyişə bilərdik, lakin onun hər hansı metoduna edilən zəngləri proqramın özündən sadəcə silmək daha asan olardı. Buna görə də, biz marketinq kataloqunu tərk edirik və bitişik hissəciklər kataloquna, sonra isə virtual məşələ gedirik. MainActivity.smali faylı burada xüsusi diqqətə layiqdir. Bu, Android SDK tərəfindən yaradılmış və proqrama giriş nöqtəsi kimi quraşdırılmış standart Android sinfidir (C-də əsas funksiyanın analoqu). Faylı redaktə etmək üçün açın.

İçərisində smali kodu (yerli assembler) var. Aşağı səviyyəli xarakterinə görə olduqca çaşdırıcı və oxunması çətindir, ona görə də biz onu öyrənməyəcəyik, sadəcə olaraq kodda Reklam sinfinə aid bütün istinadları tapıb şərh edəcəyik. Axtarışda "Elan" sətirini daxil edirik və 25-ci sətirə keçirik:

Sahə özəl reklamı:Lcom/kauf/marketing/Ad;

Burada Reklam sinfi obyektini saxlamaq üçün reklam sahəsi yaradılır. Xəttin qarşısına ### işarəsi qoyaraq şərh edirik. Axtarışa davam edirik. Sətir 423:

Yeni instansiya v3, Lcom/kauf/marketing/Ad;

Burada obyektin yaradılması baş verir. Şərh edək. Axtarışı davam etdiririk və 433, 435, 466, 468, 738, 740, 800 və 802-ci sətirlərdə Elan sinfinin metodlarına zənglər tapırıq. Şərh edək. Deyəsən bu belədir. Saxla. İndi paketi yenidən bir yerə yığmaq və funksionallığı və reklamın olub-olmamasını yoxlamaq lazımdır. Təcrübənin təmizliyi üçün AndroidManifest.xml-dən çıxarılan xətti qaytarırıq, paketi yığırıq, imzalayırıq və quraşdırırıq.

Bizim qvineya donuzumuz. Görünən reklam

Vay! Reklam yalnız proqram işləyərkən yox oldu, lakin proqram təminatını işə saldıqda gördüyümüz əsas menyuda qaldı. Beləliklə, gözləyin, amma giriş nöqtəsi MainActivity sinfidir və proqram işləyərkən reklam yoxa çıxdı, lakin əsas menyuda qaldı, buna görə giriş nöqtəsi fərqlidir? Həqiqi giriş nöqtəsini müəyyən etmək üçün AndroidManifest.xml faylını yenidən açın. Və bəli, aşağıdakı sətirləri ehtiva edir:

Onlar bizə (və daha da vacibi, androidə) android.intent.category.LAUNCHER kateqoriyasından android.intent.action.MAIN niyyətinin (hadisəsinin) yaradılmasına cavab olaraq Start adlı fəaliyyətin işə salınmalı olduğunu bildirirlər. Bu hadisə başlatma qurğusunda proqram ikonasına toxunduqda yaradılır, beləliklə, o, giriş nöqtəsini, yəni Başlanğıc sinfini təyin edir. Çox güman ki, proqramçı əvvəlcə giriş nöqtəsi standart MainActivity sinfi olan əsas menyusu olmayan bir proqram yazdı, sonra menyudan ibarət və Başlanğıc sinfində təsvir olunan yeni bir pəncərə (fəaliyyət) əlavə etdi və onu əl ilə giriş etdi. nöqtə.

Start.smali faylını açın və yenidən “Elan” xəttini axtarın, 153 və 155-ci sətirlərdə FirstAd sinfinin qeydini tapırıq. O, həm də mənbə kodundadır və adına görə əsas ekranda reklamların nümayişinə cavabdehdir. Gəlin daha da nəzərdən keçirək, FirstAd sinfinin nümunəsinin yaradılması və kontekstdə bu instansiya ilə əlaqəli niyyət, sonra isə şərti keçid sinif nümunəsi yaratmazdan əvvəl həyata keçirilən cond_10 etiketi var. :

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

Çox güman ki, proqram birtəhər təsadüfi olaraq reklamın əsas ekranda göstərilib-göstərilmədiyini hesablayır və əgər yoxsa, birbaşa cond_10-a keçir. Yaxşı, gəlin onun tapşırığını sadələşdirək və şərti keçidi şərtsiz bir keçidlə əvəz edək:

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

Kodda FirstAd haqqında daha heç bir qeyd yoxdur, ona görə də biz faylı bağlayırıq və apktool istifadə edərək virtual məşəlimizi yenidən yığırıq. Onu smartfonunuza köçürün, quraşdırın, işə salın. Voila, bütün reklamlar itdi, buna görə hamımızı təbrik edirik.

Nəticələr

Bu məqalə yalnız Android proqramlarını sındırmaq və dəyişdirmək üsullarına qısa bir girişdir. Qorunmanın aradan qaldırılması, qarışıq kodun təhlili, tətbiq resurslarının tərcüməsi və dəyişdirilməsi, həmçinin Android NDK-dan istifadə edərək yazılmış proqramların dəyişdirilməsi kimi bir çox məsələlər pərdə arxasında qaldı. Bununla belə, əsas biliyə sahib olmaqla, hər şeyi başa düşmək yalnız vaxt məsələsidir.