Pembukaan
Mungkin terlambat, tapi saya ingin menambahkan pendapat saya sendiri, demi kelengkapan. Jawaban ini adalah cara jitu untuk memblokir akses internet ke suatu aplikasi. Kerugiannya? Itu tidak memblokir Intents, itu berbelit-belit dan mungkin membuat aplikasi target macet, dan itu membutuhkan hak akses root .
Ini telah diuji dan dikonfirmasi untuk berfungsi hingga Android 7.1.2.
Alasan
Seperti yang disebutkan oleh penjawab lain, aplikasi apa pun yang ingin mengakses internet, harus menyatakan android.permission.INTERNET
izin yang tak terbantahkan di dalamnya AndroidManifest.xml
. Bagaimana cara Android mengingat izin aplikasi mana yang diminta? Dengan menyimpannya di dalam packages.xml
, file terlindungi berada di /data/system
.
Tak perlu dikatakan bahwa seseorang seperti kita mungkin tertarik untuk mengedit file tersebut, untuk tujuan menambah atau menghapus izin, asalkan mereka memiliki hak root. Ini adalah cara kami untuk meniadakan akses internet ke aplikasi tanpa VPN atau perangkat lunak firewall.
The packages.xml
file
The packages.xml
berkas daftar semua aplikasi diinstal, bersama-sama dengan jalur dan izin mereka. Setiap aplikasi ditempatkan di antara <package></package>
tag; Demi jawaban saya, saya akan menargetkan Nova Launcher oleh TeslaCoil. Bait aplikasi dalam file adalah sebagai berikut:
<package name="com.teslacoilsw.launcher" codePath="/data/app/com.teslacoilsw.launcher-1" nativeLibraryPath="/data/app/com.teslacoilsw.launcher-1/lib" publicFlags="944258628" privateFlags="0" ft="16075caace8" it="16075cac965" ut="16075cac965" version="53000" userId="10083" installer="com.android.packageinstaller">
<sigs count="1">
<cert index="7" key="3082034d30820235a0030201020204638fbad3300d06092a864886f70d01010b05003057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b301e170d3134313230353030343535375a170d3434313132373030343535375a3057315530530603550403134c726f636b7a35353535204f553d44726f69642046726565646f6d20556e6974204f3d44726f69642046726565646f6d20496e63204c3d556e6b6e6f776e20533d556e6b6e6f776e20433d4c4b30820122300d06092a864886f70d01010105000382010f003082010a0282010100818b312365be3e55f48989d43468880067464eca65aa3ba73305178311fc2a053c143182f6d2ea635b57dc327adf8a5a9b763c03f0a48c38530114e6979358d6bfca37d161ca6fe8bb0d80f061d7b67bc1456cdfc38e0cda2ebd05c48113f701140950f0fe4315de6b95c7504129abb2c1a61f1e4f1229fb83f474dbcd7dc957b84a1b8a2aa0157b223609d77980a3f579c93fbb24a6f9fbb5a8e207cccdf1add616c95c732d5c114c0168fdbd9c00ddf211c2b8886b9498a34f389025802e334f404b7e4eb75f6308f086e5bdac64db10053c7ff8d21a350b941d5394ffbe2bd037139134eb065c2317625e65d3f628aecf7965a0d70b02e68aa8371efd1fe50203010001a321301f301d0603551d0e04160414a4e66b693ecdf3241883e3eed668354e1531ba11300d06092a864886f70d01010b050003820101003992f3f461a290db767911a4a519f035fe0c34e597e2fba2e31371e260bd2fc8f9a93c35e6f06553d02588d2f8453ee784d2ba09a696e66304e3e01f7c6bdf5b2747fc73f79d00379cc94eefa542c8eb308318364df2fa1a9c6a7ef0669d08f7b1f8635d0d4331e2817d5aeb0854760116c29801cf915ef67d5c0e04861cad4fa7b96fe8f9a0baf0cda649cd35a7122142ba38b2d16d9d319a8604a41fe0025d89be87f84ce8fc080ab54c76a96f3d9b70b1a5f5e18e48768e3684bca8a950665e16a6d50cf0045949baebca876d55eeba52ea421f33009872d9d654f8f8caa1bb465d754694d4bf6cb92f3299fbec3781849b37e6ba23ffe3d6c20ecb9bc65d" />
</sigs>
<perms>
<item name="com.android.launcher3.permission.READ_SETTINGS" granted="true" flags="0" />
<item name="com.google.android.c2dm.permission.RECEIVE" granted="true" flags="0" />
<item name="com.teslacoilsw.launcher.permission.C2D_MESSAGE" granted="true" flags="0" />
<item name="android.permission.EXPAND_STATUS_BAR" granted="true" flags="0" />
<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
<item name="android.permission.INTERNET" granted="true" flags="0" />
<item name="android.permission.ACCESS_NETWORK_STATE" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER" granted="true" flags="0" />
<item name="android.permission.SET_WALLPAPER_HINTS" granted="true" flags="0" />
<item name="android.permission.VIBRATE" granted="true" flags="0" />
<item name="android.permission.ACCESS_WIFI_STATE" granted="true" flags="0" />
<item name="android.permission.WAKE_LOCK" granted="true" flags="0" />
</perms>
<proper-signing-keyset identifier="10" />
</package>
Lekukan ini dilaporkan kata demi kata dari file.
Prosedur
Berbekal pengetahuan di atas, kita sekarang dapat melanjutkan untuk memeriksa izin Nova Launcher, yang dibungkus antara <perms></perms>
. Segera, kita akan menemukan satu-satunya yang perlu kita edit:
<item name="android.permission.INTERNET" granted="true" flags="0" />
Untuk secara efektif menolak akses internet ke aplikasi, kita hanya perlu menghapus seluruh baris dan reboot perangkat kita. Mengomentari untuk penggunaan di masa mendatang tidak berguna: Android memeriksa file ini di setiap boot, dan akan membersihkan komentar Anda .
Kekurangannya
Mengikuti prosedur ini akan memberi Anda aplikasi yang tidak dapat berkomunikasi dengan internet dengan cara apa pun. Namun, aplikasi dan perangkat lunak dengan kode buruk yang ditujukan untuk Marshmallow dan di atasnya mungkin macet ketika mencoba terhubung ke internet , seperti yang dilakukan Nova.
Selain itu, seperti yang ditunjukkan oleh Firelord, memperbarui aplikasi menyebabkan perubahan dikembalikan, secara efektif membatalkan upaya kami dan memerlukan izin untuk dihapus lagi.
Mengubah prosedur ini
Untuk membalikkan apa yang kami lakukan di atas, yang diperlukan hanyalah menambahkan izin yang telah kami hapus di antara yang lain dan mem-boot ulang perangkat.
Penolakan
Saya sama sekali tidak berafiliasi dengan Nova Launcher atau pengembangnya.