
Комментарии 378
Спасибо за идею! Добавил упоминание подхода @Wendor в статью (в “Предыстории” и “Благодарностях”). В сравнительную таблицу его вариант добавлять не стал - там у меня ось “что приложение видит” для песочницы/firewall/Anubis, а у Wendor’а другая плоскость: он чинит сам VPN-клиент. Получается не конкурирующий, а комплементарный подход - его TeapodStream закрывает SOCKS5, мой Anubis отключает шпиона целиком. В связке получается многослойная защита: клиент не светит прокси, Anubis не пускает шпиона до момента, когда VPN активен. Его решение также хорошо совместимо с Island и подобными приложениями - от того, что кто-то увидит наличие tun0 но не сможет им воспользоваться, выходной IP не пострадает. А при split per app маршрутизации, рабочем профиле с Island и его исправленном клиенте, не дающем лезть куда не следует, по идее, большинство приложений будут работать нормально с включенным VPN, и даже самые шаловливые из них не принесут вреда выходному серверу.
Установите Shizuku (на Android 11+ - через Wireless Debugging прямо с телефона, без компьютера, за 1 минуту)
Было бы супер, если бы была прям инструкция для не технических специалистов)
Примерно так:
1. Запустите настройку устройства и нажмите на символ поиска.
2. Наберите build и нажмите Номер сборки в списке ниже.
3. Нажмите Номер сборки 7 раз
4. Установите приложение
И т.д..
Иначе приложение дальше просто не уедет, а чем меньше людей себе его поставит - тем оно менее эффективно.
Согласен, абсолютно валидное замечание — запуск Shizuku это реальный порог входа для нетехнической аудитории. Сделал отдельный подробный гайд на русском: https://github.com/sogonov/anubis/blob/main/docs/SETUP.md - от “где вообще эта кнопка разработчика” до готовой настройки, с разделением на Android 11+ (без компьютера) и Android 10 (через ADB AppControl). Ссылку на гайд добавил в “Быстрый старт” в статье. Если есть замечания по гайду - буду рад улучшить, присылайте правки в Issues или прямо в комментариях.
В самой Shizuku сделан достаточно удобный гайд

Сделал отдельный подробный гайд на русском
Спасибо!
Прочитал, один вопрос по итогам: минимальная версия андроид в гайде - 10. Верно ли я понял, что на более старых всё обсуждаемое тут неприменимо?
На более старых Android Shizuku формально должен работать(minSdk у него 24, это a7), но Anubis рассчитан на API 29+ (а10), и я не тестировал на более старых версиях. Попробую найти для теста устройство или на крайняк эмулятор, по идее, можно тоже понизить minSdk. Но метод с беспроводной отладкой это точно а11+, на всем, что ниже придется выдавать нужные права через adb shell по usb
Привет. Не уверен, это баг или фича, но Shizuku убивается, если выключить wifi - и через мобильную сеть не работает Shizuku, следовательно, не работает Anubis. И не запускается Shizuku, пока не включишь wifi заново.
@hyperwolf да, действительно, такая проблема есть, если именно выключить Wi-fi, а не отключиться от сети(уйдя от нее или забыв её). То есть активная сеть wi-fi не важна, а вот включен он должен быть. Но это уже относится к shizuku. Я планирую в будущем расширить возможности приложения, добавив поддержку собственного демона + различные вариации для root пользователей
Всё поставила, но у меня получается, что без wifi и shizuku сама вылетает через какое-то время, т.е. по сути я должна быть рядом с роутером (в этом случае все работает). + Рута у меня нет. И второй момент: в настройках anubis при закидывании приложений в список "без впн", другие две группы некликабельны - так и должно быть? Добавила руками, где они шли с "минусами". HyperOS, , Android 14, Xiaomi Poco. Где-то еще можно пошаманить?
К сожалению эта вонючая шизука никак не хочет работать
А что именно не получается? Каким способом пытаетесь её включить? Я выложил чуть более подробный гайд на русском: https://github.com/sogonov/anubis/blob/main/docs/SETUP.md
Производитель вашего устройства ограничил права adb, приложения, использующие Shizuku, будут работать некорректно
Обычно эти ограничения можно снять в настройках для разработчиков
А дальше предлагается почитать справку на сайте shizuku, который с телефона вообще не открывается
Всё, тупик. Чтобы на Xiaomi включить Shizuku, нужно включить отладку по USB (настройки безопасности). А для этого требуется войти в Mi Account. Которого не существует.
когда-то в очень далеком прошлом я тоже впервые пробовал, не получилось разобраться, а поскольку ноутбук с ADB чаще всего под рукой, я выдавал себе нужные разрешения через adb shell. Но сейчас на всех моих пикселях работает, быстро и удобно... А что у вас за операционная система?
У вас получается, вот такой выданный системой код не срабатывает?

Если не получится разобраться с беспроводом, моя рекомендация - установить ADB App Control, это пожалуй самый приятный способ взаимодействия с ADB, даже для меня, хоть и 90% действий я делаю в консоли Far Manager. Через adb shell скорее всего запустится с первого раза
p.s. пока писал вам ответ, ваш комментарий уже изменился)
Включите так же :
Отладка по usb и Отладка по usb (настройки безопасности)
На poco заработало
После сопряжения шизука не запускается, просто ожидает и все. И да, ограничение на adb, так же как и писали выше
Попробуйте пункт «Отключить контроль разрешений» в настройках разработчика.
Да, спасибо, видел в инструкции к шизуке, просто сейчас нет времени водится с телефоном. Когда разберусь звезду поставлю, а то лазить во второе пространство это неудобно. Сразу вопрос, что придумать для приложений, кидающих флаг ВПН, но для которых я хочу чтобы открывались все приложения (byedpi например), типо игнорировать от него состояние.
А, и ещё - всю эту порнографию не придется случаем проделывать после каждой перезагрузки устройства?
Ну а вообще это все полумеры. Тут уже была статья про то, что надо пролить прокси на локалхосте (почему это не делается изкаропки?) и вышла приложение даже, но, пока что, там нет роуминга, что очень и очень нужно
1) если byedpi работает по аналогии с тем же adguard - то есть прописывается в системный VPN, хоть и не является им по своей сути, то да, он будет на общих основаниях триггерить Anubis. Но ему, по идее, не страшны и описанные методы из методички минцифры, нет IP которые можно испортить. Так что, если задача просто скрыть системный флаг "VPN сейчас активен" - в рабочий профиль всех, кому нужен byedpi, и там же его самого запускать, или наоборот, в зависимости от того, как проще организовать.
2) Придется после каждой перезагрузки, если устройство без root доступа(более того, пока получение прав через root, а не через shizuku приложение и не поддерживает). Но нужно будет всего лишь активировать shizuku. Это одна команда в adb shell или при а11+ способ через беспроводную отладку. Все группы приложений, а так же их состояние(заморожено/разморожено) сохранятся. Только право размораживать/замораживать после перезагрузки потеряется, пока не восстановить shizuku в правах
У себя на Samsung в разделе для разработчиков нашёл пункт: “Выбрать приложение для отладки”. Помню даже использовал его с Brevent. Не знаете, какие права у такого приложения? Это случаем не self-hosted ADB со всеми вытекающими?
И, кстати, на счёт “однокнопочных” универсальных решений. Я не Android разработчик, но как понимаю, реально определить, активен VPN или нет. А значит по идее можно не долбаться с API VPN клиентов: мониторим в фоне VPN. Если активируется - переключаемся. Или это будет не надёжно?
Сделайте пометку в статье, у меня была ситуация когда я поставил шизуку и мне заблок ровали WeChat аккаунт без возможности восстановления. Актуально может для тех кто пользуется приложениями из поднебесной
У меня вичат работает без проблем, шизуку не трогал. Совпадение?
Возможно совпадение, но в моем кейсе только шизуку ставил и сразу бан словил.
я в статье пометку сделал, но впервые слышу о таком
Спасибо за труд. Но вопрос такой. Толе имею 3 приложения из китая.если их закинуть в песочницу увидят ли они работу шизуки? Или же такой вариант я закинуть их в Песочницу , заморозить . Если нужны , то отключить шизуку и после только запускать. Есть ли в этом смысл, ваше мнение ?
они могут видеть список пакетов установленных в системе, и даже замороженная shizuku им может в теории не понравиться. Тем не менее, в рабочем профиле они их скорее всего не увидят, там свое пространство. Установите в рабочее пространство anubis (даже без shizuku) и посмотрите, например в меню ручного выбора VPN, какие приложения он там видит? вот столько же приложений увидит и китайское.. Если только из рабочего профиля - то с вероятностью 80% они ничего не узнаю о том, что происходит в основном профиле
А ярлыки как вынести обратно? Можно шорткат какой-то для этого запилить?
Да, ярлыки выносятся через долгое нажатие на иконку приложения в Anubis - в контекстном меню есть пункт “Создать ярлык на рабочем столе”. Создаётся pinned shortcut через ShortcutManager: иконка ложится на домашний экран, при нажатии оркеструет freeze/VPN/запуск в одно действие. Если не работает - киньте https://github.com/sogonov/anubis/issues с моделью телефона и версией Android, буду разбираться
Hidden text


Вам, скорее всего, запускать Android Studio не понадобится, я обхожусь ADB+VS Code для разработки под андроид. Вы хотите собрать приложение на своем компьютере из исходников?
А про Shizuku я подробнее уже написал. Если вы установите Anubis, он сам подскажет, откуда скачать shizuku
Hidden text

А когда вы установите Shizuku, подробный гайд есть уже внутри него
И вам остается лишь выбрать, что проще - найти компьютер с ADB и сделать все по проводу, или подключиться к Wi-fi и попробовать способ с беспроводной отладкой

