Android 6에서 네트워크에 액세스하기위한 앱 권한을 거부하는 방법은 무엇입니까?


30

Android 6에서 사용자는 앱에 대한 특정 권한을 승인하거나 거부 할 수 있습니다.

그러나 Wi-Fi 또는 셀룰러 데이터 연결을 통해 네트워크 액세스를 승인하거나 거부하는 방법을 찾지 못했습니다. 관련 권한은 '기타 앱 기능'에 표시되며 정보를 제공 할뿐 정보를 변경할 수있는 방법은 없습니다.

Chess Free 앱의 예는 다음과 같습니다.

스크린 샷


4
당신은 할 수 없습니다. 믿을만한 출처를 찾아 보자.하지만 구글의 관심사 (광고, 즉)에 큰 타격을 줄 수 있기 때문에 기본적으로 할 수는 없다. 편집 : 당신은이 기사를 흥미로울 것입니다 : androidpolice.com/2015/06/06/…
Firelord

답변:


27

Android의 기본 메커니즘을 통해 성공할 수 없습니다.

Android Police의 Cody Toombs는이 기사 에서이 사실을 잘 지적했습니다 .Android M은 사용자에게 인터넷 사용 권한을 묻지 않습니다 . 아마도 괜찮습니다 .

문서 권한 개요일반 및 위험한 권한 섹션 에서 Google은 다음을 언급했습니다.

권한은 여러 보호 수준으로 나뉩니다.

타사 앱에 영향을주는 두 가지 보호 수준, 즉 정상 및 위험한 권한이 있습니다.

  • 일반 권한은 앱이 샌드 박스 외부의 데이터 나 리소스에 액세스해야하는 영역을 다루지 만 사용자의 개인 정보 나 다른 앱의 운영에 대한 위험은 거의 없습니다 . 예를 들어 시간대 설정 권한은 일반 권한입니다.

    앱이 매니페스트에서 일반 권한이 필요하다고 선언하면 시스템은 설치시 해당 권한을 앱에 자동으로 부여합니다. 시스템은 사용자에게 일반 권한을 부여하라는 메시지를 표시하지 않으며 사용자는 이러한 권한을 취소 할 수 없습니다.

  • 위험한 권한은 앱이 사용자의 개인 정보와 관련된 데이터 또는 리소스를 원하거나 사용자의 저장된 데이터 또는 다른 앱의 작동에 영향을 줄 수있는 영역을 포함합니다. 예를 들어, 사용자의 연락처를 읽는 기능은 위험한 권한입니다. 앱이 위험한 권한이 필요하다고 선언하면 사용자는 앱에 권한을 명시 적으로 부여해야합니다.

(엠파 시스 마인)

놀랍게도, 다음 권한은 일반 권한 목록에 있습니다 .

  • CHANGE_NETWORK_STATE- 애플리케이션이 네트워크 연결 상태 (예 : 모바일 데이터)를 변경할 수 있도록합니다.
  • CHANGE_WIFI_STATE- 애플리케이션이 Wi-Fi 연결 상태를 변경할 수 있도록합니다.
  • 인터넷 -응용 프로그램이 네트워크 소켓을 열 수 있도록합니다.

충분하지 않으면 여기 에서 AppOps가 관리하는 권한을 확인 하십시오 . 거기에 나열된 권한을 찾을 수 없으면 GUI에서 권한을 사용하여 아무 작업도 수행 할 수 없습니다.

대체 방법은이 사이트에서 이미 광범위하게 다루었으므로 다음을 참조하십시오.


12
답변 주셔서 감사합니다. 기술적으로 불가능한 것이 아니라 시장상의 이유로 기능이 손상되는 것은 실망스러운 일입니다.
dr01

25

루트없이 작동하며 앱의 인터넷 액세스를 선택적으로 (WiFi 또는 모바일 데이터, 화면이 꺼져 있거나 항상 꺼져있는 경우에만) 차단할 수있는 NetGuard ( 다른 대안 은 인터넷 방화벽 목록 참조 )를 사용할 수 있습니다. XPrivacy 의 개발자가 제공 하므로 좋을 것입니다.)

넷 가드 넷 가드 넷 가드
NetGuard (출처 : Google Play ; 더 큰 변형을 보려면 이미지를 클릭하십시오)

NetGuard 는 오픈 소스이므로 F-Droid 에서도 찾을 수 있습니다 .

업데이트 : 최신 버전의 Netguard에는 방화벽 (또는 다른 보안) 응용 프로그램에서 IMHO가 비즈니스를 수행하지 않는 두 가지 항목 인 Google Ads와 Firebase Analytics가 포함되어 있습니다. 이는 F-Droid에서 더 이상 업데이트되지 않는 이유입니다. 공식 리포지토리 (여전히 적절한 경고와 함께 내에서 구할 수 있음 ).


1
NetGuard의 F-Droid 변형은 실제로 Play 스토어에서 허용되는 것 이상의 기능을 추가했습니다.
andDevW

인앱 광고를 차단할 수 있습니까?
불멸의 플레이어

1
@ImmortalPlayer 앱에 네트워크 액세스가 거부되면 광고를로드 할 수 없습니다. 이에 대한 대답은 "예"입니다.
Izzy



3

기본적으로 Android의 개별 앱에 대한 인터넷 액세스를 거부 할 수 없습니다. 광고는 Google 수익의 주요 원천입니다.

그러나 Opera Max를 사용하는 경우 개별 앱에 대한 인터넷 액세스를 제한 할 수 있습니다. Opera의 압축 기술 덕분에 데이터를 저장할 수도 있습니다.

Play Store에서 Opera Max 를 설치하십시오 . 완전 무료이며 사용하기 쉽습니다. 루트가 필요하지 않습니다.


업데이트 : 너무 많은 광고를 게재하기 시작한 후에는 더 이상 Opera Max의 팬이 아닙니다.
NVZ

3

최근 의 일부 사건에 비추어 Google에서 Triangle 을 도입하여이 질문을 개선하고 싶습니다 . APKMirror 또는 APKPure 에서 다운로드 하여 ADB 와 함께 설치하십시오 .

주요 기능은 다음과 같습니다.

사용 된 모바일 데이터 차단 된 앱에 대한 데이터를 허용하도록 요청 Wi-Fi 사용시 끄기 기본적으로 모든 것을 차단

VPN이 아니며 로컬로 앱의 인터넷 액세스를 차단합니다. 카메라를 사용하거나 위치에 액세스하는 것과 같은 새로운 권한으로 생각하십시오.


1
비슷한 앱과 같은 VPN / 프록시를 사용합니까? 기본 라이브러리의 액세스를 차단합니까?
hackel

1
@hackel 나는 그것을 설치했다. VPN을 사용하도록 요청했습니다. 또한 WIFI를 차단하지 않는 것 같습니다.
BORT

3

전문

늦었을 수도 있지만 완전성을 기하기 위해 귀하의 질문에 본인의 의견을 추가하고 싶습니다. 이 답변은 응용 프로그램에 대한 인터넷 액세스를 차단하는 확실한 방법입니다. 단점은? 인 텐트를 차단하지 않고 복잡하고 대상 앱이 다운 될 수 있으며 루트 권한필요합니다 .

테스트를 거쳐 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 또는 그 개발자와 제휴하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.