Orijinal imza ilə bir mod qurun. Biz Android proqramlarını açır, dəyişdirir və paketləşdiririk


Son sağ qalma müharibəsi: Apokalipsis- yuxarıdan aşağı görünüşü olan zombi atıcı.

Sərt post-apokaliptik dünyada sağ qalın, minlərlə mutant zombi ilə vuruşun, təchizat toplayın və bazanızı inkişaf etdirin. Son Yaşamaq Müharibəsi artıq köhnəlmiş "sağ qalma-hərəkət" janrının yeni nümayəndəsidir, burada balans strateji elementlərə deyil, döyüşlərin xeyrinə dəyişir. Siz təkbaşına və ya dostunuzla döyüşlərdə iştirak edə, PvE dünyasında sağ qala və ya PvP duellərində iştirak edə və təbii ki, xarakterinizi hər cür təkmilləşdirə bilərsiniz.

Yeniliklər:

Mod əlavə edildi.


Moda məlumatı:

  • Pulsuz sənətkarlıq (sənətkarlıq resurs tələb etmir);
  • Mövcud səviyyədən asılı olmayaraq bütün əşyalar sənətkarlıq üçün əlçatandır;
  • Maksimum hücum və əsas xarakterin müdafiəsi.
APK faylının dəyişdirilmiş versiyasını quraşdırmaq üçün əvvəlki (orijinal) versiyanı silməlisiniz. Bu, bütün məlumatlarınızı (inkişaf səviyyəsi, yadda saxlama və ümumi oyun tərəqqi) silir.

Bir qayda olaraq, əksər proqramlar və oyunlar Google Market ilə əlaqə qurarkən standart kodlara malikdir. Bununla belə, tez-tez proqram aləti dəyişikliklərdən çox yaxşı qorunur. Çaşqın olmamaq və əlavə vaxt itirməmək üçün mən Lucky Patcher adlı əla proqram tapdım, istifadəsini aşağıda daha ətraflı müzakirə edəcəyəm.

Lucky Patcher proqramı quraşdırdığınız bütün proqramlar üçün cihazınızı skan edir. Sonra, yamağın mümkün və ya qeyri-mümkünlüyünə görə çeşidləmə aparılır, sonra yamağın ən faydalı olduğu proqramlar göstərilir və məlumat siyahının yuxarı hissəsində göstərilir. Sonra bu yamağı istədiyiniz proqrama tətbiq edə bilərsiniz. Uğurlu olarsa, tam qeydiyyatdan keçmiş ərizə alacaqsınız.

Lucky Patcher-in sonrakı versiyalarında bannerləri və bezdirici reklamları bloklamaq mümkündür. Yamağı istifadə etməzdən əvvəl tətbiqin ehtiyat nüsxəsini çıxarmaq tövsiyə olunur.

Təlimatlar: Lucky Patcher-dən necə istifadə etmək olar

  1. Lazım olan proqramı və ya oyunu quraşdırın.
  2. Lucky Patcher-in özünü quraşdırın.
  3. Lucky Patcher proqramını işə salın, sonra istədiyiniz proqramda düyməni basıb saxlayın. Sonra, Lucky Market Google Patch seçin (və ya "lisenziyalı olun") - yuxarı menyu elementi.
  4. Prosesi uğurla başa vurduqdan sonra oynaya bilərsiniz. Yeri gəlmişkən, xatırlatmaq lazımdır ki, Lucky Patcher-dən istifadə, ilkin olaraq tərtibatçı tərəfindən qadağan edilmiş olsa belə, istifadə etdikdən sonra şəbəkəyə qoşulmadan tətbiqləri işə salmağa imkan verir!

Gördüyünüz kimi, ümumiyyətlə, Lucky Patcher-dən istifadə sadədir, lakin müəyyən hallarda bəzi detalları və fəaliyyət planlarını bilmək zərər vermir.

Birincisi, lisenziyanı avtomatik olaraq tapmaq və silmək mümkün olmadıqda, bunu əl ilə etməyə cəhd edə bilərsiniz.

