Android 6에서 사용자는 앱에 대한 특정 권한을 승인하거나 거부 할 수 있습니다.
그러나 Wi-Fi 또는 셀룰러 데이터 연결을 통해 네트워크 액세스를 승인하거나 거부하는 방법을 찾지 못했습니다. 관련 권한은 '기타 앱 기능'에 표시되며 정보를 제공 할뿐 정보를 변경할 수있는 방법은 없습니다.
Chess Free 앱의 예는 다음과 같습니다.
Android 6에서 사용자는 앱에 대한 특정 권한을 승인하거나 거부 할 수 있습니다.
그러나 Wi-Fi 또는 셀룰러 데이터 연결을 통해 네트워크 액세스를 승인하거나 거부하는 방법을 찾지 못했습니다. 관련 권한은 '기타 앱 기능'에 표시되며 정보를 제공 할뿐 정보를 변경할 수있는 방법은 없습니다.
Chess Free 앱의 예는 다음과 같습니다.
답변:
Android의 기본 메커니즘을 통해 성공할 수 없습니다.
Android Police의 Cody Toombs는이 기사 에서이 사실을 잘 지적했습니다 .Android M은 사용자에게 인터넷 사용 권한을 묻지 않습니다 . 아마도 괜찮습니다 .
문서 권한 개요 의 일반 및 위험한 권한 섹션 에서 Google은 다음을 언급했습니다.
권한은 여러 보호 수준으로 나뉩니다.
타사 앱에 영향을주는 두 가지 보호 수준, 즉 정상 및 위험한 권한이 있습니다.
일반 권한은 앱이 샌드 박스 외부의 데이터 나 리소스에 액세스해야하는 영역을 다루지 만 사용자의 개인 정보 나 다른 앱의 운영에 대한 위험은 거의 없습니다 . 예를 들어 시간대 설정 권한은 일반 권한입니다.
앱이 매니페스트에서 일반 권한이 필요하다고 선언하면 시스템은 설치시 해당 권한을 앱에 자동으로 부여합니다. 시스템은 사용자에게 일반 권한을 부여하라는 메시지를 표시하지 않으며 사용자는 이러한 권한을 취소 할 수 없습니다.
위험한 권한은 앱이 사용자의 개인 정보와 관련된 데이터 또는 리소스를 원하거나 사용자의 저장된 데이터 또는 다른 앱의 작동에 영향을 줄 수있는 영역을 포함합니다. 예를 들어, 사용자의 연락처를 읽는 기능은 위험한 권한입니다. 앱이 위험한 권한이 필요하다고 선언하면 사용자는 앱에 권한을 명시 적으로 부여해야합니다.
(엠파 시스 마인)
놀랍게도, 다음 권한은 일반 권한 목록에 있습니다 .
충분하지 않으면 여기 에서 AppOps가 관리하는 권한을 확인 하십시오 . 거기에 나열된 권한을 찾을 수 없으면 GUI에서 권한을 사용하여 아무 작업도 수행 할 수 없습니다.
대체 방법은이 사이트에서 이미 광범위하게 다루었으므로 다음을 참조하십시오.
루트없이 작동하며 앱의 인터넷 액세스를 선택적으로 (WiFi 또는 모바일 데이터, 화면이 꺼져 있거나 항상 꺼져있는 경우에만) 차단할 수있는 NetGuard ( 다른 대안 은 인터넷 방화벽 목록 참조 )를 사용할 수 있습니다. XPrivacy 의 개발자가 제공 하므로 좋을 것입니다.)
NetGuard (출처 : Google Play ; 더 큰 변형을 보려면 이미지를 클릭하십시오)
NetGuard 는 오픈 소스이므로 F-Droid 에서도 찾을 수 있습니다 .
업데이트 : 최신 버전의 Netguard에는 방화벽 (또는 다른 보안) 응용 프로그램에서 IMHO가 비즈니스를 수행하지 않는 두 가지 항목 인 Google Ads와 Firebase Analytics가 포함되어 있습니다. 이는 F-Droid에서 더 이상 업데이트되지 않는 이유입니다. 공식 리포지토리 (여전히 적절한 경고와 함께 내에서 구할 수 있음 ).
응원하지 않고 할 수있는 정말 멋진 앱이 있습니다. 다음은 두 가지 예입니다.
(이미지를 클릭하면 확대됩니다)
(이미지를 클릭하면 확대됩니다)
루트 액세스 권한이 있으면 다음을 사용할 수도 있습니다.
내 장치를 Android 6.0.1로 업데이트했으며 지금까지 모두 작동하는 것 같습니다.
최근 의 일부 사건에 비추어 Google에서 Triangle 을 도입하여이 질문을 개선하고 싶습니다 . APKMirror 또는 APKPure 에서 다운로드 하여 ADB 와 함께 설치하십시오 .
VPN이 아니며 로컬로 앱의 인터넷 액세스를 차단합니다. 카메라를 사용하거나 위치에 액세스하는 것과 같은 새로운 권한으로 생각하십시오.
늦었을 수도 있지만 완전성을 기하기 위해 귀하의 질문에 본인의 의견을 추가하고 싶습니다. 이 답변은 응용 프로그램에 대한 인터넷 액세스를 차단하는 확실한 방법입니다. 단점은? 인 텐트를 차단하지 않고 복잡하고 대상 앱이 다운 될 수 있으며 루트 권한 이 필요합니다 .
테스트를 거쳐 Android 7.1.2까지 작동하는 것으로 확인되었습니다.
다른 응답자가 언급했듯이 인터넷에 액세스하려는 모든 응용 프로그램은에서 거부 할 android.permission.INTERNET
수없는 권한을 선언해야합니다 AndroidManifest.xml
. 하지만 Android는 앱이 요청한 권한을 어떻게 기억합니까? packages.xml
파일을 내부에 저장하여 에 위치한 보호 된 파일입니다 /data/system
.
우리와 같은 누군가 가 권한 을 추가하거나 제거 할 목적으로 루트 권한이있는 경우 해당 파일을 편집하는 데 관심이있을 것입니다 . VPN이나 방화벽 소프트웨어없이 앱에 대한 인터넷 액세스를 무효화하는 방법입니다.
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와 마찬가지로 Marshmallow 이상용으로 잘못 코딩 된 앱과 소프트웨어는 인터넷에 연결하려고 할 때 충돌 할 수 있습니다 .
또한 Firelord가 지적한 것처럼 앱을 업데이트하면 변경 사항이 되돌려 져 효과적으로 노력을 무효화하고 권한을 새로 삭제해야합니다.
위에서 수행 한 작업을 되돌리려면 필요한 권한을 다른 권한에 다시 추가하고 장치를 재부팅하면됩니다.
나는 결코 Nova Launcher 또는 그 개발자와 제휴하지 않습니다.