Ի՞նչ է APK ֆայլը և ինչպես տեղադրել այն Android սարքում: ինչպես բացել ark ֆայլը android-ում

Երբեմն Android-ի որոշ հավելվածներ ինչ-ինչ պատճառներով չեն համապատասխանում օգտատիրոջը: Օրինակ է նյարդայնացնող գովազդներ. Եվ դա տեղի է ունենում այնպես, - բոլորը լավ են հաղորդում ծրագրին, բայց միայն դրա թարգմանությունը կա՛մ ծուռ է, կա՛մ իսպառ բացակայում է։ Կամ, օրինակ, ծրագիրը փորձնական է, և ստացիր ամբողջական տարբերակըհնարավորություն չկա. Ինչպե՞ս փոխել իրավիճակը:

Ներածություն

Այս հոդվածում մենք կխոսենք այն մասին, թե ինչպես կարելի է ապամոնտաժել APK փաթեթը հավելվածով, հաշվի առեք այն ներքին կառուցվածքը, ապամոնտաժել և ապակոմպիլյացնել բայթկոդը, ինչպես նաև փորձել մի քանի փոփոխություններ կատարել հավելվածներում, որոնք կարող են մեզ այս կամ այն ​​օգուտ բերել։

Այս ամենը ինքներդ անելու համար ձեզ անհրաժեշտ կլինի առնվազն հիմնական գիտելիք Java լեզուն, որով գրված են Android հավելվածները, և XML լեզուն, որն օգտագործվում է Android-ում ամենուր՝ սկսած հավելվածի նկարագրությունից և մուտքի իրավունքից մինչև էկրանին ցուցադրվող տողերի պահպանումը: Ձեզ անհրաժեշտ կլինի նաև հատուկ կոնսոլային ծրագրակազմ աշխատելու ունակություն:

Այսպիսով, ո՞րն է APK փաթեթը, որում բաշխված է Android-ի համար բացարձակապես բոլոր ծրագրերը:

Հավելվածի ապակոմպիլյացիա

Հոդվածում մենք աշխատել ենք միայն ապամոնտաժված հավելվածի կոդով, սակայն, եթե ավելի լուրջ փոփոխություններ կատարեք մեծ հավելվածներում, շատ ավելի դժվար կլինի հասկանալ smali կոդը։ Բարեբախտաբար, մենք կարող ենք ապակոմպիլյացիայի ենթարկել dex կոդը Java կոդի, որը թեև օրիգինալ չէ և չի կարող հետ կազմել, բայց շատ ավելի հեշտ է կարդալ և հասկանալ հավելվածի տրամաբանությունը: Դա անելու համար մեզ անհրաժեշտ է երկու գործիք.

  • dex2jar - Dalvik bytecode-ի թարգմանիչ JVM bytecode, որի հիման վրա կարող ենք ստանալ Java կոդ;
  • jd-gui-ն ինքնին ապակոմպիլյատոր է, որը թույլ է տալիս JVM բայթկոդից ստանալ ընթեռնելի Java կոդ: Որպես այլընտրանք, դուք կարող եք օգտագործել Jad-ը (www.varanecas.com/jad); չնայած այն բավականին հին է, որոշ դեպքերում այն ​​առաջացնում է ավելի ընթեռնելի կոդ, քան Jd-gui-ն:

Նրանք պետք է օգտագործվեն այսպես. Նախ, մենք գործարկում ենք dex2jar-ը՝ որպես փաստարկ նշելով apk փաթեթի ուղին.

%dex2jar.sh mail.apk

Արդյունքում ընթացիկ գրացուցակում կհայտնվի mail.jar Java փաթեթը, որն արդեն կարող է բացվել jd-gui-ում՝ Java կոդը դիտելու համար։

APK փաթեթների կազմակերպում և դրանց ստացում

Փաթեթ android հավելվածներ, ըստ էության, սովորական ZIP ֆայլ է, որի բովանդակությունը դիտելու և փաթեթավորելու համար հատուկ գործիքներ չեն պահանջվում։ Բավական է ունենալ արխիվատոր՝ 7zip Windows-ի համար կամ կոնսոլային unzip Linux-ում։ Բայց դա վերաբերում է փաթաթանին: Ի՞նչ կա ներսում: Ներսում մենք ընդհանուր առմամբ ունենք հետևյալ կառուցվածքը.

  • META-INF/- պարունակում է հավելվածի թվային վկայագիր, որը հավաստում է դրա ստեղծողին և փաթեթի ֆայլերի ստուգման գումարները.
  • res/ - տարբեր ռեսուրսներ, որոնք հավելվածն օգտագործում է իր աշխատանքում, ինչպիսիք են պատկերները, ինտերֆեյսի դեկլարատիվ նկարագրությունը և այլ տվյալներ.
  • AndroidManifest.xml- հայտի նկարագրությունը. Սա ներառում է, օրինակ, պահանջվող թույլտվությունների ցանկը, որը պահանջվում է android տարբերակըև էկրանի պահանջվող լուծումը;
  • դասեր.dex- կազմված հավելվածի բայթկոդ Dalvik վիրտուալ մեքենայի համար;
  • ռեսուրսներ.arsc- նաև ռեսուրսներ, բայց այլ տեսակի, մասնավորապես, լարային (այո, այս ֆայլը կարող է օգտագործվել ռուսաֆիկացման համար):

Թվարկված ֆայլերը և գրացուցակները, եթե ոչ բոլորը, ապա, հավանաբար, APK-ների ճնշող մեծամասնությունում են: Այնուամենայնիվ, կան ևս մի քանի ավելի քիչ տարածված ֆայլեր/գրացուցակներ, որոնք արժե նշել.

  • ակտիվներ- ռեսուրսների անալոգը. Հիմնական տարբերությունն այն է, որ ռեսուրս մուտք գործելու համար անհրաժեշտ է իմանալ դրա նույնացուցիչը, մինչդեռ ակտիվների ցանկը կարելի է դինամիկ կերպով ձեռք բերել՝ օգտագործելով AssetManager.list() մեթոդը հավելվածի կոդում;
  • lib- բնիկ Linux գրադարաններ, որոնք գրվել են NDK-ի (Native Development Kit) օգնությամբ:

Այս գրացուցակը օգտագործվում է խաղերի արտադրողների կողմից՝ C/C++-ով գրված իրենց խաղային շարժիչը այնտեղ տեղադրելու համար, ինչպես նաև բարձր արդյունավետությամբ հավելվածներ ստեղծողների կողմից (օրինակ՝ Google Chrome): Հասկացել է սարքը. Բայց ինչպե՞ս ստանալ հետաքրքրության հայտի փաթեթային ֆայլը: Քանի որ հնարավոր չէ սարքից ստանալ APK ֆայլեր առանց արմատավորման (դրանք գտնվում են / data / app գրացուցակում), և արմատավորումը միշտ չէ, որ նպատակահարմար է, հավելվածի ֆայլը համակարգիչ հասցնելու առնվազն երեք եղանակ կա.

  • APK Downloader ընդլայնում Chrome-ի համար;
  • Իրական APK Leecher հավելված;
  • տարբեր ֆայլերի հոստինգ և warezniki:

Որն օգտագործել, ճաշակի հարց է. մենք նախընտրում ենք օգտագործել առանձին հավելվածներ, ուստի կնկարագրենք Real APK Leecher-ի օգտագործումը, հատկապես, որ այն գրված է Java-ով և, համապատասխանաբար, այն կաշխատի նույնիսկ Windows-ում, նույնիսկ nix-ում։

Ծրագիրը սկսելուց հետո անհրաժեշտ է լրացնել երեք դաշտ՝ Էլ.փոստ, գաղտնաբառ և սարքի նույնականացում և ընտրել լեզուն: Առաջին երկուսը ձեր Google հաշվի էլեկտրոնային փոստն ու գաղտնաբառը են, որոնք դուք օգտագործում եք սարքում: Երրորդը սարքի ID-ն է, և այն կարող եք ստանալ՝ հավաքելով հավաքիչի կոդը # #8255## և այնուհետև գտնելով սարքի ID-ն: Լրացնելիս անհրաժեշտ է մուտքագրել միայն ID-ն առանց android- նախածանցի:

Լրացնելուց և պահպանելուց հետո հաճախ հայտնվում է «Սխալ սերվերին միանալու ժամանակ» հաղորդագրությունը: Դա կապ չունի Google Play, այնպես որ ազատ զգալ անտեսել այն և փնտրել ձեզ հետաքրքրող փաթեթներ:

Վերանայում և փոփոխում

Ենթադրենք, դուք գտել եք ձեզ հետաքրքրող փաթեթ, ներբեռնել եք այն, ապափաթեթավորում եք այն ... և երբ փորձեցիք դիտել XML ֆայլ, դուք զարմացաք՝ տեսնելով, որ ֆայլը տեքստային ֆայլ չէ: Ինչպե՞ս այն decompile անել և ընդհանրապես ինչպե՞ս աշխատել փաթեթների հետ: Իսկապե՞ս անհրաժեշտ է տեղադրել SDK-ն: Ոչ, ձեզ հարկավոր չէ տեղադրել SDK-ն: Փաստորեն, APK փաթեթները բացելու, փոփոխելու և փաթեթավորելու բոլոր քայլերի համար անհրաժեշտ են հետևյալ գործիքները.

  • ZIP արխիվատորփաթեթավորման և փաթեթավորման համար;
  • smali- Dalvik վիրտուալ մեքենայի բայթկոդի հավաքող/ապամոնտաժող (code.google.com/p/smali);
  • բն- ռեսուրսները փաթեթավորելու գործիք (ըստ լռելյայն, ռեսուրսները պահվում են երկուական տեսքով՝ հավելվածի կատարումը օպտիմալացնելու համար): Ներառված է Android SDK-ի հետ, բայց կարելի է ձեռք բերել առանձին.
  • Ստորագրող- փոփոխված փաթեթի թվային ստորագրման գործիք (bit.ly/Rmrv4M):

Դուք կարող եք օգտագործել այս բոլոր գործիքները առանձին, բայց դա անհարմար է, ուստի ավելի լավ է օգտագործել դրանց հիման վրա ստեղծված ավելի բարձր մակարդակի ծրագրեր: Եթե ​​դուք աշխատում եք Linux կամ Mac OS X, ապա կա գործիք, որը կոչվում է apktool: Այն թույլ է տալիս բացել ռեսուրսները իրենց սկզբնական ձևով (ներառյալ երկուական XML և arsc ֆայլերը), վերակառուցել փաթեթը փոփոխված ռեսուրսներով, բայց նա չգիտի, թե ինչպես ստորագրել փաթեթները, այնպես որ դուք պետք է գործարկեք ստորագրող կոմունալ ծրագիրը ձեռքով: Չնայած այն հանգամանքին, որ կոմունալ ծրագիրը գրված է Java-ով, դրա տեղադրումը բավականին ոչ ստանդարտ է: Սկզբում դուք պետք է ստանաք 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 $ արտահանման PATH=~/bin:$PATH