Əl rejimi işə salındıqda, Lucky Patcher lisenziyaya bənzər tamamilə bütün obyektləri aşkarlayacaq (düymələrin basılması, rəng cədvəlləri, qətnamə və s.) Görünən siyahıda düzgün lisenziya açarını tapmalısınız. Bu, sadə kobud qüvvə ilə edilir: əvvəlcə ilk obyekti seçin və "Yamaq" düyməsini basın, proses başa çatdıqdan sonra "Başlat" istifadə edərək proqramı işə salmağa çalışın.

Lucky Patcher proqramından istifadə çətin deyil, sadəcə olaraq təlimatları bir neçə dəfə keçmək və əsas xüsusiyyətləri öyrənmək lazımdır.

Düzgün təxmin etməmisinizsə - yəni. Əgər işə yaramadısa, "Bərpa et" düyməsini basın - və hər şey heç bir problem olmadan orijinal vəziyyətinə qaytarılacaqdır. Bundan sonra, növbəti obyektlə proseduru təkrarlayırıq və uğur qazanana qədər davam edirik.

kimi bir anlayış da var Xüsusi Patch- hər hansı bir şeyi dəyişə bilən xüsusi proqram üçün xüsusi yamaq. Onlar /sdcard/Luckypatcher/ qovluğunda yerləşir - bunlar .txt uzantılı fayllardır. Belə bir yamağı tətbiq etmək üçün sadəcə mətn faylını yükləmək və onu qovluğa köçürmək lazımdır. Növbəti dəfə Lucky Patcher-i işə saldığınız zaman proqram sarı rənglə qeyd olunacaq və Xüsusi Yamağı tətbiq etmək üçün sadəcə “Bu proqram üçün yamaq!” düyməsini sıxmağınız kifayətdir.

Sonda funksiyanı qeyd edəcəm Yenidən başladıqda yamaq. Funksiya BootList-ə xüsusi bir yamaq əlavə etməyə imkan vermək üçün nəzərdə tutulmuşdur. Nədənsə "Dəyişikliklərin düzəldilməsi" işləmədikdə və yamağın mövqeyini saxlaya bilmədikdə lazımdır (fakt budur ki, yamaq kitabxananı dəyişdirməyə çalışır). Bunun baş verməsinin qarşısını almaq üçün siz “yenidən başladıqda yamaq” düyməsini sıxmalı və xüsusi yamaq seçməlisiniz, beləliklə, cihaz hər dəfə işə salındıqda kitabxananızın yamaqlanmasına icazə verin. Bu işləmirsə, o zaman reklam və silinmiş lisenziyası olan tətbiqlərə yamaq əlavə edə bilərsiniz.

Lucky Patcher sizə Android oyunlarında və proqramlarında əlavə funksiyalar əldə etməyə imkan verən proqram patcheridir, məsələn: lisenziya yoxlamasını söndürə, oyundaxili mağazalarda pulsuz satın ala və hətta reklamları bloklaya bilərsiniz. Gözəl bir əlavə olaraq, tətbiqlərin funksionallığına müsbət təsir göstərən və bloklanmış xüsusiyyətləri açan xüsusi yamalar var;


Ən populyar funksiyalar və onların tətbiqləri aşağıda təsvir edilmişdir. Əgər onları oxuduqdan sonra probleminizin öhdəsindən gələ bilmirsinizsə, şərhlərdə ətraflı təsvir edin, biz sizə məsləhət verəcəyik və təlimatları əlavə edəcəyik :)


Əksər funksiyaların işləməsi üçün sizə lazım olacaq:

  • Quraşdırılıb

Lucky Patcher-i silmək zərurəti haqqında Play Store-dan bildirişi necə söndürmək olar

Bir qayda olaraq, Play Store proqram mağazası Lucky Patcher-i virus kimi müəyyənləşdirir, bundan sonra bildiriş kölgəsində bağlanmayan mesaj görünəcək: "Təhlükəli proqramı silin, Lucky Patcher tətbiqi cihazın işinə mane ola bilər." Bu zəhlətökən bildirişdən xilas olmaq üçün bir neçə sadə addım atmalısınız.


