APK пакетінің құрылымы және оның ішкі компоненттері
Android қолданбасының пакеті (APK) — бұл Android операциялық жүйесінде қолданбаларды тарату және орнату үшін пайдаланылатын архивтік файл пішімі. APK Info Viewer құралы қолданбаны құрылғыңызға орнатпай тұрып, оның ішкі құрылымын статикалық талдау әдісімен тексеруге мүмкіндік береді.
Кез келген стандартты APK файлының ішінде қолданбаның жұмысын анықтайтын бірнеше маңызды элементтер болады. Олардың ең негізгісі — AndroidManifest.xml файлы. Бұл файлда қолданбаның пакет аты, нұсқасы, рұқсаттары және басқа да жүйелік сипаттамалары жазылады. Егер талдау кезінде бұл файл табылмаса немесе оқылмаса, құрал "Бұл APK файлына ұқсамайды: ішінен оқылатын AndroidManifest.xml табылмады." (немесе интерфейстегі "Бұл APK файлына ұқсамайды: ішінен оқылатын AndroidManifest.xml табылмады.") деген қателік хабарламасын көрсетеді.
Сонымен қатар, пакет ішінде келесі компоненттер мен ресурстар орналасады:
- Код файлдары (.dex): Android құрылғысында орындалатын Dalvik байт-кодын қамтитын файлдар. Құрал есептің
Ресурстар(Ресурстар) бөліміндеКод файлдары (.dex)(Код файлдары (.dex)) саны ретінде осы файлдардың нақты көлемін көрсетеді. - Ресурс және ассет файлдары: Қолданбаның интерфейс элементтері, суреттері мен дыбыстары сияқты медиа файлдар. Олар есепте
Ресурс файлдары(Ресурс файлдары) жәнеАссет файлдары(Ассет файлдары) ретінде бөлек көрсетіледі. - Файлдардың жалпы саны: Пакет ішіндегі барлық файлдардың жиынтығы
Пакеттегі файлдар(Пакеттегі файлдар) жолында бекітіледі.
Бұл құрал тек жеке .apk пішіміндегі файлдарды ғана қабылдайды. Егер пайдаланушы бірнеше файлды бір уақытта жүктеуге әрекет жасаса, жүйе тек бірінші файлды ғана өңдеп, "Бір уақытта бір файл — біріншісі тексерілуде." (немесе "Бір уақытта бір файл — біріншісі тексерілуде.") деген ескертуді шығарады.
Android SDK нұсқалары және үйлесімділік талаптары
Android қолданбаларының әртүрлі құрылғылармен үйлесімділігі мен қауіпсіздік ережелері SDK (Software Development Kit) нұсқалары арқылы реттеледі. APK Info Viewer есебінің Талаптар (Талаптар) бөлімінде қолданбаның жұмыс істеу шектеулерін анықтайтын келесі параметрлер көрсетіледі:
- Минималды Android (
Минималды Android): Қолданба іске қосыла алатын ең төменгі операциялық жүйе деңгейі. Ол интерфейстеAndroid ‹version› (API ‹level›)немесе текAPI ‹level›форматында бейнеленеді. - Мақсатты Android (
Мақсатты Android): Әзірлеуші қолданбаны сынақтан өткізіп, оңтайландырған Android жүйесінің нұсқасы. Бұл параметр қолданбаның заманауи қауіпсіздік талаптарына сәйкестігін анықтайды. - Максималды SDK (
макс. SDK ‹n›): Егер әзірлеуші қолданбаның жұмысын белгілі бір жоғарғы нұсқамен шектеген болса, бұл мән де есепте көрсетіледі.
Бұл нұсқаларды алдын ала білу қолданбаның ескі немесе тым жаңа құрылғыларда қалай жұмыс істейтінін және жүйелік шектеулердің қалай қолданылатынын түсінуге көмектеседі.
Қолданба рұқсаттары және «Қауіпті» (Қауіпті) белгісі
Android жүйесіндегі қауіпсіздіктің маңызды элементі — рұқсаттар жүйесі. Қолданбалар өз жұмысы үшін құрылғының әртүрлі функцияларына қол жеткізуді сұрайды. APK Info Viewer құралы бұл сұраныстарды Рұқсаттар (Рұқсаттар) бөлімінде тізімдейді.
Android классификациясы бойынша рұқсаттар екі санатқа бөлінеді:
- Қалыпты рұқсаттар: Пайдаланушының жеке деректеріне қауіп төндірмейтін, жүйе тарапынан автоматты түрде берілетін рұқсаттар.
- Қауіпті рұқсаттар: Пайдаланушының жеке деректеріне (мысалы, геолокация, контактілер тізімі, камера, микрофон немесе ішкі жад) қол жеткізе алатын рұқсаттар.
Құрал қауіпті рұқсаттарды ерекшелеп көрсету үшін олардың жанына арнайы Қауіпті (Қауіпті) белгісін қояды. Пайдаланушыға ыңғайлы болуы үшін, барлық сұралған рұқсаттар тізімінде осы Қауіпті белгісі бар элементтер сұрыпталып, тізімнің ең басына шығарылады. Бұл қолданбаның қандай құпия деректерді сұрап тұрғанын бірден анықтауға мүмкіндік береді.
Қолданба компоненттері және олардың шектеулері
Android қолданбасының функционалдығы төрт негізгі компонент түрінен құралады. APK Info Viewer бұл компоненттерді Компоненттер (Компоненттер) бөлімінде келесі санаттар бойынша топтастырады:
- Activity: Пайдаланушы өзара әрекеттесетін қолданбаның экрандары.
- Service: Фондық режимде орындалатын тапсырмалар.
- Receiver: Жүйелік немесе сыртқы оқиғаларды қабылдайтын хабар тарату қабылдағыштары.
- Provider: Қолданбалар арасында деректерді бөлісуді реттейтін провайдерлер.
Егер компонент сыртқы қолданбалардың іске қосуына ашық болса, оның жанында экспортталған (экспортталған) белгісі тұрады. Провайдерлер үшін олардың қолжетімділік шекарасын анықтайтын провайдер авторы (authority) көрсетіледі, ал ол болмаса Жоқ (Жоқ) мәні жазылады.
Интерфейстің жүктелуін оңтайландыру үшін әрбір компонент санаты бойынша ең көп дегенде 100 жазба көрсетіледі. Егер компоненттер саны бұл шектен асып кетсе, тізімнің соңына және тағы ‹count› (немесе "және тағы ‹count›") деген белгі қосылады.
Android кодқа қол қою схемалары және сертификаттар
Android жүйесінде әрбір қолданбаның әзірлеушісін сәйкестендіру және пакеттің тұтастығын қамтамасыз ету үшін кодқа қол қою қолданылады. Құрал Қолтаңбалар (Қолаңбалар) бөлімінде v1 (PKCS#7 блогы) және APK Signing Blocks (v2, v3, v3.1) схемаларынан алынған келесі метадеректерді көрсетеді:
| Өріс атауы | Сипаттамасы |
|---|---|
Қол қоюшы ‹n› (Қол қоюшы ‹n›) |
Қол қоюшының реттік нөмірі. |
Субъект (Субъект) |
Сертификат иесінің мәліметтері. |
Берген (Берген) |
Сертификатты берген ұйым немесе орталық. |
Сериялық нөмір (Сериялық нөмір) |
Сертификаттың бірегей сәйкестендіргіш нөмірі. |
Жарамдылық басталуы (Жарамдылық басталуы) |
Сертификаттың күшіне енген уақыты. |
Жарамдылық аяқталуы (Жарамдылық аяқталуы) |
Сертификаттың жарамдылық мерзімінің аяқталу уақыты. |
Қолтаңба алгоритмі (Қолтаңба алгоритмі) |
Қолтаңбаны жасау үшін пайдаланылған криптографиялық алгоритм. |
Кілт алгоритмі (Кілт алгоритмі) |
Шифрлау кілтін жасау алгоритмі. |
Сондай-ақ, сертификаттың түпнұсқалығын салыстыру үшін MD5, SHA-1 және SHA-256 саусақ іздері (fingerprints) көрсетіледі. Егер пакетте ешқандай қолтаңба табылмаса, жүйе "Танылған қолтаңба блогы табылмады — пакетке қол қойылмаған немесе ол қайта өңделген болуы мүмкін." (немесе "Танылған қолтаңба блогы табылмады — пакетке қол қойылмаған немесе ол қайта өңделген болуы мүмкін.") деген ескертуді шығарады.
Құрал тек қолтаңба метадеректерін оқитынын ескеру қажет. Ол қолтаңбаның криптографиялық тұтастығын тексермейді, сертификаттың сенімділік тізбегін бағаламайды және әзірлеушінің шынайы өмірдегі тұлғасын растамайды.
Қауіпсіздік және браузердегі жергілікті өңдеу
APK Info Viewer құралының басты ерекшелігі — оның жұмыс істеу принципінде. Барлық файлдарды оқу, хэштерді есептеу және пакетті талдау процестері толығымен пайдаланушының веб-браузеріндегі жергілікті Worker (Web Worker) арқылы орындалады.
Бұл келесі қауіпсіздік шарттарын қамтамасыз етеді:
- Деректердің құпиялылығы: Жүктелген APK файлдары немесе олардың ішкі деректері ешқандай сыртқы серверге жіберілмейді.
- Құрылғы қауіпсіздігі: Талдау барысында APK файлы пайдаланушының құрылғысына орнатылмайды және іске қосылмайды.
- Жылдамдық: Файлдарды желі арқылы тасымалдау қажет болмағандықтан, талдау процесі жылдам орындалады.
Құралдың файл өлшеміне қатысты қатаң шектеуі бар: өлшемі 500 MB-тан асатын файлдар қабылданбайды және "Бұл файлдың өлшемі 500 MB асты — шолғыш қойындысы қауіпсіз тексере алатындан үлкен." (немесе "Бұл файлдың өлшемі 500 MB асты — шолғыш қойындысы қауіпсіз тексере алатындан үлкен.") деген қателік көрсетіледі.
Жиі қойылатын сұрақтар (FAQ)
APK орнатпай тұрып не біле аламын?
Қолданбаның пакет аты мен нұсқасы, қажетті Android нұсқалары, сұралған барлық рұқсаттар, экрандар мен фондық компоненттер, жергілікті кодқа арналған процессор түрлері және қол қойылған сертификаттар туралы көбі біле аласыз.
Бұл құрал APK файлдың зиянды екенін анықтай ала ма?
Жоқ — жылдам сканерлеу арқылы кесіп пішім беретін кез келген құралға күдікпен қараңыз. Мұнда сіз тек нақты деректерді аласыз: рұқсаттар, компоненттер, қолтаңбалар және хэштер. Оларды әзірлеуші жариялаған мәліметтермен салыстырыңыз.
Қай файлдарға қолдау көрсетіледі?
Өлшемі 500 MB дейінгі жеке APK файлдары. Бөлінген пакеттер (XAPK, APKM) мен Android App Bundles (.aab) бір орнатылатын пакет емес, сондықтан олар түсініксіз есептің орнына нақты хабарламамен қабылданбайды.
Қол қою мәліметтері не көрсетеді?
Әрбір Android қолданбасына қол қойылған, ал сертификат оны кім жариялағанын көрсетеді. Пакеттің қандай қолтаңба схемаларын (v1, v2, v3) қолданатынын және MD5, SHA-1, SHA-256 хэштерін көресіз.
Рұқсаттағы «Қауіпті» (Dangerous) белгісі нені білдіреді?
Бұл Android жүйесінің өз жіктемесі: қауіпті рұқсаттар жеке деректерге қол жеткізе алады (орналасқан жері, контактілер, камера, микрофон, жад), сондықтан жүйе оларды бермес бұрын пайдаланушыдан сұрайды.