Եթե ​​դուք աշխատում եք Windows-ով, ապա դրա համար կա մի հիանալի գործիք, որը կոչվում է Virtual Ten Studio, որը նույնպես կուտակում է այս բոլոր գործիքները (ներառյալ հենց apktool-ը), բայց CLI ինտերֆեյսի փոխարեն այն օգտվողին տրամադրում է ինտուիտիվ գրաֆիկական ինտերֆեյս, որը կարող է օգտագործել: մի քանի կտտոցով կատարել փաթեթավորումից հանելու, ապամոնտաժելու և ապակոմպիլյացիայի գործողություններ: Այս գործիքը Donation-ware-ն է, այսինքն՝ պատուհանները երբեմն հայտնվում են լիցենզիա ստանալու առաջարկով, բայց դա, ի վերջո, կարելի է հանդուրժել։ Այն նկարագրելն անիմաստ է, քանի որ ինտերֆեյսը կարող ես հասկանալ մի քանի րոպեում։ Բայց apktool-ը, ելնելով իր կոնսոլային բնույթից, պետք է ավելի մանրամասն քննարկել:


Դիտարկենք apktool-ի տարբերակները: Մի խոսքով, կան երեք հիմնական հրամաններ՝ d (վերծանել), b (կառուցել) և if (տեղադրել շրջանակը): Եթե ​​առաջին երկու հրամաններով ամեն ինչ պարզ է, ապա ի՞նչ է անում երրորդը՝ պայմանական օպերատորը։ Այն բացում է նշված միջերեսի շրջանակը, որն անհրաժեշտ է համակարգի փաթեթը բաժանելիս:

Դիտարկենք առաջին հրամանի ամենահետաքրքիր տարբերակները.

  • - մի ապամոնտաժեք dex ֆայլերը.
  • - մի բացիր ռեսուրսները.
  • - մի տեղադրեք վրիպազերծման տեղեկատվությունը dex ֆայլի ապամոնտաժման արդյունքների մեջ.
  • - շրջանակ-ուղի- ներկառուցված apktool-ի փոխարեն օգտագործեք նշված UI շրջանակը: Այժմ դիտարկեք b հրամանի մի քանի տարբերակ.
  • - հարկադիր հավաքում առանց փոփոխությունները ստուգելու.
  • - նշեք aapt-ի ուղին (APK արխիվ ստեղծելու գործիք), եթե ինչ-ինչ պատճառներով ցանկանում եք օգտագործել այն այլ աղբյուրից:

Apktool-ի օգտագործումը շատ պարզ է, ընդամենը պետք է նշել հրամաններից մեկը և APK-ի ուղին, օրինակ.

$ apktool d mail.apk

Դրանից հետո բոլոր արդյունահանված և ապամոնտաժված փաթեթային ֆայլերը կհայտնվեն փոստային գրացուցակում:

Նախապատրաստում. Անջատել գովազդը

Տեսությունը, իհարկե, լավն է, բայց ինչո՞ւ է դա անհրաժեշտ, եթե չգիտենք, թե ինչ անել չփաթեթավորված փաթեթի հետ: Փորձենք կիրառել տեսությունը մեր շահի համար, այն է՝ մենք փոփոխում ենք որոշ ծրագրեր, որպեսզի այն մեզ գովազդ չցուցադրի։ Օրինակ, թող լինի Virtual Torch - վիրտուալ ջահ: Մեզ համար այս ծրագրաշարը կատարյալ է, քանի որ այն լի է նյարդայնացնող գովազդներով և բավական պարզ է՝ չկորչելու կոդի վայրի մեջ:


Այսպիսով, օգտագործելով վերը նշված մեթոդներից մեկը, ներբեռնեք հավելվածը շուկայից։ Եթե ​​որոշել եք օգտվել Virtuous Ten Studio-ից, ապա պարզապես բացեք APK ֆայլը հավելվածում և ապափաթեթավորեք այն, որի համար ստեղծեք նախագիծ (File -> New project), ապա նախագծի համատեքստային մենյուից ընտրեք Import File։ Եթե ​​ձեր ընտրությունը ընկել է apktool-ի վրա, ապա բավական է կատարել մեկ հրաման.

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

Դրանից հետո com.kauf.particle.virtualtorch գրացուցակում կհայտնվի ֆայլի ծառ, որը նման է նախորդ բաժնում նկարագրվածին, բայց dex ֆայլերի և apktool.yml ֆայլի փոխարեն լրացուցիչ smali գրացուցակով: Առաջինը պարունակում է հավելվածի գործարկվող dex ֆայլի ապամոնտաժված կոդը, երկրորդը պարունակում է apktool-ի համար անհրաժեշտ ծառայությունների տեղեկատվությունը փաթեթը հետ հավաքելու համար:

Առաջին տեղը, որ մենք պետք է նայենք, իհարկե AndroidManifest.xml-ն է: Եվ այստեղ մենք անմիջապես հանդիպում ենք հետևյալ տողին.

Հեշտ է կռահել, որ նա պատասխանատու է հավելվածին ինտերնետ կապից օգտվելու թույլտվությունների տրամադրման համար: Փաստորեն, եթե մենք պարզապես ուզում ենք ազատվել գովազդներից, ամենայն հավանականությամբ, մեզ համար բավական կլինի արգելել հավելվածը ինտերնետից։ Եկեք փորձենք դա անել: Ջնջեք նշված տողը և փորձեք ծրագրակազմը կազմել՝ օգտագործելով apktool.

$ apktool b com.kauf.particle.virtualtorch

Ստացված APK ֆայլը կհայտնվի com.kauf.particle.virtualtorch/build/ գրացուցակում: Այնուամենայնիվ, այն չի կարող տեղադրվել, քանի որ այն չունի թվային ստորագրություն և ֆայլերի ստուգման գումարներ (այն պարզապես չունի META-INF/ գրացուցակ): Մենք պետք է փաթեթը ստորագրենք apk-signer կոմունալով: Գործարկվել է. Ինտերֆեյսը բաղկացած է երկու ներդիրից՝ առաջինի վրա (Key Generator) մենք ստեղծում ենք ստեղներ, երկրորդի վրա (APK Signer) մենք ստորագրում ենք։ Մեր անձնական բանալին ստեղծելու համար լրացրեք հետևյալ դաշտերը.

  • Թիրախային ֆայլ- keystore ելքային ֆայլ; այն սովորաբար պահում է մեկ զույգ բանալի;
  • Գաղտնաբառև Հաստատել- գաղտնաբառ պահեստավորման համար;
  • Այլանուն- պահեստում գտնվող բանալիի անվանումը.
  • Այլանուն գաղտնաբառև Հաստատել- գաղտնի բանալի գաղտնաբառ;
  • Վավերականություն- Վավերականության ժամկետը (տարիներով): Լռելյայն արժեքը օպտիմալ է:

