在Android 6中,如何拒绝应用访问网络的权限?


30

在Android 6中,用户可以(最终!)批准或拒绝对应用程序的特定权限。

但是,我找不到通过Wi-Fi或通过蜂窝数据连接来批准或拒绝网络访问的方法。相关权限显示在“其他应用功能”中,仅提供参考信息-显然无法更改它。

这是国际象棋免费应用程序的示例:

屏幕截图


4
你不能 让我找到一个可靠的消息来源,但您无法在本地进行,因为这会严重损害Google的利益(即广告)。:编辑:您会发现本文有趣androidpolice.com/2015/06/06/...
炎魔

Answers:


27

您将无法通过Android的本地机制获得成功。

Android Police的Cody Toombs在文章中很好地指出了这一点:Android M绝不会向用户征求使用互联网的许可,这可能还可以

Google 在“ 权限概述 ”文档的“ 正常和危险权限 ”部分中指出:

权限分为几个保护级别。

有两个影响第三方应用程序的保护级别:正常权限和危险权限。

  • 普通权限涵盖了您的应用需要访问其沙盒外部的数据或资源的区域,但这些区域对用户的隐私或其他应用的操作造成的风险很小。例如,设置时区的权限是普通权限。

    如果应用程序在其清单中声明需要正常权限,则系统会在安装时自动为该应用程序授予该权限。系统不会提示用户授予普通权限,并且用户无法撤消这些权限。

  • 危险权限涵盖应用程序需要涉及用户私人信息的数据或资源的区域,或可能影响用户存储的数据或其他应用程序的操作的区域。例如,读取用户联系人的功能是危险的权限。如果应用程序声明需要危险的权限,则用户必须向该应用程序明确授予该权限。

(强调我的)

无论是否令人惊讶,以下权限位于“ 普通权限 ”列表下:

如果这还不够,请在此处检出由AppOps管理的权限。如果未在此处列出您的权限,则将无法在GUI中对其进行任何操作。

由于本网站已经广泛介绍了替代方法,请参阅:


12
感谢您的回答。令人失望的是,功能崩溃不是由于技术上的不可能,而是由于市场原因。
dr01

25

您可以使用NetGuard(有关其他替代方法,请参阅我的Internet防火墙列表),该软件无需root用户即可运行,并且可以让您有选择地阻止应用程序(WiFi或移动数据,甚至始终或仅当屏幕关闭时)的Internet访问。它来自XPrivacy的开发人员,因此它必须很好;)

网卫 网卫 网卫
NetGuard(来源:Google Play;点击图片可查看较大版本)

NetGuard是开源的,因此您也可以在F-Droid上找到它

更新:请注意,Netguard的最新版本包括Google Ads以及Firebase Analytics – IMHO在防火墙(或任何其他安全)应用程序中没有业务的两件事–这很可能是它不再在F-Droid上更新的原因官方仓库(仍在我的仓库中,并带有适当的警告)。


1
NetGuard的F-Droid变体实际上增加了Play商店所不允许的功能。
andDevW

可以屏蔽应用内广告吗?
不朽的玩家,

1
@ImmortalPlayer如果某个应用程序被拒绝访问网络,则它也无法加载广告。因此,答案是“是”。
伊齐



3

本地Android上的单个应用程序不能拒绝Internet访问。广告是Google收入的主要来源。

但是,如果您使用Opera Max,则可以将Internet访问限制为单个应用程序。借助Opera的压缩技术,您甚至可以保存数据。

从Play商店安装Opera Max。它是完全免费且易于使用的。无需root。


更新:开始投放过多广告后,不再是Opera Max的粉丝。
NVZ

3

鉴于最近发生的一些事件,我想通过介绍Google的Triangle来改善这个问题。得到它APKMirrorAPKPure与安装ADB

以下是一些关键功能。

使用的移动数据 要求允许数据被阻止的应用程序 开启Wi-Fi时关闭 默认阻止所有内容

它不是VPN,而是在本地阻止您的应用访问Internet。就像使用相机或访问您的位置一样,将其视为新的权限。


1
是否使用类似类似应用程序的VPN /代理?它会阻止对本机库的访问吗?
hackel

1
@hackel我安装了它(因为它说在我的国家不受欢迎,所以不得不负担)。它要求我启用VPN。似乎也没有阻止WIFI。
BORT

3

前言

可能已经晚了,但是为了完整起见,我想对你的问题加我自己的看法。此答案是阻止应用程序访问Internet的一种可靠方法。不利之处?它不会阻止Intent,令人费解,并且可能会使目标应用程序崩溃,并且需要root特权

它已经过测试,并确认可以在Android 7.1.2上运行。


基本原理

正如其他答复者所提到的,任何希望访问互联网的应用程序都必须android.permission.INTERNET在其内部声明不可否认的许可AndroidManifest.xml。但是,Android如何记住应用程序请求的权限?通过将它们保存在其中packages.xml,可以找到一个受保护的文件/data/system

不用说,像我们这样的人可能对编辑该文件感兴趣,目的是添加或删除许可,前提是他们具有root特权。这是我们在没有VPN或防火墙软件的情况下否定对应用程序的Internet访问的方式。


packages.xml文件

packages.xml文件列出了所有已安装的应用程序,以及它们的路径和权限。每个应用都放置在<package></package>标签之间;为了我的回答,我将以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>

从文件中逐字记录缩进。


程序

有了以上知识,我们现在可以继续检查Nova Launcher的权限,该权限介于之间<perms></perms>。很快,我们将找到唯一需要编辑的内容:

            <item name="android.permission.INTERNET" granted="true" flags="0" />

为了有效地拒绝对应用程序的互联网访问,我们只需要删除整行并重新启动设备即可。将其注释掉以供将来使用是没有用的:Android每次启动时都会检查该文件,并将清除您的注释


缺点

遵循此步骤将使您的应用程序无法以任何方式与互联网通信。但是,与Nova一样,在尝试连接到Internet时用于棉花糖及更高版本的编码不良的应用程序和软件可能会崩溃

而且,如Firelord所指出的那样,更新应用程序会导致更改被还原,从而有效地使我们的工作无效,并且需要重新删除权限。


修改此程序

要逆转上面所做的操作,所需要做的就是在其他权限中添加我们删除的权限,然后重新启动设备。


免责声明

我绝不隶属于Nova Launcher或其开发人员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.