APK Info Viewer

Uzzini, ko Android lietotnes pakotne deklarē — versiju, atļaujas, komponentes un parakstīšanas sertifikātus —, pirms to instalē.

Gatavs. Nomet APK, lai to apskatītu.

APK tiek analizēta tikai tavā ierīcē: nekas netiek augšupielādēts, un fails tiek tikai lasīts — tas nekad netiek instalēts vai palaists.

BUJ

Ko es varu uzzināt par APK, to neinstalējot?

Diezgan daudz: lietotnes pakotnes nosaukumu un versiju, nepieciešamās Android versijas, visas prasītās atļaujas, ekrānus un fona komponentes, procesora veidus, kam pievienots vietējais kods, un sertifikātus, ar kuriem tā parakstīta.

Vai šis rīks var pateikt, vai APK ir ļaunprātīga programmatūra?

Nē — un esi skeptisks pret jebkuru rīku, kas sola spriedumu pēc ātras skenēšanas. Šeit tu saņem faktu datus: atļaujas, komponentes, parakstītājus un jaucējkodus. Salīdzini tos ar izstrādātāja publiskoto informāciju un uztver negaidītas atļaujas vai atšķirīgu parakstītāju salīdzinājumā ar oficiālo laidienu kā iemeslu atteikties.

Kādi faili tiek atbalstīti?

Vienreizēji APK faili līdz 500 MB. Sadalītās pakotnes (XAPK, APKM) un Android App Bundles (.aab) ir konteineri vai publicēšanas formāti, nevis viena instalējama pakotne, tāpēc tie tiek noraidīti ar skaidru ziņojumu mulsinoša pārskata vietā.

Ko man pasaka parakstīšanas dati?

Katra Android lietotne ir parakstīta, un sertifikāts identificē tās izdevēju. Tu redzi, kādas paraksta shēmas pakotne satur (v1, v2, v3), kā arī katra parakstītāja subjektu, derīguma termiņu un MD5, SHA-1 un SHA-256 nospiedumus. Divas APK ar sakrītošiem nospiedumiem nāk no viena un tā paša izdevēja — vai uzticēties šim izdevējam, ir tavs lēmums.

Ko nozīmē atzīme “Bīstami” (Dangerous) pie atļaujas?

Tā ir Android pašas klasifikācija: bīstamās atļaujas var piekļūt privātiem datiem — atrašanās vietai, kontaktpersonām, kamerai, mikrofonam, krātuvei —, tāpēc sistēma pirms to piešķiršanas jautā lietotājam. Šī atzīme nav apsūdzība; karšu lietotne, kas prasa atrašanās vietu, ir normāli. Tā vienkārši iezīmē atļaujas, kuras ir vērts izlasīt divreiz.

APK pakotnes anatomija un statiskā analīze

Android lietotnes izplatīšanas pamatā ir APK (Android Application Package) fails, kas kalpo kā saspiests arhīvs visam lietotnes saturam. Šajā pakotnē ir ietverti visi nepieciešamie elementi, lai operētājsistēma varētu lietotni instalēt un palaist: kompilētais kods, resursi, vizuālie aktīvi un pats svarīgākais — manifests.

Failā AndroidManifest.xml ir definēta lietotnes identitāte, tās struktūra un drošības parametri. APK Info Viewer veic šī faila un visas pakotnes statisko analīzi, kas nozīmē, ka dati tiek nolasīti un strukturēti, neizpildot un neinstalējot pašu lietotni. Tas ļauj droši pārbaudīt faila saturu pirms tā palaišanas ierīcē.

Atšķirībā no instalējamā APK formāta, izstrādātāji bieži izmanto citus formātus, kas nav tieši instalējami vienā solī. Piemēram, Android App Bundle (.aab) ir publicēšanas formāts, ko izmanto augšupielādei Google Play veikalā, savukārt XAPK vai APKM ir sadalītās pakotnes (split packages), kas satur vairākus APK failus. APK Info Viewer ir paredzēts tieši standarta .apk failu analīzei.

Lokālā apstrāde pārlūkprogrammā un datu privātums

Drošība un privātums ir kritiski aspekti, analizējot nezināmas izcelsmes programmatūru. APK Info Viewer visi failu lasīšanas, jaucējkodu aprēķināšanas un parsēšanas procesi tiek veikti lokāli lietotāja tīmekļa pārlūkprogrammā, izmantojot lokālo Worker pavedienu.

Šāda arhitektūra nodrošina vairākas priekšrocības:

  • Neviens fails vai tā daļa netiek augšupielādēta uz ārējiem serveriem.
  • Analīze ir pilnīgi konfidenciāla, jo dati neizplūst ārpus lietotāja ierīces.
  • Tiek novērsts risks nejauši palaist vai instalēt kaitīgu kodu ierīcē, jo rīks veic tikai statisku faila lasīšanu.
  • Lokālā apstrāde ļauj ātri apstrādāt apjomīgus failus līdz pat 500 MB robežai, ko ierobežo pārlūkprogrammas cilnes drošas darbības kapacitāte.