Մնացած դաշտերը, ընդհանուր առմամբ, ընտրովի են, բայց դուք պետք է լրացնեք առնվազն մեկը:


ԶԳՈՒՇԱՑՈՒՄ

Հավելվածը apk-signer-ով ստորագրելու համար պետք է տեղադրեք Android SDK-ն և նշեք ամբողջական ճանապարհդրանից առաջ՝ հավելվածի կարգավորումներում:

Ամբողջ տեղեկատվությունը տրամադրվում է միայն տեղեկատվական նպատակներով: Ոչ խմբագիրը, ոչ հեղինակը պատասխանատվություն չեն կրում որևէ մեկի համար հնարավոր վնասսույն հոդվածի նյութերով պայմանավորված։

Այժմ դուք կարող եք ստորագրել APK-ն այս բանալիով: APK Signer ներդիրում ընտրեք նոր ստեղծված ֆայլը, մուտքագրեք դրա գաղտնաբառը, հիմնական կեղծանունը և գաղտնաբառը, այնուհետև գտեք APK ֆայլը և համարձակորեն սեղմեք «Ստորագրել» կոճակը: Եթե ​​ամեն ինչ լավ ընթանա, փաթեթը կստորագրվի։

ՏԵՂԵԿԱՏՎՈՒԹՅՈՒՆ

Քանի որ մենք փաթեթը ստորագրել ենք մեր սեփական բանալիով, այն կհակասի սկզբնական հավելվածի հետ, ինչը նշանակում է, որ երբ մենք փորձենք թարմացնել ծրագրաշարը շուկայի միջոցով, մենք սխալ կստանանք:

Միայն երրորդ կողմի ծրագրակազմին անհրաժեշտ է թվային ստորագրություն, այնպես որ, եթե դուք փոփոխում եք համակարգային հավելվածները, որոնք տեղադրված են դրանք պատճենելով /system/app/ գրացուցակում, ապա ձեզ հարկավոր չէ ստորագրել դրանք:

Դրանից հետո մենք փաթեթը գցում ենք սմարթֆոնի վրա, տեղադրում և գործարկում։ Voila, գովազդն անհետացել է: Փոխարենը, սակայն, հաղորդագրություն հայտնվեց, որ մենք չունենք ինտերնետ կամ չունենք համապատասխան թույլտվություններ։ Տեսականորեն սա կարող էր բավարար լինել, բայց հաղորդագրությունը նյարդայնացնող տեսք ունի, և, ճիշտն ասած, մեզ ուղղակի բախտը բերեց մի հիմար դիմումի հետ: Լավ գրված ծրագրաշարը, ամենայն հավանականությամբ, կհստակեցնի իր հավատարմագրերը կամ կստուգի ինտերնետ կապի առկայությունը, այլապես պարզապես կհրաժարվի սկսելուց: Ինչպե՞ս լինել այս դեպքում: Իհարկե, խմբագրեք կոդը:

Սովորաբար, հավելվածի հեղինակները ստեղծում են հատուկ դասեր՝ հավելվածի կամ դրա «գործունեությունից» մեկի (պարզ ասած՝ հավելվածների էկրաններ) գործարկման ժամանակ գովազդի և այդ դասերի զանգերի մեթոդների ցուցադրման համար։ Փորձենք գտնել այս դասերը։ Մենք գնում ենք smali գրացուցակ, այնուհետև com (օրգում կա միայն cocos2d-ի բաց գրաֆիկական գրադարան), այնուհետև kauf (հենց այնտեղ, քանի որ սա ծրագրավորողի անունն է և նրա ամբողջ ծածկագիրը կա) - և ահա, շուկայավարման գրացուցակ: Ներսում մենք գտնում ենք մի փունջ ֆայլեր smali ընդլայնմամբ: Սրանք դասեր են, և դրանցից ամենաուշագրավը Ad.smali դասն է, որի անունով հեշտ է կռահել, որ այն ցուցադրում է գովազդ։

Մենք կարող էինք փոխել նրա աշխատանքի տրամաբանությունը, բայց շատ ավելի հեշտ կլիներ հիմարաբար հեռացնել զանգերը դրա ցանկացած մեթոդին հենց հավելվածից: Հետևաբար, մենք դուրս ենք գալիս շուկայավարման գրացուցակից և գնում հարևան մասնիկների գրացուցակ, այնուհետև՝ virtualtorch: հատուկ ուշադրություն MainActivity.smali ֆայլը արժանի է այստեղ: Սա Android-ի ստանդարտ դաս է, որը ստեղծվում է Android SDK-ի կողմից և սահմանվում է որպես հավելվածի մուտքի կետ (C-ի հիմնական ֆունկցիայի անալոգը): Բացեք ֆայլը խմբագրման համար:

Ներսում կա smali կոդը (տեղական assembler): Այն բավականին շփոթեցնող է և դժվար է կարդալ իր ցածր մակարդակի պատճառով, ուստի մենք չենք ուսումնասիրի այն, այլ պարզապես կոդում կգտնենք Ad դասի բոլոր հիշատակումները և մեկնաբանենք դրանք: Որոնման մեջ մենք քշում ենք «Գովազդ» տողով և հասնում 25-րդ տողին.

Դաշտային մասնավոր գովազդ:Lcom/kauf/marketing/Ad;

