Как проверить, что у приложения для Android нет доступа в интернет
Коротко. Приложение для Android может открывать сетевые соединения, только если запросило разрешение на интернет. Поэтому проверка сводится к тому, чтобы прочитать список разрешений приложения и найти одну строку, android.permission.INTERNET. В ZeroBox 0.6.7 её нет. Экран настроек телефона — более слабая проверка, чем кажется, поэтому ниже описана проверка, которая от него не зависит.
Почему экрана настроек недостаточно
Android считает разрешение на интернет обычным: оно выдаётся автоматически при установке приложения, и вас об этом не спрашивают. Поэтому полагаться на то, что экран разрешений приложения его покажет, не стоит, а отсутствие строки там почти ничего не говорит ни в одну, ни в другую сторону. Надёжен список, который лежит внутри установленного пакета приложения.
Проверка по шагам
Понадобятся компьютер и USB-кабель. Это проверка в стиле разработчика, но она занимает несколько минут и работает одинаково для любого приложения, а не только для нашего.
- Установите на компьютер инструменты командной строки Android (platform tools и build tools) и включите на телефоне отладку по USB.
- Найдите файл приложения на телефоне: команда
adb shell pm path com.nexatools.zeroboxвыведет его расположение. - Скопируйте его на компьютер командой
adb pullс полученным путём. - Прочитайте его разрешения:
aapt dump permissions app.apk(подставьте скопированный файл). - Найдите строку
android.permission.INTERNET. Если её нет, приложение само открывать сетевые соединения не может.
Если приложение поставляется несколькими файлами (разделённые пакеты), скопируйте все и проверьте основной.
Что вы увидите для ZeroBox 0.6.7
Мы прочитали список разрешений релизной сборки ZeroBox 0.6.7 именно так. Разрешения на интернет в нём нет. Есть несколько других, и у каждого понятная причина:
- Доступ к вашим фото и видео и к камере, чтобы вы могли добавлять файлы в сейф.
- Разблокировка отпечатком пальца и биометрией, а также вибрация.
- Покупки в Google Play (
com.android.vending.BILLING): оно приходит из библиотеки оплаты самого Google, а сама покупка проходит в приложении Play Маркет, а не в ZeroBox. - Состояние сети (
ACCESS_NETWORK_STATE) и удержание телефона от засыпания во время воспроизведения видео (WAKE_LOCK): оба приходят из библиотеки видеоплеера. Состояние сети позволяет приложению спросить, есть ли соединение; отправлять или получать что-либо оно не позволяет.
Чего «нет разрешения на интернет» не означает
- Если вы сами решите отправить файл из сейфа, отправка пройдёт через другие приложения на вашем телефоне, а у них интернет может быть. Это ваше решение в тот момент, а не то, что сейф делает сам.
- Проверка показывает, что запрашивает эта версия. Более поздняя версия может запросить больше, поэтому каждую версию стоит проверять заново, и поэтому на этой странице указана версия, на которой проверка проведена.
