Paano Tingnan ang Mga Pahintulot sa Android App Bago Mag-install ng APK
Kapag nag-install ka ng app mula sa Google Play Store, nagpapakita ang Android ng pinasimpleng buod ng kung ano ang maa-access ng app. Sideload ang isang APK mula sa isang source na hindi Play at wala kang ganoong safety net, maliban kung ikaw mismo ang magbabasa ng manifest. Ang "Dapat ba talagang kailangan ng isang wallpaper app ang SMS at microphone access?" ay eksaktong uri ng tanong na tutulungan ka ng gabay na ito na sagutin.
Ang sumusunod ay ang parehong daloy ng trabaho na ginagamit ng aming team kapag sinusubukan ang isang hindi pamilyar na APK: buksan ito, basahin ang mga entry ng uses-permission, i-decode ang mga antas ng proteksyon, at ihambing kung ano ang kailangan ng app na sabi sa karaniwang kinakailangan ng kategorya nito. Ginagawa ng aming online na tool sa Impormasyon ng APK ang binary-XML decoding para sa iyo kaya ang buong proseso ay tumatagal ng humigit-kumulang sampung segundo.
Bakit Abalahin ang Mga Pahintulot sa Pag-audit?
Ang mga nakakahamak na developer ay kumukuha ng mga sikat na libreng app, binabago ang mga ito, at muling ilalabas ang mga ito sa mga third-party na site. Bagama't maaaring normal ang hitsura at paggana ng app, ang nakatagong code nito ay maaaring kinopya ang iyong listahan ng contact o nagre-record ng iyong background na audio. Sa pamamagitan ng pagtingin sa mga pahintulot na paunang pag-install, makikita mo itong mga pulang bandila ng "permission creep."
Paano I-audit ang Anumang APK File (Online)
Binabasa ng aming Tool sa Impormasyon ng APK ang manifest ng iyong file nang buo sa iyong browser; ang file ay hindi kailanman na-upload sa isang server, at walang code na naisakatuparan. Narito kung paano ito gamitin:
Proseso:
- Pumunta sa Pahina ng Impormasyon ng APK.
- Piliin ang iyong .apk file.
- Hintaying matapos ang pagsusuri (karaniwang 5 segundo).
- Mag-scroll pababa sa Seksyon ng Mga Pahintulot.
- Maghanap ng mga flag na may mataas na peligro tulad ng: READ_SMS, PROCESS_OUTGOING_CALLS, o ACCESS_FINE_LOCATION.
Pahintulot Red Flag List
Kung ang isang Calculator o Flashlight app ay humihingi ng READ_CONTACTS o RECORD_AUDIO, tanggalin kaagad ang file. Walang lehitimong dahilan para sa mga app na ito na magkaroon ng data na iyon.
Pag-unawa sa Mga Antas ng Pahintulot sa Android
Hindi lahat ng pahintulot ay ginawang pantay. Ikinategorya ng Android ang mga ito sa tatlong antas:
- Normal: Mga pahintulot na mababa ang panganib na hindi direktang nagbabanta sa privacy (hal., SET_ALARM). Awtomatikong ibinibigay ng Android ang mga ito.
- Mapanganib: Mga pahintulot na may mataas na peligro (Mga Contact, Lokasyon, Camera). Ang mga dapat na ito ay kinumpirma mo kapag tumatakbo ang app.
- Lagda/System: Lubhang mataas ang panganib. Available lang ang mga ito sa mga app na nilagdaan ng manufacturer ng device o ng OS mismo.
Manu-manong Paraan (Paggamit ng ZIP Viewer)
Kung mayroon kang ilang teknikal na kasanayan, maaari kang mag-audit ng mga pahintulot sa iyong sarili:
- Palitan ang pangalan ng app.apk sa app.zip at buksan ito.
- Hanapin ang AndroidManifest.xml. (Tandaan: Ito ay nasa binary na format at magmumukhang daldal sa isang text editor).
- Gumamit ng tool tulad ng AXMLPrinter para i-convert ito sa nababasang text.
- Maghanap ng mga tag na nagsisimula sa <uses-permission>.
Rekomendasyon: Mas mabilis na gamitin ang aming online na tool na agad na nagde-decode nito para sa iyo.
I-audit ang Iyong Mga App Ngayon
Alamin kung ano mismo ang hinihiling ng iyong mga app. Walang lihim, walang panganib.
Suriin ang Mga Pahintulot sa APKAno ang Tunay na Nakaimbak sa AndroidManifest.xml
Ang manifest ay ang pinagmulan ng katotohanan para sa bawat pahintulot, bahagi, at tampok na idineklara ng isang app. Sa loob ng isang APK, ang file ay nasa binary XML form, hindi ang plain text na nakikita mo sa source code, kaya hindi ito mababasa gamit ang isang normal na text editor. Ang aming tool sa Impormasyon ng APK ay nagde-decode ng binary XML at ipinapakita ang mga nauugnay na tag. Ang pinakamahalaga ay:
- <uses-permission android:name="..."/>: bawat pahintulot na maaaring hilingin ng app. Ang listahan ng puno na ay narito, kabilang ang mga maaaring hindi talaga gamitin ng app sa runtime.
- <uses-permission-sdk-23 ... />: pareho, ngunit hiniling lamang kapag tumatakbo ang app sa Android 6 o mas bago. Ang mga mas lumang device ay tahimik na pinapayagan nang walang pag-prompt.
- <uses-feature android:name="..." android:required="true|false"/>: nagtatampok ang hardware na ginagamit ng app (camera, GPS, NFC). Kapag may markang kinakailangan, itinatago ng Play Store ang app mula sa mga device na kulang sa feature.
- <application android:debuggable="true">: isang higanteng pulang bandila sa isang release na APK. Inilalantad ng isang na-debug na app ang memorya at katayuan ng proseso nito sa sinumang may access sa ADB. Tanggihan.
- <activity android:exported="true"> sa mga sensitibong aktibidad: hinahayaan ang iba pang apps na ilunsad ang screen na iyon. Para sa isang privacy app, madalas itong nagpapahiwatig ng sloppy coding.
Mga Antas ng Proteksyon ng Pahintulot: Ang Cheat Sheet
Ang Android ay nagtatalaga ng "antas ng proteksyon" sa bawat pahintulot. Ang pag-alam kung saang antas kabilang ang isang kahilingan ay nagsasabi sa iyo kung gaano kaseryoso ang OS nito.
| Antas ng proteksyon | Karanasan ng gumagamit | Mga halimbawa |
|---|---|---|
| normal | Ibinigay nang tahimik sa oras ng pag-install. Walang prompt. | INTERNET, VIBRATE, ACCESS_NETWORK_STATE, WAKE_LOCK |
| mapanganib | Runtime prompt sa unang pagkakataon na ginamit ang feature. Maaaring bawiin sa Mga Setting. | CAMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| pirma | Ibinibigay lang sa mga app na nilagdaan gamit ang parehong certificate tulad ng pagbibigay ng app o OS. | BIND_VPN_SERVICE, INSTALL_PACKAGES (pang-system lamang) |
| lagda|pribilehiyo | Available lang sa mga paunang naka-install na app sa direktoryo ng priv-app ng system image. | MANAGE_USERS, READ_LOGS (pamahalaan ang mga user at log) |
| appop / tungkulin | Nangangailangan ng hiwalay na daloy ng Mga Setting upang paganahin. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (mga espesyal na pahintulot) |
Ano Talaga ang Ibig Sabihin ng Mga "Nakatagong" Pahintulot
Ang isang karaniwang maling kuru-kuro ay ang ilang mga pahintulot ay lihim. Ang mga ito ay hindi: bawat pahintulot na maaaring gamitin ng isang app ay dapat na ideklara sa AndroidManifest.xml, at ang OS ay tumangging magbigay ng anumang pahintulot na hindi nakalista doon. Ang karaniwang ibig sabihin ng mga tao sa "nakatago" ay isa sa dalawang bagay:
- Ang mga pahintulot sa normal na antas ay tahimik. Binibigyan sila ng oras ng pag-install nang walang anumang pakikipag-ugnayan ng user. Hindi man lang ipinapakita ng buod ng Play Store ang ilan sa mga ito. Ang mga ito ay "nakatago" sa kahulugan ng "madaling makaligtaan", hindi sa kahulugan ng "hindi ibinunyag".
- Maaaring ideklara ng Mga custom na pahintulot na tinukoy ng app. Apps ang sarili nilang mga <permission> tag at kailangan ang mga ito sa mga panloob na bahagi. Umiiral ang mga ito para sa inter-app na komunikasyon at hindi ito isang alalahanin sa privacy, ngunit maaari silang abusuhin kung ang isang sikat na app ay magdedeklara ng custom na pahintulot na may maling antas ng proteksyon at pagkatapos ay gagamitin ito ng isa pang app bilang backdoor.
Sa alinmang paraan, pareho ang sagot: basahin ang manifest, huwag magtiwala sa paglalarawan ng Play Store nang mag-isa.
Nagtrabaho Halimbawa: Pag-audit ng Tunay na APK
Ipagpalagay na mayroon kang example.apk sa iyong folder ng Mga Download. Narito ang eksaktong daloy ng trabaho:
- Buksan ang Tool sa Impormasyon ng APK sa iyong browser.
- I-drop ang APK sa lugar ng pag-upload. Nangyayari ang pagproseso sa lokal; hindi umaalis ang file sa iyong device.
- Basahin ang seksyong Mga Pahintulot. Ang bawat entry ay nagpapakita ng permanenteng pangalan (android.permission.READ_CONTACTS at isang simpleng paglalarawan ng wika kung ano ang pinapayagan nito).
- Ihambing ang listahan sa kategorya ng app. Sa pangkalahatan, asahan:
- Mga app ng camera: CAMERA, RECORD_AUDIO (para sa video), STORAGE/MEDIA write
- Mga app sa pagmemensahe: INTERNET, READ_CONTACTS, SEND_SMS (lamang kung SMS-based), RECORD_AUDIO (para sa voice notes), CAMERA (para sa pagpapadala ng mga larawan)
- Mga laro: INTERNET, minsan RECORD_AUDIO (para sa in-game voice chat), mga pahintulot na nauugnay sa pagsingil; bihira kahit ano pa
- Mga utility na app (calculator, flashlight, panahon): INTERNET (para sa mga ad), ACCESS_NETWORK_STATE, posibleng LOCATION (panahon lang). Ang anumang bagay sa kabila nito ay kahina-hinala.
- Kung anumang bagay sa listahan ay hindi akma sa kategorya, huwag i-install. Walang magandang dahilan ang isang calculator na nangangailangan ng SMS access.
Ang parehong logic ay nalalapat kung ang file ay isang APK, isang XAPK (kung saan binabasa namin ang inner base APK), o isang APKS bundle (kung saan binabasa namin ang manifest ng bawat split).
Ginagawa Ito mula sa Command Line
Kung mas gusto mo ang ruta ng terminal, ang Android SDK ay nagpapadala ng aapt2, na naglalabas ng manifest mula sa anumang APK sa simpleng XML:
aapt2 dump badging example.apk | grep "uses-permission"
O gamitin ang apksigner upang i-verify ang sertipiko ng pagpirma sa parehong oras:
apksigner verify --print-certs example.apk
Ginagawa ng browser tool ang parehong bagay para sa mga user na mas gustong hindi mag-install ng SDK para lang suriin ang isang file.
Mga Madalas Itanong (FAQ)
Maaari ko bang tanggihan ang pahintulot pagkatapos mag-install ng APK?
Oo. Sa Android 6.0 at mas mataas, maaari kang pumunta sa Mga Setting > Mga App > [Pangalan ng App] > Mga Pahintulot upang i-on o i-off ang mga indibidwal na mapanganib na pahintulot.
Ang mga XAPK file ba ay may iba't ibang mga pahintulot?
Ang isang XAPK ay naglalaman ng isa o higit pang mga APK. Ang bawat APK sa loob ay may sariling manifest. Susuriin ng aming tool ang Pangunahing APK sa loob ng bundle upang ipakita sa iyo ang mga nauugnay na pahintulot.
Bakit humihingi ng "Network Access" ang bawat app?
Halos lahat ng app ay nangangailangan ng internet access para sa analytics, pag-uulat ng bug, o mga advertisement. Bagama't karaniwan ito, ito rin ang paraan ng pagpapadala ng ninakaw na data sa server ng isang hacker.
Sinisiyasat ang Mga Pahintulot sa Manifest Bago Mo I-tap ang I-install
Hindi mo maaaring husgahan ang hindi mo nakikita. Ang paggugol ng sampung segundo sa tingnan ang mga pahintulot ng APK bago ka mag-sideload, ito ang pagkakaiba sa pagitan ng pag-alam kung ano ang maaaring maabot ng isang app at ang simpleng pag-asang kumikilos ito. Basahin muna ang listahan, at i-install ang pangalawa.