Այստեղ ստեղծվում է դաշտային գովազդ՝ Ad դասի օբյեկտը պահելու համար: Մեկնաբանում ենք՝ տողի դիմաց դնելով ### նշանը։ Մենք շարունակում ենք որոնումը։ Տող 423:

Նոր օրինակ v3, Lcom/kauf/marketing/Ad;

Այստեղ է ստեղծվում օբյեկտը: Մեկնաբանում ենք. Մենք շարունակում ենք որոնումը և 433, 435, 466, 468, 738, 740, 800 և 802 տողերում գտնում ենք Ad դասի մեթոդների զանգերը։ Մեկնաբանում ենք. Տեսեք, որ դա է: Մենք խնայում ենք. Այժմ փաթեթը պետք է հետ հավաքվի և ստուգվի դրա կատարողականության և գովազդի առկայության համար: Փորձի մաքրության համար մենք վերադարձնում ենք AndroidManifest.xml-ից հեռացված տողը, հավաքում ենք փաթեթը, ստորագրում և տեղադրում այն։

Մեր ծովախոզուկը։ Տեսանելի գովազդ

Օփ-պա՜ Գովազդն անհետացավ միայն հավելվածի գործարկման ժամանակ, բայց մնաց հիմնական ընտրացանկում, որը մենք տեսնում ենք ծրագրաշարը գործարկելիս: Այսպիսով, սպասեք, բայց մուտքի կետը MainActivity դասն է, և գովազդն անհետացավ հավելվածի գործարկման ժամանակ, բայց մնաց հիմնական ընտրացանկում, ուրեմն մուտքի կետը տարբեր է: Ճշմարիտ մուտքի կետը բացահայտելու համար մենք նորից բացում ենք AndroidManifest.xml ֆայլը: Եվ այո, այն պարունակում է հետևյալ տողերը.

Նրանք մեզ ասում են (և, ավելի կարևորը՝ Android-ին), որ Start անունով գործողությունը պետք է գործարկվի՝ ի պատասխան android.intent.action.MAIN-ի ստեղծմանը android.intent.category.LAUNCHER կատեգորիայի մտադրության (իրադարձության): Այս իրադարձությունը ստեղծվում է, երբ դուք հպում եք գործարկիչում հավելվածի պատկերակին, ուստի այն սահմանում է մուտքի կետը, այն է՝ «Սկսել» դասը: Ամենայն հավանականությամբ, ծրագրավորողը սկզբում գրել է ծրագիր առանց հիմնական մենյուի, որի մուտքի կետը ստանդարտ MainActivity դասն էր, այնուհետև ավելացրել է նոր պատուհան (գործունեություն), որը պարունակում է ցանկը և նկարագրված է Start դասում, և ձեռքով այն դարձրել է մուտք: կետ.

Բացում ենք Start.smali ֆայլը և նորից փնտրում «Ad» տողը, 153 և 155 տողերում գտնում ենք FirstAd դասի հիշատակումը։ Այն կա նաև սկզբնաղբյուրում և, դատելով անունից, պատասխանատու է հիմնական էկրանին գովազդ ցուցադրելու համար։ Մենք նայում ենք հետագա, կա FirstAd դասի օրինակ և մտադրություն, ըստ այս օրինակի հետ կապված համատեքստի, և այնուհետև cond_10 պիտակը, որին պայմանական անցումը կատարվում է հենց դասի օրինակ ստեղծելուց առաջ: :

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

Ամենայն հավանականությամբ, ծրագիրը ինչ-որ կերպ պատահականորեն հաշվարկում է, թե արդյոք անհրաժեշտ է գովազդ ցուցադրել հիմնական էկրանին, և եթե ոչ, անմիջապես ցատկում է cond_10: Լավ, եկեք պարզեցնենք նրա խնդիրը և փոխարինենք պայմանական անցումը անվերապահով.

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

Կոդում FirstAd-ի մասին այլևս հիշատակումներ չկան, ուստի մենք փակում ենք ֆայլը և նորից հավաքում մեր վիրտուալ ջահը՝ օգտագործելով apktool: Պատճենել սմարթֆոնին, տեղադրել, գործարկել: Voila, բոլոր գովազդները չկան, շնորհավորում ենք բոլորիս:

Արդյունքներ

Այս հոդվածը պարզապես հակիրճ ներածություն է Android հավելվածների բացման և փոփոխման մեթոդներին: Շատ խնդիրներ մնացին կուլիսներում, ինչպիսիք են պաշտպանությունը հեռացնելը, խճճված կոդի վերլուծությունը, հավելվածի ռեսուրսների թարգմանությունն ու փոխարինումը, ինչպես նաև Android NDK-ով գրված հավելվածների փոփոխումը: Սակայն տարրական գիտելիքներ ունենալը, այս ամենը հասկանալը միայն ժամանակի խնդիր է։

Իրենց սմարթֆոնի ստանդարտ ֆունկցիոնալությունն ընդլայնելու համար օգտատերերը նախընտրում են ներբեռնել և տեղադրել դրա վրա լրացուցիչ հավելվածներ։ Եվ եթե iPhone-ի սեփականատերերը դրա համար պետք է օգտագործեն iTunes Store-ը, ապա Android-ի օգտատերերը կարող են գործողությունը կատարել ներկառուցված գործիքներով:

Նախ պետք է կարգավորել կարգավորումները, որպեսզի կարողանաք անհայտ աղբյուրներից հավելվածներ տեղադրել:

Հիմա եկեք ավելի սերտ նայենք, ինչ է apk. Android-ի համար նախատեսված բոլոր հավելվածներն ու ֆայլերն ունեն այս ընդլայնումը։ Իրականում դրանք սովորական արխիվացված փաստաթղթեր են։ Նրանք կարող են բացվել հատուկ ծրագրերի, արխիվների միջոցով: Android սարքերը ճանաչում են այս ֆայլերը և լռելյայն գիտեն, թե ինչ անել դրանց հետ:

.apk ֆայլերի տեղադրում

.apk հավելվածները տեղադրելու մի քանի եղանակ կա: Դրանցից ամենահեշտը ֆայլերի կառավարչի օգտագործումն է: Դա անելու համար .apk ընդլայնմամբ փաստաթուղթը պետք է պահվի սմարթֆոնում տեղադրված հիշողության քարտում։ Այնուհետև դուք պետք է բացեք ցանկացած ֆայլի կառավարիչ (օրինակ) և գտնեք դրա մեջ ցանկալի ֆայլը: Դրանից հետո տեղադրումը կսկսի օգտագործել ստանդարտ համակարգի տեղադրիչը:

APK ֆայլը տեղադրելու մեկ այլ միջոց է օգտագործել Play Market-ը: Տեղադրումն ավարտելու համար հարկավոր է գնալ հավելված և գտնել ցանկալի ծրագիրը։ Դրանից հետո կոճակը « Տեղադրեք», և գործընթացը սկսվում է ինքնաբերաբար: Այս մեթոդի օգտագործման միակ պահանջն այն է, որ դուք ունեք Google հաշիվ՝ հավելված մուտք գործելու համար:

Եթե ​​սարքի վրա տեղադրված է տերմինալ, ապա տեղադրումը կարող է իրականացվել դրա միջոցով: Այն պետք է բացել հրամանի տողը: Դրանում գրված է adb install հրամանը, այնուհետև ֆայլի անունը և դրա ընդլայնումը (.apk):
Բացի այդ, տեղադրման համար օգտագործվում են հավելվածների կառավարիչներ: Այս ծրագրերը նախատեսված են պարզեցնելու կոմունալ ծառայությունների տեղադրումը .apk-ի միջոցով: Նրանք կսկանավորեն SD քարտը և կգտնեն իրենց անհրաժեշտ ֆայլերը: Դրանից հետո ցանկացած հավելված տեղադրելու համար կարող եք սեղմել մի քանի կոճակ։

Վերոնշյալից կարող ենք եզրակացնել, որ այսօրվա հրապարակման թեման կհնչի այսպես. ինչպես տեղադրել apk ֆայլ Android-ում։ Շատերը չգիտեն, թե ինչպես դա անել, չնայած իրականում ամեն ինչ շատ պարզ է:

Այսպիսով, ընկերներ, եկեք սկսենք մի փոքրիկ ներածական մասից: Եթե ​​հիշում եք, ապա մենք տեղադրեցինք Navitel նավիգացիոն համակարգը պաշտոնական հավելվածների խանութից, որը կոչվում է Play Market:

Այսինքն, մենք դեռ իրականում չգիտենք, թե ինչ կատարվեց այնտեղ. մենք պարզապես միացրինք մեր բջջային սարքը ինտերնետին, գնացինք խանութ, ընտրեցինք այն, ինչ մեզ անհրաժեշտ էր և սեղմեցինք «Տեղադրել» կոճակը: Այս ամենը պատրաստ է:

Բայց հիմա մենք բոլորովին այլ բան կանենք, քանի որ մենք արդեն ունենք նախապես ներբեռնված տեղադրման ֆայլ «apk» ձևաչափով և հենց Play Market-ն այս դեպքում, մեզ դա ընդհանրապես պետք չէ.

Այսպիսով, որպեսզի դուք ավելի լավ հասկանաք, նման ընդլայնմամբ ֆայլը Android համակարգի ծրագրի տեղադրողն է: Օրինակ, եթե դուք ինքներդ եք ծրագրեր տեղադրել Windows-ում, ապա գիտեք, որ նման ֆայլերն այնտեղ ունեն «exe» ընդլայնում։

Վերոնշյալ բոլորից բխում է հարցը՝ ինչպե՞ս տեղադրել «apk» ֆայլը, եթե ոչ խանութի միջոցով։ Եվ ահա թե ինչպես, այսուհետ կարդացեք շատ ուշադիր. Ավելին, մենք կքննարկենք ամեն ինչ, օգտագործելով նույն Navitel Navigator-ի օրինակը:

Չնայած տարբերություն չկա։ Բացարձակապես բոլոր դիմումների համար այս ընթացակարգը միանգամայն նույնն է: Հոդվածում ամբողջ տեսանելիությունը կցուցադրվի Android 4.1.2 օպերացիոն համակարգի տարբերակում:

Եվ սկզբի համար մենք անպայման պետք է ստեղծենք մեկ շատ բարդ պարամետր: Հենց հիմա ընտրեք «Կարգավորումներ» բաժինը.

Իսկ «Անվտանգություն» ներդիրում նշեք «Անհայտ աղբյուրների» կողքին գտնվող վանդակը։ Ստորև ներկայացված սքրինշոթը՝ ձեզ օգնելու համար.

Այժմ մենք պետք է ներբեռնենք տեղադրման ֆայլը «apk» ընդլայնմամբ: Մեր դեպքում մենք այն գտնում ենք ծրագրի պաշտոնական կայքում «Ներբեռնում» բաժնում.

Ուշադրություն դարձրեք վերևի նկարին. Շատ հաճախ, այս եղանակով տեղադրելիս, ձեզ կառաջարկվի ընտրել ձեր սարքի էկրանի լուծաչափը: Բայց եթե դրա մասին ոչինչ չգիտեք, ընտրեք այն տարբերակը, որը համապատասխանում է ցանկացած ցուցադրման լուծաչափին:

Այն բանից հետո, երբ apk ֆայլը ներբեռնվի համակարգիչ, այն պետք է պատճենվի ձեր սմարթֆոնի կամ պլանշետի հիշողության քարտում: Դա անելու համար միացեք համակարգչին մալուխի միջոցով.