Bu təlimatlar həm zəhlətökən mesajdan xilas olmaq istəyənlər, həm də Play Store-a görə Lucky Patcher-i cihazına quraşdıra bilməyənlər üçün eyni dərəcədə faydalı olacaq.

Video təlimat


  1. Play Store-u açın - Menyuya klikləyin (yuxarı sol küncdə) - Play Qoruma seçin - "Təhlükəsizlik təhdidlərini yoxlayın" seçimindən işarəni çıxarın və "Ok" düyməsini basın.
  2. Aşağıdakı ekran görüntüsündə olduğu kimi bildiriş panelində bir mesaj görsəniz, bütün Play Store məlumatlarını silməlisiniz, bunun üçün aşağıdakıları etməlisiniz: “Parametrlər”ə keçin - “Proqramlar”ı açın - Quraşdırılmış proqramlar siyahısında , Google Play Store-u tapın və üzərinə klikləyin - "Məlumatları sil" seçin və sonra "Ok" düyməsini basın. Mesaj yox olacaq və siz Lucky Patcher-dən təhlükəsiz istifadə edə bilərsiniz.







Tətbiqlərdə lisenziya yoxlamasının silinməsi

Lisenziya yoxlanışı - standart olaraq, bütün ödənişli oyunlarda və proqramlarda quraşdırılmışdır, bu yoxlama proqramı satın alıb-almadığınızı öyrənəcək. Yoxlamadan ödənişli oyun və ya proqramı quraşdırmağa cəhd etsəniz, tətbiqi marketdən endirin deyə bir xəta ilə qarşılaşacaqsınız. Şanslı yamaq bu çeki silə bilər, beləliklə, istədiyiniz proqramı asanlıqla quraşdıra bilərsiniz.


Reklamın bloklanması

Oyunlarda və proqramlarda müdaxilə edən reklamlar çox bezdiricidir və bəzən normal oyuna da mane olur. Belə vəziyyətlərdə yeganə əmin çıxış yolu reklamları bloklamaqdır! Xoşbəxtlikdən, şanslı yamaq bir neçə alqoritmdən istifadə edərək reklamları silə bilər (lakin bunlar da var) və təlimatlar aşağıdadır:

Video təlimat

Oyundaxili mağazalarda pulsuz alışlar

Şanslı yamaq möcüzələr yaradır, bu, oyundaxili mağazalarda pulsuz alış-veriş etməyə imkan verəcək, yəni çoxlu sikkələr əldə edə və ya hətta onları sonsuz edə bilərsiniz, oyunda bütün ödənişli məzmunu satın ala bilərsiniz - pulsuz!


Video təlimat


Xüsusi yamalar

İstifadəçi yamaları müəyyən bir proqram və ya oyun üçün uzantılardır, ona yeni funksiyalar əlavə edə və ya qapalı/ödənişli məzmunu aça bilər.


Tətbiqin dəyişdirilmiş versiyasını necə qurmaq olar

Video təlimat

  1. Kontekst menyusunda "Patch Menyu" seçməlisiniz və sonra "Dəyişdirilmiş apk yaradın" maddəsini vurun.
  2. Tətbiqimizə tətbiq etmək istədiyimiz yamağı seçməyimiz xahiş olunur (lisenziya yoxlanışını silin, reklamı silin, pulsuz alışlar edin və ya proqram komponentlərini dəyişdirin), siz yamaqlardan birini və ya bir neçəsini eyni anda seçə bilərsiniz (sadəcə üzərinə klikləyin birinci sətir “ Çoxlu yamaqlı Apk” və sonra tələb olunan elementlərin yanındakı qutuları yoxlayın). Bundan sonra etməli olduğunuz şey "Tətbiqi yenidən qur" düyməsini sıxmaqdır.
  3. Apk faylı yığıldıqda onu açıb quraşdıra və ya dostunuza verə bilərsiniz.

Tətbiq klonunu necə yaratmaq olar (.apk)

