Як в Android 6 відмовити дозволу додатку на доступ до мережі?


30

В Android 6 користувач має (нарешті!) Можливість затвердити або заборонити конкретні дозволи для програми.

Однак я не зміг знайти спосіб схвалення або заборонити доступ до мережі ні через Wi-Fi, ні через мобільне з'єднання даних. Відповідний дозвіл відображається в розділі "Інші можливості програми", і він лише інформативний - мабуть, немає можливості змінити його.

Ось приклад із додатком Chess Free:

скріншот


4
Ви не можете. Дозвольте мені знайти надійне джерело, але ви не можете це зробити на самому собі, оскільки це сильно зашкодить інтересам Google (реклама, тобто). Редагувати: Ця стаття буде цікавою для вас: androidpolice.com/2015/06/06/…
Firelord

Відповіді:


27

Ви не зможете досягти успіху завдяки вродженому механізму Android.

Коді Томбс в Android Police дуже добре вказав на це у статті: Android M ніколи не просить користувачів дозволити користуватися Інтернетом, і це, ймовірно, добре .

У розділі Нормальні та небезпечні дозволи документа « Огляд дозволів» Google зазначив:

Дозвіл поділяється на кілька рівнів захисту.

Існує два рівні захисту, які впливають на додатки третіх сторін: нормальні та небезпечні дозволи.

  • Звичайні дозволи охоплюють області, де ваш додаток потребує доступу до даних або ресурсів за межами пісочної програми, але там, де існує дуже мало ризику для конфіденційності користувача або роботи інших додатків . Наприклад, дозвіл на встановлення часового поясу є звичайним дозволом.

    Якщо додаток заявляє у своєму маніфесті, що йому потрібен звичайний дозвіл, система автоматично надає програмі дозвіл під час встановлення. Система не спонукає користувача до надання нормальних дозволів, і користувачі не можуть відкликати ці дозволи.

  • Небезпечні дозволи охоплюють області, де програма хоче отримати дані чи ресурси, які містять приватну інформацію користувача або можуть потенційно вплинути на збережені дані користувача або роботу інших додатків. Наприклад, можливість читання контактів користувача є небезпечним дозволом. Якщо програма заявляє, що потребує небезпечного дозволу, користувач повинен явно надати дозвіл на додаток.

(Наголос мій)

Дивовижні чи ні, наступні дозволи потрапляють до списку нормальних дозволів :

  • CHANGE_NETWORK_STATE - дозволяє програмам змінювати стан підключення до мережі - тобто мобільні дані;
  • CHANGE_WIFI_STATE - дозволяє програмам змінювати стан підключення Wi-Fi;
  • INTERNET - дозволяє програмам відкривати мережеві розетки.

Якщо цього недостатньо, перегляньте тут дозволи, якими керує AppOps . Якщо ви не знайдете там свій дозвіл, ви нічого не зможете зробити з ним у графічному інтерфейсі.

Оскільки альтернативні методи вже широко висвітлені на цьому веб-сайті, зверніться до:


12
Дякую за вашу відповідь. Розчаровує, коли функції каліки не через технічні можливості, а через ринкові причини.
dr01

25

Ви можете використовувати NetGuard (див. Мій список Інтернет-брандмауерів для інших альтернатив), який працює без кореня і дозволяє вибірково блокувати доступ до Інтернету для додатків (WiFi або мобільні дані, і навіть завжди або лише якщо екран вимкнено). Це з розробленого XPrivacy, тому він повинен бути хорошим;)

Netguard Netguard Netguard
NetGuard (джерело: Google Play ; клацніть зображення для більших варіантів)

NetGuard є відкритим кодом, тому його також можна знайти на F-Droid .

Оновлення: Зауважте, що останні версії Netguard включають Google Ads, а також Firebase Analytics - дві речі, які IMHO не мають жодного бізнесу в програмі брандмауера (або будь-якого іншого забезпечення) - що, швидше за все, є причиною того, що він більше не оновлюється на F-Droid офіційне репо (все ще доступне в шахті з відповідними попередженнями).


