Блокировка рекламы в Nougat 7.0

После обновления Marshmallow до Nougat я обнаружил, что блокировщики рекламы на основе файла hosts не работают. Я попробовал AdAway, настроив его на использование символической ссылки на файл hosts и проверив через проводник, что файл /etc/hosts содержит желаемое содержимое. AdAway также сообщает об успехе своего пользовательского интерфейса.

Но надоедливая реклама продолжает появляться в моих приложениях, мешая работе. Журналы AdAway DNS также продолжают сообщать о хостах, которые должны были быть заблокированы, независимо от того, что я вручную добавляю их в черный список.

Изменил ли Google механизм разрешения DNS, как это делала Microsoft в прошлом для хостов Центра обновления Windows (в обход файла hosts, источник еще не доступен, когда я пишу этот пост)? Могу ли я сделать что-то еще, чтобы заблокировать надоедливую нежелательную рекламу?

Ответы (1)

Короткий ответ

Блокировщики рекламы не работают в Nougat, пока разработчики не сделают обновление. Бета- версия AdAway делает свое дело, но требует проверить новый «Бессистемный режим» на экране «Настройки».

Другие блокировщики рекламы, вероятно, будут реализовывать аналогичные решения.

Длинный ответ

Это помечено сообществом вики, чтобы другие могли внести свой вклад. Объяснение мне тоже не совсем понятно!! В #770 все хорошо объяснено

Корневые приложения обычно не имеют доступа к /systemразделу, даже как root. Это связано с тем, что системный раздел предназначен только для чтения. Однако с помощью mountкоманды вы можете легко перемонтировать файловую систему в режиме чтения-записи и делать все, что захотите. Это то, что блокировщики рекламы и большинство корневых приложений использовали в прошлом.

Но Google изменил способ mountработы команды, сделав ее простыми словами. В Android 6 на самом деле было две сосуществующих реализации команды mount, поэтому, если вы не поддерживали toybox, вы могли вернуться к toolbox.

Это простая причина, по которой Nougat требует, чтобы все корневые приложения обновлялись, если им когда-либо понадобится (и зачем вообще вам нужно быть root, если нет?), чтобы изменить системный раздел.