Klonlama funksiyası bu yaxınlarda bəzi Çin tərtibatçılarının proqram təminatında rəsmi olaraq ortaya çıxdı. Məsələn, MIUI-də proqramı quraşdırdıqdan sonra onun tam surətini çıxara bilərsiniz. Bu niyə lazımdır? Məsələn, Sberbank Online tətbiqinin klonunu yaratmaqla iki kartdan istifadə edə bilərsiniz, eyni şey hesab yaratdığınız onlayn oyunlara və ya ani mesajlaşmalara və sosial şəbəkələrə aiddir. Artıq gündə yüz dəfə bir hesabdan digərinə yenidən daxil olmaq məcburiyyətində deyilsiniz.

Video təlimat

  1. Lucky Patcher proqramını işə saldıqdan sonra klonunu klonlaşdırmaq istədiyiniz proqramı tapmalı və üzərinə klik etməlisiniz.
  2. Görünən kontekst menyusunda "Alətlər" seçin və "Tətbiqi klonla" maddəsini vurun.
  3. Növbəti pəncərədə heç nəyi dəyişdirməyə ehtiyac yoxdur (“AndroidManifest.xml, resursları və classes.dex-i dəyişdir” maddəsinin yanında işarə olmalıdır), sadəcə “Tətbiqi yenidən qur” düyməsini sıxmaq kifayətdir.
  4. Lucky Patcher seçdiyimiz tətbiqin klonunu yaratmağı bitirdikdən sonra onu quraşdırmalı olacaqsınız. "Klonu quraşdırın" düyməsini basın, sonra "Bəli" düyməsini basın və proqramın quraşdırılmasını gözləyin.
  5. Müvəffəqiyyətli olarsa (bəli, işləyən klon yaratmaq həmişə mümkün deyil), iş masasında klonlanmış proqramdan ikinci bir işarə görünəcək və siz onları birlikdə işə sala və eyni vaxtda istifadə edə biləcəksiniz.

Tətbiq icazələrini necə dəyişdirmək olar

Cihazınızda quraşdırılmış proqramların icazələrini əl ilə idarə etmək istəyirsinizsə, yəni: İnternetə çıxışı rədd edin/icazə verin, SD kartdan məlumatları oxuyun, işə başlamaq üçün proqramlar əlavə edin, tətbiqdaxili alışlar edin, lisenziyanı yoxlayın və s.

  1. Lucky Patcher proqramını işə salırıq və bizə lazım olan proqramı tapırıq, sonra üzərinə klikləyirik.
  2. Kontekst menyusunda "Patch Menu" seçməlisiniz və sonra "Tətbiq komponentlərini dəyişdirin" maddəsini vurun.
  3. Növbəti pəncərədə 3-cü variantı seçməliyik (İcazələri və fəaliyyətləri orijinal imzanı saxlamaqla dəyişdirin). Tərtibatçıların fikrincə, bu üsul ən təhlükəsizdir.
  4. İndi proqrama qalacaq və söndürmək istədiyimiz icazələri seçə bilərik, sadəcə lazımi elementləri vurun və sonra "Yenidən qurun və quraşdırın" düyməsini basın.

Yedəkləmələr

Quraşdırılmış proqramın .apk faylını bütün dəyişikliklər və konfiqurasiyalarla yadda saxlaya bilərsiniz. Başqa sözlə, Lucky Patcher Google Play-dən quraşdırılmış proqramlardan .apk faylını saxlaya bilər, həmçinin proqramları iki dəfə işə salmaq lazım olarsa, onları klonlaya bilər.


İndi Lucky Patcher-dən necə istifadə edəcəyinizi bilirsiniz! Ancaq bir şey sizin üçün işləməyibsə və ya hər hansı bir sualınız varsa, bu səhifəyə şərhlərdə yazın və sizə kömək edəcəyik :)

  • 1 iyul 2017-ci il
  • 49,133 baxış

Bəyəndinizmi?

Reytinqlər: 17

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 çıxartdı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ə qablaşdırmadan çıxarmaq, sökmək və dekompilyasiya etmək üçü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 zəruri 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ı xəttlə 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ı 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ısı olan 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 yoxa çıxdı, 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 qeyd-şə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.