Tehniskie ierobežojumi un kļūdu paziņojumi

Lai nodrošinātu stabilu darbību un skaidru lietotāja pieredzi, rīkam ir noteikti stingri apstrādes noteikumi un ierobežojumi:

Situācija Rīka rīcība un paziņojums
Fails pārsniedz 500 MB Pārbaude tiek pārtraukta ar paziņojumu: "Šis fails ir lielāks par 500 MB — lielāks, nekā pārlūkprogrammas cilne var droši pārbaudīt."
Augšupielādēti vairāki faili reizē Tiek apstrādāts tikai pirmais fails, parādot piezīmi: "Pa vienam failam — tiek pārbaudīts pirmais."
Augšupielādēts XAPK fails Tiek parādīts paziņojums: "Šī ir XAPK sadalītā pakotne — vairāku APK konteiners. Izgriez pamata APK un pārbaudi šo failu."
Augšupielādēts AAB fails Tiek parādīts paziņojums: "Šis ir Android App Bundle (.aab) — publicēšanas formāts, nevis instalējams APK. Tā vietā pārbaudi izveidoto APK."
Fails nav APK formātā Ja trūkst manifesta, parādās: "Šis neizskatās pēc APK: iekšpusē nav atrasts lasāms AndroidManifest.xml."
Bojāts vai nepilnīgs fails Ja pakotne ir bojāta, tiek attēlots: "Pakotne izskatās bojāta vai saīsināta, tāpēc tās saturu nebija iespējams nolasīt."
Vispārēja lasīšanas kļūda Ja failu nevar nolasīt: "Failu nebija iespējams nolasīt. Izvēlies to vēlreiz."
Citas neparedzētas kļūdas Ja analīze neizdodas: "Pārbaude neizdevās. Mēģini citu failu."

Saskarnē ir ieviests arī vizuāls ierobežojums komponentu sadaļā: katrā kategorijā (Activities, Services, Receivers, Providers) tiek parādītas ne vairāk kā 100 vienības. Ja šis skaitlis tiek pārsniegts, saraksta galā tiek pievienota norāde +‹count› citi.

Android SDK versiju saderība un prasības

Sadaļā Prasības rīks atspoguļo trīs galvenos parametrus, kas nosaka lietotnes saderību ar Android operētājsistēmu:

  1. Minimālais Android: norāda zemāko operētājsistēmas versiju un API līmeni, kas nepieciešams lietotnes palaišanai. Ja ierīces OS ir vecāka par šo robežu, lietotni instalēt nevarēs. Informācija tiek attēlota formātā Android ‹version› (API ‹level›) vai vienkārši API ‹level›.
  2. Mērķa Android: norāda API līmeni, kuram lietotne ir optimizēta un testēta. Tas nosaka, kādus drošības un uzvedības noteikumus operētājsistēma piemēros šai lietotnei izpildes laikā.
  3. maks. SDK ‹n›: ja manifests to definē, šis parametrs ierobežo lietotnes instalēšanu uz jaunākām OS versijām, kas pārsniedz norādīto API līmeni.

Atļauju izvērtēšana un bīstamības pakāpes

Lietotnes pieprasītās atļaujas tiek attēlotas sadaļā Atļaujas. Android sistēmā atļaujas tiek iedalītas vairākās kategorijās atkarībā no piekļuves līmeņa lietotāja datiem un ierīces funkcijām.

Rīks automātiski identificē un saraksta augšgalā prioritāri izkārto tās atļaujas, kurām ir piešķirta atzīme Bīstama. Šīs atļaujas pieprasa piekļuvi sensitīvai informācijai, piemēram, kontaktpersonām, kamerai, mikrofonam, precīzai atrašanās vietai vai failu krātuvei. Statiskā analīze palīdz lietotājam pirms instalēšanas izvērtēt, vai lietotnes pieprasītās atļaujas atbilst tās deklarētajai funkcionalitātei.

Komponentu un resursu struktūra

Sadaļā Komponentes tiek analizēti četri galvenie Android lietotnes pīlāri:

  • Activities: lietotnes ekrāni un vizuālā saskarne.
  • Services: fona procesi, kas darbojas bez lietotāja tiešas līdzdalības.
  • Receivers: komponenti, kas klausās un reaģē uz sistēmas vai citu lietotņu raidītajiem paziņojumiem.
  • Providers: datu krātuves, kas ļauj lietotnei kopīgot datus ar citām lietotnēm.