Я всегда пользовался шнуром, но сейчас снова попробовал способ с беспроводом - достаточно просто, понятно и нет зависимости от пк
p.s. Добавил в репозиторий гайд
https://github.com/sogonov/anubis/blob/main/docs/SETUP.md
Приблизительно о чем-то подобном и бродили мысли (логика работы). Интересная статья.
Я себе сделал иначе: дома на Keenetic поднял wg клиент и подключил его, затем в маршрутизацию забил домены которые должны ходить только через wg. Таким образом дома всё маршрутизуется. Дополнительно на том же Keenetic поднял wg сервер, к которому вне дома подключается телефон и пользуется той же маршрутизацией. Дальше делаем на iOS автоматизацию, которая автоматически переключает VPN в зависимости от подключения к Wi-Fi.
На Linux аналогичный конфиг реализуется через dnsmasq и ip route.
подумываю о такой же схеме но с vless. только вот вопрос - "шпионы" разве не будут видеть сам факт VPN при таком подходе?
Некоторые жалуются потому что тумблер включен, но никакой блокировки или замедления нет.
это значит, что они видят сам факт подключения. ну и потенциально могут сдетектить выходной ip - что уже угроза, что он попадет в блок-лист в будущем.
Они просто дергают стандартный механизм iOS который позволяет им видеть что тумблер включен.
Дальше они могут посмотреть выходной IP - это будет русский IP, потому что через зарубежный VPN отправляются только определенные домены. Могут пингануть youtube.com - но он пингуется и без блокировки. Могут пустить traceroute - тут да, палево. В общем спалить можно, если сильно увлечься, тут вопрос заинтересованности. С точки зрения базового функционала у нас локация IP и гео совпадают.
Им достаточно послать запрос на любой иностранный сервис определения айпишников, который отдаёт ответ в json. И сразу всё палится. Поэтому нужно делать triple-hop или иметь второй айпишник на выходной ноде или поднять там warp.
У меня нет ни одного иностранного сервиса определения айпишников в белом списке, я так и не понял каким образом какое-то приложение должно узнать от условного ютуба адрес выходной ноды.
белые списки ведь не круглосуточно работают
пока, во всяком случае
и не понял каким образом какое-то приложение должно узнать от условного ютуба адрес выходной ноды
иностранного сервиса определения айпишников в белом списке,
Известных вам сервисов.
уже тонны энергии сливаем ради ИИ для Вас лично, а вы стесняетесь им воспользоваться, чтобы спросить или не доверяете ему или не умеете формулировать вопросы?
Сегодня приложение Дикси удивило - при включенном ВПН отказывается работать, хотя в настройках клиента указаны приложения, которым разрешен ВПН и Дикси там нет. Из этого я делаю вывод, что они сделали блокировку просто по факту включенного ВПН. Могу, конечно, ошибаться.
Подтверждаю, Дикси не работает даже с App Tracking Protection в DuckDuckGo. В комментариях ещё писали про Газпромнефть с таким поведением.
Похоже кол-во продаж смартфонов вырастет в 2 раза. Это станет нормой иметь 2 телефона.
У меня раздельное туннелирование для приложений - сдек ходит напрямую, но видит факт включенного впн на смартфоне. Работает, но показывает плашку про впн.
Может быть я ошибаюсь, но как ваша схема обходит сценарий, при котором приложение отправит запрос на запрещенный домен, запрос же дойдет, а значит вы пользуетесь методами обхода, а дальше наверное дело техники?
Ну и что они сделают, заблокируют мне российский IP? :) Мой зарубежный они не увидят.
да никак не отрабатывает, может разве что список популярных зарубежных сайтов определения ip внести в список "ходить мимо тоннеля", но никто не мешает разработчикам спайваров сделать свой собственный сайт определения ip на vps в финляндии-голандии-германии например.
Если в правилах роутинга указано, что конкретные домены идут через КВН, а все остальное мимо, то любой новый IP определятор от шпионов на vps в любой стране мира просто покажет домашний IP пользователя
В списке правил могут попасть домены с техническими эндпоинтами которые показывают ip. Такие есть у cf, такие есть у ютуба
Ваша схема защищает от блокировок, но вообще не защищает от детекта самого факта обхода
Так средства обхода блокировок определяют по доступности заблокированных ресурсов, т.е. условно постучались на гос. услуги и ютуб, проверили ответы, собрали дополнительные данные и сделали выводы.
Поэтому все так и носятся с ограничениями на уровне приложения, а не раздельными маршрутами для разных доменов.
Как только spyware-приложение (теперь любое приложение от крупного российского бизнеса считается таким априори) сделает запрос на один из ваших маршрутизируемых доменов и не получит ожидаемый отлуп - оно может уйти в блок. А если один из таких доменов айпишник сообщит - ну, тут бан сервера, однозначно.
Хмм, пока-пока уведы. Но. Нельзя ли заменить уведомления от apk уведомлениями от WebApp? В случае, если для гос. вредоноса такое доступно конечно
Для многих сервисов - да, рабочий вариант. У Сбера, Альфы, Т-Банка, большинства маркетплейсов, госуслуг есть полноценный веб-кабинет. Пуши, правда, в вебе получать сложнее (Web Push работает не во всех браузерах), но сам факт доступа к функциям - решает. Но в таком случае, и замораживать никого не нужно - приложений с нежелательными функциями просто не будет на телефоне. Суть Anubis в том, что все потенциально проблемные приложения на телефоне установлены, но не могут без явного указания пользователя производить какие-то нежелатальные запросы, так как они переводятся в состояние disable, если включаем VPN, или VPN выключается, если пользователь изъявил желание такое приложение запустить
Я ещё потом вспомнил, что в многих можно обратно оповещения по почте включить, кстати. Наверное оптимально
без явного указания пользователя производить какие-то нежелатальные запросы
Однако, если я правильно понял, будучи размороженными они могут просканировать установленные пакеты и эту информацию слить.
И если (опять же) я не ошибся, даже замороженное приложение будет просканировано. То есть если я сделаю pm disable-user для своего рабочего VPN то любое приложение с правом query_all_packages его увидит, просто с пометкой "отключено". Верно?
Можно перенести опасные приложения в рабочий профиль, тогда оно не увидит установленные приложения из обычного профиля.
Простите пожалуйста за глупый вопрос, но значит ли это что при выводе максимума проблемных приложений в веб версию угроза ВПН будет минимизирована?
Для тех у кого стоит root, есть способ надёжнее, чем Firewall.
https://github.com/okhsunrog/vpnhide/blob/main/README.ru.md
Всё варианты проверок закрывает.
А какие есть марки новых телефонов, что без проблем рутуются?
Nothing phone.
Google Pixel (для них GrapheneOS лучше всего).
OnePlus пока ещё можно.
В теме выбора телефона на 4pda можно спросить.
Ещё тут большой список производителей с комментариями по поводу разблокировки.
https://github.com/zenfyrdev/bootloader-unlock-wall-of-shame
Мотороллы в подавляющем большинстве обычно без проблем рутятся. А на некоторые модели ещё и обзаводятся поддержкой LOS.
Спасибо за замечание. Я смотрел и на sing-box, и на Wireguard, и на AmneziaWg, но не было под рукой конфига сервера, чтобы сразу протестировать полностью связку, и я отложил их на потом. Посмотрю что там с exported activity и broadcast receivers через jadx. Что касается плиток Quick Settings: стандартного публичного API для программного нажатия чужой плитки нет. TileService позволяет управлять только своей плиткой приложения. Для чужих - можно попробовать найти через manifest какие-нибудь экспортированные вспомогательные точки входа (как у NekoBox QuickEnableShortcut). Если у Amnezia такое есть - добавлю поддержку. Если нет - остаётся режим MANUAL, где Anubis просто откроет приложение, придется нажать подключиться в нем для включения.А отключать Anubis может любой клиент через dummyVPN, там не нужно будет открывать клиент Amnezia
у амнезии из коробки есть бесплатный профиль с более скромным списком доменов. включить можно прямо из приложения.
Бывает self-hosted amnezia.
Что есть эт понятно, неоднократно рассказывалось. Вопрос стоял что не было возможности посмотреть амнезию из за отсутствия конфига. В качестве взаимодействия с приложением от амнезии - нет разницы, будь то селфхостед, или фришный план который у них уже доступен сразу. Хотя AmneziaWg есть отдельным приложением, там не знаю что как и можно ли зацепить созданный из AmneziaVPN
я именно Wireguard и AmneziaWg смотрел, до AmneziaVPN не дошел. Там да, есть фри-сервер, подключиться к нему конечно не получается, но по крайней мере отработать механику можно. Займусь его изучением в ближайшее время, но и первые 2 посмотрю тоже в дальнейшем

С Amnezia Дикси все равно видит ВПН и не подключается. Если нажать Запустить без ВПН то просто рвется ВПН соединение и запускается ДИКСИ
Andr 15 Realme Amnezia Premium
рвется ВПН соединение и запускается ДИКСИ
Так и задумано, что при запуске приложений, которым нежелательно знать о существовании впн, впн отключается. Запускать надо либо из самого Анубиса, либо через созданный анубисом ярлык.
хм, серьезно? все что делает эта штука - вместо меня жмет кнопку отключить ВПН?
если она не знает ваш ВПН ( у вас Амнезия, пока не поддерживается), то да, работает в ручном режиме.
А, спасибо за ответ, ждем обновления программы!
У меня AmneziaVPN, Hiddify, Outline и ни один из них не выключается, когда я нажимаю на иконку Дикси в приложении, которая находится в разделе Без ВПН. Оно открывается при работающем ВПН и рассказывает мне об этом. Спасибо, конечно, но такие танцы с бубном проведены, а результат нулевой :)
Соответственно Телеграм, который находится в разделе С VPN, при нажатии на него ВПН не запускает, а просто открывается и показывает мне бесконечный Connecting....
У меня Galaxy S25 Ultra без изменений и рута.
Я так понимаю совместимость с Adguard (+ когда используется прокся) невозможна?
Есть ли какие-то варианты под эту связку?
AdGuard поднимает свой локальный VPN (чтобы фильтровать трафик), и он по архитектуре Android конфликтует с любым «настоящим» VPN через то самое правило “один VPN одновременно”. Я так понимаю, его штатная схема работы это связка AdGuard + внешний SOCKS5/HTTP прокси: AdGuard остаётся VPN-приложением, а через его настройки прокси трафик уходит в VPN-клиент. Для Anubis это в принципе прозрачно - детекция активного VPN идёт через dumpsys по OwnerUid, и он увидит AdGuard как активный VPN. Можно попробовать выбрать AdGuard через «Другой клиент» в настройках. Что конкретно не работает в вашей связке?
Мда, вместо разработки действительно нужных людям решений, нашим талантливыми ребятам приходится заниматься борьбой с ветряным мельницами.
Так практически везде в РФ и было всегда. Трудно найти живое место
Борьба с цензурой и есть одно из самых нужных людям решений сейчас, без этого все остальные разработки просто не загрузятся с гитхаба
Когда приезжаю за границу и новые друзья узнают, что я русский программист, все сразу же говорят: "Ну ты наверное хакер?". Раньше это вызывало улыбку, т.к. это скорее фольклор из голливудских фильмов. А теперь так оно и есть. Страна хакеров и сетевых инженеров.
ВПН запущенный в основном аккаунте Андроида не влияет на приложения в Рабочем профиле. Т.е. приложения из рабочего профиля так и продолжают ходить через сотовую сеть либо вайфай.
Да, вы правы - это та самая framework-level фильтрация ConnectivityManager по userId, о которой в статье. В рабочем профиле приложение не видит VPN основного профиля через connectivityManager, но видит tun0, маршруты и SOCKS5 на localhost - ядро общее. Именно поэтому Island/Shelter/knox защищают от простых проверок, но не от продвинутых (YourVPNDead, RKNHardering, методичка Минцифры). В статье об этом в секции “Что песочница НЕ скрывает”
Нельзя это обойти через фейковый always-on vpn (adguard или duckduckgo) для всех приложений в рабочем профиле?
Проверялки видят адрес туннеля только через маршруты на tun0 от AmneziaVPN, а остальные проверки показывают реальный IP без VPN.
в рабочем профиле установите termux
далее в termux наберите -
ipconfig
эта команда вернет список поднятых интерфейсов, если включен впн в основном профиле, то среди них будет присутствовать tun0 (или tun1)
далее в termux набираем в зависимости от tun0 или tun1 -
curl https://ipinfo.io/json --interface tun0
или
curl https://ipinfo.io/json --interface tun1
читаем что вернула данная команда, если там присутствует ваш внешний ip ржем до слез над безопасностью андроида.
В правильных VPN-клиентах это уже пофиксили. Если Termux не добавить явно в per-app tunneling, то попытка такого curl'а обломается. Но большинство ВПН клиентов небезопасны и не защищают от такой проверки.
А как пофиксили? Общая видимость tun интерфейса - это проблема Андроида, разве её как-то можно обойти?
Даже с туннелированием для приложений прошел запрос через tun0, хотя казалось бы termux там нет
Upd возможно проблема была с рабочим профилем
Почему-то не хочет запускаться в рабочем профиле: Unable to install bootstrap. Termux can only be run as the primary user.
Не "почему-то", а там вполне армированные грабли из-за архитектуры андроида и ограничений с этим связанных. И ни в каком ближайшем будущем оно там работать не будет.
Что-то статейка про трехкаскадный выдает 404
поправил ссылки в статье, некоторые, действительно были кривые. Статья про трёхкаскадный - https://habr.com/en/articles/1022586/
Для блокировки доступа к socks5 proxy портам, которые создает hiddify(ну и любой VPN клиент) использую termux boot и iptables. Хотя можно и модулем для ksu сделать.
Из минусов - необходимо наличие root.
#!/data/data/com.termux/files/usr/bin/sh
su -c iptables -A INPUT -p tcp --dport 12334 -j DROP
su -c iptables -A INPUT -p tcp --dport 12337 -j DROP
su -c ip6tables -A INPUT -p tcp --dport 12334 -j DROP
su -c ip6tables -A INPUT -p tcp --dport 12337 -j DROPГлавное потом выключить отладку по USB не забыть.
А из каких соображений? Включенная отладка снижает безопасность каким-то образом? Я наоборот очень радовался включенной отладке, когда мощно уронил телефон на кафель и матрица экрана на этом завершила свою жизнь. Но поскольку была включена отладка, мой ноут был авторизован заранее и отзыв авторизации был выключен, я мало того, что мог все данные вытащить с него, я мог почти полноценно им пользоваться через https://github.com/Genymobile/scrcpy
Тайские приложения отказываются работать при любом проявлении debugging режима или если accessibility включен. Ну, хоть пока учётки за это не банят, уже хорошо...
А из каких соображений?
Например, если телефон попадет не в те руки, то эти "не те руки" могут уже получить доступ к содержимому через USB-отладку.
Честно, я не сноб, но как же я устал от этих ИИ статей на хабре, которые пишут люди. И нет, если вы замените длинное тире на короткое это не уберет все проблемы))
Проблемы нет в ИИ, я сам его использую в работе/учебе, но вы хотя бы их перечитывайте или давайте почитать другим людям перед публикацией, если не хотите сами писать.
Такую статью не хочется читать потому что я уже прочитал примерно 10 статей про обходы впн/белых списков, где авторы городили переусложненную с помощью ИИ дичь, которую им ВНУШИЛ ИИ, что она работает, а фактически нет. У меня друг таким стал, это прям печально.
Вот примеры, и это я БЕГЛО просто почитал:
"Это не теория - статья"
"Песочница: что она реально даёт, а что нет"
"Так что песочница - не бесполезна. Она закрывает самый простой и распространённый вектор детектирования."
"Это не баг, а “by design”
"Итого по песочнице "Рабочий профиль – не бесполезен, но недостаточен:"
"Это не изоляция, а анабиоз." и тд.
Или риторические вопросы и ответы сразу же.
В "а спасло бы это нас" вообще стоит две короткие тире рядом, я не верю, что человек бы стал так писать) "--"

