但是,我找不到通过Wi-Fi或蜂窝数据连接来批准或拒绝网络访问的方法。相关权限出现在“其他应用程序功能”中,并且仅提供信息-显然无法更改。
以下是Chess Free应用程序的示例:
#1 楼
您将无法通过Android的本地机制获得成功。Android Police上的Cody Toombs在文章中很好地指出了这一点:Android M绝不会向用户征求使用Internet的许可,这可能还可以。 Google在“权限概述”的“普通和危险权限”部分中指出:
权限分为几个保护级别。
有两个保护级别,影响第三方应用程序:正常权限和危险权限。用户的隐私或其他应用程序的操作。例如,设置时区的权限是普通权限。
如果应用程序在清单中声明需要正常权限,则系统会在安装时自动为该应用程序授予该权限。系统不会提示用户授予普通权限,并且用户无法撤消这些权限。
危险权限涵盖了应用程序想要包含用户私人信息的数据或资源或可能影响用户私人信息的区域。用户的存储数据或其他应用程序的操作。例如,读取用户联系人的功能是危险的权限。如果应用程序声明需要危险的权限,则用户必须将权限明确授予该应用程序。
(强调我的)
令人惊讶的是,以下权限位于“普通”权限列表下:
CHANGE_WIFI_STATE-允许应用程序更改Wi-Fi连接状态; <br />
互联网-允许应用程序打开网络套接字。
如果这还不够,请在此处签出AppOps管理的权限。如果未在此处列出您的权限,则将无法在GUI中对其进行任何操作。
由于本网站已经广泛介绍了替代方法,请参阅:
阻止应用程序在Android设备上访问Internet
工具来沙箱恶意软件应用程序甚至比Android上授予的权限还要多?
评论
感谢您的回答。令人失望的是,功能崩溃不是由于技术上的不可能,而是由于市场原因。
–dr_
16-2-28在11:25
#2 楼
您可以使用NetGuard(请参阅我的Internet防火墙列表,以了解其他替代方法),该软件无需root用户即可运行,并且可以让您选择性地阻止应用程序(WiFi或移动数据,甚至始终或仅在屏幕关闭时)的Internet访问。它来自XPrivacy的开发人员,因此必须很好;)NetGuard (来源:Google Play;点击图片可查看较大版本)
更新:请注意,Netguard的最新版本包括Google Ads和Firebase Analytics – IMHO在防火墙中没有业务的两件事(或任何其他安全性)应用程序-这很可能是它不再在F-Droid官方回购中更新的原因(仍在我的网站上并带有适当的警告)。
评论
实际上,NetGuard的F-Droid变体增加了Play商店所不允许的功能。
– andDevW
16年5月24日在20:27
可以屏蔽应用内广告吗?
–不道德的玩家
17年12月13日在1:04
@ImmortalPlayer如果某个应用程序被拒绝访问网络,则它也无法加载广告。因此,答案是“是”。
– Izzy♦
17年12月13日在7:08
F-Droid版本还可以选择性地阻止许多应用内广告,而不会完全阻止互联网访问。
–达卡龙
20年1月13日在7:15
#3 楼
有一些非常酷的应用程序可以做到这一点而无需生根。以下是两个示例:LostNet Firewall Free:
(单击图片放大)
/>
Mobiwol:NoRoot防火墙
(单击图片放大)
#4 楼
如果您具有root用户访问权限,则还可以使用:AFWall +-Android M似乎存在一些问题,因此您应该首先检查“ ... Android版本4.xx-5.
XPrivacy-需要Xposed框架并支持“ Android版本4.0.3-6.0.1”
我已将设备更新为Android 6.0.1至今都似乎都可以使用。
#5 楼
前言为时已晚,但出于完整性考虑,我想对你的问题加我自己的看法。此答案是阻止应用程序访问Internet的一种可靠方法。不利之处?它不会阻止Intent,令人费解,可能会使目标应用崩溃,并且需要root权限。
它已经过测试,并确认可以在Android 7.1.2上运行。
Rationale
如其他答复者所述,任何希望访问互联网的应用都必须在
android.permission.INTERNET
内声明AndroidManifest.xml
不可否认的许可。但是,Android如何记住应用程序请求的权限?通过将它们保存在位于packages.xml
的受保护文件/data/system
中。根特权。这是我们在没有VPN或防火墙软件的情况下否定对应用程序的Internet访问的方法。以及它们的路径和权限。每个应用都放置在packages.xml
标签之间;为了我的回答,我将以TeslaCoil的Nova Launcher为目标。该应用程序在文件中的节如下: <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>
缩进从文件中逐字记录。
过程
基于以上知识,我们现在可以检查在
packages.xml
之间包裹的Nova Launcher的权限。很快,我们将找到我们唯一需要编辑的文件:我们的设备。将其注释掉以供将来使用是没有用的:Android每次启动时都会检查该文件,并清除您的注释。遵循此步骤将使您的应用程序无法以任何方式与互联网通信。但是,用于棉花糖及更高版本的编码不良的应用程序和软件可能会在尝试连接到Internet时崩溃,就像Nova一样。 ,实际上会使我们的努力无效,并且需要重新删除权限。我们在其他权限中删除了该权限,然后重新启动了设备。 #6 楼
不能拒绝Android本机上单个应用程序的Internet访问。广告是Google收入的主要来源。但是,如果您使用Opera Max,则可以将Internet访问限制为单个应用程序。借助Opera的压缩技术,您甚至可以保存数据。
从Play商店安装Opera Max。它是完全免费且易于使用的。无需root用户。
评论
更新:开始投放过多广告后,不再是Opera Max的粉丝。
– NVZ
19年1月12日在20:08
#7 楼
鉴于最近发生的一些事件,我想通过介绍Google的Triangle来改善这个问题。可以在APKMirror上获取它,也可以通过ADB进行安装。这里有一些关键功能。 VPN,它会在本地阻止您的应用访问Internet。就像使用相机或访问您的位置一样,将其视为新权限。
评论
是否使用类似类似应用程序的VPN /代理?它会阻止对本机库的访问吗?
– hackel
17年8月7日在20:31
@hackel我安装了它(因为它说在我的国家不受欢迎,所以不得不负担)。它要求我启用VPN。似乎也没有阻止WIFI。
–
17年11月16日在1:17
评论
你不能让我找到一个可靠的来源,但您不能在本地进行,因为这会严重损害Google的利益(即广告)。编辑:您会发现本文有趣:androidpolice.com/2015/06/06/…