1
Варіант F-Droid NetGuard фактично доповнив функціонал, який дозволений у Play Store.
andDevW

Чи може блокувати оголошення в додатках?
Безсмертний гравець

1
@ImmortalPlayer Якщо програмі заборонено доступ до мережі, він також не може завантажувати оголошення. Тож відповідь на це була б "так".
Izzy


4

Якщо у вас є кореневий доступ, ви також можете скористатися:

Я оновив свій пристрій на Android 6.0.1 і до цих пір, схоже, працює.


3

Не можна забороняти доступ до Інтернету для окремих програм на Android. Оголошення є основними джерелами доходу Google.

Однак якщо ви використовуєте Opera Max, ви можете обмежити доступ до Інтернету до окремих програм. Ви можете навіть зберігати дані завдяки технології стиснення Opera.

Встановіть Opera Max з Play Store. Це абсолютно безкоштовно і просте у використанні. Корінь не потрібно.


Оновлення : більше не шануйте Opera Max після того, як вони почали розміщувати занадто багато оголошень.
НВЗ

3

У світлі деяких останніх подій , я хотів би вдосконалити це питання, представивши Google Трикутник . Отримайте його на APKMirror або APKPure та встановіть його за допомогою ADB .

Ось деякі ключові особливості.

Використовувані мобільні дані Попросіть дозволити дані для заблокованих програм Вимкніть, коли ввімкнено Wi-Fi Блокуйте все за замовчуванням

Це не VPN, він локально блокує доступ ваших додатків до Інтернету. Подумайте про це як новий дозвіл так само, як користуватися камерою або мати доступ до свого місцезнаходження.


1
Чи використовує це VPN / проксі, як подібні програми? Чи блокує доступ до рідних бібліотек?
hackel

1
@hackel я встановив його (довелося завантажувати, оскільки він сказав, що в моїй країні не придатний). Він попросив мене включити VPN. Також, схоже, не блокує WIFI.
Борт

3

Преамбула

Може пізно, але я хочу додати своє питання щодо повноти. Ця відповідь є надійним способом заблокувати доступ до Інтернету до програми. Мінуси? Він не блокує Інтенти, він перекручений і може призвести до краху цільової програми, і для цього потрібні привілеї root .

Він перевірений і підтверджений, що працює на Android 7.1.2.


Обґрунтування

Як зазначають інші відповідачі, будь-яка програма, яка бажає отримати доступ до Інтернету, повинна оголосити android.permission.INTERNETбезперечний дозвіл в межах свого AndroidManifest.xml. Як Android пам’ятає, які дозволи вимагала програма? Збереживши їх всередині packages.xml, захищений файл, розташований на /data/system.

Само собою зрозуміло, що хтось, як ми, може бути зацікавлений редагувати згаданий файл з метою додавання або видалення дозволу за умови, що вони мають кореневі привілеї. Це наш спосіб заперечувати доступ до Інтернету до програми без VPN-програм або брандмауера.


packages.xmlфайл

У packages.xmlфайлі перераховані всі встановлені програми, а також їх шляхи та дозволи. Кожен додаток розміщується між <package></package>тегами; заради моєї відповіді я націлю на Nova Launcher від TeslaCoil. Програма програми у файлі така:

    <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 вивчає цей файл під час кожного завантаження та очищатиме ваші коментарі .


Недоліки

Дотримуючись цієї процедури, ви вимкнете додаток, який не може спілкуватися з Інтернетом жодним чином. Однак неякісно кодовані програми та програмне забезпечення, призначені для Marshmallow і вище, можуть вийти з ладу при спробі підключення до Інтернету , як це робить Nova.

Більше того, як зазначає Firelord, оновлення програми призводить до того, що зміни скасовуються, що фактично скасовує наші зусилля та вимагає видалення дозволу заново.


Внесення змін до цієї процедури

Щоб змінити те, що ми зробили вище, все, що потрібно, це додати дозвіл, який ми видалили, серед інших та перезавантажити пристрій.


Відмова від відповідальності

Я жодним чином не пов'язаний з Nova Launcher або його розробниками.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.