Карму отрицательную в твоём профиле увидел я. Плохо. Транслируешь свою злобу в мир ты.
Поправил тебе её я - добавил единичку.
Но не уверен, что справишься с грузом ответственности ты.
Умница, молодец, карму мне заминусили кремлеботы, что ты мог посмотреть, если бы уделил профилю на минуту больше. Продолжай дальше по карме о людях судить, это очень по-взрослому и, конечно же, отменяет мое субъективное мнение про ИИ слоп статью и ИИ слоп инструмент

Злоба затмевает разум твой. Не услышал меня ты. Не понял, что улучшил карму твою я.
Развивать нужно терпение тебе.
Увы, мой юный подаван, больше не будет тебе от меня помощи. В других ищи её...
Но он же всё услышал и понял ? Не прям рассыпался в благодарностях ("Умница, молодец"), но тут скорее Йода не догоняет что ему пишет собеседник. "Не услышал меня ты. Не понял, что улучшил карму твою я" .
"Увы, мой юный подаван, больше не будет тебе от меня помощи. В других ищи её "
сам не понял - сам обиделся, настоящий Йода бы так не поступил
Не стоит так переживать из за кармы и радовать местных вахтёров. Аккаунт всегда можно еще один завести, у меня кажется пятый тихонько в рид онли уходит )
Всё в этом мире временное
Кстати, здесь

можно один раз обнулить карму
радовать местных вахтёров

