Lokalna analiza i privatnost unutar pretraživača
Alat APK Info preglednik omogućava statičku analizu Android aplikacijskih paketa (APK) direktno u vašem web pretraživaču prije nego što se odlučite za njihovu instalaciju. Cjelokupan proces čitanja, izračunavanja kriptografskih heševa i raščlanjivanja strukture datoteke odvija se lokalno, koristeći tehnologiju Web Workers unutar vašeg pretraživača.
Ovakav pristup garantuje potpunu privatnost podataka. Nijedna datoteka se ne otprema na eksterne servere, niti se aplikacija izvršava ili instalira na vašem uređaju. Alat služi isključivo za verifikaciju tehničkih činjenica i poređenje metapodataka sa zvaničnim izdanjima programera.
Prilikom učitavanja datoteke, interfejs prikazuje statusne poruke koje prate proces u realnom vremenu:
Spremno. Prevucite APK ovdje da biste ga pregledali.Čitanje datoteke ‹name›…Izračunavanje heševa datoteke — ‹percent›%Analiziranje paketa…Izvještaj je spreman.
Nakon završetka analize, korisnicima su na raspolaganju akcije Preuzmi izvještaj (koja aktivira status Izvještaj je preuzet.) i Očisti (koja vraća interfejs u početno stanje uz poruku Očišćeno.).
Ulazni kriteriji i rukovanje greškama
Alat je dizajniran za obradu jedne .apk datoteke po sesiji, uz maksimalnu dozvoljenu veličinu do 500 MB. Ukoliko pokušate analizirati datoteke koje odstupaju od ovih pravila ili su oštećene, sistem primjenjuje striktna ograničenja i prikazuje specifične poruke o greškama:
- Prevelike datoteke: Ako datoteka prelazi 500 MB, proces se obustavlja uz poruku:
"Ova datoteka je veća od 500 MB — veća je nego što kartica pretraživača može bezbjedno pregledati.". - Višestruki unos: Ako se odjednom uveze više datoteka, alat obrađuje samo prvu i prikazuje napomenu:
"Samo jedna datoteka u isto vrijeme — pregleda se prva.". - Podijeljeni paketi (XAPK/APKM): Ovi formati se odbijaju uz objašnjenje:
"Ovo je XAPK podijeljeni paket — kontejner koji sadrži nekoliko APK-ova. Raspakujte osnovni APK i pregledajte tu datoteku.". - Android App Bundles (.aab): Budući da je riječ o formatu za objavljivanje, a ne za direktnu instalaciju, sistem prikazuje poruku:
"Ovo je Android App Bundle (.aab) — format za objavljivanje, a ne instalacioni APK. Umjesto toga pregledajte izgrađeni APK.". - Neispravni formati: Ako datoteka nema odgovarajuću strukturu, prikazuje se greška:
"Ovo ne liči na APK: unutar datoteke nije pronađen čitljiv AndroidManifest.xml.". - Oštećeni paketi: U slučaju skraćenih ili oštećenih arhiva, pojavljuje se poruka:
"Paket izgleda oštećeno ili skraćeno, pa se njegov sadržaj nije mogao pročitati.". - Problemi sa čitanjem: Opšti problemi sa pristupom datoteci rezultiraju porukom:
"Datoteka se nije mogla pročitati. Izaberite je ponovo.", dok svi ostali nepoznati kritični propusti aktiviraju poruku:"Pregled nije uspio. Pokušajte sa drugom datotekom.".
Anatomija APK datoteke i tehnički zahtjevi
Svaki APK fajl je u suštini arhivirani paket koji sadrži kod, resurse i manifest koji definiše ponašanje aplikacije na Android operativnom sistemu. Kroz sekciju Zahtjevi (Requirements), alat izdvaja ključne parametre kompatibilnosti koji su definisani unutar manifesta:
- Minimalni Android (
Minimalni Android): Prikazuje se u formatuAndroid ‹version› (API ‹level›)ili samoAPI ‹level›, označavajući najstariju verziju OS-a na kojoj aplikacija može raditi. - Ciljni Android (
Ciljni Android): Prikazuje se kaoAndroid ‹version› (API ‹level›)iliAPI ‹level›, definišući verziju API-ja za koju je aplikacija optimizovana i prema kojoj se primjenjuju sigurnosna pravila ponašanja. - Maksimalni SDK: Ako je definisan, prikazuje se kao
maks. SDK ‹n›.
Pored toga, sekcija Resursi (Resources) pruža uvid u unutrašnju strukturu paketa kroz sljedeće metričke podatke:
Gustoće ekrana(podržane rezolucije ekrana).Datoteke resursa(resursi kompajlirani u aplikaciju).Datoteke sredstava(dodatna sredstva/assets unutar paketa).Kodne datoteke (.dex)(Dalvik Executable datoteke koje sadrže izvršni kod).Datoteke u paketu(ukupan broj datoteka unutar APK arhive).
Dozvole i komponente aplikacije
Unutar sekcije Dozvole (Permissions), alat izlistava sve zahtjeve koje aplikacija upućuje operativnom sistemu kako bi pristupila određenim funkcijama uređaja. Prilikom prikazivanja, primjenjuje se pravilo sortiranja prema kojem se dozvole klasifikovane kao opasne (one koje imaju pristup privatnim podacima korisnika) pozicioniraju na sam vrh liste uz oznaku Opasno.
Sekcija Komponente (Components) raščlanjuje deklarisane ulazne tačke i pozadinske procese aplikacije, podijeljene u četiri kategorije:
| Kategorija komponente | Oznaka u interfejsu | Specifični atributi |
|---|---|---|
| Aktivnosti | Aktivnosti |
Prikazuje oznaku izvezeno ako je komponenta dostupna drugim aplikacijama. |
| Servisi | Servisi |
Prikazuje oznaku izvezeno za pozadinske procese. |
| Prijemnici | Prijemnici |
Prikazuje oznaku izvezeno za komponente koje reaguju na sistemske događaje. |
| Pružaoci | Pružaoci |
Prikazuje oznaku izvezeno, autoritet pružaoca (authority) ili vrijednost Nema. |
Kako bi se očuvala preglednost interfejsa, implementirano je ograničenje prikaza na maksimalno 100 stavki po pojedinačnoj kategoriji komponenti. Ako broj komponenti prelazi ovaj limit, alat na kraju liste dodaje oznaku +‹count› više.
Izvorni kod i kriptografski potpisi
Za aplikacije koje koriste optimizovane biblioteke pisane u jezicima C ili C++, sekcija Mvorni kod (Native Code) prikazuje podržane tipove procesora (Application Binary Interfaces - ABI) zajedno sa brojem izvornih biblioteka.
U sekciji Potpisi (Signatures), alat vrši ekstrakciju metapodataka iz X.509 sertifikata koji se nalaze u v1 PKCS#7 blokovima, kao i u novijim APK blokovima za potpisivanje (v2, v3 i v3.1 šeme). Za svakog identifikovanog potpisnika (Potpisnik ‹n›), prikazuju se sljedeći podaci:
SubjektiIzdavač.Serijski broj.- Vremenski opseg važenja:
Vrijedi odiVrijedi do. - Primijenjeni algoritmi:
Algoritam potpisaiAlgoritam ključa. - Kriptografski otisci sertifikata: MD5, SHA-1 i SHA-256.
Ukoliko u paketu uopšte ne postoji prepoznatljiv blok sa potpisom, prikazuje se upozorenje: "Nije pronađen prepoznat blok potpisa – paket možda nije potpisan ili je prepakovan.". Važno je napomenuti da alat samo ekstrahuje i prikazuje ove metapodatke; on ne vrši kriptografsku verifikaciju integriteta samih potpisa, ne validira lanac povjerenja sertifikata, niti potvrđuje stvarni identitet izdavača u stvarnom svijetu.
Na samom kraju izvještaja, u sekciji Heševi datoteke (File hashes), prikazuju se MD5, SHA-1 i SHA-256 heš vrijednosti same APK datoteke, što omogućava brzu provjeru integriteta i poređenje sa poznatim bazama podataka.
Često postavljana pitanja (FAQ)
Šta mogu saznati o APK-u bez njegovog instaliranja?
Prilično mnogo: naziv paketa i verziju aplikacije, potrebne Android verzije, svaku zatraženu dozvolu, ekrane i pozadinske komponente koje deklariše, tipove procesora za koje sadrži izvorni kod, kao i sertifikate kojima je potpisana.
Može li ovaj alat reći da li je APK zlonamjeran?
Ne — i budite skeptični prema svakom alatu koji obećava konačnu presudu na osnovu brzog skeniranja. Ovdje dobijate činjenice: dozvole, komponente, potpisnike i heševe. Uporedite ih sa onim što je programer objavio i smatrajte neočekivane dozvole ili drugačijeg potpisnika u odnosu na zvanično izdanje razlogom za oprez.
Koje su datoteke podržane?
Pojedinačne APK datoteke do 500 MB. Podijeljeni paketi (XAPK, APKM) i Android App Bundles (.aab) su kontejneri ili formati za objavljivanje, a ne jedan instalacioni paket, pa se odbijaju uz jasnu poruku umjesto zbunjujućeg izvještaja.
Šta mi govore detalji o potpisivanju?
Svaka Android aplikacija je potpisana, a sertifikat identifikuje ko ju je objavio. Možete vidjeti koje šeme potpisa paket privatno podržava (v1, v2, v3), kao i subjekt svakog potpisnika, period važenja te MD5, SHA-1 i SHA-256 otiske. Dva APK-a sa istim otiscima dolaze od istog izdavača — na vama je da li tom izdavaču vjerujete.
Šta znači oznaka „Opasno” (Dangerous) na dozvoli?
To je Androidova sopstvena klasifikacija: opasne dozvole mogu pristupiti privatnim podacima — lokaciji, kontaktima, kameri, mikrofonu, memoriji — pa sistem pita korisnika prije nego što ih odobri. Oznaka nije optužba; normalno je da aplikacija za mape traži lokaciju. Ona samo označava dozvole koje vrijedi pročitati dva puta.