Սրա արդյունքում ձեր վրա շարժական սարքըԿհայտնվի հաղորդագրություն, որ կապը հաստատվել է: Այժմ կտտացրեք «Միացնել USB պահեստը» կոճակը էկրանի ներքևում:

Դրանից հետո Android սարքը համակարգչում կհայտնաբերվի որպես սովորական ֆլեշ կրիչ, որին անհրաժեշտ է պատճենել տեղադրման ֆայլը.

Այնուհետև նորից անցեք կարգավորումների ընտրացանկ՝ կտտացնելով վերին աջ անկյունում գտնվող պատկերակին.

Եվ բացվող «Ծրագրեր» պատուհանում ընտրեք «Ֆայլերի կառավարիչ» կետը.

Այս փուլում դուք կտեսնեք թղթապանակների ցանկ, որոնց թվում կա մերը «Ներբեռնում» անունով.

Եվ վերջապես, մենք տեսնում ենք մեր apk ֆայլը, որը պետք է տեղադրվի Android համակարգում.

Սեղմեք դրա վրա ձեր մատով և գործընթացը սկսված է.

Այժմ մենք սպասում ենք ֆայլերի պատճենման ավարտին, և դուք կարող եք գործարկել.

Սկզբունքորեն այստեղ ավարտվում է մեր ողջ գիտությունը։ Մենք վերադառնում ենք «Ծրագրեր» բաժին և տեսնում ենք նոր տեղադրված Navitel-ի պատկերակը.

Ի դեպ, այժմ սարքի ֆլեշ կրիչի վրա տարածք խնայելու համար կարող եք ջնջել հենց հավելվածի տեղադրման apk ֆայլը։ Դա անելու համար վերադարձեք «Ներբեռնում» թղթապանակ և կատարեք ստորև նկարում ներկայացված պարզ համակցությունները.

Սա է ողջ իմաստությունը, իմ սիրելի ընկերներ, այժմ մենք կարող ենք վստահորեն ասել, որ դուք հստակ գիտեք, թե ինչպես տեղադրել: Համաձայնեք, որ այստեղ իսկապես բարդ բան չկա։

Եվ հիմա մի քանի խոսք բուն ծրագրի մասին, որի օրինակով մենք դիտարկեցինք հավելվածների այս ձևով տեղադրման սկզբունքը: Եթե ​​դուք ավտովարորդ եք, ապա պետք է գնահատեք Navitel Navigator-ի հնարավորությունները:

Ավելին, այժմ դուք կարող եք հեշտությամբ տեղադրել այն ձեր բջջային սարքում և տաբատի գրպանում կրել նավիգացիոն լիարժեք համակարգ։ Պարզապես պետք է ներբեռնեք անհրաժեշտ քարտերը պաշտոնական կայքից (հղումը հոդվածի սկզբում) և գցեք դրանք համապատասխան թղթապանակներում.

Ի դեպ, արժե ասել, որ Android-ում Navitel-ի թղթապանակների կառուցվածքը լիովին նույնական է։ Այսպիսով, ուսումնասիրեք և օգտագործեք այն ձեր առողջության համար, որպեսզի չմոլորվեք: 😉

Եվ այս նոտայի հետ կապված՝ թույլ տվեք վերցնել իմ արձակուրդը, եթե հարցեր ունեք, բարի գալուստ հոդվածի մեկնաբանություններում: Եվ հիմա լրիվ հանգստանալու ժամանակն է, և հեղինակը դանդաղ, բայց հաստատապես սուզվում է տրանսի մեջ:

Գտնվել է ֆայլերի մեջ windows ֆայլըանհայտ ընդլայնմամբ մենք հաճախ հուսահատվում ենք: Սատանան գիտի, թե որն է այս չճանաչված «առանցքը». Նման մտքերը շատերի գլխում են գալիս, երբ առաջին անգամ տեսնում են «apk» ընդլայնումը: Ունենալով apk ֆայլ, ինչպե՞ս բացել այս բանը Windows-ում:

Այս հարցին պատասխանելուց առաջ պետք է հասկանալ, թե ինչպիսի գազան է սա մեր առջև։ .apk ֆայլի ձևաչափը մշակվել է Google-ի կողմից՝ Android-ի գործարկվող հավելվածներն այս ձևաչափով պահելու համար: Ծրագրերի և տվյալների մեկ արխիվում պահելու գաղափարը նոր չէ: Դեռևս անհատական ​​համակարգիչների ստեղծման սկզբնական շրջանում ծրագրերը արխիվում փաթեթավորելը շատ տարածված էր: Նման հավելվածներ գործարկելու համար նույնիսկ անհրաժեշտ չէր բացել այս արխիվը. համակարգի գործիքներն ինքնուրույն են դա արել: Այս տեխնոլոգիան շրջանառության մեջ է նաև մշակողների և օգտատերերի շրջանակներում։ տարբեր տեսակիէմուլյատորներ. Հետևաբար, Google-ի գաղափարը անսովոր կամ անսպասելի բան չէ:

«Apk» նշանակում է պարզապես «Android փաթեթ»: Սա սովորական արխիվ է, որը կարող է բացել Windows-ի համար հասանելի գրեթե ցանկացած արխիվ:

Արխիվի ներսում կան հավելվածի հետևյալ բաղադրիչները.

  • Ծրագրի սկզբնական կոդը:
  • Դիմումների ռեսուրսներ, ինչպիսիք են նկարները, ձայները և այլն:
  • Հատուկ ֆայլ, որը կոչվում է manifest:

Նրանք, ովքեր ցանկանում են բացել նման ֆայլ արխիվով, պետք է հետևեն մեր հետագա հրահանգներին:

Կատարում ենք դիահերձում