Неудовлетворённость вижу в тебе. Злобу изливаешь в мир ты. Поменять себя нужно тебе. Гармонию обрести.
Не являются вахтёрами оппоненты твои. Наоборот! Вахтёрство в себе изжить должен ты - познать Силу.
Поправил карму тебе - добавил единичку. Но не уверен, что сможешь нести груз ответственности ты.
Да, увы, статьи пишутся нынче через ИИ и они нечитабельны. И скорее всего код тоже навайбкоден, но главное чтобы работало. В текущей ситуации лучше какие то решения, чем ничего.
Так ведь это и статей касается: без использования ИИ многие полезные статьи просто не были бы написаны вообще. В текущей ситуации лучше какие-то статьи, чем ничего.
Ну, или были бы написаны ещё хуже, чем с использованием ИИ, и продираться сквозь слог было бы ещё тяжелей... Не все умеют хорошо писать, и мало у кого есть время и силы это делать.
Если этот подход сам по себе будет полезным, рабочим, то будет как с VPN'ами (я про прокси-комбайны типа happ/throne/hiddify) - появится куча альтернатив. Это - первая ласточка, и важно, насколько она будет полезна.
Что самое смешное и грустное - идет какая-то битва деревянными мечами. То мы, то они. Иногда может очень больно прилетать. Но если посмотреть на эту битву сверху, откроется интересный факт: никто никого в принципе не может победить! Мы можем просто вбухивать ресурсы в эту войну с РКН которая никогда не закончится ничьей победой (ничего не напоминает)?
На любую победу общества, в ответ они попросят еще законы, попросят еще денег, разработают противомеру какую-то. У нас нет шансов на "полную и окончательную победу", только тактические.
Но и им полной и окончательной победы не видать (и даже они ее и не хотят), потому что "интернет по талонам" они и так могут сделать очень легко. Тупо оставить несколько дата-центров ростелекома, сбера, и других гигантов, а всем остальным запретить выход в мир. Все. И пофиг на эти ваши vless'ы и прочее - ничего не поможет. Но - они тогда трусы себе не купят, потому что трусы-то, оказавается, шьет не компания ГосТрусы, а их завозит ИП Иванов и выкладывает на Озон. Поэтому даже ИП Иванов должен иметь возможность свободно пользоваться глобальным интернетом чтобы находить зарубежных продавцов, сравнивать цены, торговаться с ними и обсуждать условия поставки в любых мессенджерах, которые удобны продавцам.
Куры не будут нестись без полноценного интернета. Машины не будут ездить. Дома не будут строиться. Пломбы к зубу не приклеятся без интернета. Жопу даже вытереть без интернета не получится, потому что производство туалетной бумаги - довольно сложный процесс, нужно закупать и сырье и запчасти и фирменные чернила для принтера Brother в бухгалтерию и пластиковый плинтус туда же.
Поэтому они будут пакостить, вредить, кровушки попьют, это да. Но они сами боятся однажды все реально заблокировать. Все их блокировки, это "страдайте, выкручивайтесь, но вы выкрутитесь".
статью писал человек, это видно по стилю.
Мужик пишет письмо на спичечную фабрику: «Я на протяжении 10 лет покупаю спички Вашей фабрики и считаю количество спичек в коробке. Вы их кладёте то 59, то 60 штук, иногда 61, а вчера положили 56. Вы что там, совсем долбанутые?»
Забавно что Shizuku, который изначально создавался для гиков-кастомизаторов, теперь становится базовым инструментом выживания в рунете
Интересует частный случай Mir Pay. Замораживание не сбивает настройку дефолтного приложения для оплаты? И можно ли его вообще заморозить? Насколько я знаю, не все приложения могут быть, но это возможно касается только встроенный приложений Андроида.
Можно морозить, но надо размораживать, чтобы оплатить. Но у меня дефолтным приложением для оплаты стоит GPay, специально, чтобы по дефолту ничего не срабатывало.
А так, да, разморозил, заплатил, заморозил (пипец, достал карты пластиковые обратно).
mir Pay можно морозить, но это сбросит его статус default payment app при заморозке. Можно Mir Pay размораживать перед оплатой, по идее, будет срабатывать. Подумаю над отдельным режимом "разморозить -> оплатить -> заморозить" одной кнопкой
Проверьте. Для обычных ссылок в Android есть возможность выбора, каким приложением ссылку поддерживаемую открывать.
Тут два вопроса:
при разморозке будет ли приложение сразу делаться дефолтным
других приложений оплаты нет в системе
другие есть в системе
что делать с Anubis. (@sogonovкак бы не пришлось встраивать себя прокладкой-прокси провайдером оплаты, лишь бы прозрачно сделать: остановку VPN-запуск приложения-заморозку через ~30 сек.... Если это вообще возможно, перенаправлять запрос оплаты другому приложению)
К сожалению, заморозка поможет только, если Вы используете свой личный VPN. Если какой-то публичный, то там один сервер использует куча клиентов и кто-то из них точно спалит IP адрес стукачу. Нужно решение хотя бы на уровне VPN-клиента, чтобы этим очень легко было пользоваться.
Это вы рассматриваете только угрозу выходному серверу vpn. Нормально настроенным VPN утекший выходной IP не страшен. На уровне VPN клиентов решения есть, но это полумеры.
Есть ведь еще и угроза связывания лично вас (по профилю на госуслугах\озоне\банке etc) с фактом обхода блокировок. Пока что - это бигдата. Как скоро она воплотится в баны рф аккаунтов, штрафы и административки - увидим. Статья в КоАП уже присутствует.
Статья в КоАП уже присутствует.
Я думаю Вы правы, что скоро за использование VPN будут штрафовать, но данная статья КоАП, думаю, не подходит, нужно доказать какие именно материалы я смотрел. Но напишут новую статью.
Свой личный впн - мало. На том сервере рядом могут быть и другие люди пользующиеся впн. А если сейчас начнут вот так прилетать баны, то бесплтаные впн сервисы живущие за рекламу и недорогие платные - могут достаточно быстро выбрать пул доступных серверов
Нужно решение хотя бы на уровне VPN-клиента, чтобы этим очень легко было пользоваться.
В статье же есть ссылка на такое решение. Да, три каскада (минимум два VDS) но решение именно на использование клиентами со spyware рассчитано.
Коммерческие VPN легко решат эту проблему тем, что IP подключения и выходной IP должны отличаться (сервер с двумя IP или два разных сервера).
Слабое место в том, что пользователь должен знать, кто может "стучать".
Было бы можно это выяснить...
Не несите чушь.
Я конечно понимаю сейчас все нервные, но грести под одну гребенку все аккредитованные компании это просто верх идиотизма. Мы с аккредитацией и в реестре ПО, нам ничего не приходило от Минцифры и мы точно не будем делать какой-то механизм шпионажа - мы сами все сидим обмазанные впнами. Я уверен что половина разработчиков тут работают в компаниях которые в реестре.
Штраф вам пообещают - и как милые сделаете. Даже оставаясь обмазанными ВПНами.
Это очень здорово (мы такие же), но что-то мне подсказывает, что когда к руководству придут неприятные люди, угрожающие лишить аккредитации - вам быстренько спустят указивку «начать соответствовать требованиям»… и дальше будете выкручиваться, как сможете, стараясь нанести поменьше вреда. Ибо без аккредитации ваши сотрудники потеряют айти-ипотеку или бронь, а вы, вероятно, потеряете клиентов с деньгами. И то и другое довольно пагубно для бизнеса на нашем рыночке…
У нас конечно непредсказуемое государство, но я не могу представить зачем им лезть к мелким фирмам, если маркетплейсами пользуются больше половины населения. В реестре 19 тысяч компаний - все проверять будут?
Не все
Нет , конечно, пара показательных порок/казней, все остальные сами изыщут возможности/подключат/настроят и т.п. И проверять не надо будет, большинство сами эти цепи/кандалы цифровые натянут. Такое уже было, не в первой, легко мы попадаем в разные зависимости и под тяжестью навязанных извне обстоятельств потом ищем способы как освободиться.
Как вариант - они могут например подробно опубликовать техническую статью на хабре как именно сделали, ну и не стараться особо. Или такая статья улетит в минуса?
Подтверждения не нашел, но уверен, что методичка под грифом ДСП как минимум, о таком статью не напишешь.
Какой в этом смысл? Вы уж выберите что-то одно. Либо кол-во компаний ограничено многомиллионниками, либо нет (все вышеупомянутые 19к). Во втором случае что-то утаивать бесполезно. И в первом случае эта методика всплывет после реверса. ...
...Хотя мы увидили, сколько мастеров реверса Макса оказалось на самом деле. Всё на уровне старшеклассников и много воды, да желтизны.
Сейчас любое приложение от российского крупного бизнеса и госоргана должно считаться spyware априори, без исключений.
Вопрос, что делать с Максимкой, который лежит в шелтере? Просто при выборе приложений, которые можно вырубить при включении впн, его тупо нет
Anubis видит только приложения user 0 сейчас - приложения внутри Shelter/Insular (user 10+) не попадают в список. Можно попробовать будет сделать перечисление по всем users через Shizuku. Пока временно: вынесите Max из Shelter в основной профиль, тогда Anubis его увидит
Планируется ли подружить ваше приложение с рабочим профилем (если это вообще возможно)? Я только недавно мучительно перенес кучу приложений туда, чтобы вручную морозить их при необходимости (использую Shelter). И только сегодня увидел вашу статью
В шторке уведомлений есть возможность отключать Рабочий профиль и тогда приложения в нем приостанавливаются или замораживаются, насколько понимаю. Можно ли реализовать в Anubis отключение/включение рабочего профиля при включении/отключении VPN?
Очень круто, но действительно работает когда поднял свой впн чтобы не палить его апишник. В противном случае если купил квн в телеграм боте и изо всех сил пытаешься защитить свой айпишник, в это время другой человек пользующийся этим же квном абсолютно не парится и сдает этот айпишник с потрохами, не изза вредности своей а лишь по не знанию. Как то так
ну суть блокировок в этом и есть, с точки зрения государства не нужно до блеска зачищать поляну, если у 99% средства обхода работать не будут - отлично, оставшийся 1% умников со своими бережно спрятанными персональными каналами погоды не сделает
у 99% средства обхода работать не будут - отлично, оставшийся 1%
Вот тут проблема в том, что многолетняя история (статистика) показывает такого быть не может и придется делать чебурнет, иначе у большинста будет квн. Ниже опыт Ирана.
Парадоксальным итогом стало то, что массовая блокировка ускорила распространение VPN-грамотности среди населения. По различным оценкам, накануне перехода к полным отключениям интернета в критические периоды от 80 до 90% иранских пользователей регулярно использовали средства обхода блокировок.
работа хорошая, только выглядит как костыли. кажется правильное решение тут это PR в мастеры впн клиентов, чтобы они решили проблему несанкционированного доступа через пароли-рандомные порты в tun0
Портами и паролями пользуются прокси-клиенты. Висят они на loopback интерфейсе “lo”. Чистым VPN это до лампочки. Но и те и другие создают сетевой интерфейс tun0, через который идет трафик перед его обработкой (заворачивание в соединение, которое передает данные на промежуточный сервер). А уже поднятый tun0 видно в большем кол-ве случаев.
Очень интересная статья! Но возник вопрос касательно папки Knox на Android. Разве у неё нет уже встроенной функции заморозки/отключения приложений? Я имею в виду шифрование папки Knox. В её описании указано, что после зашифрования все приложения в ней перестанут работать, не смогут отправлять уведомления и проявлять какую-либо фоновую активность. Насколько это вообще соответствует реальности и можно ли рассчитывать на данную функцию?
Knox изолирует данные и блокирует фоновую активность, но приложение, запущенное внутри папки Knox, всё равно видит VPN основного профиля (tun0, маршруты, localhost). Это та же история, что с Island: framework-фильтр сети - не изоляция. К слову, и просто рабочий профиль через тот же Island позволяет заморозить все что внутри. Для Knox-only я бы рассчитывал на режим “заблокирована папка -> все её приложения в фоне безвредны”, но если приложение внутри запущено - нет, оно может проявлять нежелательную активность на уровне сетевого стека
Идея интересная, спасибо и за идею и за реализацию!
Но хочу дополнить, что в этой ситуации нужны еще:
1. Реальные исследования конкретных приложений, доказывающие, что они выполняют эту spyware активность.
2. Отправка этих приложений и этих описаний в антивирусные компании, чтобы эти приложения помечались как malware. В том числе в Касперский. (Чтобы либо даже он их детектил, либо чтобы все знали, что он не детектит малварь если это кого надо малварь)
3. Отправка жалоб в плеймаркеты, чтобы эти приложения оттуда убирали, чтобы разработчики снова их делали, но уже чистыми. На хабре есть две прекрасные статьи от 2GIS (после того как их заблокировали в 2024):
- Пост post-mortem: разбираемся, почему Google Play Protect посчитал 2ГИС вредоносным ПО
- 2ГИС — опасное приложение?
На мой взгляд это почти идеальное поведение компании по отношению к сообществу. На техническом сайте, для грамотной и очень привиредливой и недоверчивой аудитории грамотный специалист из компании "держал ответ", объяснял, зачем там каждая привилегия нужна. Вы хоть раз такое видели? Не всех такие ответы устроили, но это очень правильный шаг. Компании очень боятся, когда их хорошие, но чуть-чуть шпионские приложения разоблачают и лишают доверия.
В общем, мне кажется, маркеты и антивирусы имеют сильное влияние на компании-разработчики. Мне нравится Озон, но если его приложение будет шпионить и разок вылетит из плеймаркета - это даже хорошо. У них появится аргумент в разговорах с государством, почему нельзя так делать. Похоже, кому-то обязательно надо практически наступить на грабли, потому что теоретическая схема, как они могут ударить - не впечатляет.
1- не нужно ничего никому доказывать тестами/расследованиями, найдешь ты вредоносный код, а дальше что, только одна фраза: - "Вот видите, я был прав"
2,3- это ничего не меняет, тебе просто поставят ультиматум и все, не хочешь выполнять, забирай свой бизнес и уезжай, СТОЙ, не так быстро, мы хотим выгоду получить, сейчас приедут люди, будут рыть документы, и обязательно что-нибудь найдут, а это уже миллионные штрафы, вот и все, привет 90-е
Действительно, верным решением будет купить второй телефон, стоп, с сентября прошлого года(точную дату не помню, писали про это) они же будут с предустановленным максом, конфуз что-ли
По статье интересуют два момента:
1) заморозка действует на вибрацию, на всех приложениях она с одинаковой чистотой?, нет ? - ну так давайте отфильтруем, запишем, а наш шпион будет сверять
2) вайфай дома/домашний интернет - наверняка операторов обяжут слушать(или это слишком затратно, я хз), или поставить какие-нибудь фильтры для детекта интересующего трафика. Кстати, для пк нет решения? провайдер задетектит что запустил квн, и хотп тебя на карандаш, а возможно и с докладом кому надо, или штрафные санкции
В целом верно, но все же предустановленный Макс пока ещё можно снести до подключения к нужной сети.
Последний мой телефон покупался уже в 2026-м. В карточке товара было сразу сказано что у него есть существенный недостаток - нет рустора. Даже если бы был - чуть ли не первое что сделано - разблокировка загрузчика и установка GrapheneOS
Так второй телефон и покупается для условного Скама.
1 нужно чтобы выполнить 2 и 3. Когда про приложение всем известно, что оно malware/spyware - его гораздо проще удалить. Цель-то убедить вполне разумных людей в антивирусных компаниях и в плеймаркетах.
"Поставят ультиматум" - это вы про ультиматум, видимо, (например) Озону? (наверное не мне же). А вот не уверен. Уже ведь есть пример, что происходит если отжать бизнес: Если бы вы вложили 1000 рублей в акции VK в 2020 году, то сегодня, после блокировки основных конкурентов у вас было бы161 рубль.
Управленцы из казармы, они, конечно, послушные и верные, но качественно умеют только строем ходить. Предприятие под их контролем перестает приносить прибыль и начинает приносить убытки. Нужна ли сейчас бюджету еще одна гиря на шее?
ИМХО, надежнее всего физическая изоляция, купить еще один телефон для ВПН и пользоваться им только с него. Нет шпионов, нет утечки.
удобное решение у ТГ - со встроенным proxy-клиентом, который можно подключать к локальному прокси с российским IP по защищенному протоколу.
больше таких приложений нужно
либо ставить какой-то локальный прокси-клиент типа socks на случайном порту и чтобы клиент этот проверял какое приложение к нему пытается коннектится (не уверен, что возможно на андроид) - а дальше использовать этого прокси клиента в избранных приложения типа google chrome.
Спасибо, полезная статья. Хотя способ не всем подойдет, увы - у многих телега установлена для одних чатов, а МАХ для других, рабочих, к примеру. Так что квн приходится держать включенным весь день. В итоге второй смартфон становится единственным решением. Увы, на гугл и яблоко уповать не приходится, вторые пространства, по сути, бесполезны в данном вопросе.
Это проблема данного анубиса. Все приложения государственные не будут получать уведомления из-за того, что заморожены: банковские приложения не будут получать уведомления о переводах, мах не будет получать ниакие сообщения. Либо телеграм не будет получать уведомления...
Подразумевается, что в отключаемый список добавляются только spyware приложения. Телеграм таким не является и пуши получать продолжит. К тому же mtproto никто не отменял.
То, что не получится пользоваться spyware и получать уведомления от него при включенном vpn - осознанная жертва. Как написал автор в статье - это максимально безопасный вариант реализации, лучше только отдельный девайс.
Зачем включенным на весь день, если в телеграме есть прокси?
Справедливости ради, полноценные виртуалки на андроид все таки есть, требует хорошего железа.
https://github.com/xoureldeen/Vectras-VM-Android
Расскажите, пожалуйста, у wg в андроид есть настройка, чтоб впн работал только для выбранных приложений, это вообще помогает или все же приложение не из списка как-то может вычислить внешний IP?
Не помогает, любое андроид приложение может сделать
curl https://ipinfo.io/json --interface tun0Сейчас проверил - если приложение(в данном случае termux) включено в списке per-app proxy, то оно может выполнить curl через tun0, если нет, то вернет ошибку.
$ curl https://ipinfo.io/json --interface tun0
curl: (7) Failed to connect to ipinfo.io port 443 after 9 ms: Could not connect to server
$ curl https://ipinfo.io/json
{
"ip": "83.220.227.220",
"city": "Nizhniy Novgorod",
"region": "Nizhny Novgorod Oblast",
"country": "RU",
"loc": "56.3287,44.0020",
"org": "AS16345 PJSC \"Vimpelcom\"",
"postal": "603000",
"timezone": "Europe/Moscow",
"readme": "https://ipinfo.io/missingauth"Если заблокированы порты на которых hiddify светит tproxy и использовать per-app routing, то утечки ip адреса не происходит.
И как ты закрыл порты hiddify?
Пока это только теория, а уже нагородили способов решения проблемы которой нет.
А что, проблемы надо решать, когда уже поздно?
Очнитесь, уже пачка прилаг не работает если VPN включен.
Не путай тёплое с мягким. То, что некоторые приложения не любят VPN это и раньше было. А то что будут "стучать" и из-за этого прилетит блокировка ещё не было и сомнительно что будет.
Не работает с зарубежных IP, а не из-за VPN.
Скрытый текст
вопрос:
vivo x200pro mini
когда usb подключен и идёт отладка через терминал shizuku запущен,
как только отключаю кабель от телефона shizuku выключается.
такой лог выдаёт терминал (сенситив дата потёр)
PS C:\android adb> adb shell /data/app/~~XgVrt.......................==/moe.shizuku.privileged.api-30b2VRXQ03Ra..........._Uw==/lib/arm64/libshizuku.so info: starter begin info: killing old process… info: apk path is /data/app/~~XgVrts............................==/moe.shizuku.privileged.api-30b2VRXQ03R................_Uw==/base.apk info: starting server… info: shizuku_server pid is 1689 info: shizuku_starter exit with 0
подскажите как поправить?
Вопрос решён: оставлю вдруг кому пригодится.
добавил shizuku в автозапуск, в связанный запуск,
отключил в режиме разработчика проверку безопасности приложения при установке через adb/adt
в режиме разработчика - приложения в режиме ожидания shizuku поставил ACTIVE
убрал ВСЕ оптимизации батареи
разрешил автозапуск
закрепить приложение в “недавних” (замочек)
отключил очистку памяти
Благодарю за статью! и за приложение! по мне так это сейчас единственный и самый простой способ заткнуть эти следящие приложения. как вас можно поддержать монетой? откройте boosty к примеру.
Аналогичная проблема, Redmi 7, Android 10. Проделал всё, кроме включения связанного запуска, так как не нашёл такой настройки. Не помогло. Может дело не в этих настройках? Shizuku же отключается сразу после отключения от USB, а не через какое-то время.
У меня один раз сработало каким-то волшебным образом, в следующие разы просто подключая кабель с ПК к телефону, Shizuku сразу отваливался, и я до сих пор не смог это решить. перепробовал все настройки которые возможны, ничего не помогает. Через wi-fi тоже не может произвести debugging. просто выдаёт ошибку.
Грешу на агрессивные политики vivo по энергосбережению, так как действительно отваливается срау после того как вынул кабель, сейчас ищю ответ через логи с ии. если решу вопрос, сразу напишу.
вот кратко от ии: " Если Shizuku падает даже при Wireless Debugging, значит проблема не в ADB-сессии, а в том, что система (vivo/Funtouch OS) убивает процесс shizuku_server после старта. У vivo это частая история — агрессивный контроль сервисов. "
Подскажите, может ли любое приложение сделать запрос через tun0, или оно может только увидеть наличие tun0? Если никто левый (для кого tun0 не назначен интерфейсом по умолчанию) не может сделать запрос, то должно быть достаточно трёх простых вещей: разделение по приложениям, роутинг с whitelist для квн и прокси с авторизацией. А то что есть квн - ну есть и есть, IP никто не узнает, а по одному включенному системному флагу банить не должны, может у меня адблок или я свои пакеты перехватываю и анализирую, это тоже квн. А вот если через tun0 кто угодно может делать запросы, то всё очень плохо и никакой роутинг не спасет.
Подскажите, может ли любое приложение сделать запрос через tun0
«Ослабление» произошло начиная с ядра линукс версии 5.7. Т.е. начиная с него и новее. На более старых ядрах работать по идее не должно.
Но некоторые клиенты могут блокировать попытки использовать интерфейс напрямую, где-то в комментариях к теме с которой и пошел основной шум была информация про некобокс. Можно блокировать по UID (такая наглость судя по той же теме получает UID -1), но я не уверен есть ли клиенты это умеющие. И возможно поможет от наглости галка «block connection without vpn»
У меня клиент от https://github.com/SaeedDev94/Xray, и тут есть авторизация прокси, но к сожалению никакой защиты tun0
Роутинг как раз спасает. Забиндится curl'ом на tun0 - это еще пол дела. Если, согласно таблице маршрутизации, трафик к ipinfo.io должен идти через default gateway, а не через tun0, то ничего этот curl не выдаст.
А тут уже писали про путь /cdn-cgi/trace от всех сайтов на Cloudflare. Даже если все IP-чекеры направлены в директ, выудить IP можно через Cloudflare-сайт из списка исключений для квн, в ответе есть ip=xxx.xxx.xxx.xxx:
curl --interface tun0 https://chatgpt.com/cdn-cgi/traceПроверить сайт на связь с Cloudflare можно так, в ответе есть server: cloudflare:
curl -I https://chatgpt.comИ если server: cloudflare, то автоматически есть путь /cdn-cgi/trace, и если сайт не режет к нему подключения, то мы попали. Я пыталась в xray сделать такое правило роутинга, но оно не работает (это вроде только для http работает, не для https, но я могла не разобраться):
{
"type": "field",
"attrs": {":path": "/cdn-cgi/trace"},
"outboundTag": "direct"
}И если к tun0 в итоге может подключиться кто угодно, то вносить в квн-лист такие сайты можно только на компе, где нет ру приложений, а может и на компе нельзя.
Для ютуба тоже где-то в комментах на хабре скидывали такой чекер - https://redirector.googlevideo.com/report_mapping.
А как после отключения приложения вернуть ярлычки то?
Ps: Короче сдуру отметил штук 30 приложений, которые были аккуратно разложены по папочка, поигрался , а теперь приходится доставать руками и снова все раскладывать. Очень неприятный опыт вышел.
если работали через Anubis, зажмите нужное приложение в какой-то из групп, ярлычок добавится, вот тут картинки были https://habr.com/en/articles/1023352/comments/#comment_29828752
при запуске через такой ярлык к VPN будут применяться правила, которые применяются к приложениям этой группы - выключится(если группа "без VPN"), либо включится, при этом заморозив группу "без VPN"(если у приложения группа "запуск с VPN" или "только VPN").
Подождите, а кто мешает какому-нибудь сбербанку подёргать всё те же am broadcast -a com.v2ray.ang.action.widget.click и т.д., а потом начинать сканировать?
Да, ровно так - и это важный разворот темы. Ту же механику, которую Anubis использует как оркестратор, может использовать и другая сторона. Неизбежное свойство клиентов, у которых broadcast receiver экспортирован без permission guard. Буду закрывать двумя шагами: расширю Anubis так, чтобы VPN-клиент был заморожен в idle (broadcast в заморженное приложение просто не доставится), параллельно свяжусь с авторами поддерживаемых клиентов по поводу добавления permission guard или проверки caller package на стороне клиента. Спасибо, в статье этот аспект я оставил за кадром - и зря.
Мне кажется, что проблема сильно переоценена.
РКН не будет блокировать все обнаруженные адреса VPN серверов.
У РКН давно есть список IP адресов провайдеров РФ на которых работает ТСПУ.
Если ваш ВПН ведет в обычную корпоративную сеть обычной компании из РФ, которая пользуется для выхода во внешний интернет обычным интернет провайдером из РФ, никто ничего блокировать не будет, т.к. при использовании этого VPN правила ТСПУ все равно применяются и РКН об этом прекрасно известно.
Такая схема относится к категории полностью законного VPN.
Если же ваш корпоративный ВПН по какой-то причине занимается обходом блокировок и, при выходе из корпоративной сети во вне виден заграничный адрес, на котором не стоит ТСПУ, то, тогда у вашего работодателя проблемы.
И, есть вероятность, что решать эти проблемы будет уже не РКН, а совсем другие инстанции в очном порядке.
Если ваш ВПН ведет в обычную корпоративную сеть обычной компании из РФ, которая пользуется для выхода во внешний интернет обычным интернет провайдером из РФ, никто ничего блокировать не будет
У нас больше года как внутренние сети для связи филиалов в разных регионах блокируют/ломают, с трафиком сугубо внутри РФ, а вы про внешний интернет вспомнили :-)
проблема сильно переоценена
Заблокировали ютуб, инстаграм, дискорд, телеграм, ватсап, остальная часть интернета периодически сбоит и плохо грузит, банкоматы с терминалами на кассе даже отваливались в попытке заблокировать всё и вся. Думаете их остановит такая мелочь как случайный бан безобидного внп небольшой конторки?
Возникла пара вопросов:
Ищут ли сетевые интерфейсы “в лоб” по названию? Позволяет ли андроид менять название интерфейса (например, влепить какой-нибудь eth2 вместо tun0 для самых “глупых” проверок)?
При отправке запроса к заблокированному сетевому ресурсу приложения осуществляют отправку через все доступные сетевые интерфейсы?
Допустим включил VPN. Заморозились выбранные приложения(пропали все значки, виджеты и т.д.). После отключения VPN, они не размораживается. И получается,если хочешь получать уведомления (от банков, Макса и т.д.), прокликивай все приложения, чтобы они разморозились. Это очень не удобно.
Возможно стоит рассмотреть дополнительную группу, которая будет автоматически размораживается при отключении VPN.
Было бы полезным добавлять в качестве приложения рабочий профиль целиком.
Было бы полезным добавлять в качестве приложения рабочий профиль целиком.
Поставил на Poco Anubis, Shizuka. Всё встало. Но не хочет из Анубиса ,когда открываешь любое приложение без VPN, отключать VPN (что Happ, что V2rayTun и тд). Режим постоянный VPN отключен в настройках Андроида. Что можно сделать?
Есть такой наивный вопрос: не подойдет ли для этих целей простая приостановка всех приложений второго профиля на время включения приложения с тремя буквами в названии? А после отключения возобновление их работы. При приостановке иконки всех приложений второго профиля становятся серыми, при попытке запуска серого приложения система просит подтвердить возобновление работы всех приложений второго профиля.

