Di Android 6, bagaimana cara menolak izin aplikasi untuk mengakses jaringan?

30

Di Android 6, pengguna memiliki (akhirnya!) Kemungkinan menyetujui atau menolak izin khusus untuk suatu aplikasi.

Namun, saya tidak dapat menemukan cara untuk menyetujui atau menolak akses jaringan, baik melalui Wi-Fi atau melalui koneksi data seluler. Izin yang relevan muncul di "Kemampuan aplikasi lain" dan ini hanya informatif - tampaknya tidak ada cara untuk mengubahnya.

Berikut ini contoh dengan aplikasi Catur Gratis:

tangkapan layar

dr01
sumber
4
Kamu tidak bisa Biarkan saya menemukan sumber yang kredibel tetapi Anda tidak dapat melakukannya secara asli karena itu akan sangat merugikan minat Google (iklan, yaitu). Sunting: Anda akan menemukan artikel ini menarik: androidpolice.com/2015/06/06/...
Firelord

Jawaban:

27

Anda tidak akan dapat mencapai kesuksesan melalui mekanisme asli Android.

Cody Toombs di Android Police telah menunjukkan hal ini dengan sangat baik di artikel: Android M Tidak Akan Pernah Meminta Pengguna Untuk Izin Menggunakan Internet, Dan Itu Mungkin Oke .

Di bagian Izin Umum dokumen yang Normal dan Berbahaya , Google mencatat:

Izin dibagi menjadi beberapa tingkat perlindungan.

Ada dua tingkat perlindungan yang memengaruhi aplikasi pihak ketiga: izin normal dan berbahaya.

  • Izin normal mencakup area di mana aplikasi Anda perlu mengakses data atau sumber daya di luar kotak pasir aplikasi, tetapi di mana ada sangat sedikit risiko terhadap privasi pengguna atau pengoperasian aplikasi lain . Misalnya, izin untuk mengatur zona waktu adalah izin normal.

    Jika suatu aplikasi menyatakan dalam manifesnya bahwa ia membutuhkan izin normal, sistem akan secara otomatis memberikan aplikasi itu izin pada waktu pemasangan. Sistem tidak meminta pengguna untuk memberikan izin normal, dan pengguna tidak dapat mencabut izin ini.

  • Izin berbahaya mencakup area di mana aplikasi menginginkan data atau sumber daya yang melibatkan informasi pribadi pengguna, atau berpotensi memengaruhi data yang disimpan pengguna atau pengoperasian aplikasi lain. Misalnya, kemampuan membaca kontak pengguna adalah izin berbahaya. Jika suatu aplikasi menyatakan bahwa ia membutuhkan izin berbahaya, pengguna harus secara eksplisit memberikan izin kepada aplikasi tersebut.

(Penekanan milikku)

Mengejutkan atau tidak, izin berikut berada di bawah daftar Izin Normal :

  • CHANGE_NETWORK_STATE - memungkinkan aplikasi untuk mengubah keadaan konektivitas jaringan - yaitu data seluler;
  • CHANGE_WIFI_STATE - memungkinkan aplikasi untuk mengubah kondisi konektivitas Wi-Fi;
  • INTERNET - memungkinkan aplikasi untuk membuka soket jaringan.

Jika itu tidak cukup, checkout izin yang dikelola oleh AppOps di sini . Jika Anda tidak menemukan izin terdaftar di sana, Anda tidak akan dapat melakukan apa pun dengan itu di GUI.

Karena metode alternatif sudah banyak dibahas di situs ini, rujuk ke:

Firelord
sumber
12
Terima kasih atas jawaban anda. Sangat mengecewakan ketika fitur lumpuh bukan karena ketidakmungkinan teknis tetapi karena alasan pasar.
dr01
25

Anda dapat menggunakan NetGuard (lihat daftar Firewall Internet saya untuk alternatif lain), yang berfungsi tanpa root dan memungkinkan Anda memblokir akses internet untuk aplikasi secara selektif (WiFi atau data seluler, dan bahkan selalu atau hanya jika layar mati). Ini dari pengembang XPrivacy, jadi pasti bagus;)

Netguard Netguard Netguard
NetGuard (sumber: Google Play ; klik gambar untuk varian yang lebih besar)

NetGuard adalah open source, jadi Anda juga dapat menemukannya di F-Droid .

Pembaruan: Perhatikan bahwa versi terbaru dari Netguard termasuk Google Ads serta Firebase Analytics - dua hal yang tidak ada urusannya dengan aplikasi firewall (atau keamanan lainnya) apa pun yang IMHO - yang kemungkinan besar adalah alasan mengapa tidak diperbarui lagi di F-Droid's repo resmi (masih tersedia di tambang dengan peringatan yang sesuai).

Izzy
sumber
1
Varian F-Droid NetGuard sebenarnya telah menambahkan fungsionalitas di luar yang diizinkan di Play Store.
andDevW
Bisakah itu memblokir iklan dalam aplikasi?
Pemain Abadi
1
@ImmortalPlayer jika aplikasi ditolak akses jaringannya, ia juga tidak dapat memuat iklan. Jadi jawabannya adalah "ya".
Izzy
4

Jika Anda memiliki akses root, Anda juga dapat menggunakan:

Saya telah memperbarui perangkat saya ke Android 6.0.1 dan sampai sekarang keduanya sepertinya berfungsi.

chris
sumber
3

Akses internet tidak dapat ditolak untuk masing-masing aplikasi di Android. Iklan adalah sumber utama pendapatan Google.

Namun jika Anda menggunakan Opera Max, Anda dapat membatasi akses internet ke aplikasi individual. Anda bahkan dapat menyimpan data, berkat teknologi kompresi Opera.

Instal Opera Max dari Play Store. Ini sepenuhnya gratis dan mudah digunakan. Tidak diperlukan root.

NVZ
sumber
Pembaruan : Tidak lagi penggemar Opera Max setelah mereka mulai menayangkan terlalu banyak iklan.
NVZ
3

Mengingat beberapa peristiwa baru-baru ini , saya ingin meningkatkan pertanyaan ini dengan memperkenalkan Triangle oleh Google. Dapatkan di APKMirror atau aplikasi dan instal dengan ADB .

Berikut adalah beberapa fitur utama.

Data seluler digunakan Minta untuk mengizinkan data untuk aplikasi yang diblokir Matikan saat di Wi-Fi Blokir semuanya secara default

Ini bukan VPN, itu memblokir akses aplikasi Anda ke Internet secara lokal. Anggap saja sebagai izin baru seperti menggunakan kamera atau memiliki akses ke lokasi Anda.

NatoBoram
sumber
1
Apakah ini menggunakan VPN / proxy seperti aplikasi serupa? Apakah itu memblokir akses dari perpustakaan asli?
hackel
1
@hackel saya menginstalnya (harus sideload karena katanya tidak tersedia di negara saya). Ia meminta saya untuk mengaktifkan VPN. Juga sepertinya tidak memblokir WIFI.
Bort
3

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.INTERNETizin 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.xmlfile

The packages.xmlberkas 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.

Penjual Topeng Kematian
sumber