Քանի որ apk-ն արխիվ է, մենք կփորձենք այն բացել արխիվացնող ծրագրով։ Windows-ի համար մշակվել են բազմաթիվ բազմաֆունկցիոնալ արխիվացման ծրագրեր, որոնք կարող են ստեղծել և բացել գրեթե ցանկացած ձևաչափի արխիվներ: APK ֆայլերը բացառություն չեն: Եկեք մատնանշենք երկու նման արխիվներ Windows-ի համար, որոնք հաջողությամբ հաղթահարում են այս խնդիրը՝ WinRar և 7-zip: Եթե ​​այս ծրագրերից առաջինը կոմերցիոն է, ապա երկրորդը լիովին անվճար է, և այն կարող եք ներբեռնել անմիջապես դրա մշակողի՝ Իգոր Պավլովի կայքից՝ http://www.7-zip.org/ կամ http: /7-zip .org.ua/ru/:

Տեղադրեք 7-zip արխիվը Windows-ում (եթե, իհարկե, այս հայտնի ծրագիրն արդեն տուն չի գտել ձեր համակարգչում):

Աջ սեղմեք անհրաժեշտ apk ֆայլի վրա: Համատեքստի ընտրացանկը պետք է հայտնվի սովորականի պես:

Ընտրեք «7-zip» ցանկի տարրը. կհայտնվի ենթացանկ՝ ընտրանքների ընտրությամբ:

Մենք խնդրում ենք արխիվացնողին բացել արխիվը կամ տվյալներ հանել արխիվից: Դա կարելի է անել տարբեր ճանապարհներ, ընտրելով ենթամենյուի այս կամ այն ​​տարրը, օրինակ՝ «Բացել արխիվ» տարրը (միայն բովանդակությունը դիտելու համար) կամ «Բացել փաթեթավորումը» տարրը։ Օգտագործողին կառաջարկվի նշել ապափաթեթավորման թղթապանակը և այլ ընտրովի պարամետրեր:

Դա այն ամենն է, ինչ դուք պետք է իմանաք «apk» ընդլայնմամբ ֆայլ բացելու համար:

Այս հոդվածում մենք ձեզ կպատմենք, թե ինչպես բացել APK ֆայլը: Հստակ հետևեք հրահանգներին և լավ կլինեք:

Ինչ է APK-ն: Սա Android պլատֆորմի համար ստեղծված ցանկացած հավելվածի սովորական տեղադրող կամ աղբյուրի ֆայլերի արխիվ է: Հատկանշական է Android PackKage-ի համար: Android սարքերի որոշ օգտատերեր դժգոհում են նման ֆայլերի տեղադրման հետ կապված խնդիրներից։ Եկեք մանրամասն նայենք:

Սկզբում դուք պետք է ձեր հեռախոսին մուտք գործեք երրորդ կողմի դիմումները(հավելվածները ներբեռնված են ինտերնետից, ոչ թե Խաղալ շուկա) և թույլ տվեք դրանք տեղադրել հեռախոսում: Դա անելու համար դուք պետք է մի քանի մանիպուլյացիաներ կատարեք պարամետրերով. անցեք «Կարգավորումներ», այնուհետև «Անձնական տվյալներ» / «Անհատականացում» / «Համակարգ» բաժինը (բոլոր հեռախոսների վրա տարբեր ձևերով):

Այժմ հեռախոսը կտեղադրի ցանկացած ներբեռնված հավելված: Խնդրում ենք նկատի ունենալ, որ ներբեռնելով նման «ձախ» ծրագրեր, դուք վտանգում եք կորցնել արժեքավոր տեղեկատվություն, ինչպիսիք են գաղտնաբառերը, համարները: բանկային քարտերև պարզապես անձնական տվյալներ: Ոչ ոք չեղարկել է հաքերները և վիրուսները։ Եղեք զգույշ և զգոն ներբեռնված ֆայլերի հետ:

Հուշում. Համոզվեք, որ ներբեռնեք հակավիրուսային ծրագիրձեր սարքը պաշտպանելու համար:

Այսպիսով, կա մուտք: Այժմ դուք պետք է հասնեք ֆայլին, ինչպես սովորական համակարգչում: Գրեթե ցանկացած ֆայլերի կառավարիչ կօգնի ձեզ այս հարցում: Հենց նա թույլ կտա օգտագործել և բացել ներբեռնված APK ծրագրերը։

Ներբեռնեք բացարձակապես ցանկացած: Մենք նախընտրում ենք X-Plore Ֆայլերի կառավարիչ (ներբեռնում). Մեր կարծիքով, այն ապահովում է սմարթֆոնի ֆայլերի մասին առավել մանրամասն և հարմար կառուցվածքային տեղեկատվություն և, ի լրումն, ունի հիանալի ֆունկցիոնալություն:

Շատ դեպքերում պարզապես սեղմեք ներբեռնված հավելվածի պատկերակի վրա և այն կսկսվի:

Բայց եթե դա չստացվի, ապա օգտագործեք «Բացել համակարգում» գործառույթը, որը թույլ է տալիս բացել բացարձակապես բոլոր հնարավոր ծրագրերը:

Տեղադրելուց առաջ համոզվեք, որ կարդացեք հավելվածի թույլտվությունները: Նրանցից ոմանք պահանջում են մուտք գործել անձնական տեղեկություններ: Այդ դեպքում 20 անգամ մտածեք նման հավելվածներից օգտվելուց առաջ։

Եվ ընդհանրապես, ավելի լավ է գնել լիցենզավորված ծրագրեր և այլ ծրագրեր:

Հարգելի ընթերցողներ. Եթե ​​հոդվածի թեմայի վերաբերյալ հարցեր կամ մեկնաբանություններ ունեք, խնդրում ենք թողնել դրանք ստորև:

Հարցեր ունե՞ք

Հաղորդել տպագրական սխալի մասին

Տեքստը, որը պետք է ուղարկվի մեր խմբագիրներին.