Решение автора для автоматического выполнения, а вы так понимаю предлагаете делать в ручную, выше предлагали все рабочее пространство завернуть в решение автора.
Да, всё верно, все действия выполняются вручную, но это как вариант, кто совсем ничего не понимает, а попадаться всё же не хочет.
Алгоритм на самом деле простой и не то чтобы много шагов занимает:
1) Предварительный: добавлять все нежелательные приложения в рабочий профиль (я делал посредством приложения Shelter, есть возможность в том числе установки в рабю профиль из APK);
2) Из меню приложений перейти на вкладку приложений рабочего профиля и нажать кнопку "Приостановить рабочие приложения" (как на скрине). Все указанные приложения "сереют";
3) Запустить приложение с тремя буквами и далее делать то, что нужно;
4) Закрыть подключение в приложении с тремя буквами и завершить работу приложения;
5) Восстановить работу приложений рабочего профиля из той же вкладки меню приложений.
В расписанном виде даже громоздко выглядит (признаю, много воды), но по факту это считанные нажатия клавиш (я насчитал 14 с момента разблокировки телефона, не считая всего того, что делается между 3 и 4 шагом).
Главный вопрос только в том, действительно ли приложения отключаются и не активничают при приостановке.
Спасибо за Anubis и за такую подробную статью! Я тут вчера подумала о том же - приложения могут работать в фоне и перехватывать данные о сетевых подключениях, поэтому нужно запретить им работу в фоне (невелика потеря) и отключаться от VPN при их запуске. Пыталась сделать это через автоматизацию (Automate), но особого успеха пока не добилась, зато у вас все получилось прекрасно :)
У меня получилось это сделать через Automate. А все российские приложения добавил в Deep sleeping apps на Samsung. Приложения полностью дохнут когда их закрываешь. Automate так же создает ярлыки приложений, которые настроил. При нажатии на ярлык открывается впн конфигуратор (например Happ), проверяет включен впн или нет (есть надпись "подключен" на кнопке подключения или нет), выключает его, если он включен, ждет секунду и только после этого автоматически открывает заданное приложение.
Все в такую панику ударились с этими локальными SOCKS проксями, хотя нет ни одного приложения (кроме тех "проверочных"), которые туда реально лезут. Зачем всё это? Настолько заранее заморачиваться тем, что не факт, что вообще будет?
Спасибо за полезное труды!
PS: Пока читал статью, глаз много раз цеплялся за характерные для современных LLM обороты. Наверно, под действием тренда хабра-комментов, сначала это вызывало у меня легкий негатив. Потом пришло осознание, что даже если текст целиком написан LLM, ценность его от этого если и снижается, то несущественно. Далее, вспомнился первый Deus Ex: там был ИИ Дедал, выдававший себя за некоего хакера, в меру своих возможностей помогавший подпольному сопротивлению. Если какой-нибудь ИИ будет от имени человека публиковать софт, статьи и/или как-то иначе действовать, руководствуясь близкими мне моральными принципами, что ж, я даже за )
Ставим любой клиент ВПН, у которого ещё не устранена уязвимость локального порта сокс прокси.
Ставим, например, virtual master.
Внутри virtual master ставим android 11 или любой другой.
Ставим rnkhardering в виртуалку.
Включаем ВПН с незакрытой уязвимостью сокс в хост Андроиде.
Изнутри виртуального андроида делаем проверку rknhardering, получаем ВПН ip. Расстраивается что даже в виртуалке наш впн сервер не в безопасности.
Виртаулки на Андроиде работает внутри локалхост и все равно имеют доступ к открытым портам этого самого локалхоста.
Я не увидел от автора однозначного примечания, что виртуалки в Андроиде так же имеют доступ к внешнему ip через сканирование портов и приложения в виртуалке точно так же не защищены.
Ставим любой клиент ВПН, у которого ещё не устранена уязвимость локального порта сокс прокси.
Разве кто-то из общеупотребимых клиентов уже рапортовал, что сделал фикс по типу Teapod?
Я Hiddify пользуюсm, постоянно проверяю обновления - их не было c 5 марта. И не факт что пофиксят.
Не знаю что за teapod. Я говорю про то что в большинстве клиентов сокс порты открыты, не требуют логина/пароля, доступны всем желающим приложениям и через них можно получить внешние ВПН ip. Проблема не такая сложная для фикса чтобы ее долго игнорировать и ВПН клиенты по тихоньку закрывают эту дыру.
Я сам делал для себя патч для v2ranNG
Скрытый текст
https://github.com/2dust/v2rayNG/issues/5457#issuecomment-4230213229
Что оказалось проще чем кажется.
Позже сторонний участник сообщества предложил коммит включающий ещё пару улучшений
Потом сам разработчик предложил свой коммит.
Скрытый текст
https://github.com/2dust/v2rayNG/issues/5457#issuecomment-4236380573
Но я собрал со своим патчем и мне пока что достаточно, как понимаю, до релиза все это дело пока что не дошло, так что любой желающий может применить патч или коммиты и собрать под себя.
Ну да, мы про одну и ту же уязвимость сокс говорим. Тут недавно один автор своего клиента написал по этому поводу. Я про него и вспоминал.
https://habr.com/ru/articles/1022422/
К сожалению мне знаний не хватает, чтобы самому патч накатить, так что жду реакций от разработчиков. Пока мало кто торопится =)
а зачем внутри впн вообще маршрутизация всего трафика? это в принципе должна быть приватная сеть без выхода наружу (как обычная корпоративная сеть), а уже внутри сети какие-либо сервера сокс5, например, и где вы его пропишете то и будет ходить, правда приложение должно поддерживать такие настройки, но все нужные уже поддерживают.
ну есть впн, ну и что, там только внутренние ресурсы... какие-то...
Спасибо большое за приложение и подробный гайд. Realme GT2 PRO, Android 15, всё работает как часики.
PS Звезду на Github’e поставил
Только фишка в том, что у корпоративного VPN обычно нет выходного IP, т-к он не даёт доступа во внешнюю сеть с рабочего адреса, только во внутреннюю сеть компании, притом обычно в изолированную сильно урезанную подсеть.
Идея для развития:
У некоторых пользователей есть домашние роутеры с уже настроенной VPN.
Получается, это структура обхода блокировок, но вынесенная за пределы изначального устройства.
Было бы неплохо, если в Вашем приложении будет опция определения таких ситуаций через отлов наличия подключения к заданным пользователем точкам доступа WiFi. И в случае обнаружения такого подключения принудительно считать, что работает VPN.
Согласен, такая же ситуация
Похоже, вы второй человек (кроме меня), который знает, что VPN - женского рода :)
Вообще то network в английском языке это существительное среднего рода.
А в русском - женского. VPN (virtual private network) - виртуальная частная сеть. Строго говоря, network в английском вообще не имеет рода. И я завидую в этом англоговорящим, ибо у них часто нет рода, а также отсутствуют склонения (в чем малограмотные в русском тоже часто ошибаются).
Тогда и пишите название по-русски, как ВПН. А то получается название по-английски, а род считаете по-русски.
Средний род в английском языке, так как это неодушевлённый предмет, а не не имеет рода.
Средний род (Neuter) — категория, в которую входят неодушевленные объекты и абстрактные понятия: television — телевидение, cup — чашка, tree — дерево, bench — скамейка и т.д. В эту же категорию входят животные, если по контексту нет указания на пол, а также страны, если они рассматриваются как географические объекты.
минфин — оно, правильно понимаю?
А в чем разница между полной заморозкой приложения и ограничением фоновой работы для него? В Андроиде же есть уже тумблер для запрета работы приложению пока оно не открыто. Остаётся только следить, чтобы в спайвейр случайно не зайти с впн
Огромное спасибо за проект, и за статью! Очень крутой разбор, технические подробности, прочитал с удовольствием!!! И потестил APK для определения VPN, за это отдельное спасибо!))
Я пока не решил идти на такие радикальные меры. Мой рецепт:
hiddify или v2rayNG
Ставятся нестандартные порты прокси (чтобы перебор по методичке не сработал)
Маршрутизация настраивается на проксирование через vpn только выбранных приложений
Vpn всегда включён
Все подозрительные приложения кладутся в Samsung Knox (shelter, island, insular)
Получается, что положение-шпион может только узнать факт наличия tun интерфейса и маршрутов. Но это никак не отличить от вполне легитимного vpn для доступа к корпоративной сети. Обратиться на адрес ютюба или другого сервиса, спалить точку выхода шпион не может, так как не в списке VPN клиента.
Чем плохо такое решение? Что я упускаю?
Допускаю только сканирование всех портов на localhost, но ни одна здравомыслящая компания на такое не пойдёт, иначе их просто будут удалять из-за выжирания аккумулятора.
Сам пока Мпх не ставил, но слышал, что он как раз батарейку жрёт как не в себя. Интересно - какими действиями? Вот бы проверить.
Разве не этими? Месседжер MAX следит за пользователями VPN? Реверс инжиниринг говорит — да (добавлено обновление). Я не слежу за жизнью Мах, но вполне возможно они этим до сих пор занимаются, особенно, если скачивать версию из RuStore/с официального сайта.
Мпх
опечатка по Фрейду, или так задумано? :)
Добрый день, у меня устройство Nothing Phone (3a), все установил все сделал и с рабочих столов удалились все ярлыки, которые замораживаются с ВПН, в выборе приложений почему-то нет youtube, и нет поиска, слетела Яндекс клавиатура(
+, то же самое. Все добавленные в Анубис приложения доступны только из него. При удалении из Анубиса не восстанавливаются на рабочий стол и не отображается в поиске. Непонятно, как их вернуть в обычную систему
за яндекс-клавиатуру обидно конечно.. На нее сработал общий паттерн автовыбора приложений. Но приложения никуда не делись, как и их данные/настройки. Вы можете их разморозить и пользоваться как раньше - зажмите их на главном экране Anubis и далее по очереди - "разморозить" - "убрать из группы". После чего они снова будут видны в поиске. Как youtube пропал - не представляю. Если что, пишите
@kobin555 , @PROTIVOGAZZZ вышла 0.1.1 – https://github.com/sogonov/anubis/releases/tag/0.1.1 – с экраном "Восстановление" в настройках. Две кнопки: "Обычный сброс»"(размораживает то, что замораживал Anubis, если приложение не удаляли и его база данных на месте) и
"Аварийная разморозка" (сканирует систему и размораживает всё отключённое пользовательское, если БД групп потерялась).
Но сразу по существу: ярлыки и виджеты Anubis вернуть не может – это поведение pm disable-user (тот самый механизм, ради которого и нужен Shizuku). Android-лаунчер при отключении приложения снимает иконку и обратно её не ставит даже после включения. Утилиты этого класса (Shelter, Island, Greenify в freeze-режиме) ведут себя идентично.
Отдельно - и это касается не только Anubis: нажимать кнопки в приложении, работающем через Shizuku, не разобравшись что оно делает – плохая идея в принципе. Shizuku выдаёт приложению права уровня ADB shell, это примерно как запустить sudo с незнакомой командой. «Авто-выбор» под капотом – это реальный pm disable-user --user 0 com.example по списку пакетов; логично сначала понять, что это делает, а потом тапать. В 0.1.1 перед первой заморозкой теперь есть предупреждение, но это полумера – общее правило шире: privileged-утилита -> сначала читаем что делает, потом тапаем.
Замороженные приложения остались на месте (это не удаление), доступны в системном меню/поиске – оттуда перетащите иконки обратно куда нужно. Виджеты придётся пересоздать из меню виджетов
Двойное спасибо - за статью и за старания!
Но :), наверно было бы конструктивнее этот комментарий закрепить (вроде это возможно для автора?), т.к. интересен большинству читателей темы. А там где продублировали (как ответ на вопросы) давать ссылку на него (в следующий раз, или в этот с помощью модератора).
Все поставил и настроил. Приложение статус VPN видит хорошо. Но приложения не морозятся. Если VPN активен и запустить что-то из списка “без VPN” - происходит неудачная попытка остановки VPN, после чего выводиться ошибка “остановить не удалось” и приложение остаётся незапущенным.
Долго ковырялся, разбирался. Потом в сабже переключил “Защита отключена” и все заработало. Пошел внимательно читать инструкцию:
Что дальше: Главный экран: кнопка включения/выключения режима скрытности. Этот тоггл теперь называется “защита отключена”.
Хорошая идея, жаль только это не спасёт популярные впн сервисы, если я правильно понимаю, то достаточно даже 1 пользователя впн, который пусть и не намеренно даст доступ "шпионским" приложениям к конечному ip, что бы его заблокировали. Поправьте, если не прав.
Поставил, попробовал - отлично работает.
Но очень не хватает автоматической разморозки при отключении ВПН приложений автоматически замороженных при включении ВПН.
Поскольку телеграм работает адекватно через mtproto, собсвтенно ВПН пользуюсь не часто и несколько напрягает необходимость протыкивать замороженные приложения после отключения ВПН, что бы все оповещения заработали.
тем временем озон и вб перестали пускать на сайты с впн
вы написали что вичат смотрит список пакетов и блокируется если нежелательные приложения находит. Вопрос возникает у нас такую практику могут ввести следующим этапом? Тогда наверняка надо будет впн переименовать и прочие средства обхода. Возможно ли это вообще без рут?
У самсунга есть сценарии на подобии как у айфона, но есть минус, работает только со штатным впн, если обойти это ограничение можно создавать сценарии как айфон, запустил приложение ютуба автоматом запустился впн, закрыл оно отключается сразу.
Плохо работает с Папкой Knox. Если ставить приложения на основную систему все работает как надо, нужные приложения замораживаются. Но если добавить папку knox в "без vpn", приложения могут присылать уведы из нее, и сама папка как понимаю не замораживается. С этим возможно технически что-то сделать?
Интересная статья. Вы уверены, что приложение реально будет в мороз кинуто и не будет какой то сторонний процесс созданный ру софтом, который будет пинговать от его имени tun0, чтобы выявить IP сервера? В этом ведь нет никакой уверенности, т.к. шпионский модуль могут сделать так, чтобы запускался вообще другой процесс, не зависящий от исходного приложения, а при следующем открывании этого приложения, уже получать всю инфу от этого сервиса-сборщика. В таком случае все нынешние решения исходной проблемы с локальным проски будут бесполезны и единственным реально рабочим решением будет только фикс впн клиентов их же разрабами.
замороженное приложение не может никаких процессов создавать в системе. Вы даже сами его не сможете запустить, не разморозив. Только если вы из условного приложения озона установите еще какой-то дополнительный непонятный apk файл который будет крутиться в фоне. Так никто делать не будет скорее всего из шпионов. Ну и хорошо бы понимать, какие приложения вы устанавливаете. Да, фикс впн клиентов решение лучшее. Фиксить там есть что.
А можно вопрос ? Некоторые VPN клиенты, Амнезия, к примеру, умеют раздельное туннелирование, которое в теории должно пускать (или пропускать мимо) в туннель только приложения из списка. При таком подходе может ли приложение-шпион по собственной инициативе принудительно воспользоваться VPN не находясь в списке ?
Да может: выше в комментах уже писали: они могут принудительно забиндиться на интерфейс tun0
А как технически VPN клиент определяет от какого приложения идет соединение ? И в какой момент принимается решение о маршрутизации ?
Странно. У меня при раздельном туннелировании, в режиме "только для выбранных приложений" не дает подключаться к tun0. Т.е. пока я не добавлю условный termux в разрешенные приложения AWG, в нем не работает curl --interface tun0 ifconfig.me. Андроид 13, ядро 4.14.
У Самсунга же есть более простое решение. Поправьте, если не прав. Нужно весь spyware перенести в Knox и обязательно включить опцию запрета работы в фоне, когда папка Knox заблокирована. Заблокировал папку - включил КВН. Все просто. Особенно ленивые могут сделать виджет со сценарием, который сначала блокирует Knox, а потом запускает КВН.
Это всё конечно очень здорово и интересно, но почему просто в самом NecoBox не выбрать "Туннель для приложений" и там активировать запрещёночку? Ну и домены белым списком можно перечислить.
Ну да, само подключение придётся постоянно держать активным, но не велика беда.
"Великолепное" приложение, надёжное как швейцарские часы, мало того что снесло мне папки и ярлыки с рабочего стола, так я теперь не могу найти приложения которые эта тварь отключила. Как теперь все это восстанавливать?
Спокойно, ваши приложения никуда не денутся, восстановить можете в обратной последовательности - размораживаете приложения, зажав его на главном экране anubis, далее удаляете из группы - и больше его никто не будет выключать
вышла 0.1.1 – https://github.com/sogonov/anubis/releases/tag/0.1.1 – с экраном "Восстановление" в настройках. Две кнопки: "Обычный сброс»"(размораживает то, что замораживал Anubis, если приложение не удаляли и его база данных на месте) и
"Аварийная разморозка" (сканирует систему и размораживает всё отключённое пользовательское, если БД групп потерялась).
Но сразу по существу: ярлыки и виджеты Anubis вернуть не может – это поведение pm disable-user (тот самый механизм, ради которого и нужен Shizuku). Android-лаунчер при отключении приложения снимает иконку и обратно её не ставит даже после включения. Утилиты этого класса (Shelter, Island, Greenify в freeze-режиме) ведут себя идентично.
Отдельно - и это касается не только Anubis: нажимать кнопки в приложении, работающем через Shizuku, не разобравшись что оно делает – плохая идея в принципе. Shizuku выдаёт приложению права уровня ADB shell, это примерно как запустить sudo с незнакомой командой. «Авто-выбор» под капотом – это реальный pm disable-user --user 0 com.example по списку пакетов; логично сначала понять, что это делает, а потом тапать. В 0.1.1 перед первой заморозкой теперь есть предупреждение, но это полумера – общее правило шире: privileged-утилита -> сначала читаем что делает, потом тапаем.
Замороженные приложения остались на месте (это не удаление), доступны в системном меню/поиске – оттуда перетащите иконки обратно куда нужно. Виджеты придётся пересоздать из меню виджетов
Спасибо, но в целом это костыль, конечно.
В рамках решения проблемы слива выходного IP, это дичайший костыль. Покупка второго VPS (желательно у другого хостера, но в одном городе/датаценте/стране для минимизации прибавляющейся задержки), который и будет выходной точкой, решит проблему проще. Там настройки то пару записей в iptables для перекидывания трафика.
Но общая мысль верная, нужно скрывать наличие КВН, т.к. скорей всего скоро наловчатся включать режим БС для конкретного еденичного абонента, при детектировании VPN каким-нибудь МАХ-ом.
Не очень понятно как работать с ярлыками. Пропала куча ярлыков (должны работать без VPN), можно их руками разморозить, но я уже выключил VPN, зачем мне каждое руками размораживать?
Виджеты пропали и не появляются, даже если разморозить все приложения из списка
виджеты у вас никак не могут появиться, они требуют, чтобы приложение было активным в системе. А мы его отправляем в disable, никакие activity приложения не будут работать, пока его не включить обратно. Пропажа ярлыков - особенность лаунчеров, которые тоже не отличают disable от удаления. Это, к сожалению, необратимая операция, виджеты и ярлыки придется добавлять заново и они не дружат с заморозкой
Хорошо бы об этом предупреждать до применения действий. Сейчас пришлось руками всё тащить назад и расставлять в старом порядке.
А т.к. я выбрал кнопку автоматом раскидать приложения, то чинить пришлось много
вышла 0.1.1 – https://github.com/sogonov/anubis/releases/tag/0.1.1 – с экраном "Восстановление" в настройках. Две кнопки: "Обычный сброс»"(размораживает то, что замораживал Anubis, если приложение не удаляли и его база данных на месте) и
"Аварийная разморозка" (сканирует систему и размораживает всё отключённое пользовательское, если БД групп потерялась).
Но сразу по существу: ярлыки и виджеты Anubis вернуть не может – это поведение pm disable-user (тот самый механизм, ради которого и нужен Shizuku). Android-лаунчер при отключении приложения снимает иконку и обратно её не ставит даже после включения. Утилиты этого класса (Shelter, Island, Greenify в freeze-режиме) ведут себя идентично.
Отдельно - и это касается не только Anubis: нажимать кнопки в приложении, работающем через Shizuku, не разобравшись что оно делает – плохая идея в принципе. Shizuku выдаёт приложению права уровня ADB shell, это примерно как запустить sudo с незнакомой командой. «Авто-выбор» под капотом – это реальный pm disable-user --user 0 com.example по списку пакетов; логично сначала понять, что это делает, а потом тапать. В 0.1.1 перед первой заморозкой теперь есть предупреждение, но это полумера – общее правило шире: privileged-утилита -> сначала читаем что делает, потом тапаем.
Замороженные приложения остались на месте (это не удаление), доступны в системном меню/поиске – оттуда перетащите иконки обратно куда нужно. Виджеты придётся пересоздать из меню виджетов
Так ладно.
Поставил это приложение. Не обнаружил там своего впн (амнезия). Выбрал его. Добавил приложения в списки... И понял что они как-то странно работают. Все равно надо заходить в впн и после работы с ними включать назад... Подумал что я и сам так могу. Поэтому удалил приложение.
Результат: все приложения которые я добавил в список с впн теперь висят в статусе отключенных и недоступны. Как мне их включить назад без переустановки?
У вас два варианта - https://github.com/sogonov/anubis/issues/20
Так же можно по шнуру через ADB AppControl
Да спасибо, разобрался. Вернул иконки. Но можно мне тогда ещё вопрос с позиции базового юзера. А вот без технического слоя, что именно делает приложение? Я правильно понимаю, что оно просто останавливает те приложения которые надо пускать без впн, когда запущен впн¹ и наоборот? Или все немного сложнее?
Спасибо за приложение.
¹ я так понимаю это важно для того, чтобы подобные аппы не сливали инфу о впн, даже если они висят в фоне?
Приложение сделано так, чтобы приложение на системном уровне не имело права на активность, пока этого не захочет пользователь. Это не остановка, а именно отсутствие возможности включить их без явного волеизъявления и соответстующих прав, в отличие от всех остальных способов приложение усмирить. У них обычно много способов остаться в памяти и/или проснуться через время, по пушу и так далее, и в это время произвести какие-то действия. Когда мы отключаем приложение через pm disable - запустить его получится только разморозив через что-то с такими же правами, и сделать это явно.
Кстати, большинство замороженных приложений, если установлены были через Google Play можно разморозить через него. А вот заморозить он не даст. Насчет различных OEM-сторов не знаю
вышла 0.1.1 – https://github.com/sogonov/anubis/releases/tag/0.1.1 – с экраном "Восстановление" в настройках. Две кнопки: "Обычный сброс»"(размораживает то, что замораживал Anubis, если приложение не удаляли и его база данных на месте) и
"Аварийная разморозка" (сканирует систему и размораживает всё отключённое пользовательское, если БД групп потерялась).
Но сразу по существу: ярлыки и виджеты Anubis вернуть не может – это поведение pm disable-user (тот самый механизм, ради которого и нужен Shizuku). Android-лаунчер при отключении приложения снимает иконку и обратно её не ставит даже после включения. Утилиты этого класса (Shelter, Island, Greenify в freeze-режиме) ведут себя идентично.
Отдельно - и это касается не только Anubis: нажимать кнопки в приложении, работающем через Shizuku, не разобравшись что оно делает – плохая идея в принципе. Shizuku выдаёт приложению права уровня ADB shell, это примерно как запустить sudo с незнакомой командой. «Авто-выбор» под капотом – это реальный pm disable-user --user 0 com.example по списку пакетов; логично сначала понять, что это делает, а потом тапать. В 0.1.1 перед первой заморозкой теперь есть предупреждение, но это полумера – общее правило шире: privileged-утилита -> сначала читаем что делает, потом тапаем.
Замороженные приложения остались на месте (это не удаление), доступны в системном меню/поиске – оттуда перетащите иконки обратно куда нужно. Виджеты придётся пересоздать из меню виджетов
Шизука требует отладки по wi-fi, получается в отсутствие wi-fi соединения вся эта история просто не работает?
Wi-fi нужен shizuku разово для получения прав, далее Wi-fi не нужен до перезагрузки устройства. Если wifi вообще нет, можно выдать права через отладку по USB через adb shell
Тогда я не понимаю, в чем проблема
Если отключить вайфай, приложения в анабиозе заболокированы и недоступны для запуска, переключение защиты недоступно, написано "Shizuku не запущен"
Если у вас Xiaomi или его производные, создайте пожалуйста подробное Issue на github. У меня правда есть нехорошее чувство, что я не скоро с их проблемами разберусь. Если что-то другое - тоже пишите, попробуем разобраться
У меня самсунг
Как я понял это Шизуку отключается просто в какой-то момент при отсутствии вайфай соединения, хз че с этим делать, но в таком формате работать не получится
shizuku абсолютно не нужен wifi постоянно, он нужен единоразово чтобы запустить daemon с повышенными правами как у adb shell. Один раз он запускается и далее работает до перезагрузки системы. Если только Samsung не убивает процесс как-то по другому(попробуйте мб в энергосбережении посмотреть).
Так же есть способ вообще без wifi - через USB и adb shell - но логика одинаковая, просто способ инициации разный
установил на samsung. то же если выключить wi-fi тут же отключается отладка по wi-fi и shizuku.
Сам Shizuku снова просит код подключения при этом
Нет же прав доступа к маршрутам на свежих Android:
$ ip r
Cannot bind netlink socker: Permission denied
$ cat /proc/net/route
cat: /proc/net/route: Permission deniedМаршруты доступны через API, можно посмотреть всю таблицу в DR-NetTools.
Отличная работа! Надеюсь, поддержку рабочего профиля Shelter в каком-нибудь виде вы добавите.
Название несколько неудачное, потому что сейчас в основном на слуху другой Анубис: https://github.com/TecharoHQ/anubis
А теоретически нельзя получать пуши через PWA сайтов?
Я в соседнем посте расписал, как сделать так, чтобы spyware перестал быть головной болью.
А просто купить на vps еще один внешний ip и раздельно использовать ip для подключения из РФ и ip для выхода в мир - не решает эту проблему сразу для всех пользователей и без плясок с бубном?
о серверном решении писал@linux-over в своей статье https://habr.com/en/articles/1022586/
но я еще до всей этой свистопляски не любил, чтобы приложения были активны без моего на то желания, я многие размораживаю раз в 3 месяца и реже. Казалось бы, можно удалить - но разморозка дело 1 клика и 1 секунды, но по последствиям - disable почти тоже самое, что uninstall
О, отличная статья, которую я пропустил. Да, в ней как раз это и описано.
Решает лишь одну из проблем - блокирования конечного IP.
Но выявление того, что на устройстве работает VPN с иностранным IP, может привести к дополнительной пробивке по статистике ТСПУ и выяснению первого IP, куда пакеты уходят из РФ за рубеж.
Понятно, что такое будет введено не завтра, допиливание блокировок потребует времени и денег. Но, скажем, через полгода-год такая схема вполне возможна.
Конечно возможно что доп проверке будет подвергаться огромное количество людей, но я все же надеюсь что это слишком дорого. Да и с таким подходом можно любой зарубежный IP банить вне зависимости от наличия у кого либо КВН. К тому же на IOS такое не сделаешь и достаточно одного такого пользователя на ноде.
Так же надеюсь что в отдаленной перспективе популярные клиенты все же закроют эту уязвимость.
Но если рассматривать не только как актуальный инструмент для борьбы с блокировками, а как параноидальный инструмент тотального недоверия (обоснованного) к части приложений, то решение имеет право на жизнь, хотя обычным юзером проще обойтись 2-мя IP на хосте. Точнее об этом должен позаботиться тот кто это все поднимает для них.
так они наверно и экран и ввод тоже перехватывают( или будут)
Я думаю самое справедливое что можно сделать в такой ситуации так это писать жалобы в google на spyware ибо таким и является, хотя бы из google play уберут приложения.
https://developers.google.com/android/play-protect/pha-reporting?hl=ru
Спасибо за статью и приложение! Со скобкой на молодость приложения работает норм.
Интересно, а можно ли было бы добавить в Шелтер механику отключения впн при разморозке приложения? Шелтер понравился тем, что может замораживать приложения через секунду после их закрытия, и без Shizuku
Странное поведение на hyper OS, выключил по списку приложения и не включил)
хм, у вас получилось даже выключить.. От Hyper OS только и слышал, что не может ничего заморозить. Сейчас выпущена бета - https://github.com/sogonov/anubis/releases/tag/0.1.5-beta.1 - в которой, я надеюсь, эти оболочки из поднебесной начнут адекватно работать. Отпишитесь пожалуйста, если будет время протестировать
Добавлю ещё один способ борьбы со стукачеством:
Деинсталляция приложений.
1. Да, обойдусь без скидки гавнита и шестёрочки. Ещё и отзыв в маркете оставлю - уделено по причине стукачества.
2. Хочет жена залипать в инсте - хорошо, но только после удаления Валбариса.
3. Банки? Туда же - лесом.
Есть банки, которые нормально работают через веб.
а будет поддержка TeapodStream в автоматическом вкл/выкл vpn?
Зарегался впервые на Хабре, только чтобы поблагодарить автора и сказать что все работает ок
Благодарю автора за проделанный труд! Есть возможность добавить поддержку FIClashX?
Смотрю я на это вот всё и чувствую, что скоро на Хабр зайти не смогу по той простой причине, что нахожусь снаружи России, а Хабр хостится в Москве.
@Boomburumне подскажете, есть ли у вашей команды какие-нибудь мысли по поводу решения этой, могущей возникнуть в совсем недалёком будущем, проблемы? Может, зеркало какое-нибудь за границей соорудить планируете?
Заранее прошу прощения, что задаю вопрос в этой теме - просто долго-долго читал комментарии, вот и взгрустнулось...
Статья хорошая. Но не проще ли купить отдельный (можно и БУ) телефон на котором будут стоять все наши сервисы - в которые уже явно “по закону” внедрены следящие маячки. А основной телефон использовать как использовали с впн или иными сервисами обхода блокировок. Думаю для многих людей это самый оптимальный выход.
Без вайфая "серые" приложения внутри анубиса не хотят размораживаться, анубис требует открытый Шизуку. А шизуку не хочет работать без отладки по вайфаю. А доступа к вайфаю сегодня нет.
В итоге отключенные приложения не размораживаются, в них не заходит. А анубис даже включенный впн не может выключить, который выбран в настройках...
а хабр когда внедрит то что требует методичка?
Отличное приложение.
Но хотелось бы увидеть четвертую политику подключения:
Состояние приложения по умолчанию - активно.
При запуске из Анубис:
Выключает VPN → размораживает → запускает
Ну или любую другую логику работы, чтобы при запуске ВПН определенные приложения замораживались. При выключении ВПН это приложения размораживались
Заранее спасибо!
@Sc71ru об этом много писали - https://github.com/sogonov/anubis/issues/23 , но у меня руки не успели дойти, пока выпустил beta c PR https://github.com/sogonov/anubis/releases/tag/0.1.4-beta.1 от коммьюнити, не совсем то что я хотел в итоге реализовать, но для многих будет подходящим вариантом прямо сейчас
Добрый вечер. Второй день тестирую ваше приложение. Всё работает отлично. Заметил один небольшой косяк. При первой установке Анубис корректно видел Happ, но после обновления Анубиса в настройках выбора VPN клиентов начал писать что клиент не установлен. Хотя сам happ при этом не обновлялся и не переустанавливался. Happ установлен из google play. Но при этом включение защиты работает исправно, приложения замораживаются и vpn включается.
И ещё есть пара небольших просьб:
1. сделать возможность сохранять свой список приложений для заморозки, т.к. в авто-выборе не все, нужные мне, приложения присутствуют.
2. сделать возможным размораживать сразу все приложения после отключения защиты.
Спасибо за вашу работу
@raydos01 об этом много писали - https://github.com/sogonov/anubis/issues/23
поскольку у меня руки не успели дойти, пока выпустил beta c PR от коммьюнити, не совсем то что я хотел реализовать, но для многих будет подходящим вариантом https://github.com/sogonov/anubis/releases/tag/0.1.4-beta.1
Насчет happ - тоже посмотрите последние обновления - я там добавил поддержку кучи клиентов, в том числе разных версий happ(у него есть GP (изначально его добавил) а есть еще и github)
еще он его может не видеть, если он установлен в рабочее пространство
Спасибо за ответ.
В свою очередь должен признаться, что проблема с Happ это мой косяк )) Я недавно установил кастомную прошивку на базе android 16. Разбираясь в функциях прошивки, набрел на такую настройку: Скрывать приложения от обнаружения другими программами. Ну я и скрыл несколько приложений, в том числе и Happ. Это действие вылетело из головы совершенно, поэтому начал грешить на Анубиса. Отключил я эту настройку и всё заработало как надо
Ещё одно наблюдение. При долгой заморозке всех приложений от Яндекса слетает аккаунт Яндекс. И после разморозки приходится заново входить в учётку. С этим можно сделать что-нибудь или это уже к Яндексу вопросы?
долго - это сколько?
Это очень странное поведение, у меня примерно 3 приложения от яндекса и заморожены почти перманентно, недели-месяцы. Никогда из аккаунта не выкидывало
Здравствуйте! Поставил анубис. Работает. Есть пожелания по улучшению вашего приложения:
При первом запуске автоматически никакие приложения не морозить(чтобы значки не становились серыми, бедный Max Payne туда даже попал). Только вручную выбирать необходимые.
После первого запуска отображать предупреждение о том, что ярлыки слетят при заморозке, после разморозки некоторых приложений может произойти вылет из учетной записи (сам столкнулся на mail.ru, заново пароль пришлось вводить). Приложения выбирать с умом, только те, которые не нужны постоянно в работе.
В случае если анубис не смог выполнить правило включить или выключить впн, выводить всплывающее уведомление
Рассмотреть ещё мягкий вариант без заморозки-открыл телеграм-впн включился, свернул или закрыл-впн отключился. Открыл спокойно озон или банк. Так хотя бы удобство использования повысится. Макросами как-то такое получалось
Не знаю возможно ли такое-добавить настройку при открытии ру приложений сначала выводить окно или уведомление запрос-включить или отключить впн, после выбранного действия уже открывать приложение
Если открыть ссылку youtube в телеграм из ярлыка анубис выполняется открытие видео через сам телеграм. В настройках открытия ссылок по-умолчанию не выбрать приложение youtube. Можно ли с этим что-то сделать?
Не очень понял для чего нужен третий режим группы - с VPN? Чем отличается от только VPN?
при первом запуске автоматически никакие приложения не морозить(чтобы значки не становились серыми, бедный Max Payne туда даже попал). Только вручную выбирать необходимые.
вроде мы не морозим при первом запуске ничего, есть кнопка автовыбора приложений, и то, пока не активировать VPM ничего не применится. Вы последнюю версию установили?
Предупреждение добавлю, но поведение странное. Я замораживаю приложения года с 2018, никогда из аккаунтов никто не выкидывал.
Не совсем понял, что значит не смог? Включать он умеет ряд клиентов(из которых ряд хорошо умеет, ряд - только в ручном режиме). Выключать он умеет любое приложение через dummyVPN
Мягкий вариант для потенциально spy-приложений? как-то не бьется с задачей приложения вообще. В ближайшем релизе будет добавлена еще одна группа - замораживать с VPN, размораживать без него. Сейчас такое можно сделать с помощью флага в настройках
Создайте Issue на github, иначе затеряется - там же можно будет обсудить с теми, кто такое тоже хочет
не совсем понял, что вы делаете. Если у вас ютуб заморожен, его для системы не существует, он почти удален, только без потери данных. То есть никакие ссылки он в принципе открыть не сможет. Ютуб в моем понимании может лежать только во второй группе - запуск с VPN - тогда его запуск будет триггерить включение VPN(c заморозкой 1 группы "без VPN").
Вот как раз есть отличие этих групп. С VPN - приложение не замораживается, если пользователь сам долгим тапом это не сделал, но при запуске(через anubis или через ярлык, который создал anubis) запустится VPN и заморозится 1 группа. Группа "только VPN" для тех приложений, кому не нужно видеть местный IP по какой-то причине. Они замораживаются следом за выключением VPN. В ближайшем релизе будет добавлена группа "замораживаются с VPN, размораживаются без". Сейчас такое поведение в 0.1.4-beta создает флажок в настройках, но думаю от него будем уходить
Перепроверил, действительно. Системой видимо давно отключены неиспользуемые приложения, поэтому и много серых приложений
В яндекс Go проверил -не выкинуло. Почему в других выбрасывает непонятно.
Ну бывает, что сам впн висит-нет соединения, подключения не происходит. В киберпортал даже появляется предупреждение, что подключение может занять от нескольких секунд до минуты. Заходишь в анубис-там сообщение-подключите vpn вручную. И всё. Поэтому и просил всплывающее уведомление что что-то пошло не так
Мягкий вариант для случаев, когда нет рядом доступной точки Wi-Fi или компьютера. Для простого пользователя мне кажется тоже такой способ в дополнение нужен. Например, поставил родственник anubis, ему после каждой перезагрузки телефона (телефон сел к примеру) надо заходить включать отладку по Wi-Fi, вводить код, включать шизуку. Да он пару раз попробует и удалит приложение потому, что для него это всё сложно. А так зашел в телеграм vpn автоматом включился, свернул-выключился. Да, безопасность от spy-приложений будет снижена. Но хотя бы при их непосредственном запуске не будет включен vpn. Есть и такие, кто с включенным vpn во все приложения подряд заходит, забывает выключать его, не знает включен ли вообще впн(зрение плохое).
Только недавно на хабре:)
Чтобы при включенном впн из Telegram (2 группа) мог автоматически переходить по ссылке в приложение Youtube Revanced (2 группа). Т.к. оба приложения запускаются из анубис с ярлыков-в настройках ярлыков сам анубис, нет настройки открытие ссылок по умолчанию. А если после разморозки youtube зайду в настройки приложения, то там включены все ссылки открывать через ютуб
Понял, спасибо!
Вот и я удивился такому поведению яндекса. В итоге пока решил использовать firewall с блокировкой интернета для российских приложений. Создал правило при включенном vpn у них нет доступа к сети. Соответственно не могут спалить ip моего vps сервера
Понимаю, что этот вариант подходит не всем, т.к. требуются рут права на телефоне
После повторного замораживания вылета из учетки mail.ru не было
Ещё было бы неплохо добавить кнопку выключения приложения. Например когда я на мобильной сети, я использую подписку с обходом белых списков. Ваше приложение отлично отрабатывает и вырубает лишнее.
Но если я дома на wifi, мне достаточно включить baybaydpi или warp чтобы получить доступ к нужным мне ресурсам. Но при этом мне не нужно замораживать другие приложения. Но я всё равно получаю заморозку в автоматическом режиме. А каждый раз сносить список для заморозки и выставлять его заново - неудобно.
Ну или же реализовать использование разных списков заморозки при использовании wifi и мобильного интернета.
Планируете ли добавить виджет на рабочий стол, чтобы одной кнопкой включать/отключать защиту?
в последней beta добавил, тестируйте - https://github.com/sogonov/anubis/releases/tag/0.1.5-beta.1
В список VPN - hiddify пожалуйста
об этом клиенте уже писал https://github.com/sogonov/anubis/issues/54. Если коротко - в текущий момент нечего дернуть в нем, чтобы было полноценное управление. А в ручном особого смысла не вижу, так как Manual для любого доступен через выбор собственного клиента
Не открывается https://shizuku.rikka.app/ . Откуда можно загрузить приложение shizuku ? Подскажите пожалуйста.
Добрый день! В список VPN можно добавить AdGuard VPN?
Отличная работа, даже зарегистрировался, чтобы написать, спасибо!
Хотел бы уточнить пару имеющихся нюансов по опыту использования.
Приложения, которые в группе без vpn все равно сканируют API при выходе из заморозки и находят приложения по запуску КВН, да они не видят подключение по tun0, ведь его нет, тут 2 вопроса: shelter может также замораживать приложения, только они ещё и не видят установленные при работе, будет ли это работать? Можно ли настроить anubis через adb так или выдать ему права, чтобы он видел приложения и в личном и в рабочем профиле?
приложения внутри рабочего профиля по идее не должны видеть приложения из основного, поэтому поместив туда сомнительные, вы не дадите им увидеть клиенты впн в списке приложений.
Работа с shelter и аналогами запланирована, но пока руки не дошли, хотя я последнюю неделю фактически по релизу в день выпускаю(благо еще и PR шлют, что ускоряет работу).
Посматривайте за релизами на Github, заходите в чат коммьюнити, думаю, в горизонте недели-двух и песочницы одолеем
Если держать все обычные приложения в личном профиле, а все сделанное по методичке в рабочем, морозить приложения в рабочем профиле можно одной кнопкой. Что удобно, заморозил, включил что им видеть не надо, выключил что им видить не надо - разморозил через ввод пина. Не автоматизированно да, но работает.
Ну и еще появление рабочего профиля добавляет неудобства по шарингу файлов и картинок и скриншотов между личным и рабочим профилями, это решаемо.
Главная проблема пути с использованиями рабочего профиля - Android Auto, вроде как галочка в Island шаринга есть, но вот для виджетов она работает, а для шаринга Android Auto нет, возможное решение - использовать Android Auto из рабочего профиля, но пока законнектитcя из рабочего профиля не получилось. Впрочем работа Android Auto и VPN одновременно отдельная песня.
Спасибо за статью! Нарыл инфу как установить и настроить в youtube, делюсь ссылками. У себя на INFINIX настроил, всё работает! Спасибо! https://www.youtube.com/watch?v=N3fKmbOCRts (Установка и настройка SHIZUKU), https://www.youtube.com/watch?v=gWMrzk_9Ldg (Установка и настройка ANUBIS). Всем тепла и добра!
Спасибо все работает хорошо. Да бывают зависание иногда но все-же. У меня вопрос больше визуальный можно ли как-то у созданных новых иконок убрать логотип анубиса Чтобы визуально казалось обычной прогой. А-то у меня много ануьисо подобных прог стало все с щитами.. 🤣
Какие же вы крутые ребята!!! большущий респект и огромное спасибо!
А IOS-щикам как быть?
PS это самый подробнейший гайд из всех что я читала <3
Привет! Во-первых - огромный респект за проделанную работу!
Есть небольшой фича-реквест: было бы удобно иметь тоггд (или два), который насильно замораживает все приложения из групп только vpn / только без vpn, без каких либо проверок
Удобно если нужно поковыряться в клиенте vpn, потестить и так далее. Буду уверен, что в этот промежуток времени ничего не запустится и не задетектит
Я так понимаю этого можно добиться включая на время фичу с постоянной проверкой впн через уведомление, но как будто отдельный элемент под отдельный юз кейс будет правильнее + имхо понадежнее


Anubis: заморозка приложений по состоянию VPN