Представляю сообществу проект, которым занимался в последнее время: блокировщик рекламы и трекеров для смартфонов Samsung на Android с открытым исходным кодом.

Реклама блокируется на уровне устройства, то есть не только в стандартном браузере, но и во всех остальных приложениях (например, в Chrome и YouTube).

Предыстория


Я пользуюсь блокировщиками на всех своих компьютерах, но все чаще захожу в интернет со смартфона.

Мне нравится мобильный Chrome больше чем Mozilla или Opera, но в Chrome нет поддержки расширений, а присутствие рекламы на смартфоне критичнее чем на десктопе, так как часто ограничен трафик и дисплей в несколько раз меньше.

Плюс мне нравится иногда смотреть видео на YouTube, но реклама, которую нельзя пропустить здорово мешает процессу.

Исходя из таких предпосылок я занялся поиском решения блокировки рекламы на смартфоне.


Пример работы приложения на Samsung Galaxy Tab 4 10.1. habr.ru

Готовых решений по блокировке рекламы довольно много, но, к сожалению, все они имеют хотя бы один крупный недостаток:

  1. Браузеры с поддержкой расширения для блокировки (Mozilla, Opera).
  2. Браузеры со встроенной блокировкой рекламы (от Ghostery, от AdBlockPlus).
  3. Блокировщики рекламы для стандартного браузера Samsung.
  4. Блокировщики на базе VPN.
  5. Полу-работающие решения (https://adblockplus.org/android-about).
  6. Блокировщики работающие на базе root.

Первые три варианта блокируют только в браузере. Я пробовал пользоваться ими, но Chrome мне нравится больше даже с рекламой. Четвертый вариант хорош, но не стабилен. Пятый не фильтрует мобильные данные.

Шестой вариант самый идеальный, если у вас есть root или вы не прочь его получить.

В каждом из вариантов приходиться чем-то жертвовать, поэтому я начал думать, могу ли сделать что-нибудь сам. Решения на тот момент не нашел и прошло много времени пока не наткнулся на платформу от Samsung.

Samsung Knox Standard SDK


Knox это решение разработанное Samsung. Под брендом Knox существуют много продуктов, но остановлюсь на одном, который я использовал.

Knox Standard SDK это бесплатная библиотека, которая работает почти на всех Android смартфонах Samsung и обладает богатым API (около 1100 методов). Если бы меня попросили описать Knox Standard SDK в двух словах, то я бы сказал, что это легальный почти root.

В общем, очень полезная штука, которая позволяет делать много интересных вещей. Например, полноценно заблокировать устройство на одно приложение, тихо включать GPS и запретить его выключение, тихо включать Wi-Fi/Bluetooth, тихо устанавливать/удалять не системные приложения, тихо включать/выключать любые приложения, запретить изменение настроек, запретить выключение устройства и много чего другого.

Вот ссылка на официальный сайт, там есть примеры, гайды и API Reference.

Неизвестность решения в широких кругах, я для себя объясняю тем, что оно создавалось для Enterprise + на мой взгляд, недостаточный маркетинг Samsung.

Идея


Просматривая документацию я понял, что с помощью API можно добиться блокировки рекламы на уровне устройства (как будто есть root доступ как в 6 пункте выше), а не на уровне приложений. Но блокировщик подойдет только владельцам смартфонов Samsung. Я решил, что лучше полное решение на одном устройстве, чем половинчатое на всех. И начал разработку.

Получение ключа


Чтобы начать использовать API нужно зарегистрироваться на сайте seap.samsung.com и сгенерировать бесплатный девелоперский ключ, с помощью которого на устройстве активируется работа библиотеки. Когда проект закончен, нужно получить продакшн ключ.

Девелоперский ключ работает три месяца, по окончанию срока можно сгенерировать новый. Продакшн ключ бессрочный, его нужно привязать к имени пакета и ключу, которым подписывается приложение В этом случае только ваше приложение сможет использовать полученный ключ.

Использование API


Далее нужно импортировать три .jar которые скачиваются после регистрации, в Gradle их нет, поэтому придется копировать вручную.

Не буду тут подробно описывать код: вы можете посмотреть его на GitHub и там все довольно просто сделано. Остановлюсь только на некоторых особенностях.

1. Для работы Knox Standard SDK нужно попросить пользователя ввести приложение в режим администратора, потом активировать полученный ключ и согласиться в сплывающем окне.

2. Оказалось, что на разных версиях Android от Samsung установлены разные версии Knox Standard SDK и обновляются они только с обновлением прошивки.

Поэтому нужно было поддерживать разные версии, в чем в общем-то я преуспел и сейчас блокировщик работает (надеюсь, что) на всех устройствах начиная с версии 2.0. Версию SDK можно посмотреть в информации об устройстве в настройках телефона.

Я буду благодарен, если в случае проблем с приложением, вы напишите в комментариях или откроете issue на GitHub.

А что блокировать?


В первой версии я заходил на популярные сайты из моего списка в Feedly и вылавливал рекламных провайдеров вручную, в сумме получилось около 200 доменов и все работало, но часто реклама просачивалась.

После того как я опубликовал приложение в Google Play, мне на почту прислали письмо со списком рекламных провайдеров:

  1. adaway.org/hosts.txt
  2. pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
  3. hosts-file.net/ad_servers.txt

Отмечу, что пока в проекте используются первые две ссылки, что в сумме ~2600 ссылок и этого хватает, чтобы не видеть рекламу на 95% сайтов.

В версия Knox Standard SDK 5.6 все 2600 ссылок блокируются нормально. Но на более старых 2600 ссылок смартфон принимать отказывается, стабильно блокируется только 1500.

И вот возникает задачка, какие 1500 из 2600 ссылок выбрать? Как отсортировать список по популярности? Я начал думать и гуглить.

Довольно быстро нашел, что Alexa Rank отдает файлом в .csv 1 млн самых посещаемых доменов в мире за последний месяц в порядке популярности. Я предположил, что если домен содержится в этом списке и одновременно домен (или его поддомен) содержится в списке провайдеров рекламы, то значит провайдер рекламы популярный и часто встречается на различных сайтах.

С помощью данной гипотезы получилось отсортировать список из 2700 ссылок. Те, домены, которые не встречались в списке 1М я добавлял в конец.

В итоге, тех что встречаются списке получилось ~1300, что вполне подходит под наши ограничения.

На самом деле, я пробовал провернуть тоже самое не только с двумя, но и с тремя списками провайдеров рекламы, что на выходе дает больше 10 тысяч ссылок, и быстрая прокрутка списка показывает, что там много не релеватных сайтов (например, индиийских или китайских). Поэтому пока было решено оставить первые два провайдера.

Хотелось бы в будущем сделать возможность блокировать рекламных провайдеров по языкам (как это делается в расширении AdBlockPlus, например).

Первый блин комом


Где-то в марте, я за неделю сделал прототип, почти вручную собрал провайдеров рекламы (на тот момент около 200). Просто заходил на сайты, на которые обычно хожу и вылавливал рекламные ссылки. Потестил немного, выложил в Google Play, написал на 4pda.ru и начал рассказывать про него всем знакомым.

Через две недели было около 300 скачиваний и 60 активных (в тот момент поддерживался только Marshmallow). Примерно в тоже время мне прислали ссылки с провайдерами рекламы и я на радостях обновил приложение.

А утром пришло письмо от Google, что приложение заблокировано. Видимо не нужно было писать в обновлении большими буквами: «Блокировщик рекламы и трекеров. Блокирует не только в стандартном браузере, а во всех приложениях». Если перефразировать с юмором, то в письме от Google было сказано: «Ты хороший разработчик, но ставишь весь наш бизнес под угрозу, поэтому мы выпилили твое приложение.» Вот так и началась эта история.

Чтобы проект не зависел от Google Play и при этом выжил, решил сделать сайт (где можно скачать приложение напрямую), сделать проект открытым и написать об этом на Хабр.

Что в итоге?


В итоге получили мобильный интернет без рекламы, ускоренную загрузку страниц и бонусом экономию трафика.

Я пользуюсь двумя смартфонами Galaxy S7 и OnePlus 2 и возвращаясь в Chrome или YouTube на OnePlus удивляюсь как, оказывается, мешает и много места занимает реклама на мобильном дисплее.

Вот несколько примеров с работающим блокировщиком и без него. Тест проводился на одинковых смартфонах с выключенным и включенным блокировщиком. Я только вбивал домен в браузер и ждал пока загрузиться страница.


habr.ru


theverge.com


rbc.ru


adme.ru

Заключение


Большим плюсом решения является простота и удобство для пользователя, но и минусом — платформозависимость.

Благодарности


За то, что поделились ссылками на провайдеров рекламы, выражаю благодарность semax95.

За подготовку сайта большое спасибо yelnar.

Проект на GitHub


» Создал организацию, в ней содержится три репозитория.
» Само приложение под Android
» Сортировщик рекламных ссылок по популярности
» Сайт

» Ссылка на сайт проекта
» Ссылка на Google Play (до тех пор пока не заблокируют)
Поделиться с друзьями
-->

Комментарии (104)


  1. dmitriylyalyuev
    02.11.2016 09:14

    Свой ДНС сервер для меня решает эту проблему на всех устройствах.


    1. raiym
      02.11.2016 09:15

      для обычного пользователя довольно сложно, мне кажется)


      1. dmitriylyalyuev
        02.11.2016 09:21
        -1

        Да, немного сложнее. Но я сделал следующее:
        1. Поднял PowerDNS с бэком на MySQL.
        2. Загружаю списки доменов (если нужны линки, то могу поделиться).
        3. Парсер создает sql файл
        4. Заливаю в MySQL весь список.

        На обновление списка уходит минут 5.

        Вот только что обновил:

        ```shell
        100% done
        474608 domains were fully parsed, containing 1898439 records
        ```

        Стоит учесть, что тут записи не только типа A, а также SOA. Но все равно много выходит.
        Процентов 90% рекламы отрезано.


        1. raiym
          02.11.2016 09:24

          Очень много доменов блокируется) А где вы берете ссылки?


          1. dmitriylyalyuev
            02.11.2016 09:28
            +6

            Я не жадный ;)

            http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&startdate[day]=&startdate[month]=&startdate[year]=
            http://winhelp2002.mvps.org/hosts.txt
            http://malware-domains.com/files/domains.zip
            http://adaway.org/hosts.txt
            http://someonewhocares.org/hosts/hosts


            1. raiym
              02.11.2016 09:29

              Спасибо!


              1. dmitriylyalyuev
                02.11.2016 09:35
                +2

                В самом начале в качестве DNS был Bind9. Он кушал 700 мегов памяти с таким количеством доменов. Мне это сильно не нравилось и я поднял PowerDNS с конфигами Bin9 в качестве бэкэнда. Стало получше, но стартовало оно ну очень уж долго при обновлении списка доменов.

                В результате пришел к PowerDNS + MySQL. При чем дамп для MySQL все так же генерится из конфигов Bind9 :)

                Т.е. сначала формирую конфиги для Bind9, потом конверчу их в дамп для MySQL и заливаю в базу.

                Теперь рекламы нет даже в AuraHD (приставка для телика с ex.ua, fs.to и IPTV). Собственно ради нее все и затевалось. Достало смотреть рекламу по каждому чиху. :)

                Такая вот небольшая история.


                1. sashabeep
                  02.11.2016 10:47

                  А нет ли у вас возможности запилить докер со всем этим добром?


                  1. dmitriylyalyuev
                    02.11.2016 11:00

                    В docker и крутится у меня все это. Кроме конфигов. Они отдельно лежат и монтируются в контейнер.


                    1. sashabeep
                      02.11.2016 11:01

                      Докер — на гитхаб и в массы!


                      1. dmitriylyalyuev
                        02.11.2016 11:06

                        Надо привести в человеческий вид, а то там «каша» сейчас.
                        Может сделаю это все, как время будет.


                        1. dmitriylyalyuev
                          02.11.2016 14:02
                          +1

                          Накарябал свои кривые мысли кривым почерком — https://habrahabr.ru/post/314260/
                          Может кому сгодиться мое наколенное поделие. ;)


            1. GebekovAS
              03.11.2016 17:39

              Благодарен за ссылки. Сервер поднимать не стал, написал простенькую утилиту, которая парсит из списка ресурсов (ваши ссылки) все адреса и дополняет ими локальный hosts файл. Запустил утилиту на всех машинах (дома и на работе). Первое, что заметил, в скайпе реклама пропала=) Спасибо!


              1. dmitriylyalyuev
                03.11.2016 17:41

                Всегда пожалуйста.
                Сейчас допиливаю docker образ с dnsmasq. Там уже не нужен будет Мускул. Достаточно запустить контейнер и все. :)


                1. GebekovAS
                  03.11.2016 18:10

                  Это меняет дело. Жду с нетерпением.


                  1. dmitriylyalyuev
                    03.11.2016 23:49

                    https://github.com/DmitriyLyalyuev/dnsmasq-no-ads
                    Стоит писать еще одну статью на Хабр? :)


                    1. GebekovAS
                      07.11.2016 13:01

                      Мне хватило Readme.md, но если в процессе написания образа вы открыли для себя что то новое, удивительное и необъятное в одном лишь readme.md, чего не найти на хабре, я бы с удовольствием прочитал=) Спасибо за докер!


                      1. dmitriylyalyuev
                        07.11.2016 13:04
                        +1

                        Если хватило только Readme — значит все получилось не так уж плохо. ;)
                        Всегда рад если кому-то пригодиться мое поделие. :)


        1. Dreyk
          02.11.2016 12:56

          отличное решение, надо себе такое запилить. единственная вещь, которая меня интересует: есть сайты, на которых я выключаю адблок, как быть тут?


          1. dmitriylyalyuev
            02.11.2016 12:59
            +1

            White listing предусмотрен.
            Сейчас допили до более-менее вменяемого состояния. Буду готовить заметку на Хабр. ;)


          1. raiym
            02.11.2016 12:59
            +1

            (ой, это не мне)

            Спасибо)

            Пока такой возможности нет(


            1. Dreyk
              02.11.2016 13:02

              ну вам тоже =) я понял)


          1. dmitriylyalyuev
            02.11.2016 14:08

            Выложил в открытый доступ — https://habrahabr.ru/post/314260/ ;)


            1. raiym
              03.11.2016 15:42

              Круто!


              1. dmitriylyalyuev
                03.11.2016 17:42

                Допиливаю контейнер с DNSMasq и без Мускула. Скоро на ГитХабе. :)


    1. praeivis
      02.11.2016 11:05

      Кому ДНС сервер затруднительно попробуйте Pi-Hole.


    1. PlatinumThinker
      03.11.2016 05:48

      https://pi-hole.net/
      Хотя конечно установщик кривоватый


  1. fizique
    02.11.2016 09:17
    +15

    «Ты хороший разработчик, но ставишь весь наш бизнес под угрозу, поэтому мы выпилили твою статью.»
    (с) Отдел рекламы Харбрахабр


    1. raiym
      02.11.2016 09:17

      =D


    1. Dreyk
      02.11.2016 12:50

      когда уже отдел рекламы поймет, что люди, которые пользуются баннерорезками все равно не являются их ЦА и не будут кликать на рекламу, так что прибыли они не принесут даже возможной


      1. kolipass
        04.11.2016 08:47

        А если это реклама конференции, хакатона или книги по теме и скилам пользователя? Вот прямо сейчас я кликнул на банер хакатона сбертеха, а если бы меня не просили включить рекламу, то и не увидел бы его.


  1. kolu4iy
    02.11.2016 09:32

    Да… AdAway из Google Play они тоже выпилили, хоть он рута и требует. Слава богу, xda-developers еще есть. Но лично мне кажется, что AdAway — это первое приложение, которое у меня установлено не из маркета. До того — ставил бесплатное или покупал… Так сказать, первый шаг к кривой дорожке.


    1. raiym
      02.11.2016 09:43

      Да. Хотя гугл не блокирует приложения, которые блокируют рекламу с стандартном браузере самсунг.

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


      1. saege5b
        02.11.2016 10:21

        Во многих случаях флаг со счётчиком можно сбросить отдельным софтом.


        1. raiym
          02.11.2016 10:52
          +1

          Насколько я знаю, у самсунгов сгорает какая-то лампочка при рутовании, то есть рут фиксируется на аппаратном уровне и ничего сделать нельзя


    1. gresolio
      03.11.2016 01:15

      Тернистый путь… Что же тут поделаешь, это вынужденная необходимость.
      Рекомендую присмотреться к Xposed — превосходный инструмент для тонкой настройки ведроида на низком уровне :) Официальный сайт & исходники. Позволяет на лету патчить в памяти приложения, без изменений apk файлов. Для этого используются модули, на данный момент уже создано множество полезных на любой вкус и цвет. Чем то напоминает старенький RomPatcher+ под Symbian, кто помнит такое — тот поймёт :)


  1. shurupkirov
    02.11.2016 09:41
    +1

    в теме блокировщиков рекламы Директ автоматом предлагает блокировщик рекламы)
    https://yadi.sk/i/5Hf6IvEqxxVQd


    1. navion
      02.11.2016 12:59

      Этот тоже работает только с Оперой и браузером от Самсунга.


      1. shurupkirov
        02.11.2016 14:05
        +1

        Да я к тому, что не вижу смысла Директу давать разрешение на рекламу товара, который убивает Директ


  1. gamburger
    02.11.2016 10:22
    +1

    Проблема с запуском на Samsung Galaxy S7.
    При активации лицензии Knox ошибка: Knox license activation failed


    1. raiym
      02.11.2016 10:29

      Исправил, проверьте пожалуйсте еще раз


      1. N0SFER
        02.11.2016 10:31

        Была та же ошибка, теперь пропустило, оперативно!


        1. raiym
          02.11.2016 10:31

          круто, очень рад)


      1. gamburger
        02.11.2016 12:48

        да, все исправилось. Спасибо.


  1. mihmig
    02.11.2016 10:38

    У вас на скриншоте с трампом присутствуют иконки соцсетей — адблок например их тоже вычищает…


    1. raiym
      02.11.2016 10:41

      Вы про мобильный?

      Adhell блокирует только по url (если бы блок соцсетей загружался по урлу из списка, то его бы не было видно)


  1. 776166
    02.11.2016 10:57
    -9

    когда вы повыедетесь уже! :)


    1. bopoh13
      02.11.2016 12:12

      Ссылки на свои сервисы лучше скиньте. Давно свою подписку не обновлял :)


      1. 776166
        02.11.2016 14:36

        На сервисы чего?


  1. n0ox
    02.11.2016 10:58
    +1

    Спасибо, после обновления заработало.


  1. Flyare
    02.11.2016 12:01

    А темка на 4pda есть?


    1. raiym
      02.11.2016 12:10

      Была, но давно не обновлял. Там еще первая версия http://4pda.ru/forum/index.php?showtopic=742135

      с другим именем пакета, не советую ее ставить


  1. Kastrulya0001
    02.11.2016 12:02

    Когда-то из-за этого я бросил снимать видео уроки. 1М просмотров и 10$. Не готов понять людей, которые смотрели мои уроки и не выдержали просмотра рекламной вставки на 20-30 секунд.


    1. dmitriylyalyuev
      02.11.2016 12:50
      +5

      Я готов терпеть рекламную вставку в 5-10 сек. Не больше.
      А если ролик длиной в 30 сек и реклама на 30 сек — то в сад такие ролики вместе с рекламой!


    1. Dolios
      02.11.2016 13:06
      +3

      Могу рассказать про себя, хоть я и не смотрел ваши видеоуроки.
      1. Меня раздражает реклама прокладок и прочей ненужной мне херни типа рекламы не моего опсоса. Я не помню ни одного случая, когда бы я почерпнул из рекламы что-то полезное.
      2. Рекламные ролики натурально орут так, что подскакиваешь. Слушаешь какую-нибудь лекцию и тут: «ААА, РАНЬШЕ Я ПЛАТИЛ, А ТЕПЕРЬ НЕТ ПЛАЧУ!!!!!!!!!!!!!!!!!».

      Я понимаю, что это не ваша вина, но, простите, меня это мало касается. Я готов платить за то, чтобы рекламы не было и делаю это постоянно. Например, я всегда покупаю приложения, а не использую «бесплатные» с рекламой. Если такой возможности мне не предоставлено, я просто вырежу рекламу.


      1. navion
        02.11.2016 14:18

        На ютубе бывают крутые ролики, но всё равно бесит когда отключают возможность их пропуска.


        1. bopoh13
          02.11.2016 15:01

          Бывает аннотацией закрывают весь экран, — поэтому предпочёл скрыть и аннотации.


    1. doz10us
      02.11.2016 13:17
      +2

      Личное мнение: реклама в большинстве случаев вырывает из контекста просмотра; либо не актуальна и вне контекста интересов (за счёт использования расширений приватности) либо рекламирует любое слово, вбитое в поисковик; зачастую неприемлема по внешнему виду (анимированные баннеры) либо содержанию.
      В случае с YouTube ситуация ещё хуже, т.к. когда у него происходит крупная закупка рекламы брендом, несколько дней практически только она во вставках и отображается, раз за разом.
      Далее, агрессивно рекламирующиеся товары вызывают сомнения в их качествах: хороший товар говорит сам за себя.
      Про трафик и и вообще экономию ресурса уже говорили.
      По совокупности указанных обстоятельств в абсолютном большинстве случаев я не кликну по баннеру и не желаю его смотреть.
      Предпочитаю приобретать версии ПО без рекламы, где это возможно, либо аналогичные подписки на по-настоящему полезные сайты. XDA, например.


    1. springimport
      02.11.2016 15:56
      -1

      Ждите пока YouTubeRed заработает по всему миру.


      Реклама в таком виде не нужна.


  1. bromzh
    02.11.2016 12:04

    Samsung galaxy s5 mini. Чего-то не включается: жму на turn on, секунду думает, но потом снова возвращается в состояние disabled.


    Но всё равно, спасибо за приложение!


    1. raiym
      02.11.2016 12:11

      Если, вас не трудно скажите пожалуйста какая версия Knox и версия Android.
      Я попробую исправить


      1. dmalishev
        02.11.2016 12:57

        Тоже не работает на Samsung galaxy s5 mini.
        Android 5.1.1
        Knox 2.4.1

        Если получится исправить — заранее спасибо!


        1. raiym
          02.11.2016 12:58

          Простите я ввел в заблуждение, нужна именно версия Knox Standard SDK на той же самой странице. Посмотрите пожалуйста еще раз

          Спасибо, как проблема будет исправлена отпишусь.


          1. dmalishev
            02.11.2016 13:02

            Спасибо за быстрый ответ!

            Standard SDK 5.4.1
            и на всякий случай
            Premium SDK 2.4.1
            Customization SDK 2.5.0
            Container 2.4.1
            CEP 2.0.1
            Enerprise Billing 1.2.0
            OTP 1.1.1
            SE for Android 2.3.0
            SSO 2.4.1
            TIMA 3.0
            VPN 2.2.2


            1. raiym
              02.11.2016 13:03

              Спасибо


              1. bromzh
                02.11.2016 21:22

                У меня всё так же. А модель самого телефона — SM-G800F.


                1. raiym
                  02.11.2016 21:36

                  Что-то J1 и S5 mini подводят

                  Отпишусь обязательно, если исправлю или даже не исправлю в течение нескольких дней


                1. raiym
                  04.11.2016 18:02

                  Проблема решена, проверьте пожалуйста.

                  Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.


                  1. dmalishev
                    05.11.2016 12:33

                    Спасибо за обновление! Пока не заработало, все так-же пытается включиться, секунду думает и переключается обратно в disabled.


            1. raiym
              04.11.2016 18:02

              Проблема решена, проверьте пожалуйста.

              Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.


    1. MikalaiR
      02.11.2016 14:23

      Такая же проблема, Samsung SM-J120F. Knox Standart SDK 5.5.1


      1. raiym
        04.11.2016 18:03

        Проблема решена, проверьте пожалуйста.

        Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.


        1. MikalaiR
          04.11.2016 19:23

          Спасибо, заработало, но есть одно но. После включения перестает работать Play Market (и возможно что-нибудь еще), скорее всего какой-то из серверов есть в списках. Сделайте, пожалуйста, возможность загружать свои списки хостов.


          1. raiym
            04.11.2016 23:32

            Да, заметил такую проблему.

            Надеюсь исправлю с будущим обновлением.

            По поводу кастомных списков, подумаю, спасибо. Если время будет =(


    1. undefined7
      02.11.2016 21:10

      Аналогично, такой же ответ выдаёт, буду благодарен за исправление данной проблемы


      1. raiym
        02.11.2016 21:37

        В комментарии выше ответил


      1. raiym
        04.11.2016 18:03

        Проблема решена, проверьте пожалуйста.

        Обнаружил неприятную особенность на версиях до Marshmallow (до Knox Standard SDK 5.6.), что иногда блокируются сервера Google.


        1. undefined7
          04.11.2016 21:53

          Обновил только что до версии 1,5, но к сожалению — так и не включается, та же самая проблема, content blocker is disabled


          1. raiym
            04.11.2016 23:32

            У вам Knox Standard SDK 5.4.1? S5 mini правильно?


            1. undefined7
              04.11.2016 23:36

              да


  1. molnij
    02.11.2016 12:04

    Я правильно понимаю, что программа использующая Knox SDK применяется для всех приложений в системе, а не только для запущенных в контейнере Knox?


    1. raiym
      02.11.2016 12:12

      Да, правильно.
      Можно также выбирать отдельные приложения


  1. zo_oz
    02.11.2016 12:52

    sgs7 все работает замечательно, спасибо.


  1. tenbits
    02.11.2016 13:39

    Отлично, в браузере стало действительно легче "дышать". А реклама в youtube приложении блокируется? А то у меня без рекламы только youtube в браузере. Но и это уже шикарно)


    И такой вопрос, по теме Knox и фаервола, или возможно с их API как-то блокировать отдельные приложения для доступа в интернет по мобильной сети? А то в этой области такая же ситуация, или рут нужен, или приложения создают vpn и на том уровне блокируют, но работает это ужасно не стабильно.


    1. raiym
      02.11.2016 13:44

      Да, должно блокироваться и в приложении. Но иногда проскакивает видимо (а может YouTube как-нибудь адаптируется? пока не знаю)

      Да, можно. Можно задавать имя пакета приложения и запрещать только ему доступ к интернету. В случае с Adhell я передал * (то есть все приложения)


      1. Kondra007
        02.11.2016 15:01

        С ютубом ситуация интересная. Оставлю здесь вопрос-ответ со страницы модуля Xposed AdAway:


        Q: Why this application "may" requires an update for each official YouTube App update.
        A: Because the YouTube application sources are proguarded, which means the generated classes names (by Proguard) are changing for each release, this should happen only if a clean proguard (producing a new classes map) is done, that's why we need to update the classes names on YouTube AdAway each time.


  1. hdfan2
    02.11.2016 14:29

    Судя по описанию, этот Knox весьма злая штука. В нехороших руках может наделать много бед. Или это всё и без неё доступно? Прошу Android-разработчиков пояснить.


    1. raiym
      02.11.2016 15:07
      +1

      Без него только с рутом.

      Да, Knox Standard SDK довольно богат функциями


    1. Handy
      02.11.2016 16:29

      В нехороших руках вполне можно наделать много бед, тем более когда приложение использует Knox и девайс админ.
      Без использования этого есть и другие средства для злоумышленников, которые как путем обмана, так и путем использования дырок в самой системе могут сделать что угодно. Однако, стоит отдать должное разработчикам, дырки закрываются, и, например Google постоянно выпускает заплатки для своих девайсов.


      1. hdfan2
        03.11.2016 06:15

        Дырки и обман — это одно. А вот этот Knox, как я понял, совсем другое, ибо это вполне легально и не использует уязвимости Андроида. Мне просто непонятно, в чём тогда весь смысл андроидовской защиты, если она так легко обходится безо всякого рута. Я-то думал, что возможности малвари, не использующей уязвимости, достаточно ограничены, а тут на тебе, чуть ли не полный доступ.


        1. molnij
          03.11.2016 09:27

          Насколько я понял, вы должны лично согласиться с тем, что выдаете права программе. По аналогии с виндовым UAC'ом. Не сказать, что панацея, но всё же


        1. Handy
          03.11.2016 15:14

          С одной стороны molnij прав, если устройство не рутовано, то для легальных способов навредить нужно выдать права приложению, т.е. например сделать его девайс админом, Knox же (либо другие аналогичные приложения от других производителей) устанавливается как системное приложение производителем, а системное приложение по сути имеет рут, т.е. гораздо больше прав, чем у самого пользователя. И таким образом, если вы даете разрешение приложению на девайс админ, а оно в свою очередь работает с Knox API, то получается что у приложения есть «полурут» (в рамках функций Knox API).


  1. lostinfuture
    02.11.2016 15:21

    Работает, но на мой взгляд не так эффективно как AdAway. Можно как то синхронизировать с их базой URL?


    1. raiym
      02.11.2016 15:40

      В Adhell используется список AdAway

      На более старых устройствах блокируется только 1500 урлов.

      Если найду способ блокировать все и на старых, то выпущу обновление


      1. webgate
        03.11.2016 13:12

        А на новых устройствах есть лимит? Т.е. реальна ли возможность добавления сторонних фильтров как в Ublock Origin, например:
        Easylist — более 68к правил,
        Adguard(RU) — >14k


        1. raiym
          03.11.2016 13:13

          Есть лимит, не могу сказать точно какой, но уже 20К не берет на устройстве которое я тестил


  1. vikarti
    02.11.2016 15:35

    жму Turn on — показывает ENABLING и тут же назад 'Content blocker disabled'
    Galaxy Tab Active SM-T365 Android 5.1.1
    Knox 2.5
    Standard SDK 5.5.0


    1. raiym
      02.11.2016 15:41

      Спасибо, как найду в чем проблема отпишусь


  1. alexantr
    02.11.2016 16:09

    Если приложения только для смартфонов Samsung, может опубликовать приложение в их Galaxy Apps, если это вообще возможно?


    1. raiym
      02.11.2016 16:10

      Уже опубликовал, чуть позже ссылку в пост добавлю


  1. Handy
    02.11.2016 16:10

    Первая попытка: краш после принятия лицензии KNOX (репорт отправил, смотрите в девелопер консоли ну или в крашлитике).
    Вторая попытка: вроде все ок. Спасибо, попробую пользоваться, может будут еще какие-то отзывы.


    1. raiym
      02.11.2016 16:12

      Спасибо, посмотрю!


  1. KentSilver
    03.11.2016 11:11

    к автору — добавьте, пожалуйста, поддержку и других девайсов на андройд, в частности при установке на нексус 5 — выдается соотвещение о том, что устройство не поддерживается.


    1. raiym
      03.11.2016 11:11

      В этом и ораничение. Данное приложение работает только на Samsung