Ja kāds no šiem komponentiem ir pieejams ārējām lietotnēm, tam tiek pievienota norāde eksportēts. Providers gadījumā tiek attēlota arī autoritāte (provider authority) vai vērtība Nav. Ja saraksta vienumu skaits pārsniedz displeja ierobežojumus, tiek parādīta norāde +‹count› citi.

Sadaļā Resursi un Vietējais kods tiek sniegts pārskats par pakotnes saturu:

  • Ekrāna blīvumi: atbalstītās ekrāna izšķirtspējas.
  • Resursu faili un Resursu krātuves faili: vizuālie un strukturālie elementi.
  • Koda faili (.dex): kompilētais Java/Kotlin baitskaitļu kods.
  • Faili pakotnē: kopējais failu skaits arhīvā.
  • Vietējais kods: atbalstītie procesoru arhitektūru veidi (ABI) un vietējo bibliotēku skaits.

Parakstu un jaucējkodu pārbaude

Katram APK failam ir jābūt parakstītam ar izstrādātāja sertifikātu. Sadaļā Paraksti rīks nolasa datus no v1 PKCS#7 blokiem un APK parakstīšanas blokiem (v2, v3 un v3.1). Tiek attēlota šāda informācija:

  • Parakstītāja kārtas numurs (Parakstītājs ‹n›).
  • Sertifikāta dati: Subjekts, Izdevējs, Sērijas numurs, kā arī derīguma termiņi Derīgs no un Derīgs līdz.
  • Tehniskie parametri: Paraksta algoritms un Atslēgas algoritms.
  • Sertifikāta pirkstu nospiedumi: MD5, SHA-1 un SHA-256.

Ja pakotnei nav derīga paraksta bloka, tiek parādīts brīdinājums: "Nav atrasts atpazīts paraksta bloks — pakotne var būt parakstīta vai pārpakotā veidā.". Jāņem vērā, ka rīks tikai nolasa un attēlo šos datus, bet neveic kriptogrāfisko parakstu integritātes pārbaudi, sertifikātu uzticamības ķēdes validāciju vai izdevēja reālās identitātes pārbaudi.

Sadaļā Faila jaucējkodi tiek parādīti paša APK faila MD5, SHA-1 un SHA-256 jaucējkodi, kas ļauj salīdzināt failu ar oficiāliem izstrādātāja publicētajiem kontrolsummu datiem.

Biežāk uzdotie jautājumi (FAQ)

Ko es varu uzzināt par APK, to neinstalējot?

Diezgan daudz: lietotnes pakotnes nosaukumu un versiju, nepieciešamās Android versijas, visas prasītās atļaujas, ekrānus un fona komponentes, procesora veidus, kam pievienots vietējais kods, un sertifikātus, ar kuriem tā parakstīta.

Vai šis rīks var pateikt, vai APK ir ļaunprātīga programmatūra?

Nē — un esi skeptisks pret jebkuru rīku, kas sola spriedumu pēc ātras skenēšanas. Šeit tu saņem faktu datus: atļaujas, komponentes, parakstītājus un jaucējkodus. Salīdzini tos ar izstrādātāja publiskoto informāciju un uztver negaidītas atļaujas vai atšķirīgu parakstītāju salīdzinājumā ar oficiālo laidienu kā iemeslu atteikties.

Kādi faili tiek atbalstīti?

Vienreizēji APK faili līdz 500 MB. Sadalītās pakotnes (XAPK, APKM) un Android App Bundles (.aab) ir konteineri vai publicēšanas formāti, nevis viena instalējama pakotne, tāpēc tie tiek noraidīti ar skaidru ziņojumu mulsinoša pārskata vietā.

Ko man pasaka parakstīšanas dati?

Katra Android lietotne ir parakstīta, un sertifikāts identificē tās izdevēju. Tu redzi, kādas paraksta shēmas pakotne satur (v1, v2, v3), kā arī katra parakstītāja subjektu, derīguma termiņu un MD5, SHA-1 un SHA-256 nospiedumus. Divas APK sader ar sakrītošiem nospiedumiem nāk no viena un tā paša izdevēja — vai uzticēties šim izdevējam, ir tavs lēmums.

Ko nozīmē atzīme “Bīstami” (Dangerous) pie atļaujas?

Tā ir Android pašas klasifikācija: bīstamās atļaujas var piekļūt privātiem datiem — atrašanās vietai, kontaktpersonām, kamerai, mikrofonam, krātuvei —, tāpēc sistēma pirms to piešķiršanas jautā lietotājam. Šī atzīme nav apsūdzība; karšu lietotne, kas prasa atrašanās vietu, ir normāli. Tā vienkārši iezīmē atļaujas, kuras ir vērts izlasīt divreiz.