Как удалить китайские приложения с realme
Не удаляются App Market и системный Браузер
realme GT Master Explorer Edition
Описание проблемы:
Нужно удалить 2 приложения, которые постоянно выскакивают и мешают работе системы: com.heytap.market и com.heytap.browser.
Пробовал удалить их через ADB и через cmd — не выходит. Через командную строку выходит такая ошибка: Failure [DELETE_FAILED_INTERNAL_ERROR].
С этим способом получилось отключить приложения, но они всё равно выскакивают только вот мол нерабочие.
Удаление встроенных приложений на телефоне Realme через ADB AppControl
Все телефоны Android продаются с предустановленными приложениями. Большая часть таких программ не нужна пользователю в повседневном использовании, но убрать их со смартфона не получается. В этой статье вы узнаете, как удалить системные приложения на Realme, используя быстрые и простые способы.
Какие приложения можно удалить?
Рекомендуем ознакомиться с нижеприведенным списком удаляемых приложений. Удаление важного сервиса может привести к некорректной работе телефона. Убирайте только те приложения, в которых вы уверены. Ни в коем случае не удаляйте такие приложения, как «Bluetooth», «Settings», «Android System», «Графический интерфейс системы». Даже если смартфон работает нормально после удаления важного приложения, при следующей перезагрузке Realme может не работать.
Общий список приложений
В этом списке будут названия пакетов приложений и описание их функционала.
Facebook и связанные с ним сервисы (Facebook App Installer, Facebook App Manager и Facebook Services). Они собирают информацию о пользователе и существенно расходуют оперативную память.
Приложения Google, которыми не пользуетесь (Duo, Gmail, Quick Search Box, Диск, Фото, Карты, Фильмы, Музыка, Отклики, голосовой помощник).
Сервисы, собирающие информацию о системных сбоях (обозначаются как loggerui и oppo.logkit).
Все приложения, которые можно заменить сторонними (калькулятор, погода, заметки, почтовый клиент, контакты, диктофон, компас).
Сервисы и приложения которые предустановлены на всех моделях и использую ресурсы устройства. Если вы их используете — то после эти программы можно будет скачать с Play Маркета отдельно, либо пропустить их отключение.
com.google.android.projection.gearhead — Android Auto.
com.facebook.system — Приложение Facebook.
com.facebook.appmanager — Управление сервисами Facebook.
com.facebook.services — Сервис Facebook, проверяющий обновление.
com.google.android.gm — стандартный почтовый клиент Gmail.
com.oppo.gmail.overlay — оверлей Gmail.
com.opera.preinstall — Браузер Opera.
com.dropboxchmod — Dropbox облако.
com.google.android.videos — Гугл Фильмы.
ru.yandex.searchplugin — Быстрый поиск Яндекса.
com.netflix.mediaclient — Сервисы Netflix.
Фирменные приложения и сервисы
Встроенные сервисы от OPPO, Android и других компаний.
com.coloros.gamespace — Игровой центр ColorOS.
com.google.android.apps.wellbeing — Цифровое благополучие, которое постоянно собирает статистику и висит в фоне.
com.android.stk — Меню и приложения для SIM-карт которые показывают рекламу оператора.
com.android.cellbroadcastreceiver — Оповещение населения о ЧС, которые у нас не работают.
com.coloros .weather2 — Погода в шторке уведомлений под часами.
com.coloros.weather.service — Сервис Погоды, который висит в памяти и постоянно получает пакеты данных для обновления.
com.coloros.oshare — Realme Share (пункт в меню поделиться).
com.nearme.atlas — Безопасная среда для банковских приложений (проверка на Рут и блокировка приложений не из Маркета).
com.oppo.atlas — Защитник от OPPO (что-то вроде бесплатного антивируса).
com.nearme.statistics.rom — Участие в тестировании (постоянно висит в памяти, сбор информации с телефона и отправка её разработчикам).
com.trustonic.teeservice — Сервис Trustonic (сбор информации об использовании).
com.tencent.soter.soterserver — Сервис Tencent (сбор информации об использовании).
com.oppo.quicksearchbox — Меню с новостями которое вызывается свайпом вверх.
com.heytap.usercenter — Пункт в меню для регистрации на сайте Realme (трекер собирающий информацию о владельце телефона).
com.heytap.habit.analysis — Аналитика Heytap.
com.heytap.usercenter.overlay — Оверлей HeyTap.
com.heytap.colorfulengine — Ненужный фреймворк оболочки.
com.heytap.mcs — Сообщения от HeyTap.
com.heytap.cloud — Фирменное облако (на наших регионах скрыто, но постоянно включено).
com.coloros.launcher — Стоковый лаунчер OPPO (важно перед этим нужно установить сторонний).
com.heytap.themestore — Магазин тем (если не используете можно полностью удалить).
com.heytap.market — Фирменный магазин приложений (не нужная альтернатива Googl Play).
Удаление встроенных приложений на Realme через ADB AppControl
Перед тем как вы узнаете о 2 способах удаления встроенных приложений на телефоне Реалми, стоит сделать важную ремарку! Мы будем именно отключать приложения и скрытые сервисы. То есть они перестанут работать и потреблять ресурсы устройства, очистим кэш и созданные ими файлы. Но сами APK-файлы останутся в системе и будут занимать немного места. Если у вас разблокированный загрузчик и установлен Magisk с рут-правами — то в таком случае эти приложения можно полностью удалить с внутренней памяти телефона.
Также нужно учитывать, что удаление предустановленных приложений может вызвать неполадки с телефоном. Но если даже вы удалил какое-то приложение случайно — в программе AppControl есть функция восстановления.
Компьютер под управлением Windows 10 или более ранней версии.
USB-кабель (желательно заводской).
Драйвера USB и adb для ПК.
Приложения App Inspector или ADB AppControl, в зависимости от того, какой способ выберите.
Наилучший вариант, подразумевающий использование специальной программы ADB AppControl. Эта утилита позволяет удалить любые приложения без root-прав. Огромный плюс программы: для удаления не нужно вводить команды adb. Все действия проводятся с помощью простого и интуитивно понятного интерфейса.
Шаг 1: скачивание и установка программы на ПК
Загрузить ADB AppControl можно с форума 4pda. Там всегда представлены актуальные версии приложений.
Переходим по ссылке и видим два файла, которые нужно скачать.
Архив распаковываем в любую папку на системном диске.
Теперь переходим к установщику. Запускаем его, и в появившемся окне нажимаем «Установить». Вводим капчу.
В течение минуты программа будет устанавливаться. Должно высветиться уведомление об успешной установке. На этом действия с утилитой пока откладываем.
Шаг 2: установка драйверов
На Windows 10 все необходимые драйвера устанавливаются автоматически при первом подключении смартфона к компьютеру. Также adb-драйвера ставятся после запуска ADB Control.
Может потребоваться самостоятельная установка, если у вас Windows 8, 8.1 или 7. Вместе с программой в архиве есть папка «adb». Находим в ней файл «driveinstaller» и запускаем. Высветится зеленое окно, в котором нажимаем «Установить».
Шаг 3: включение отладки по USB
Следующая важная процедура – активация USB-отладки на телефоне. В этой статье представлена инструкция со всеми подробностями. Опишем вкратце:
Включаем режим разработчика.
Заходим в «Дополнительные настройки» – «Для разработчиков».
Передвигаем ползунок в рабочее состояние напротив строчки «Отладка по USB». Подтверждаем действие, нажав «ОК» во всплывающем окне.
Шаг 4: подключение телефона к ПК и запуск программы
Берем ЮСБ-кабель и подсоединяем один конец к телефону, а другой к компьютеру.
На смартфоне выставляем «Перенос файлов».
Запускаем ADB AppControl с рабочего стола. В телефоне разрешаем отладку.
Утилита сообщит, что необходимо установить сервисное приложение ACBridge, чтобы приложения корректно отображались. Соглашаемся.
Предоставляем приложению ACBridge все запрашиваемые разрешения. Важно, чтобы экран смартфона был разблокирован.
Шаг 5: удаление системных приложений
Приступаем непосредственно к удалению ненужных приложений. Прокручиваем список и отмечаем галочками программы, от которых хотим избавиться. Внизу выставляем «Удалить» и кликаем по одноименной красной кнопке. Читаем предупреждение и нажимаем «ОК».
Удаление предустановленных приложений произойдет буквально за несколько секунд. Вы получите сообщение о том, что задача выполнена успешно. После этого можно закрывать программу и отсоединять смартфон от компьютера. Во избежание сбоев телефон рекомендуем перезагрузить.
Операция успешно протестирована на Realme C3 под управлением UI 1.0 и Android 10, ноутбук с Windows 10.
Метод 2: удаление приложений через командную строку
Способ с похожим алгоритмом. Удаление системных приложений происходит через adb-команды.
Шаг 1: включение отладки и установка adb файлов
Прежде всего, включаем на смартфоне отладку по USB, как в предыдущем варианте. С Google Play скачиваем софт App Inspector. Запускаем его и видим список всех приложений, установленных на мобильном устройстве. Открываем программу, которую хотим удалить, и обращаем внимание на строку «Package name». Копируем ее и вставляем в блокнот на компьютере.
На компьютер устанавливаем adb-драйвера. Скачать их можно отсюда. Рекомендуемая версия – 1.4.3. Запускаем установочный пакет и подтверждаем действие через командную строку, введя букву «Y». Следуем указаниям на экране. На системном диске автоматически появится папка «adb».
Шаг 2: открытие PowerShell
Теперь на ПК нужно открыть командную строку. В Windows 10 это называется «PowerShell». В верхнем левом углу нажимаем по голубой кнопке «Файл» – «Запустить PowerShell от имени администратора». Эти действия необходимо выполнять в открытой папке «adb».
Шаг 3: ввод команд
Главная команда, которую будем вводить — adb shell pm uninstall -k —user 0 + название пакета, которое скопировали с App Inspector. Готовые шаблоны команд для удаления ненужных предустановленных приложений:
adb shell pm uninstall -k —user 0 com.debug.loggerui
adb shell pm uninstall -k —user 0 com.oppo.logkit
adb shell pm uninstall -k —user 0 com.google.android.apps.tachyon
adb shell pm uninstall -k —user 0 com.google.android.googlequicksearchbox
adb shell pm uninstall -k —user 0 com.google.android.projection.gearhead
adb shell pm uninstall -k —user 0 com.google.android.feedback
adb shell pm uninstall -k —user 0 com.facebook.services
adb shell pm uninstall -k —user 0 com.facebook.appmanager
adb shell pm uninstall -k —user 0 com.facebook.system
adb shell pm uninstall -k —user 0 com.android.hotwordenrollment.okgoogle
Команды вводим без кавычек и лишних пробелов, в шаблонах ничего не изменяем, иначе выдаст ошибку.
Чтобы вставить скопированную команду в консоль, делаем клик правой кнопкой мыши. Нажимаем Enter. На смартфоне подтверждаем отладку по USB. Может потребоваться повторный ввод команды. Если приложение удалилось с Realme, появится надпись «Success».
Перезагружаем девайс и проверяем, нормально ли он работает. Новичкам следует сделать резервную копию системы перед процедурой.
Больше информации по ссылке:














app market не удалился так
Подлость от Хуавей. Замена стекла на Huawei P60 Pro)
Сегодня я расскажу об отдельной вселенной в которой живут инженеры Хуавей и как я на их творении стекло менял)

Как вы уже знаете из предыдущих постов — я люблю браться за интересные аппараты, от которых все привыкли отказываться из за отсутствия запчастей или сложности замены стекла. Возможно потому что меня в детстве уронили головой на работающую циркулярную пилу несколько раз. А возможно потому что мне просто интересно когда я сорвусь и убегу жить в лес к медведям без этих ваших смартфонов. Поэтому когда мне написали с предложением переклеить свежий хуавей, то я долго не рассуждал)
Так вот рубка свежая и вышла 3 месяца назад на момент написания поста и на него нет НИЧЕГО. Нет даже видосов на ютубе с разборкой. На весь Питер есть только один дисплей, который появился в продаже пару дней назад за не самые гуманные 20к славянских рупий. Но у меня уже есть стекло на него, а владелец разбил его не успев долго попользоваться.
А вот и потерпевший. Знакомьтесь Huawei P60 Pro.

Разбит вроде не сильно, но осколков по бокам так много, как будто сахара насыпали)

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

С трудом вскрываем данную вундервафлю и видим опять кучу герметика на крышке. Ещё и мои любимые винты разного размера, которые не примагничиваются отверткой и их приходится убирать пинцетом. Потому что Huawei просто так ремонтироваться не должны. Ибо если вы решили вскрыть хуавей, то вы должны осознать надвигающуюся головную боль, которую вам подкинули любители риса и летучих мышей в соусе терияки)

Черные пятна — это полиуретановый герметик, из за которого крышка снимается только с трехэтажным матом)
А тут у нас есть тут кое что интересное. А именно камера. Точнее огромная дура посередине)

Прям на самом объективе огромных размеров катушка, которая нужна для изменения диафрагмы. На самом деле такая же штука была и на Samsung s10 ещё 4 года назад. Но там и камера была меньше, да и самсунги никогда своими камерами не отличались. Их максимум прифотошопить луну на снимке при использовании зума)
Для чего это нужно? — Размыть фон и круто снимать в любое время суток. Тк чем шире диафрагма, тем больше света матрица сможет захватить. А в ночное время суток или при ярком солнце это очень важный параметр для хорошей съемки.

Убираем все лишнее оставляя только голый корпус с дисплеем.
Зазора между дисплеем и рамкой почти нет и все залито герметиком, который просто так не вытащить. Красота)

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

И низ матрицы вываливается полностью потому что его держал только герметик. У меня уже тогда закралось чувство что с этим дисплеем что то не так)

И после выклейки дисплея я все таки понял что с ним не так. Проклейки плагозащитной по краям то и нет. Только сверху и посередине. По краям только куски скотча вперемешку с герметиком. Никогда такого не видел.

А так же огромный шмат белого герметика в двух местах сверху в районе динамика.

Получается дисплей не вклеен от слова совсем и держится только на герметике по краям на раме. По сути сверху сквозная дырка куда зальется водичка и дисплей начнет гнить. Как на Mi 11 ultra. Хотя до пикселей с самсунгами тут все равно далеко. Они вообще все поголовно гнилые, особенно после любителей под краном телефон помыть. Китайцы в плане влагозащиты тут явно преуспели больше)
Чистим матрицу от клея и проверяем что все работает после срезки стекла.

Матрица чистая без черных пятен и разноцветных полос. Даже тачскрин работает без проблем. Значит пора ехать дальше.
Достаем новое стекло для замены.

Чистим матрицу до зеркального блеска от в антипылевой комнате.

Пресс форм на такую дичь вы никогда не найдете, поэтому центровать будем руками.
И вот тут кроется подлость от китайцев. Стекло снизу не плоское, как на всех гнутых. Оно ещё снизу и сверху с загибом, что может потенциально ушатать шлейф матрицы и дать разноцветные полосы при прессовке тк он получается загнут не с 2 сторон, а с 4 как mi 11 ultra

Закидываем матрицу с новым стеклом в вакуумный пресс, предварительно замазав жидким силиконом царапины на поляре по краям и достаем готовый модуль.

Результат идеал, ни единой пылинки, все царапки закрашены и отцентрован в идеал.
Наносим на рамку дорогущий термоклей. Чтобы ничего не отвалилось)

И собираем обратно данную вундервафлю матерясь на немагнитные винты.

Бомба ракета пушка гонка)

Ну и не забудем про олеофоб, куда же без него)

Выдаем чудо китайской инженерии обратно владельцу и обмениваем его на деньги
По цене вышло 10000р
Отправить мне вашего потерпевшего можно Сдеком.
Всем удачных ремонтов.
Интересные посты (Осторожно! Много букв):
А так же приглашаю всех желающих в комменты для совместного веселья)
Ну а тем, кто напишет, что пост реклама — пришлю мемы с Бредом Питтом. Всем Добра)


Друзья! Ищем ништяки для контента, снова! 🙂 Китайские мобилки — сюда
Привет! Вероятно, половина обитателей Пикабу так или иначе уже видели и читали мои статьи — я пишу о подручном ремонте, моддинге, программировании и использовании гаджетов прошлых лет. Довольно большого количества статей возможно и не вышло бы без вашей помощи — именно читатели помогают мне найти некоторые достаточно экзотические гаджеты, про которые я готовлю подробный материал.
Прямо сейчас я составил небольшой список девайсов, которые могут быть вам не нужны, но которые были бы интересны для оживления и будущего контента. не стесняйтесь писать в комментах, если у вас есть что-то подобное, а то часто бывает что начинаю искать какой-то гаджет, а люди пишут «где ж ты был месяц назад! Я целый грузовик их выкинул!» 🙁
Китайские реплики флагманских и дорогих смартфонов начала 2010х годов. Сюда относятся китайские айфоны 4/4s/5/5s/5c/6/6s, galaxy s2/s3/s4/s5/mega/note, htc one x, подделки на Lumia и.т.п. Работали эти реплики на подрисованном в эппловскую систему Android’е и обычно не очень шустро.




Если у кого-то хорошая память на бренды, то вот известные китайцы: ORRO (именно так, не OPPO), SciPhone, Feiteng, HTM, Vinko, BML. Если ваш друг или знакомый когда-то торговал подобными гаджетами (почти в каждом городе были рынки с такими «серыми» телефонами) и ему приносили бракованные подобные девайсы — тоже можно скинуть контакт, поговорить, возможно куплю болячки там обычно не существенные.




Довольно ранние реплики на винде и самых первых андроидах (1.5-1.6). Про них большинство забыли за давностью лет:



И максимальная дичь — реплики айпадов, макбуков и прочей техники Apple. Да, я люблю подобные девайсы собирать в эдаку экосистему))



Не wireguard’ом единым
Еще один вариант прорыва цифровой блокады
На новостях о том что скоро запретят инструкции по запуску собственных впн на арендованных серверах и прочее, решил прыгнуть в последний вагон и написать скрипт который поможет легко развернуть свой собственный впн сервер и настроить клиентские подключения.
Последние месяц многие пользователи Wireguard и OpenVPN столкнулись с переодической блокировкой этих протоколов со стороны провайдеров. В основном отличились операторы мобильной связи, но и некоторые провайдеры проводной связи так же поучаствовали. Блокировки все еще продолжаются, то здесь то там у людей WireGuard и OpenVPN на какое-то время работать перестают, потом начинают. По всей видимости операторы тестируют блокировки в разных сегментах сетей.
Естественно многие начали искать выход и нашли его при помощи Outline или AmneziaVPN, но обсуждать мы их сегодня не будем, т.к. первые как детище гугла страдают сбором телеметрии, а вторым просто респект, молодцы, но о WireGuard over ss, все таки стоит подумать, потому что OpenVPN over cloak хоть и не заблокировано но прямо совсем не быстро.
А говорить мы сегодня будет об установке X-Ray, графической панели 3X-UI для него и настройке одного из самых стойких к блокировке соединений на сегодняшний день.
Немного об X-Ray
X-Ray — это форк V2Fly, который форк V2Ray, который был придуман что бы как раз обходить dpi и другие штуки которыми государства пытаются навести цензуру в интернете. Если которотко то главный разработчик V2Ray перестал выходить на связь, и остальным разработчикам пришлось форкнуться, и так появился V2Fly, потом у разработчиков начались разногласия и часть из них форкнулась уже в X-Ray. И на данный момент разработчики X-Ray выглядят немного впереди планеты всей в плане улучшений протокла для снижения детектируемости и стойкости к блокировке.
Совчем чуть чуть о 3X-UI
3X-UI — это одна из многих web панелей для создания и управления X-Ray. А от многих ее отличает то что она поддерживает весь функционал сервера X-Ray, крайне легко и стабильно устанавливается, ну и поддерживает русский язык.
Побольше об установке
Установить 3X-UI и X-Ray можно в докер, можно на чистый сервер скриптом автор 3X-UI подготовил простой и понятный установщик подходящий для Centos 8 и выше, Ubuntu 20 и выше, Debian 10 и соответственно выше, а так же для Fedora 36 и ArchLinux, подробности об установке можно посмотреть в официальном гитхабе проекта.
Я в свою очередь подготовил скрипт обертку для Ubuntu 20 который дополнительно настроит firewall, установит вебсервер caddy для реверспроксирования, т.к. панель по умолчанию работает на http, с автоматическим получением и продлением ssl сертификата если у вас есть домен/сабдомен для сервера, либо с автоматическим выпуском самоподписанного сертификата если работать без домена. Дополнительно для повышения безопасности, что бы ни кто перебором дефолтных портов не наткнулся на адрес веб интерфейса в скрипте реализован запуск вебсервера на рандомном порту.
И так, нам понадоибится сервер на Ubuntu 20, и доступ пользователем root по ssh
С использованием windows cmd, PuTTy(последнее время многие рапортуют что оно тупит и не всегда верно передает пароль серверу, в результате чего не может авторизоваться), BitVise или то что вы предпочитаете и подключаетесь к вашему серверу и выполняете команду:
Скрипт не задвая лишних вопросов в течении 1-2 минут должен выполнится и в конце, если все прошло хорошо, вы увидите:
Много о настройке
Первым делом, нам нужно сменить хост на котором слушает сама панель по http, с внешнего адреса на внутренний 127.0.0.1, а так же дефолтный пароль.
Открываем браузер и заходим по адресу который в конце нам выдал скрипт установщик. Если вы уже привязали к серверу какой-либо домен то можно сразу идти на домен.

Авторизуемся, заходим в настройки, и сразу указываем в качестве IP адреса панели адрес 127.0.0.1, сохраняем перезапускаем

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

После подтверждения панель сделает автоматичесский logout, что бы вы могли авторизоваться с новым паролем.
Теперь можно переходить к настройке первого подключения. Подключения -> добавить подключение.

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

Примечание — название подключения
Протокол — vless
Порт IP — оставляем пустым, панель автоматически заполнит это поле
Порт — 443, т.к. мы хотим маскироваться под реальный https трафик
Далее проматываем вниз и включаем Reality, появится дополнительные поля

uTLS — я выбираю chrome, т.к. это основной мой браузер, но большая часть рекомендаций сходятся на том что нужно указывать firefox
Домен — панель заполнит автоматически
Dest и Server Names — рекомендуется указывать сайт за пределами РФ, не заблокированный РКН, без редиректов, очень хорошо если сайт имеет айпишник принадлежащий тому же хостеру где работает прокси. Подойдут сайты крупных технологических компаний, Microsoft, Samsung, Asus и т.д.
Private Key и Public Key — генерируем нажатием кнопки Get New Key
Возвращаемся к настройкам первого клиента

Email — здесь не обязательно должен быть email, указываем что-нибудь что поможет в будущем идентифицировать клиента и протокол
Subscription — Поле оставляем пустым, вообще вешь полезная, но по умолчанию так же работает на http, о том как ее включить и настроить на https и прочее расскажу в следующий раз.
Flow — надо выбрать «xtls-rprx-vision», данное поле появится только после того как Reality будет включен.
Ждем Создать. И видим в списке подключенией что-то подобное:

Список пользователей можно открыть по плюсику рядом с ID подключения, по кнопке меню можно добавить новых пользователей, как по одному так и массово.
Напротив каждого клиента видим кнопки QR-кода который достаточно отсканировать мобильным устройством и подключение на нем будет создано, если включена подписка то будет показано два кода, один для подключения, другой для подписки.

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

Теперь о клиентах
На даный момент один из самых удобных и работающих клиентов это Nekobox/Nekoray
Есть сборки для Windows, Linux, MacOS, он же есть под Android.
Для iOS хорошо показал себя FoXray.
Для Windows и Linux качаем https://github.com/MatsuriDayo/nekoray/releases новые релизы выходят один раз в одну две недели.
Для Android https://github.com/MatsuriDayo/NekoBoxForAndroid/releases или из официального магазина, но там он платный.
Для iOS ищем FoXray в официальном магазине.
Сначала настроим клиент на ПК, я делаю на Linux, на Windows и Mac все аналогично.
Открываем информацию о пользователе и копируем URL. Запускаем Nekoray, при первом запуске он предложит выбрать ядро, выбираем sing-box. Сразу включаем Tun mode.

URL подключения мы уже скопировали, идем в Server, Add profile from clipboard, или просто нажимаем Ctrl+V в интерфейсе и наше подключение сразу добавляется в клиенте.

Нажимаем enter или правой кнопкой по подключению и выбираем start. После появления галочки идем проверять на какой-нибудь 2ip.ru , если видим там IP адрес вашего сервера то все хорошо, прокси/VPN работает.
Для iOS устанавливаем ForXray, открываем, выбираем сканировать QR, сканируем

Подключение сразу появляется в клиенте, запускаем и проверяем браузером

Для Android идем на гитхаб https://github.com/MatsuriDayo/NekoBoxForAndroid/releases и скачиваем apk последнего релиза для архитектуры arm64

Устанавливаем на телефон, и запускаем. У меня на Xiaomi с MiUI установилось без лишних вопросов. Далее нажимаем на плюсик в правом верхнем углу

Выбираем Отсканировать QR-код.

Тапом выделяем появившееся подключение и нажимаем запуск

Телефон скорее всего попросит разрешения на запуск впн подключений, их естественно нужно разрешить. И сразу будет видно запущенное и активное подключение плюс появится значок в трее.

На этом собственно все, мы молодцы.
А если когда-нибудь статью удалят по планируемому закону, то вот вам ссылка на телеграм канал где так же будут появлятся гайды и обновления по этой теме
Для тех кто дочитал до конца и решил попробовать вот промокод SEPTEMBER2023 на покупку сервера у компании VEESP по моей реферальной ссылке https://secure.veesp.com/?affid=860
Спасибо за внимание!
Спасибо @KawaiiMonster за важное уточнение и дополнение в каментах:
Пару месяцев назад, Microsoft из-за наплыва людей, которые использовали на своих серверах резервный домен microsoft.com поменяли настройки TLS и в один момент у всех перестал этот Reality работать. Так как всё делали просто по гайдам, понимания того, что произошло небыло. Потом конечно всё стало понятно и люди переключился на другие домены, например Yahoo. Но сама суть Reality в том, чтобы маскировать вас под обычный сайт и довольно странно, что при переходе по вашему ip (при active probing) открывался сайт майкрософт или яху с совсем другим ip, от другого хостера с другой сети. Поэтому лучше всего использовать домен, который ведёт на ip из той же сети, что и ваш сервер с прокси. Но вот как найти такой домен, ещё и с tls 1.3 никто не говорит.
Есть инструмент, RealiTLScanner, который можно скачать или себе на компьютер с виндой, либо себе на vps сервер с Linux и запустить сканирование. На винде команда примерно такая «.\RealiTLScanner-windows-64.exe -addr 1.1.1.1 -port 443 -thread 100 -timeOut 5»
Где 1.1.1.1 это адрес вашего сервера. Нужно дать секунд 5 — 10 посканировать и нажать Ctrl — c, выбрать домен с поддержкой tls 1. 3 и h2, например как на скрине.

Так же была рекомендация отключить ICMP на сервере, нужно это для того что бы не работала функция обнаружения анонимайзеров на некоторых сайтах. Для убунту 20 это можно сделать так:
1. Подключаемся к серверу по SSH
2. Выполняем команды
— sudo sed -i ‘/ufw-before-input.*icmp/s/ACCEPT/DROP/g’ /etc/ufw/before.rules
— sudo ufw reload
Спасибо @Telepuzo911 за наводку
0609 | 31 events @ 4 min: Немецкая пятилетка

Правозащитники Mozilla Foundation прочитали пользовательские соглашения 25 автопроизводителей. Из них 21 передаёт данные третьим лицам, а 19 продают. Nissan собирает информацию о весе, поведении и интеллекте водителя и пассажиров, а Ford и GM о расе и сексуальной ориентации.
Народные умельцы поставили Firefox и другие Android приложения на Volvo. Без рута, но нужен платный аккаунт разработчика. Скачиваешь исходники программы, меняешь манифест и публикуешь в Play Store как версию для бета-теста. После автомобиль разрешает установку.
Британские айтишники нашли баг из-за которого неделю назад сломалась вся авиаотрасль. Кто-то подал план полёта, в котором две точки маршрута называются одинаково, но находятся в разных странах.
# Software
▸[4] Баг проводника Windows 11: двойное нажатие F11 [переход и выход из полноэкранного режима] ускоряет отображение и поиск файлов.
▸[5] Апдейт Xbox: добавили стрим в Discord, но не просмотр стримов, и подключение контроллеров без нажатия кнопки на приставке.
▸[6] Релиз бенчмарка Cinebench 2024: вернули тест видеокарт и обновили интерфейс.
▸[7] Апдейт часов и велокомпьютеров Garmin: добавили индекс выносливости, новые тренировки, прогноз погоды и прогноз клёва рыбы на карте.
▸[8] Zoom прокачал нейронку AI Companion: теперь умеет находить файлы, отвечать на вопросы и создавать сводки прошлых встреч. Обещают через месяц научить её отвечать на e-mail письма.
▸[9] Апдейт прошивки материнок MSI с чипсетами Intel 600-й и 700-й серии: исправили ошибку «процессор не поддерживается» при апдейте Windows 11.
▸[10] Дыра Wi-Fi роутеров ASUS RT-AX55, RT-AX56U V2 и RT-AC86U: баг в обработке строк входящих данных. Патч уже доступен.
▸[11] Релиз Android 14 перенесли на 4 октября.
# Hardpron
▸[12] Клавиатура ZSA Voyager: эргономичная механика, низкопрофильная, металлический корпус, съёмные свитчи. Цена 365 $.

▸[13] Беспроводная зарядка Nomad Base One Max 3-in-1: MagSafe, заряжает три устройства сразу. Цена 170 $.

▸[14] Камера для квадрокоптеров Sony ILX-LR1: полнокадровая, байонет E, 61 Мп, без дисплея и батарейки, вес 277 г. В продаже с декабря за 2950 $.

▸[15] Монитор Philips Creator 27E2F7901: 27″ IPS Black, 4K @ 60 Гц, 98% DCI-P3, USB-C. Цена 500 $.

▸[16] Монитор ViewSonic VG3419C: изогнутый 34″ VA, QHD @ 120 Гц, 0,4 мс, AMD FreeSync. Цены нет.

▸[17] Мышь + клавиатура Logitech Pebble 2: добавили версию для маков, уменьшили шум, корпус наполовину из переработанного пластика, пять цветов. Цена 60 $.

▸[18] Bluetooth колонка Ultimate Ears Epicboom: всенаправленный звук, сабвуфер, IP67, батарейка на 17 часов, вес 2 кг. Цена 350 $.

▸[19] Apple получила патент «Умные очки и жесты управления интерфейсом».

▸[20] Прототип навигатора Яндекс Pathfinder: подключается к бортовому компьютеру авто и к смартфону. Когда последний теряет GPS, рассчитывает положение по скорости и поворотам руля. Будет ли продаваться неизвестно.

▸[21] Смартфон Cubot Note 21: 6,6″ IPS HD @ 90 Гц, Unisoc T606, ОЗУ 6 Гб, ПЗУ 128 Гб, камера 50 Мп, Android 13. В продаже через две недели за 140 $.

# Business
▸[22] Автозавод BMW заказал у Amazon серверы для обработки данных с беспилотных автомобилей.
▸[23] Канцлер Германии придумал закон: «станции техобслуживания автомобилей обязаны установить зарядки для электромобилей». Сейчас в стране 1,2 млн электромобилей и 90 000 зарядок. Канцлер хочет видеть 15 млн авто и 1 млн зарядок к 2030.
▸[24] Конкуренты Meta переманили половину разработчиков языковой модели Llama.
▸[25] Бухгалтеры кинокомпании Warner Bros. прикинули годовую прибыль: от 10,5 до 11 млрд $. Забастовка актёов и сценаристов обойдётся от -300 до -500 млн $ упущенной прибыли.
▸[26] Apple продлила договор с Arm на поставку технологий после 2040. До какого года не уточнила.
▸[27] GoPro делает новую версию камеры Max 360˚. Даты анонса нет.
▸[28] Презентация Microsoft OneDrive пройдёт 3 октября. Покажут нейросеть для поиска файлов.
▸[29] Китай запретил чиновникам iPhone и другие импортные девайсы.
▸[30] SpaceX перенесла стримы запусков с YouTube в X.

Bada — незаслуженно забытая платформа. Какой была «iOS» от Samsung?

Мы с вами уже давно привыкли, что при покупке нового смартфона приходится выбирать всего из двух программных платформ — Android и iOS. Большинство читателей едва ли помнит, что дуополия на рынке была далеко не всегда: на заре развития смартфонов как повседневных устройств для всех и каждого, некоторые производители представляли свои собственные платформы. Но если Windows Phone всё ещё вспоминают с теплотой, то о другой системе, которая позиционировалась как конкурент Android, забыли практически полностью. И имя этой системе — bada! Недавно я купил себе парочку полностью рабочих bada-фонов с AMOLED-дисплеями по 300 рублей. Были ли у bada шансы в сравнении с Android и что из себя представляла эта система «под капотом»? Узнаете в статье!
❯ Текст
По сравнению с обычными кнопочными телефонами, современный рынок смартфонов зародился не так уж и давно — всего около 13 лет назад. На стыке нулевых и десятых шла активная борьба за карман и предпочтения пользователя: Android 1.6 потихоньку заменял современный Android 2.0/2.1 Eclair, первые три модели iPhone шли победоносной поступью благодаря наличию джейлбрейка и полной кастомизации системы, да и практически каждый крупный производитель мобильных устройств имел собственную платформу, на которой базировались её устройства.

В середине-конце нулевых, большинство пользователей были не искушены фишками полноценных операционных систем — они привыкли жить без многозадачности (за исключением пользователей Sony Ericsson и S60), без нативных приложений, без плавных анимаций и ускорения 3D-графики. Людей подкупал встроенный функционал телефонов: если там была встроенная читалка RSS и предустановлен клиент популярных в то время соц. сетей (мой мир :)), то обладатель устройства обычно пользовался именно ими. Конечно же, уже тогда были смартфоны, напоминающие нам современные устройства: помимо Apple, свои устройства предлагали Nokia (Symbian), Sony Ericsson (Symbian/Windows Mobile), HTC (Windows Mobile), но цены на них действительно очень «кусались».

Huawei U8500, или Билайн E300 — один из первых реально доступных Android-смартфонов в РФ. Ценник был около 6-7 тысяч рублей в конце 2010 года.
После выхода iPhone, производители потихоньку начинали отказываться от привычных кнопок и выпускать всё больше моделей с тачскрином. А поскольку попробовать новый способ управления хотелось всем, начали появляться относительно недорогиетачфоны— обычные телефоны, обладающие сенсорным дисплеем и кучей сетевых возможностей. Примеры одних из самых популярных тачфонов своих лет, это конечно же Samsung S5230 Star, Samsung S3650 Corby, LG Cookie и LG Cookie Fresh. В те времена, встретить человека с таким телефонов было не просто, а очень просто и в каких-то отдаленных местах это даже был предмет для хвастовства!

Когда уже было очевидно, что полноценные смартфоны в ближайшем будущем станут основным портативным устройством, Samsung решили взять предыдущий опыт и наработки SHP (Samsung Handset Platform — платформы S5230) и влить их в разработку совершенно новой смартфонной платформы, имя которой была —bada(с корейского — море). Новую платформу представили с свежей линейкой смартфонов Samsung Wave, а первым устройством был S8500 — смартфон на базе bada 1.0 с ёмкостным тачскрином и AMOLED-дисплеем. Вышел девайс в том же году, что и первый Android-флагман S-серии — Samsung Galaxy S…

И с этим связан очень интересный казус, ведь «под капотом», S8500 был очень похож на своего Android-собрата: использовался тот же чипсет Exynos 3110 «Hummingbird» (он же использовался и в iPhone 4 как Apple A4 с некоторыми доработками) с тем же радиомодулем. Конечно остальные характеристики были немного скромнее Galaxy S (384мб ОЗУ против 512мб, 8гб ПЗУ вместо 16, AMOLED-матрица немного меньше по диагонали), но и сам смартфон стоил ощутимо дешевле Android-собрата. Немудрено, что энтузиасты начали пытаться портировать Android на S8500 — и у них это получилось, хоть полноценный порт появился примерно через 2 года после выхода устройства на рынок.

Но почему большинство пользователей хотели перепрошить своё устройство на Android и чем была bada? Предлагаю узнать в практической части!
❯ Сегодняшние герои
Недавно я листал онлайн-барахолки в поисках интересных и несколько диковинных смартфонов для будущих статей. Выборка, как обычно для моего блога, стандартная: чем дешевле, тем лучше. И тут я вспомнил, что были когда-то смартфоны на базе bada — я будучи школьников даже успел потыкать Wave 525 у знакомого.

E300 я тоже решил прихватить — за 300 рублей предлагался девайс с родной коробочкой!
Однако не все бадафоны представляли для меня интерес. В первую очередь, меня интересовали смартфоны с GPU, которых не было у самых бюджетных устройств (Wave 525) и одной из главных хотелок был крутейший SuperAMOLED дисплей. После недолгих поисков, я нашёл на юлито интересующие меня девайсы за… 300 и 500 рублей.

«Дефект» первого смартфона заключался в забытом пароле. Это всё обходится буквально за 5 минут установкой свежей прошивки, но мне даже этого делать не пришлось: паролем оказался «1111» 🙂 S7250 работает на базе bada 2.0 — последней версии этой платформы от Samsung, до слияния с Tizen.

Второй смартфон был полностью рабочим и исправным. Ему не требовалось никакого обслуживания совсем, хотя можно найти целые варианты на пароле из 200-300 рублей. Что занимательно — S8500 работал на базе bada 1.0, что даёт нам возможность напрямую сравнить их!


❯ Что у них под капотом?
Я намеренно не называю bada операционной системой. По сути, это лишь программная платформа (если очень условно — лаунчер), которая предоставляет набор API и интерфейс смартфона, но при этом сама может быть запущена на любой ОС — будь это Linux, или собственная RTOS, которая применялась во всех устройствах на базе bada 1.0.

После адаптации ядра Galaxy S к S5800, многие люди переходили именно на Android, несмотря на то, что система от Google была ощутимо прожорливее. Под первый Wave выходили разные прошивки — от 4.1 JellyBean, до 4.4 KitKat, старичок долгое время оставался достаточно актуальным.

Требования платформы были отнюдь невысокими, гораздо ниже оных у Android: bada могла легко работать на смартфонах с <128мб ОЗУ (у Wave 525 завялено 80мб, по факту скорее всего 128, где 48 зарезервировано системой), чипсетом с частотой
200мгц и весьма небольшим объёмом ПЗУ. При этом в отличии от тачфонов, bada предоставляла механизм пакетов и предлагала разрабатывать приложения аж на трёх языках:
Java — в платформе была реализована полноценная поддержка J2ME приложений, что в те годы сразу устраняло недостаток приложений в магазине. При этом, Java-приложения не умели одни из самых важных фишек новой системы: уведомления и (возможно) ускорение 3D-графики. Кроме того, у Samsung не очень удобный джойстик для «кнопочных» игр.
C++ — основным языком для разработки приложений под bada были «плюсы». Платформа сразу выбрала «нативные» рельсы — что само по себе очень хорошо, однако из-за некоторых казусов, это обернулось проблемами. Найти SDK и эмулятор для разработки под bada можно и сейчас — я уже успел немного почитать документацию и посмотреть на сэмплы. И в целом, именно с точки зрения разработки, bada была весьма интересной — эдакой смесью костылей Symbian (нет исключений, полное отсутствие RAII и инициализация отдельно от аллокации) и простоты Java (приятная и удобная библиотека собственных дженериков, абстракций над базовыми типами и приятное API для построения интерфейса с конструктором форм). При этом, поддерживались все остальные фишки плюсов — в том числе и STL.
JavaScript — да, bada решила выбрать концепцию PWA, как одну из основных. При этом в JS было экспортировано часть API самой системы — что позволяло делать интерфейс как на JS, так и с использованием нативного фреймворка.
И с виду всё звучит просто замечательно, просто и понятно. Однако, серьёзные проблемы тянулись с самой первой версии платформы:
Отсутствие многозадачности — ядро, на которой работала bada, само по себе было многозадачным: в приложениях поддерживались потоки. Однако сами программы, за исключением предустановленных, всегда работали в однозадачном режиме. Почему так — неизвестно, возможно часть оптимизации под совсем слабые устройства типа Wave 525. Полноценная многозадачность появилась уже в bada 2.0.
Отсутствие адаптивности интерфейса — да, это не шутка. Samsung предлагали адаптировать приложение под каждое разрешение экрана отдельно, а всё позиционирование велось в пикселях. Если честно, именно этот шаг мне понятен меньше всего — Android с самого выхода предоставлял очень крутой механизм позиционирования интерфейса, да и в iOS тоже были какие-то инструменты для адаптивного UI. Это была одна из самых главных проблем bada — по сути, мы возвращались в эпоху Java-приложений а-ля 240×320/320×480.
Нестабильность системы — не на всех телефонах фирменная прошивка работала максимально стабильно. На некоторых моторолах ребут не был таким уж редким явлением, а некоторые китайчики могли начать перезагружаться после манипуляций в инженерном меню. Однако ожидать этого от смартфона в 2010 было странно — по некоторым слухам, даже если сторонняя программа вывалится с Access Violation (SIGSEGV), то в ребут уйдет вся система! Возможно, RTOS не умела нормально работать с MMU, однако если все программы действительно работают в «flat»-адресном пространстве, а не с виртуальной памятью, то это создаёт очень серьёзные уязвимости (и потенциал для моддинга прошивки).
Но были у системы и очень вкусные «плюшки», например — из коробки полностью поддерживалось хардварное ускорение 3D-графики (при наличии GPU), причём сразу свежий OpenGLES 2.0 — с поддержкой шейдеров! Благодаря этому, перспективы в новой платформе были и для разработчиков игр — я знаю как минимум несколько полноценных 3D-игр с iOS и Android для ОС от Samsung. Добавляем к этому потенциал реализации 3D-ускорения Java-приложений и получаем действительно годное устройство для прохождения такой годноты, как Galaxy On Fire 2 в 60 FPS! Кроме GPU, bada поддерживала виджеты и т.н «Хаб» — приложение-агрегатор событий из соц. сетей.

Именно на «болячки» жаловались пользователи чаще всего, забывая про положительные стороны устройства. И да, даже во время собственного использования, я встречал баги и сам — но всё ли так плохо, учитывая то, что Samsung действительно работала над своими ошибками и пыталась привлечь как можно сторонних разработчиков к своей платформе? Предлагаю узнать, взяв смартфон в руки самому!

❯ Смотрим на устройства
Первое, на что обращаешь внимание, когда берешь смартфоны начала 2010х в руки — это их компактный размер. Причём компактность здесь отнюдь не в ущерб юзабилити: в своё время, размер дисплея Wave был типичным среднячком — на уровне как 5.5″ сейчас. Но при этом дисплей смартфона действительно очень классный и приятно удивляет и сейчас. Однако, здесь есть нюанс — помимо S8500, выходил так-же S8530 — практически такой же смартфон, но с SC-LCD (Samsung IPS) матрицей. В те годы, корейская компания часто давала выбор между различными типами матриц в пределах одной модели. Да что там говорить, иногда даже серьезные различия в чипсетах были!
На моем экземпляре, к сожалению матрица немного выгорела, в самом проблемно месте — верхней шторке. Увы и ах, но заметно это не так сильно, поэтому я лично обратил на это внимание только на второй день использования. Во всём остальном, я не чувствую никакого дискомфорта от «старых» OLED-дисплеев — могу без проблем юзать их часами. Wave M — устройство попроще и там используется обычная TN-матрица. Но тем не менее, её размер в 2010-2011 году был весьма впечатляющим.

Сам интерфейс системы здесь напоминает Symbian и Android одновременно. Оно в целом и не удивительно: Samsung долгое время была участником Symbian Foundation и разрабатывала обновления для этой ОС, а также выпускала свои смартфоны на базе этой системы. Ко второй версии bada, концепцию UI сильно поменяли в сторону Android, из-за чего Wave M больше похож на смартфон с Android 2.x на борту — и лично по мне, этот интерфейс около-идеален!

Сам девайс работает достаточно плавно. Здесь практически нет 60, или хотя-бы 30 FPS анимаций, но зато сама платформа отнюдь не «лагучая» в отличии от ранних версий Android.
Весьма занимательный способ установки приложений придумали пользователи бадафонов в своё время: система проверяет сертификаты и покупку только во время установки приложения, при этом вся установка заключается в распаковке zip-архива в специальную директорию на SD-карточку. По итогу очень скоро обнаружилось, что можно просто скопировать уже готовую купленную игру, скачать какое-нибудь бесплатное приложение, подменить файлы в его папке на файлы игры — и получить приложение бесплатно! В bada 2.0 этот баг поправили, но всё равно это выглядело весьма забавно для компании такого уровня.

Что насчёт юзабилити бадафонов в наше время? Ну, базовые функции они точно смогут выполнять достаточно достойно. С основной функцией «звонилки» корейцы справлялись всегда хорошо — тут и удобная синхронизация контактов с Kies (программа для синхронизации с ПК), и возможность передавать контакты через BT.
Здесь, само собой, есть Wi-Fi и 3G, но ни о каком сёрфинге речи практически не идёт. Почему практически? Потому что Opera Mini 7 всё ещё работает и уходить на покой явно не собирается — а значит прочесть материал или зайти на википедию в экстренной ситуации точно получится. bada 2.0 уже поддерживала в том числе и HTML5, но судя по всему, частично (CSS3 анимации у меня не работали). В целом, если у вас есть большое желание поставить «бадафон» в строй — то можете запилить для себя PWA-приложения, которые реализуют необходимый вам функционал. Так и клиент ВКшечки можно реализовать, и почту листать, и СМСки от банков обрабатывать.

Зато почтовый клиент работает!
Один из самых важных критериев для меня — это наличие в смартфоне годного аудиотракта. У моего BlackBerry Priv качество звука просто отменное, притом что используется встроенный ЦАП в Snapdragon 810. И плеер, и качество звука здесь очень даже ничего. Плеер удобный, есть DLNA для трансляции мультимедиа на телевизор.
Лично у меня сложилось впечатление, что в середине десятых, качество звука через 3.5мм джек заметно просело у смартфонов, по сравнению с народными музыкальными Nokia — как например 5310.

Ну и не забывая про мультимедийную часть смартфона, я проверил камеру — когда-то, у Galaxy S была весьма достойная камера, учитывая его ценовой сегмент. У Wave камера тоже вполне ничего, правда с теми же «болячками», что и у других мобильных камер прошлых лет — крайне плохое качество при съемке в темноте. Ну и автофокус забрали. 🙁


Поскольку у смартфонов был GPU и Samsung всерьез старались привлечь разработчиков игр под свою платформу, на bada выходили и 3D-игры с очень годной, по тем временам, графикой.
В целом, недостаток нативных приложений в какой-то степени компенсируется наличием J2ME, но именно отсутствие нормально поддержки от Samsung и странная политика в отношении безопасности, в конечном итоге добили bada. После того, как превосходство Android стало очевидным, Samsung решили сделать упор в Tizen — идеологическом продолжении MeeGo, мобильной ОС, которая разрабатывалась Intel и Nokia. Компания выпустила сразу несколько устройств на новой платформе — Samsung Z (без Galaxy), после которого вышло ещё несколько смартфонов и Tizen окончательно обосновался на холодильниках/часах/телевизорах. Мобилок на Tizen я пока ещё не видел, хотя покопать их с технической точки зрения и сравнить с N9 было бы интересно — но в РФ они достаточно редкие.

Ну а несколько лет назад, Samsung закрыла магазин приложений Tizen, что формально означает полный провал «вертушки» 🙁
❯ Заключение
Samsung в плане самопальных платформ напоминает Microsoft — те тоже умудрились сделать действительно крутую и необычную Windows Phone, отвоевать какой-то процент рынка и заполучить фанов своей системы, но затем пришли эффективные менеджеры и решили рубить всё на корню.
И даже если команды разработчиков самих этих платформ горят идеей запилить что-то крутое, бабло и желание улучшить отчетность делают своё дело. Но раз в год и палка стреляет — не зря ведь инженеры Nokia основали свою компанию Jolla, которая пилит Sailfish OS. А ведь «Аврора» — прямой наследник Sailfish! 🙂
Но если говорить конкретно о бадафонах — то несмотря на баги и некоторые глупые решения, это были весьма годные девайсы, учитывая действительно низкую цену. Настоящим конкурентом бюджетных бадафонов была лишь Nokia 5228/5230, которая хоть и имела настоящий Symbian, но не была оснащена Wi-Fi, GPS и даже 3G. Но вот с кем bada могла конкурировать в верхнем сегменте рынка?

Сам себе Linux смартфон: Как я выкинул Android и написал свою прошивку с нуля

К огромному сожалению, старые смартфоны всё чаще и чаще находят своё пристанище в мусорном баке. К прошлым, надежным «друзьям» действует исключительно потребительское отношение — чуть устарел и сразу выкинули, словно это ненужный мусор. И ведь люди даже не хотят попытаться придумать какое-либо применение гаджетам прошлых лет! Отчасти, это вина корпораций — Google намеренно тормозит и добивает довольно шустрые девайсы. Отчасти — вина программистов, которые преследуют исключительно бизнес-задачи и не думают об оптимизации приложений совсем. В один день я почувствовал себя Тайлером Дёрденом от мира IT и решил бросить вызов проприетарщине: написать свою прошивку для уже существующего смартфона с нуля. А дабы задачка была ещё интереснее, я выбрал очень распространенную и дешевую модель из 2012 года — Fly IQ245 (цена на барахолках — 200-300 рублей). Кроме того, у этого телефона есть сразу несколько внешних шин, к которым можно подключить компьютер или микроконтроллер, что даёт возможность использовать его в качестве ультрадешевого одноплатника для DIY-проектов. Получилось ли у меня реализовать свои хотелки? Читайте в статье!
Мотивация
Честно сказать, идея попытаться реализовать свою прошивку мне пришла ещё давно. Однако, дабы не завлекать опытного читателя кликбейтом, я сразу поясню, в чём заключается «прошивка с нуля»:
Мы всё ещё используем Linux: в качестве ядра мы продолжаем использовать образ Linux, предоставленный нам производителем. Написание прошивки полностью с нуля заняло бы очень много времени (особенно без схемы на устройство). Однако, мы вообще не загружаем Android никаким образом.
Мы не используем библиотеки AOSP: наша прошивка без необходимости не использует никаких библиотек уже имеющегося образа Android. Вся работа с железом происходит с помощью низкоуровневого API Linux. Это значит, что отрисовка графики, звук, управление ресурсами и питанием ложится полностью на нас.
Прошивка может запускать только нативные программы: да, это тоже камень в сторону Android. Изначально, наша прошивка умеет запускать только нативные программы, написанные на C. Причём она экспортирует собственное C API — дабы приложения могли использовать всю мощь нашего смартфона в виде простого и понятного набора методов.

Проектов по выкидыванию Android из, собственно, Android-смартфонов как минимум несколько: UBPorts — бывший Ubuntu Touch, FireFox OS и его наследник Kai OS и конечно же, postmarketOS. Отчасти можно сюда отнести и Sailfish OS — но там образы имеются в основном на смартфоны от Sony. Все эти проекты объединяет сложность портирования и невозможность их завести на устройствах без исходного кода ядра. Даже если у вас есть исходный код ядра, но, например, устройство использует ядро 2.6 — навряд-ли вы сможете завести современный дистрибутив на нём.
Другой вопрос в том, что можно использовать полу-baremetal подход, когда от Linux берется практически минимальный функционал. Всё, что мы имеем — busybox, libc и низкоуровневый доступ к железу, благодаря API самого ядра. Как под это всё программировать — я рассказывал впрошлойстатье. Этот же подход мы будем использовать и сейчас — как иллюстрация реального применения подобного способа.
Итак, что наша прошивка должна уметь:
Отрисовывать произвольную графику: графическая подсистема нашей прошивки должна работать с фиксированным форматом пикселя, уметь загружать прозрачные и непрозрачные изображения, отрисовывать картинки с альфа-блендингом и т. п.
Уметь звонить и работать с модемом: общение с модемом происходит посредством AT-команд — общепринятого в индустрии стандарта. Однако в случае нашего устройства, есть м-а-а-а-ленький нюанс, о котором я расскажу позже.
Иметь механизм приложений: мы ведь не будем хардкодить все «экраны» в прошивке в виде кучи стейтов, верно? Для этого у нас должен быть простой и понятный механизм слинкованных с прошивкой приложений.
Обрабатывать ввод: обработка тачскрина и жестов — это задача подсистемы ввода.
Реализовывать анимированный UI: здесь всё очевидно, наша прошивка должна иметь готовые элементы пользовательского интерфейса для будущих приложений: кнопки, текстовые поля и т. д. О деталях реализации этой подсистемы, я расскажу ниже (а реализовал я её очень необычно для такой системы).
Начинаем мы с хардварной части. Именно здесь я покажу вам, как использовать внешние шины вашего устройства.
Аппаратная часть
В качестве смартфона для нашего проекта, я выбрал популярную бюджетную модель из 2012 года — Fly IQ245 Wizard. Это простенький китайский смартфон, который работал на базе популярного в прошлом 2G-чипсета: MediaTek MT6573, да и стоил около 2х тысяч рублей новым. Однако вот в чём суть: мне удалось заставить работать «медиатековский» модем и даже позвонить с него на свой основной телефон, но… только ввод и вывод данных из звукового тракта модема происходит через звуковую подсистему Android — к которой доступа у нас нет!

Именно поэтому, мы идём на очень хитрый и занимательный костыль: мы распаяем внешний модем сами! В качестве радиомодуля у нас выступит модуль SIM800 от компании SIMCOM. И даже он очень близок к нашему смартфону в аппаратном плане: ведь в основе этого модуля лежит популярнейший чипсет из кнопочников тех лет: MediaTek MT6261D. Преимущество SIM800 в его цене — он стоит пару сотен рублей, так что по карману выбор модема не влияет.

На весу паять крайне неудобно. В финальном варианте перепаяю нормально.
Но как его подключать? SIM800 общается с другими устройствами посредством протокола UART — универсальный асинхронный приемо-передатчик. И вот тут мы включаем смекалочку. Разбираем устройство и видим то, что я пытаюсь долгое время донести до моих читателей — аж два канала UART: один практически посередине, второй справа. Нам нужны пятачки TXD4 и RXD4:

Обычно на этот канал UART летят логи ядра, которые можно без проблем отключить минорной правкой U-Boot в HEX-редакторе. Впрочем, модем никак не реагирует на «мусор» из консоли и просто отвечает ошибками — хватит лишь очистить буфер сообщений для того, чтобы все работало нормально. Подпаиваемся к UART’у с помощью преобразователя — у меня оным выступает ESP32 с выпаянным чипом.


Увидели логи? Замечательно, пора попытаться что-то отправить на ПК и с ПК. UART работают без тактовых сигналов и зависит исключительно от старт/стоп битов и бодрейта, который на устройствах MediaTek равен 921600. TXD4 и RXD4 обнаруживаются в системе на консоли/dev/ttyMT3. Пробуем что-то отправить: всё работает!

Вот теперь-то можно подключить наш внешний модем и попытаться пообщаться с ним, отправив тестовую командуAT. Модем отвечаетOK! На этот раз я работаю с смартфоном из режимаFactory mode— практически тоже самое, что и режим recovery, но позволяющий, например, получить доступ к камере устройства. Простая и понятная схема, поясняющая что и куда подключать:

На этом модификация аппаратной частипоказакончена. Пора переходить к реализации софта! Я решил разделить материал на каждый модуль, который я реализовывал — дабы вам был понятен процесс разработки и отладки прошивки!
Заставляем смартфон запускать нашу прошивку
На этот раз я решил загружать смартфон из режима рекавери. Однако никто не мешает в будущем просто прошить раздел recovery вместо boot и получить прямую загрузку прямо в нашу прошивку. Время такой загрузки будет заниматься
3-4 секунды с холодного старта. Очень даже ничего.

Я взял уже готовый образ TWRP для своего смартфона и пропатчил его, дабы сам рекавери не мешал своим интерфейсом. Для этого я распаковал образ recovery.img с помощью MtkImgTools и убрал в init.rc запуск службы /sbin/recovery. После этого, я залил прошивку обратно на устройство и получил подобную свободу действий — консоль через USB и чистый холст в виде смартфона! Старые смартфоны на чипсетах MediaTek шьются через USB только после замыкания тест-поинта — на моем аппарате его местонахождение очевидно. Замыкаем контакты между собой, подключаем смартфон без АКБ к ПК и ждем прошивки:

Теперь можно деплоить программы! Важный нюанс: в отличии от Makefile из прошлой статьи, для Android 2.3 параметр -fPIE нужно убрать — иначе динамический линкер (/sbin/linker) будет вылетать в segmentation fault.

❯ Графическая подсистема
В комментариях под прошлой статьёй меня похвалили за то, что я делюсь достаточно профильными знаниями касательно эффективной отрисовки 2D-графики. Собственно, к реализации графической подсистемы я подошёл ответственно и постарался реализовать достаточно шустрый рендерер, к которому затем можно подключить другие модули.

Как я уже говорил ранее, графическая подсистема должна уметь загружать картинки, выводить некоторые примитивы, выводить картинки с прозрачностью и без, загружать и отрисовывать заранее подготовленные шрифты, а также управлять отрисовкой бэкбуфера на экран.
В случае с этим устройством (и большинством старых устройств), формат пикселя оказался RGB565 — т. е. 5 бит красный, 6 бит синий, 5 бит зеленый. Конвертация форматов пикселей всегда была занозой в заднице для программных рендереров, поскольку занимает дополнительное время, которое обратно зависимо от размера дисплея. Изначально я решил выделить буфер в том же формате, что и фреймбуфер, но затем решил сделать классический и самый портативный формат — RGB888 (24х-битный цвет), а при копировании кадра на экран, на лету делать преобразования цвета:

Очень важный нюанс, который я не упомянул в предыдущей статье: на устройствах прошлых лет для обновления фреймбуфера необходимо послать структуру var_screeninfo, где хотя бы что-то изменено, иначе никаких изменений мы не увидим. Этот же костыль используется в родном recovery для отрисовки, а судя по исходникам драйвера fb, «правильный» способ обновить экран — послать драйверу ioctl (который я пока что не пробовал).
После того, как я смог управлять дисплеем, я решил загрузить и отобразить какую-нибудь картинку. Пусть это будут обои для нашей прошивки:

Загрузчик TGA сильно не поменялся: я таскаю его в неизменном виде из проекта в проект. Он поддерживает любые форматы пикселя, кроме палитровых, но я его искусственн ограничиваю на RGB888 и RGBA8888 — для поддержки обычных картинок и картинок с альфа-каналом. После этого, я написал не очень шустрые, но достаточно универсальные методы для отрисовки картинок. Для больших участков кода, я буду использовать pastebin, поскольку на Пикабу до сих пор не добавили ни подсветки синтаксиса, не нормальный перенос форматирования табов 🙁
PutPixel желательно заинлайнить в будущем. В целом, сама отрисовка работает достаточно быстро, но поскольку рендеринг выполняется на ЦПУ — рано или поздно мы упремся в количество картинок на экране. Есть некоторые оптимизации: например, непрозрачные картинки можно просто коприовать сканлайнами прямо в задний буфер.
Сразу же реализовываем методы для рисования шрифтов: они у нас будут совсем простенькими — только моноширинные (все символы имеют одинаковую ширину) и растровыми (для каждого размера придется «запекать» несколько шрифтов). Для этого я написал маленькую программку, которая рисует виндовые шрифты прямо в наш самопальный формат:

1 байт говорит нам о размере шрифта и далее идут 255 изображений символов. Да, это не очень эффективно т.к попадают пустые символы из ASCII-таблицы, но в будущем это можно поправить.
Прозрачность в символах обеспечивает фоновый цвет Magena — ярко-розовый. Я не стал делать дополнительный альфа-канал, т. к. иначе будут серьезные лаги при выводе большого количества текста.
Теперь у нас есть отображение картинок и текста! Что с этим можно сделать?
❯ Обработка ввода


Пока что здесь не хватает обработки «хардварных» кнопок — домой, меню, назад и т. п. Однако в будущем это всё можно реализовать!
❯ Анимация
Не забыл я и про анимации. Ну кому с такими ресурсами нужен неанимированный топорный интерфейс? Пусть лучше будет анимированный, пусть и примитивный!
Аниматор напоминает оный из ранних версий Android: он имеет фиксированный набор свойств, которые умеет интерполировать в промежутках определенного времени. Если простыми словами: то он оперирует линейными отрезками времени a и b, в промежутке которых мы имеем значение «прогресса» — которое даёт нам результат от 0.0f (начало анимации) до 1.0f (конец анимации). Пока время тикает до необходимого интервала (duration), аниматор интерполирует заранее назначенные ему поля до нужных значений.
Именно так и получается плавность! Похожим образом реализованы анимационные системы во многих играх и мобильных ОС, только там они гораздо более комплексны: есть сериализация/десериализация из файлов, поддержка кейфреймов (несколько последовательных состояний на одном промежутке времени), поддержка кастомных свойств и т. п.

❯ Модем
Как я уже говорил раннее, работа с модемом происходит посредством AT-команд. Лучше всего обрабатывать ввод-вывод модема из отдельного потока, поскольку он может отвечать довольно медленно и тормозить UI-поток основной программы, вызывая лаги. В SIM800 уже реализован весь GSM-стек, в том числе декодирование и вывод звука через встроенный усилитель с фильтром — остается только подключить динамики и микрофон от нашего телефона. Пока что я подсобрал аудиотракт на том, что было под рукой — микрофон от нерабочего смартфона и динамик от планшета, но для проверки этого хватает:

Важный нюанс: по умолчанию, tty-устройства в Linux работают по терминальному принципу — т. е. дробят транзакции по символу окончания строки (\n), имеют ограниченный буфер и т. д. Для нормальной работы в условиях модема — когда фактически длина ответа неизвестна, а в сам ответ могут «вклиниваться» Unsolicited-команды (своеобразные флаги о состоянии от модема, которые могут прийти в произвольное время — т. е. при входящем звонке, модем начнёт флудить RING в терминал), необходимо иметь возможность точно прочитать весь буфер до конца и парсить данные «по месту». Для этого используется raw-режим терминала:
(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
tio.c_oflag &=
(OPOST);
tio.c_cflag |= (CS8);
tio.c_lflag &=
(ECHO | ICANON | IEXTEN | ISIG);
tcsetattr(modemFd, TCSAFLUSH, &tio);
После чего можно запросить состояние модема:

И продолжить работу дальше. После этого, можно переходить к реализации самой прослойки между модемом и вашей программой:
Пытаемся позвонить с помощью метода Dial и видим, что всё работает! Это очень круто! А теперь, конечно же, самое время переходить к реализации того, чего вы ждали — пользовательского интерфейса!
❯ Главный экран
К выбору концепции для интерфейса, я поступил максимально просто — «слизал» дизайн первых версий iOS. Как по мне, это одни из самых красивых версий iOS вообще — все эти приятные градиенты и переливания. Конечно, я не так крут, как инженеры Apple, да и мощного UI-фреймворка у меня пока что нет, поэтому я приступил к реализации с «минимальным» функционалом.

Начал я с разделения главного экрана на модули и продумывания архитектуры основного «лаунчера». У нас есть статусбар, который рисуется поверх всех приложений, полка с приложениями — AppDrawer и сами экраны приложений, унаследованные от суперкласса CScreen.
На данный момент, отрисовка достаточно примитивная: сначала рисуются фоновые обои, затем, если нет никаких активных экранов — AppDrawer и в самом конце рисуется статусбар и всевозможные оверлеи.
Практически сразу я решил обкатать анимационную «систему» и добавить первые анимашки — выезжающий статусбар и анимация а-ля айфон:
animator = new CAnimator();
animator->SetTranslation(0, -imFiller->Height, 0, 0);
animator->Run();
Выглядит симпатичненько. Если я смогу поднять хардварный GLES, то это получится сделать в разы плавнее и шустрее — не хуже айфонов тех лет! Реализация самого статусбара примитивненькая, но вполне рабочая:
gLauncher->Graphics->DrawImage(imFiller, animator->X, animator->Y);
gLauncher->Graphics->DrawImage(imBattery[(int)gLauncher->PowerManager->GetBatteryLevel()], imFiller->Width — imBattery[0]->Width — 5, animator->Y + 5);
char timeFmt[64];
time_t _time = time(0);
tm* _localTime = localtime(&_time);
strftime((char*)&timeFmt,
sizeof(timeFmt), «%R», _localTime);
gLauncher->Graphics->DrawString(gLauncher->Font, (char*)&timeFmt, 0, 0);
Кроме этого, я сразу же реализовал предварительный механизм приложений в системе — пока что они слинкованы статически с основным лаунчером. Для этого есть структура CAppDesc, которая содержит минимально-необходимую информацию для показа информации о приложении и фабрику для создания его основного экрана.
Обратите внимание на удобство примененного подхода Immediate GUI. Нам понадобился новый элемент интерфейса, который описывает кнопку номеронабирателя? Мы просто реализовываем ещё один метод, который берет за основу стандартную кнопку и дорисовывает к ней текст. Всё крайне просто и понятно, хотя на данный момент слишком захардкожено. 🙂
❯ Звоним!
Пришло время совершить первый звонок с нашей по настоящему кастомной прошивки. Набираем номерок и…

Да, всё работает и мы без проблем можем дозвониться 🙂
❯ Заключение
Конечно же, это далеко не весь функционал, необходимый любому современному смартфону. Здесь много чего еще нужно реализовать хотя бы для соответствия уровню бюджетных кнопочных телефонов: телефонную книгу, поддержку СМС/ММС, мультимедийный функционал с играми. Однако начало уже положено и самая необходимая часть модулей реализована. Этот проект очень занимательный для меня и я горд, что смог не на словах, а на деле показать вам, моим читателям, возможности моддинга совершенно NoName-устройств, без каких либо опознавательных знаков…
Моя задача заключается в том, чтобы показать вам возможности использования старых телефонов не только в потребительских, но и в гиковских DIY-сферах. Судите сами: огромный классный дисплей, емкостной тачскрин, готовый звук, камера — и всё это за каких-то пару сотен рублей. Главное показать людям, как всю эту мощь использовать в своих целях и делать совершенно новые устройства из существующих, а не выбрасывать их на помойку!
Сейчас смартфоны, подобные Fly из этого поста стоят копейки, а портировать на них прошивку можно без каких-либо трудностей. Я очень надеюсь, что после этого поста читатели попытаются сделать что-то своё из старых смартфонов, благо свои наработки я выкладываю на GitHub!

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
❯ Что нам нужно знать?
Даже относительно старые устройства флагманского сегмента обладают весьма неплохими характеристиками. Зачастую они гораздо мощнее современных дешевых одноплатников и могут выполнять самые разные задачи: эмуляция консолей, работа в качестве плееров, да даже просто сделать настольные часики самому было бы здорово. Но есть одно но — это Android. Платформа от Google может тормозить даже на достаточно мощном железе, что резко ограничивает потенциально возможные применения подобных гаджетов. Да и многие программисты не особо хотят заморачиваться и учить API Android для реализации каких-то своих проектов.

Но конечно же, есть один способ писать нативные программы, при этом используя все ресурсы смартфона/планшета. Для этого нужно понимание, как работает процесс загрузки на многих Android-гаджетах:
Первичный загрузчик (BootROM) инициализирует какую-то часть периферии и загружает вторичный загрузчик (U-boot/LK).
Вторичный загрузчик, используя определенные аргументы (например зажата ли какая-то кнопка) выбирает, с какого раздела грузить ядро системы.
После загрузки ядра Linux и подключения ramdisk начинается выполнение процессов системы.
Как раз в третьем пункте и лежит ключ к способу, который будем использовать мы. Дело в том, что в смартфоне обычно есть несколько boot-разделов и у каждого свой образ ядра Linux со своим ramdisk. Первый из них — это знакомый моддерамboot.img, который отвечает за загрузку системы и инициализирует железо/монтирует разделы/подготавливает окружение к работе (.rc файлы) и запускает главный процесс Android —zygote. При этом используется собственная реализация init от Android.

Второй, не менее знакомый многим раздел —recovery, отвечает за так называемый режим восстановления, в котором мы можем сбросить данные до заводских настроек/очистить кэши или прошить кастомную прошивку. Вероятно, многие из вас замечали, насколько быстро ваш девайс загружает этот режим, гораздо быстрее, чем загрузка обычного Android. И именно в его реализацию нам нужнозаглянуть(я намеренно выбрал бранч версии 2.3 — т.е Gingerbread для простоты):

А recovery оказывается самой обычной нативной программой, написанной на C со своим небольшим фреймворком для работы с графикой и вводом. В процессе загрузки режима recovery, скрипт запускает одноименную программу в /sbin/, благодаря которому мы видим простую и понятную менюшку. Так почему бы не использовать этот раздел в своих целях и не написать какую-нибудь нативную программу самому?
Как я уже говорил выше, в этом режиме доступны многие аппаратные возможности вашего смартфона, за исключением модема. Используя полученную информацию, предлагаю написать наше небольшое приложение под Android-смартфон без Android сами!
❯ Подготавливаем окружение
В первую очередь, хотелось бы отметить, что программы под «голый» смартфон можно писать не только на C/C++. Нам доступен как минимум FPC, который довольно давно умеет компилировать голые бинарники под Android. Кроме того, мы можем портировать маленькие embedded-версии интерпретаторов таких языков, как lua, micropython и duktape (JS).
Однако в случае нативных программ, есть два важных правила, которые необходимо понимать. Во-первых, в Android используется собственную реализацию стандартной библиотеки libc — bionic, в то время как на десктопных дистрибутивах используется glibc. Между собой они не совместимы — именно поэтому вы не можете просто взять и запустить консольную программу для Raspberry Pi, например.

А второе правило заключается в том, что начиная с версии 4.1, Androidтребует, чтобы все нативные программы были скомпилированы в режиме -fPIE — т. е. выходной код должен не зависеть от адреса загрузки программы в виртуальную память. Для этого достаточно добавить ключ -fPIE, однако учтите, что если вы разрабатываете программу под Android 4.0 и ниже, то fPIE наоборот необходимо убрать — старые версии Androidнеподдерживают такой способ генерации кода и будут вылетать с Segmentation fault.
Для разработки нам понадобится ndk — там есть все необходимые заголовочники и компиляторы для нашей работы. Я используюndk r9c, поскольку в свежих версиях Google регулярно может что-то сломать.
ndk-build, к сожалению, здесь работать не будет, поэтому Makefile придется написать самому. Я составил полностью рабочий Makefile, который без проблем скомпилирует валидную программу, вам остаётся лишь поменять NDK_DIR.
NDK_DIR = D:/android-ndk-r11c/
TOOLCHAIN_DIR = $(NDK_DIR)toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/
GCC = $(TOOLCHAIN_DIR)arm-linux-androideabi-g++
PLAT_DIR = $(NDK_DIR)platforms/android-17/arch-arm/usr/
LINK_LIBS = -l: libEGL.so -l: libGLESv1_CM.so
OUTPUT_NAME = cmdprog
build:
$(GCC) -I $(PLAT_DIR)include/ -L $(PLAT_DIR)lib/ -fPIE -Wl,-dynamic-linker=/sbin/linker $(LINK_LIBS) -static -o $(OUTPUT_NAME) main.cpp micro2d.cpp
После этого пишем простенькую программу, которая должна вывести «Test» и компилируем её.
❯ Деплоим на устройство
Несмотря на то, что грузиться мы будем в режим recovery, нам всё равно будет доступен adb, через который мы сможем запускать и отлаживать нашу программу. Это очень удобно, однако по умолчанию adb включен только в TWRP, который нужно сначала найти или портировать под ваш девайс (на большинство старых брендовых устройств порты есть, на нонейм придется портировать самому — гайды есть в интернете). Под ваше устройство есть TWRP? Отлично, распаковываете recovery.img с помощью так называемой «кухни» (MTKImgTools как вариант):

Открываете init.recovery.service.rc и убираете оттуда запуск одноименной службы (можно просто оставить файл пустым).

Запаковываем образ обратно тем же MTKImgTools и прошиваем флэшером для вашего устройства — в моём случае, это SP Flash Tool (MediaTek):

Заходим в режим рекавери и видим зависшую заставку устройства и звук подключения устройства к ПК. Если у вас установлены драйвера, то вы сможете без проблем зайти в adb shell и попасть в терминал для управления устройством. Теперь можно закинуть программу — прямо в корень рамдиска (записывается программа в ОЗУ, но при переполнении, телефон уйдет в ребут — осторожнее с этим). Пишем:
adb push cmdprog /: adb shell chmod 777 cmdprog ./cmdprog
И видим результат. Наша программа запускается и работает!

Это просто отлично. Однако я ведь обещал вам, что мы напишем программу, которая сможет выводить графику и обрабатывать ввод, предлагаю перейти к практической реализации!
❯ Выводим графику
Для вывода графики без оконных систем, мы будем использовать API фреймбуфера Linux, которое позволяет нам получить прямой доступ к массиву пикселей на экране. Однако учтите, что этот способ полностью программный и может оказаться тормозным для вашего приложения: скорость работы прямо-пропорциональна разрешению дисплея вашего устройства. Чем выше разрешение, тем ниже филлрейт. В моём случае, матрица была с разрешением 960×540, 32млн цветов, IPS — очень недурно, согласны?
Фреймбуфер Linux может работать с самыми разными форматами пикселя, имейте это ввиду. На некоторых устройствах может быть 16-битный формат (262 тысячи цветов, RGB565), на моём же оказался 32х-битный с выравниванием по строкам (имейте это также ввиду). 32х битный формат. Работать с ним легко: открываем устройство /dev/graphics/fb0, получаем параметры (разрешение, формат пикселя), делаем mmap для отображения буфера с пикселями на экране в память нашего процесса и выделяем второй буфер для двойной буферизации дабы избежать неприятных мерцаний.
void m2dAllocFrameBuffer()
<
fbDev = open(PRIMARY_FB, O_RDWR);
fb_var_screeninfo vInfo; fb_fix_screeninfo fInfo;
ioctl(fbDev, FBIOGET_VSCREENINFO, &vInfo);
ioctl(fbDev, FBIOGET_FSCREENINFO, &fInfo); fbDesc.width = vInfo.xres;
fbDesc.height = vInfo.yres;
fbDesc.pixels = (unsigned char*)mmap(0, fInfo.smem_len, PROT_WRITE, MAP_SHARED, fbDev, 0); f
bDesc.length = fInfo.smem_len; fbDesc.lineLength = fInfo.line_length;
backBuffer = (unsigned char*)malloc(fInfo.smem_len); memset(backBuffer, 128, fInfo.smem_len);
printf(«Framebuffer is %s %ix%ix%i\n», (char*)& fInfo.id , fbDesc.width, fbDesc.height, vInfo.bits_per_pixel, fInfo.type);
>
Если не сделать предыдущий шаг и запускать нашу программу параллельно с recovery, то они обе будут пытаться друг друга «перекрыть» — эдакий race condition:

После этого пишем простенькие функции для блиттинга картинок (в том числе с альфа-блендингом). В инлайнах и критичных к скорости функциям лучше не делать условия на проверку границ нашего буфера — лучше «отрезать» ненужное еще на этапе просчета ширины/высоты:
__inline void pixelAt(int x, int y, byte r, byte g, byte b, float alpha)
<
if(x < 0 || y < 0 || x >= fbDesc.width || y >= fbDesc.height) return;
unsigned char* absPtr = &backBuffer[(y * fbDesc.lineLength) + (x * 4)];
if(alpha >= 0.99f)
<
absPtr[0] = b;
absPtr[1] = g;
absPtr[2] = r;
>
else <
absPtr[0] = (byte)(b * alpha + absPtr[0] * (1.0f — alpha));
absPtr[1] = (byte)(g * alpha + absPtr[1] * (1.0f — alpha));
absPtr[2] = (byte)(r * alpha + absPtr[2] * (1.0f — alpha));
> absPtr[3] = 255; >
for(int i = 0; i < image->height; i++)
<
for(int j = 0; j < image->width; j++)
<
byte* ptr = &image->pixels[((image->height — i) * image->width + j) * 3]; pixelAt(x + j, y + i, ptr[0], ptr[1], ptr[2], alpha);
>
>
И загрузчик TGA:
CImage* m2dLoadImage(char* fileName) <
FILE* f = fopen(fileName, «r»);
printf(«m2dLoadImage: Loading %s\n», fileName);
if(!f)
<
printf(«m2dLoadImage: Failed to load %s\n», fileName);
return 0;
>
CTgaHeader hdr;
fread(&hdr, sizeof(hdr), 1, f);
if(hdr.paletteType)
<
printf(«m2dLoadImage: Palette images are unsupported\n»);
return 0;
>
if(hdr.bpp != 24) <
printf(«m2dLoadImage: Unsupported BPP\n»);
return 0;
>
byte* buf = (byte*)malloc(hdr.width * hdr.height * (hdr.bpp / 8));
assert(buf);
fread(buf, hdr.width * hdr.height * (hdr.bpp / 8), 1, f);
fclose(f);
CImage* ret = (CImage*)malloc(sizeof(CImage));
ret->width = hdr.width;
ret->height = hdr.height;
ret->pixels = buf;
printf(«m2dLoadImage: Loaded %s %ix%i\n», fileName, ret->width, ret->height);
return ret;
>
И попробуем вывести картинку:
m2dInit();
test = m2dLoadImage(«test.tga»);
test2 = m2dLoadImage(«habr.tga»);
while(1)
<
m2dClear();
m2dDrawImage(test, 0, 0, 1.0f);
m2dDrawImage(test2, tsX — (test2->width / 2), tsY — (test2->height / 2), 0.5f);
m2dFlush();
>

Не забываем про порядок пикселей в TGA (BGR, вместо RGB), меняем канали b и r местами в pixelAt и наслаждаемся картинкой на большом и классном IPS-дисплее:


Производительность отрисовки не очень высокая, однако если оптимизировать код (копировать непрозрачные картинки сразу сканлайнами и убрать проверки в инлайнах), то будет немного шустрее. Google для подобных целей сделали собственный простенький софтрендер —libpixelflinger.
Есть вариант для быстрой и динамичной графики: использовать GLES, который без проблем доступен и из recovery. Однако, насколько мне известно (в исходники драйверов посмотреть не могу), указать фреймбуфер в качестве окна не получится, поэтому в качестве Surface для рендертаргета у нас будет служить Pixmap (так называемый off-screen rendering), которому нужно задать правильный формат пикселя (см. документацию EGL). Рисуем туда картинку с аппаратным ускорением и затем просто копируем в фреймбуфер с помощью memcpy.
❯ Обработка нажатий
Однако, ни о каких GUI-программах не идёт речь, если мы не умеет обрабатывать нажатия на экране с полноценным мультитачем! Благо, даже механизм обработки событий в Linux очень простой и приятный: мы точно также открываем устройство и просто читаем из него события в фиксированную структуру. Эта черта мне очень нравится в архитектуре Linux!
Каждое устройство, которое может передавать данные о нажатиях, находится в папке /dev/input/ и имеет имя вида event. Как узнать нужный нам event? Нам нужен mtk-tpd — реализация драйвера тачскрина от MediaTek (у вашего чипсета может быть по своему), для этого загружаемся в Android и пишем getevent. Он покажет доступные в системе устройства ввода — в моём случае, это event2:

Из event можно читать как в блокирующем, так и не в блокирующем режиме, нам нужен второй. Более того, в них можно инжектить события, что я показывал в статье про создание своей консоли из планшета с нерабочим тачскрином:
// Open input device evDev = open(INPUT_EVENT_TPD, O_RDWR | O_NONBLOCK);
После этого, читаем события с помощью read и обрабатываем их. На устройствах с резистивным тачскрином, передается просто ABS_POSITION_X, на устройствах с поддержкой нескольких касаний — используетсяпротокол MT. Когда пользователь нажал на экран, посылается нажатие BTN_TOUCH с значением 1, а когда отпускает — соответственно BTN_TOUCH с значением 0. Разные драйверы тачскрина используют разные координатные системы (насколько я понял), в случае MediaTek — это абсолютные координаты на дисплее (вплоть до ширины и высоты). На данный момент, я реализовал поддержку только одного касания, но при желании можно добавить трекинг нескольких нажатий:
void m2dUpdateInput()
<
input_event ev;
int ret = 0;
while((ret = read(evDev, &ev, sizeof(input_event)) != -1))
<
if(ev.code == ABS_MT_POSITION_X) tsState.x = ev.value;
if(ev.code == ABS_MT_POSITION_Y) tsState.y = ev.value;
if(ev.code == BTN_TOUCH) tsState.isPressed = ev.value == 1;
>
tsState.cb(tsState.isPressed, tsState.x, tsState.y); >
Теперь мы можем «возить» логотип Хабра по всему экрану:
void onTouchUpdate(bool isTouching, int x, int y) <
if(isTouching)
int main(int argc, char** argv) <
printf(«Test\n»);
m2dInit();
test = m2dLoadImage(«test.tga»);
test2 = m2dLoadImage(«habr.tga»);
printf(«Volume: %i %i\n», vol, muteState);
m2dAttachTouchCallback(&onTouchUpdate);
while(1) <
m2dUpdateInput();
m2dClear();
m2dDrawImage(test, 0, 0, 1.0f);
m2dDrawImage(test2, tsX — (test2->width / 2), tsY — (test2->height / 2), 0.5f);
m2dFlush();
>
return 0;
>

В целом, это уже можно назвать минимально-необходимым минимумом для взаимодействия с устройством и использованию всех его возможностей на максимум без Android. Более того, такой метод заработает почти на любом устройстве, в том числе и китайских NoName, где ни о каких исходниках ядра и речи нет. Теперь вы можете попытаться использовать ваше старое Android-устройство для чего-нибудь полезного без необходимости изучать API Android.
❯ Звук, модем и другие возможности
Для звука нам придётся использовать ALSA — поскольку эта подсистема звука сейчас используется в большинстве устройств на Linux. Судя по всему, тут есть режим эмуляции старого и удобного OSS, поскольку устройства /dev/snd/dsp присутствует. Однако, вывод в него какого либо PCM-потока не даёт ничего, поэтому нам пригодится ALSA-lib.
Другой вопрос касается модема и сети. И если Wi-Fi ещё можно поднять (wpa_supplicant можно взять из раздела /system/), то с модемом будут проблемы — нет единого протокола по общению с ним и кое-где, чтобы его заставить работать, нужно будет немного попотеть. Не стесняйтесь изучать исходники ядра (MediaTek охотно делится реализацией вообще всего — там и RIL, и драйвер общения с модемом) и смотреть интересующие вас фишки!
❯ Заключение
Как мы с вами видим, у старых девайсов все еще есть перспективы стать полезными в какой-либо сфере даже без Android на борту. На тех устройствах, где нет порта Ubuntu или обычного десктопного Linux, всё равно сохраняется возможность писать нативные программы и попытаться приносить пользу.
Не стесняйтесь лезть и изучать вендорские исходники — это даёт понимание, как работают устройства изнутри. Собственно, благодаря такому ежедневному копанию исходников системы и появилась данная статья! 🙂

Мы сделали вам плату, а дальше вы сами: Доводим дешевый одноплатник за "косарь" до ума!

В прошлой статье, мы с вами рассмотрели на что способен одноплатный компьютер, который стоит всего 1.000 рублей. Как мы выяснили, перспективы у данного девайса весьма неплохие, однако по факту, Orange Pi продаёт практически голую железку, которую нужно дорабатывать самому. Да, тут есть Ubuntu/Fedora, да, тут выведена гребенка с I2C/SPI — однако из коробки это всё работает криво-косо, либо не работает совсем. Даже обещанные шины SPI/I2C фактически не доступны в системе «из коробки». Материалов о доработке этого одноплатника в сети мало, поэтому я решил довести его до ума сам и поделится с вами — в том числе, готовыми бинарными образами! Интересно, на что способен доработанный одноплатник по цене ящика пива? 🙂
Над чем будем работать
В прошлой статье, мы с вами определились с потенциальными перспективами такого устройства. По цене 3х ESP32, производитель предлагает нам два полноценных вычислительных ARM-ядра, 256 мегабайт оперативной памяти, 512 мегабайт встроенной NAND-памяти, контроллер питания с возможностью работы от литий-ионных АКБ и 3G модем. Но в бочке меда нашлась ложка дегтя: никто не собирался это всё поддерживать и Orange Pi практически сразу «забили» на поддержку устройства, ограничившись портом Debian/Ubuntun на устройство.

Более того, производитель даже не описал как работать с GPIO и шинами устройства — что фактически превращало его из одноплатника в обычную ТВ-приставку, только без нормального видеовыхода. Меня крайне удивило, почему над такой дешевой платой не хотело работать коммьюнити — большинство людей только видели всю ситуацию и шли оставлять негативный отзыв, не попытавшись даже разобраться. А ведь для опытного линуксоида-эмбеддера здесь работы на день-два!
Ко всему прочему, в Linux не работает GSM-стек. Да, совсем. Производитель даже не стал кооперироваться с MediaTek, чтобы попытаться реализовать работу с модемом на уровне системы. А ведь фактически, вся работа с модемом происходит лишь на уровне AT-команд. Так в чем же проблема была?

Со всем этим мне и предстоит разобраться! Клонируем репозиторий с исходниками ядра и бежим собирать!
Собираем ядро. I2C и SPI.
Вместо типичного Buildroot, Orange Pi использует свою собственную простую систему сборки на shell-скриптах: в качестве тулчейна используется уже готовый linaro. Отчасти, это связано с самими чипами, на которых работают их устройства — MediaTek, например, не использует Mainline ядро и в процессе сборке имеет ещё кучу шагов для подготовки финального образа. Там даже menuconfig не работает и все изменения приходится делать в уже сгенерированной когда-то конфигурации.
Клонируем репозиторий с системой сборки и запускаем скрипт:

Выбираем нашу плату — 3G IoT и ждем, пока система сборки фактически скачает все необходимое для сборки — исходный код ядра, папки external (драйвера, загрузчик и порт linux MediaTek). Обратите внимание, OrangePi даже систему сборки завязали на конкретной версии системы: только Ubuntu 18.04, но на самом деле, ядро соберется без проблем практически где угодно. После того, как все было скачано, переходим в папку с скриптом сборки и запускаем скрипт сборки:
А нет, не запускаем — скрипт жалуется на то, что не может поставить некоторые пакеты. Не беда — ставим bsdtar и python minimal вручную и идем править код скрипта. Находится в он scripts/ general.sh : убираем оттуда устаревшие имена пакетов.

После этого, компиляция ядра должна пройти успешно. Обратите внимание на версию вашей платы — те, что продают сейчас — именно A. Если пытаться подкинуть им ядро для B, то они будут уходить в kernel panic из-за отсутствия eMMC.

Если mkbootimg будет жаловаться на libstdc++6, то ставим его x86 версию из репозиториев.
Готовое ядро будет лежать вoutput/kernel/boot.img, которое можно прошить на устройство. С одним маленьким нюансом — оно рассчитано на загрузку из внутренней памяти, которой критически мало для дистрибутива Linux! У нас нет boot_sd.img, который есть в оригинальном дистрибутиве. Попытка разобрать образ стандартным AndImgTool не увенчалась успехом — рамдиск встроен прямо в образ zImage, а не отдельно, как это обычно бывает у Android-образов.

Покопавшись в скриптах сборки, я так и не понял логику создания boot_sd, ничего связанного с sd я не нашел даже grep’ом по всей папке. Ну что-ж, тогда попробуем обходным путем: скомпилируем нужные драйвера в виде загружаемых модулей (ko). Идём в наш конфиг, расположенный в linux/arch/arm/configs/3giot_defconfig и меняем CONFIG_I2C_CHARDEV и CONFIG_SPI_SPIDEV на m. Пояснение: y заставит систему сборки скомпоновать драйвер статически с ядром, а m выделит его в виде отдельного модуля ko, который затем можно загрузить черезinsmod.

Снова собираем ядро, на этот раз компиляция занимает не больше минуты. Нужные нам файлы появятся в linux/drivers/spi/spidev.ko и linux/drivers/i2c/i2c-d-ev.ko. Переносим их на хост-пк, а затем и на само устройство с помощью SSH:

Загружаем модули ядра:
insmod i2c-dev.ko
И та-дам! Целых две i2c шины появилось в системе (/dev/i2c-0, /dev/i2c-1). Устанавливаем i2c-tools и идем проверять с помощью i2cdetect: первая шина полностью свободна под наши проекты, а на второй по некоторым адресам висит периферия (FM-радио как вариант):

I2C теперь точно работает! Но как насчет SPI?
insmod spidev.ko
Device or resource busy.
Увы! spidev нельзя подгружать динамически, только статически линковать с ядром, чего мы сделать пока не можем. Однако техническая возможность заставить работать SPI есть: например, написать свой драйвер, который транслирует команды из юзерспейса в SPI API, которое работает на уровне ядра.
В прошлой статье, я вкратце рассказал, как работать с gpio из user-space на уровне терминала. Однако, большинство разработчиков потенциально будет пользоваться нативным API для GPIO — ну не всерьез же им парсить вывод состояния в консоль? Поэтому я решил написать крошечную библиотеку для работы с GPIO, такую же простую, как и DigitalWrite/DigitalRead!
Давайте сначала разберемся, как именно работать с драйвером GPIO. Для этого открываем исходники ядра и смотрим внимательно, что нам предлагает драйвер: в нашем случае, это вызовы IOCTL, да еще и простые и понятные. Это просто отлично! Я написал single-header библиотеку минут за 10: без проверки ошибок, но работоспособная.
void gpioInit();
void gpioSetDir(int num, byte dir);
byte gpioGetDir(int num);
void gpioWrite(int num, byte value);
byte gpioGetState(int num); byte gpioRead(int num);
void gpioSetPullState(int num, byte enabled, byte up);
Пример использования (141 — крайний пин на гребенке):
#define GPIO_IMPL
#include «gpio.h»
#include <stdio.h>
void testPin(int pin)
<
printf(«Pin state %i is %i\n», pin, gpioGetState(pin));
gpioSetDir(pin, 1);
gpioWrite(pin, 0);
printf(«Pin state %i is %i\n», pin, gpioGetState(pin));
gpioWrite(pin, 1);
printf(«Pin state %i is %i\n», pin, gpioGetState(pin));
>
int main(int argc, char** argv) <
gpioInit();
testPin(141);
>

Скажу сразу: пока что завести модем мне не удалось, но я активно работаю над этим. В этой части статьи я распишу свои находки и догадки касательно модемов на чипах MediaTek.
В устройствах MediaTek, драйвер для общения с GPS, A-GPS и модемом один — ccci, судя по всему cross chip communication interface. Именно ccci создает устройства, с в которые поступает вход с микрофона и выход на динамики, а также он создает управляющие интерфейсы для общения с различными модулями этого SoC.
При старте ядра, ccci создаёт много устройств — ccci_ioctl, ccci_ipc, ccci_fs и самое нужное нам —ttyC0/ttyC1/ttyC2— в зависимости от количества СИМ-карт в системе. Кроме ccci, в системе есть некий 6620_launcher — бинарник, который загружает прошивку Wi-Fi и gsm0710muxd — специальный сервис, который позволяет в GPRS-сетях одновременно разговаривать и сидеть в интернете.
На смартфонах MTK есть factory mode — так называемый тестовый режим, который гоняют на заводах. Вы, вероятно, когда-то видели китайские меню похожее на рекавери — это и есть factory mode. Из этого режима можно дозвонится в 911 и активировать модем без запуска Android и RIL. Как это работает? Идём читать исходники ядра!
В factory-режиме, для каждого теста, программа активирует модем заново. Для этого есть функции тестового режима для работы с AT-командами и для инициализации модема. Сначала, она открывает терминал /dev/ttyC0 — именно там происходит общение с модемом с помощью AT-команд:

После этого, программа выводит модем из режима сна с помощью команды «AT+ESLP=0», инициализирует СИМ-карту с помощью команды «AT+ESIMS» и задает режим работы с помощью «AT+EFUN=1» и «AT+CREG=1». После этого, модем начинает искать сеть и доступен для обычного общения с помощью AT-команд. Однако, написав тестовую софтину для общения с модемом из под Debian, я получал ошибки вида Device not found. Почему? Пока не знаю. Однако я продолжаю изучать данный вопрос!
Подготовленные мною файлы вы можете скачать на диске. Там скомпилированные модули ядра, библиотека для работы с GPIO и пару тестовых программ в качестве примеров.
К счастью, довести гаджет до ума мы смогли своими силами. Весьма странно, что такой крупный и уважаемый производитель как Orange Pi, банально решил «забить» на поддержку собственного устройства. И я лично считаю, что не стоит закидывать в долгий ящик их тем читателям, которые купили когда-то себе подобный девайс и забили, смирившись с отсутствием гайдов.
Немного энтузиазма, опыта и видения будущего проекта — и все получится 🙂
Продолжение поста «Обход любых блокировок»
По какой-то причине сайт Майкрософт для данного способа перестал работать.
Для того чтобы восстановить работу нам нужно заменить его на другой сайт:
В nekoray в поле SNI укажите dl.google.com
Обход любых блокировок
0.Предыстория
30 мая многие провайдеры в тестовом режиме заблокировали OpenVPN подключения. Уже на следующий день, 31 мая, всё вернулось в норму. Казалось бы ничего такого, и я соглашусь с тем, что данное событие не означает то, что завтра забанят все VPN протоколы, это новость скорее говорит о том, что провайдеры в любой момент могут их заблокировать. Если есть возможность опознать OpenVPN подключение и заблокировать его, то тот же самый Wireguard детектируется с ещё большей лёгкостью. Мне данный вариант не нравится, ждать пока бахнет желания тоже нет, поэтому дальше я расскажу об одном из лучших вариантов для обхода блокировок, который не детектируется даже китайским файрволлом(на текущий момент).
Речь пойдёт об установке и настройке XTLS-Reality в связке с XTLS-Vision, если эти слова вам ничего не говорят, то ничего страшного.
Год назад я уже писал пост Как развернуть свой VPN сервер там я расписал как установить WireGuard VPN сервер. В принципе, на данный момент он не потерял свою актуальность и если вам хочется чего то попроще, то это всё ещё отличный выбор. В таком случае лучше всего выполнить пункты 1-3 из этой статьи и пункт 3 из прошлой.
1.Покупка VPS
Для начала нам понадобится VPS(Виртуальный Приватный Сервер). Здесь я покажу покупку на VPS от RackNerd. Да, это тот же самый VPS, что и в предыдущей статье. За полтора года использования не было ни одной проблемы с данным VPS, у него всё также очень маленькая цена, поэтому я продолжу пользоваться им. Другие дешёвые VPS можно найти здесь
Все предложения имеют скорость в 1 Гигабит/c
План с 1ТБ трафика в месяц обойдется в $10.28 в год
План с 3ТБ трафика в месяц обойдётся в $16.88 в год
План с 7ТБ трафика в месяц обойдётся в $28.55 в год
Переходим по нужной вам ссылке.
Выбираем операционную систему Ubuntu 20.04 и нужное вам расположение сервера.

Нажимаем Continue и потом Checkout.
Вводим ваши или не ваши данные. Аккаунт будет зарегистрирован на указанный email.

Выбираем удобный способ оплаты и оплачиваем.
После оплаты на указный при регистрации email придёт письмо с данными для подключения к серверы и входа в панель управления(может потребоваться для сброса сервера и мониторинга трафика)
2.Подключение к VPS
Скачиваем и устанавливаем Bitvise SSH (убедитесь, что при установке стоит галочка Install WinFsp)
Вводите в поле Host IP адрес сервера из письма.
В поле Port вводим SSH Port из письма.
В поле Username вводим Username из письма.
Initial method выбираем password.
Ставим галочку Store encrypted password in profile.
В поле password вводим Root Password из письма.

Далее нажимаем Save profile as и сохраняем профиль на будущее.
Для подключения к серверу нажимаем Log in.
Cлева появятся кнопки New Terminal Console(открывает терминал) и New SFTP Window(открывает файловый менеджер).
Для того чтобы скопировать текст в терминале просто выделите его.
Для вставки нажмите ПКМ(правую кнопку мыши).
3.Базовая настройка сервера
Вводим в терминал:
Это обновит пакеты приложений.
Сменим порт SSH
22 порт для SSH очень не надежен, так как его постоянно мониторят боты. Сменим его.
Вводим в терминал:
Управление стрелочками. Удаляем # перед Port и вместо 22 вводим любой от 1024 до 65535.

Нажимаем Ctrl+X потом Y и Enter.
Перезапускаем ssh командой:
Закрываем консоль. Нажимаем Log out. Меняем порт на новый и нажимаем Save Profile.
Нажимаем Log in и открываем терминал.
Настроим Firewall
Введите в терминал эти команды:
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 443
ufw allow Ваш_новый_SSH_порт
ufw enable
Этим мы закрыли все порты кроме 443(понадобится дальше) и порта SSH.
Если вы устанавливаете что-то другое, то вместо вместо 443 используйте нужный вам порт.
Включим BBR
echo «net.core.default_qdisc=fq» >> /etc/sysctl.conf
echo «net.ipv4.tcp_congestion_control=bbr» >> /etc/sysctl.conf
sysctl -p
В теории это увеличить скорость соединения.
На этом базовая настройка закончена.
4.Установка и настройка XRay
Вводим в терминал эти команды:
Посмотрите номер последней версии, на текущий момент это 1.8.1 Если вышла более новая, то замените версию в команде ниже.
Изначально ссылка была https://raw.githubusercontent.com/XTLS/Xray-install/046d9aa2. , но Пикабу её сокращает, поэтому сократил ссылку
Вводим в терминал:
Мы получили публичный и приватный ключи. Сохраните их куда-нибудь, они понадобятся позднее.
Вводим в терминал:
Мы получили UUID, для каждого пользователя нужно сделать свой UUID. Сохраните их куда-нибудь, они понадобятся позднее.
Вводим в терминал:
Мы получили ShortId сохраните его, он также понадобится в дальнейшем
Нажмите на New SFTP Window в BitviseSSH. Слева файлы на вашем ПК. Справа файлы на сервере.

Открываем файл config.txt и вставляем туда то, что написано ниже.
В поле id введите ваш UUID. Для каждого пользователя нужно прописывать это:
Разделяются они запятой. После последнего пользователя запятой быть не должно Примеры:
В privateKey вводим ваш приватный ключ. В Shorts Ids ваш ShortId.
Сохраните файл(Ctrl+S) Закройте файл и SFTP окно.
В терминал вводим:
Статус должен быть быть active (running)

Если у вас ошибки, то перепроверьте ещё раз конфиг.

5.Подключение
Есть много разных клиентов, но мы будем использовать Nekoray.
Скачиваем последнюю версию. (3.6 на текущий момент)
Разархивируем и открываем necoray.exe
При запуске выбираем sign-box.
Дальше нажимаем Server -> New Profile
Type выбираем VLESS.
Вводим всё в соответствии со скрином ниже.

ПКМ(правой кнопкой мыши) по созданному профилю и нажимаем Start

Потом ПКМ -> Current Select -> URL Test
В Test Result должно быть сколько-то ms. Если у вас Unavailable, то перепроверяйте введенные вами данные.

Нажимаем VPN mode, чтобы трафик пошёл через наш прокси
ГОТОВО! ВЫ МОЛОДЕЦ!
Повторяем действие для Windows.
ПКМ->Share->QR Code and Link
Открываем его, справа сверху нажимаем на плюсик, выбираем отсканировать QR и сканируем QR с ПК.
Кнопка по центру включает прокси
Используйте ShadowRocket или FoXray Настройка должна быть аналогичной.
Это коробочка всё ещё лежит не открытой


Оценка утечки персональных данных на смартфонах Realme, Xiaomi и OnePlus

Группа исследователей из Эдинбургского университета опубликовала результат анализа утечек персональных данных в смартфонах Realme, Xiaomi и OnePlus, поставляемых для китайского и общемирового рынка. Во всех устройствах с прошивками для продажи в Китае выявлены факты отправки на серверы сбора телеметрии дополнительной информации, такой как номер телефона пользователя, статистика об использовании приложений, а также данные о местоположении, IMSI (индивидуальный номер абонента), ICCID (серийный номер SIM-карты) и окружающих точках беспроводного доступа. Дополнительно в устройствах Realme и OnePlus зафиксирована передача истории звонков и SMS.
В прошивках для общемирового рынка подобная активность не наблюдается за отдельными исключениями, например, устройства Realme отправляют MCC (код страны) и MNC (код мобильной сети), а Xiaomi Redmi — данные о подключённых Wi-Fi, IMSI и статистику об использовании приложений. Независимо от типа прошивки все устройства отправляют IMEI-идентификатор, список установленных приложений, версию ОС и параметры оборудования. Данные отправляются предустановленными производителем системными приложениями без получения согласия у пользователя, без уведомления об отправке и независимо от настроек конфиденциальности и отправки телеметрии.
В смартфоне Redmi данные отправляются на хост tracking.miui.com когда открыты и используются такие предустановленные производителем приложения, как Settings, Note, Recorder, Phone, Message и Camera, независимо от согласия пользователя с предложением отправки диагностических данных во время начальной настройки. На устройствах Realme и OnePlus данные отправляются на хосты log.avlyun.com , aps.oversea.amap.com , aps.testing.amap.com или aps.amap.com .
Из выявленных проблем также отмечается включение в поставку дополнительных сторонних приложений, которым по умолчанию предоставляются расширенные полномочия. Всего по сравнению с кодовой базой Android AOSP в каждой рассмотренной прошивке поставляется более 30 сторонних приложений, предустановленных производителем.

Убираем рекламу на пикабу (аккаунт @specials)
На компе реклама убирается просто. Достаточно поставить блокировщик рекламы. На телефоне все чуть сложнее. Буду рассказывать на примере андроида и браузера FF.
Ставим браузер FF. Если он у вас отсутствует.
Ставим дополнение Ublock Origin.
Профит. У вас заблокированы посты с этого бесячего аккаунта.
Дальше меня бесит баннер вверху:
Выбираем наш блокировщик.
Включаем Режим выбора элементов.
Нажимаем кнопку Предпросмотр. Если все понравилось нажимаем кнопку создать.







Озвучка из Stronghold Crusader для Mir Pay на Android
Ссылка на готовый вариант в конце поста. Для описанного способа ROOT-права не требуются.
В начале марта 2022 года, как известно, заблокировали возможность бесконтактной оплаты банковскими картами Mastercard и Visa. Немного погуглив я узнал, что, наконец-то, придумали способ привязать карту с платёжной системой МИР к телефону с помощью мобильного приложения Mir Pay.
Скачав его, я сразу обратил внимание на воспроизведение звуков событий в настройках, и задумался, как их можно изменить. В голову сразу пришла фраза из детства "Казна пустеет, ваша светлость", из любимой Stronghold Crusader (в WarCraft я не играл, так что "нужно больше золота" мне в голову не приходило)
В общем, родную озвучку оказалось поменять проще, чем я думал. Для этого заходим по пути:
/Android/data/ru.nspk.mirpay/files/audio/1
Здесь хранятся наши файлы озвучки.
Файл CardAddDone.mp3 отвечает за озвучку события при добавлении новой карты для оплаты.
LongAgoLogin.mp3 — если вы долго не заходили в приложение.
PayDone.mp3 — озвучка при успешной оплате.
PayFailed.mp3 — ошибка оплаты.
Далее я скачал озвучку на русском языке для игры Stronghold Crusader: Гугл Диск, и методом тыка нашёл нужные мне фразы.
Затем, используя бесплатный онлайн конвертер из формата .wav в формат .mp3, создал четыре файла, переименовав файлы озвучки игры в соответствующее название файла озвучки приложения Mir Pay. После чего, просто прошёл в папку приложения по вышеуказанному пути, и с помощью файлового менеджера ES проводник переместил файлы в папку с заменой, выбрав команду "перезаписать".

Затем, выбираем в приложении Mir Pay озвучку "Володя", так как мы заменяли голос именно этого парня.
Как видите, ничего сложного в этом нет.
Многие кассиры и люди в очереди, услышав фразу "Казна пустеет, Ваша светлость" улыбаются, некоторые из них интересуются, откуда такая озвучка.
Как я понял, при обновлении приложения озвучка не слетает, так как последнее обновление от 11.04, а я у себя заменил озвучку в начале марта.
Что касается ограничения длительности файла: для проверки я использовал музыкальный трек с битрейтом 320 kbps и длительностью 03:20. В итоге трек был проигран полностью. Таким образом, вы можете использовать достаточно длинные аудиофайлы в своём варианте озвучки.
Ну и напоследок мой готовый вариант озвучки: Гугл диск.
Всем добра и хорошего настроения!) Пост добавил по просьбе уважаемых пикабушников.
Ответ на пост «Мини-гайд по настройке AndroidTV приставки»
Прочёл исходный пост. С чем-то согласен, с чем-то нет, в любом случае комрад @BlueScorpion малацца, несёт знание в народ.
Сначала я хотел чиркануть пару строк в комментах, но в итоге посчитал целесообразным запилить ответ на пост, в которым поделюсь с вами моим опытом, а так же расскажу, с какими проблемами столкнулся при использовании Android-приставок.
ПОКУПКА ПРИСТАВКИ
Пару лет назад, взглянув на ТВ-приставку от моего провайдера я задумался, что плачу за ТВ «Билайну» около трёхсот рублей в месяц, а на выходе за эти деньги получаю примерно 200 ТВ-каналов. И всё. Точка. Ни архива ТВ (он есть, но нужно за него доплачивать), ни возможности посмотреть YouTube у меня нет. Помимо ТВ есть ещё скудная медиатека, да и за просмотр каждого фильма так же нужно доплатить отдельно. В итоге, когда хотелось посмотреть какой-то фильм на телевизоре, приходилось тащить ноут и подключать его по HDMI.
Я решительно вернул ТВ-приставку провайдеру, перешёл на тариф без ТВ и окунулся в прекрасный мир этих ваших интернетов с целью изучения информации о Android-приставках.
Перед тем, как выбрать приставку, сразу определите для себя, что Вы от неё хотите и каким бюджетом располагаете.
В моём случае от приставки НЕ требовалось 4К (телек не поддерживает) и вывод звука 5.1 (мы люди простые, домашних кинотеатров не держим). Требовалось – просмотр IPTV, YouTube, фильмы/сериалы онлайн с торрентов.
Мои запросы, думаю, это как раз «золотая середина». С одной стороны приставка покупается не только для просмотра ТВ, с другой стороны – ничего сверхкрутого типа 8К от неё не требуется.
Долго ли, коротко ли, но мой выбор пал на X96 Max Plus 2 4/64.
Почему выбрал именно её, и на что, по моему мнению, стоит обратить внимание.
1. Обязательно берите приставку с 4 Гб оперативной памяти.
Забегая вперёд, скажу, что позже купил тещё приставку с 2 Гб, и она прекрасно работает. Но, во-первых, она используется только для просмотра ТВ, а во-вторых, оперативки много не бывает, уж поверьте айтишнику со стажем 😊
На данный момент на моей приставке с прошивкой Slimbox сразу после загрузки занято 1,5 Гб ОЗУ. Единственное, что стоит в автозагрузке – OpenVPN для обхода блокировок.
С каждым новым обновлением ПО становится всё более прожорливым, и, если вы хотите долго и счастливо использовать свой ТВ-бокс, варианты с 2 Гб RAM рассматривать не стоит.
2. Обязательно озаботьтесь вопросом сети. Если планируете подключать кабелем – приставка должна поддерживать гигабитное подключение. Если будете подключать по WiFi – только 5Ггц, забудьте про 2,4Ггц.
На эти грабли я наступил сам, покупая приставку для тёщи, купил без поддержки 5Ггц, в итоге очень долго плясал с бубном, чтобы получить стабильный и нормальный сигнал.
3. Рассматривая приставку в бюджетном сегменте, я не рекомендовал бы брать приставку на каком-либо процессоре кроме S905X3 или S905X4. Это чисто ИМХО, но всякие AllWinner`ы и прочие RK3328 я обходил бы стороной.
4. Выбирая приставку, обратите внимание на то, на какой прошивке «из коробки» идёт приставка. На мой взгляд, бокс либо сразу должен быть на Android TV, либо должна быть возможность прошить Android TV.
Многие приставки, в том числе и моя X96 Max Plus 2, из коробки идёт на AOSP. Это обычный «чистый» Android с лончером, отдалённо заточенным под использование на телевизоре.
Единственный плюс «чистого» AOSP – возможность устанавливать из Play Market все приложения, а не только те, что заточены под Android TV. Плюс этот довольно условный, т.к. на Android TV вы без проблем можете установить любое Android-приложение из APK-файла.
А вот у Android TV плюсов перед AOSP гораздо больше – более стабильная работа, гораздо более юзабельный интерфейс, сразу без всякого гемора работает сквозной голосовой поиск (об этом ниже).

Домашний экран AOSP

Домашний экран Android TV
Итак, по основным моментам выбора бокса я пробежался. Теперь что касается доп. оборудования.
1. Уточните, как обстоят дела с охлаждением выбранной Вами модели. В моём случае бокс начинает ощутимо греться при просмотре «тяжёлых» фильмов с торрентов, и, когда температура процессора приближается к 80 градусам, бокс просто-напросто зависает. В профильной теме на 4pda умельцы наколхозили очень много вариантов охлаждения. Если нет желания колхозить, можно заказать с али специальную подставку-кулер (типа такой https://a.aliexpress.com/_AWxsEK ), которая питается от USB. Эффективность, конечно, будет поменьше, но для моих задач её хватает. Возможно, если смотреть 4К, она не справится. Я 4К не смотрю, поэтому здесь ничего сказать не могу.
2. Без нормальной аэромыши комфортно использовать приставку невозможно. И дело тут не в функционале указателя мыши, а в голосовом поиске. Дело в том, что комплектный пульт бокса это просто ИК-пульт без микрофона. Аэромышь же снабжена микрофоном, с помощью которого вы и будете осуществлять голосовой поиск. Я использовал несколько различных аэромышей, в итоге остановился на модели G20s pro. Из отличительных черт этой модели – наличие цифровых клавиш (удобно сразу вводить номер нужного канала при просмотре ТВ), а так же наличие подсветки клавиш.
К покупке аэромышь обязательна, подходящую модель можете выбрать тупо по внешнему виду.

Аэромышь G20s pro
ПРИСТАВКА КУПЛЕНА, ЧТО ЖЕ ДАЛЬШЕ?
Наконец, вы сделали свой выбор, купили приставку и аэромышь.
Радуемся, что приставка сразу работает на Android TV или же прошиваем на Android TV (рекомендую прошивку Slimbox).
Я рассматриваю вариант, когда приставка уже работает на Andriod TV, поэтому на теме настройки сквозного голосового поиска по приложениям останавливаться не буду, он уже работает из коробки. Если Вы всё же решили использовать прошивку AOSP – гуглите установку Google Katniss.
Что такое сквозной голосовой поиск?
Допустим, у Вас установлены несколько приложений, в которых может найтись интересующее Вас видео – YouTube, Num, HD VideoBox, Кинопоиск. Вы нажимаете на кнопку голосового поиска на пульте, и говорите, к примеру… Ну, к примеру: «Фиксики».
Android начинает искать по всем приложениям и выдаёт варианты: вот тебе фиксики на ютубе, а вот ты можешь через Num посмотреть фиксиков с торрентов и т.п. Не нужно заходить и искать в каждом приложении – все варианты видны сразу.
Итак, приступаем к установке и настройке нужного софта.
Несмотря на всякие ютубы с нетфликсами, телевидение всё равно ещё популярно, тем более, что выбор каналов сейчас огромный. Помимо классических телеканалов, есть огромный выбор тематических, а так же ооочень много кинозалов.
Перед тем, как говорить о IP-телевидении, нужно сделать важное замечание. Все сервисы, стоимость которых составляет пару баксов – пиратские. Т.е. где-то покупается официальный доступ к телевидению, а затем перепродаётся за недорого. В связи с этим качество и стабильность иногда могут хромать. Звучит не очень, тем не менее, подобрав адекватного провайдера IPTV, с проблемами Вы, скорее всего, будете сталкиваться редко.
Второй момент, который нужно отметить – я не буду рассматривать бесплатные листы IPTV. Мне проще заплатить несколько долларов, чем постоянно сталкиваться с проблемами. Лично знаю людей, которые используют бесплатные источники, их это устраивает. По какому пути идти – решать Вам.
Ну и последнее, о чём стоит сказать. Не смотря на то, что я, как и многие, адепт 4pda, и установка ломанного софта – наше всё, тем не менее, за приложения, которые мне действительно нравятся, я готов заплатить, если цена вменяема.
Итак, для просмотра IPTV прежде всего нам нужен плеер. Тут есть несколько вариантов.
В своём посте @BlueScorpion упомянул несколько плееров, и вот тут моё мнение не совпадает с комрадом. Ну или нет, тут вопрос, какой плеер имелся ввиду.
Есть два плеера с похожим названием: OTTplayer и Ott-play by Alex. Первый – вот прям жуть. В чатах нескольких провайдеров IPTV, как только упоминается этот плеер, человека сразу отправляют устанавливать что-то вменяемое 😊
Ott-play by Alex гораздо лучше, но имеет слишком замороченное управление. Ну и дизайн довольно спорный, многим не нравится. Для меня критичным моментом стало отсутствие поддержки работы сразу с несколькими провайдерами. Да, это можно реализовать, состряпав плейлист на стороннем сервисе, но к чему такие сложности. У Ott-play by Alex есть один огромный плюс – его можно запустить не только на Android, но и на всяких SmartTV типа LG/Samsung, у которых своя операционка, а так же есть версия под Windows. Но поскольку сейчас мы рассматриваем Android, нас это мало волнует. Резюмируя – плеер довольно неплох, пользоваться можно. Но, на мой взгляд, не самый удобный вариант.
Ещё один плеер, предложенный @BlueScorpion – Televizio. И тут я прям совсем не согласен. Televizio практически единственный вменяемый вариант, если вы используете IPTV на телефоне, его интерфейс заточен именно под это. Удобство использования плеера с таким интерфейсом на приставке – очень и очень спорный вопрос.
Вот мы и подошли к кульминации в вопросе выбора плеера 😊
По моему мнению, лучший плеер для IPTV на Android TV является Tivimate.

IPTV-плеер Tivimate
Удобный интерфейс, куча настроек, работа с несколькими плейлистами, с несколькими источниками EPG, кастомные лого каналов, возможность записи по расписанию (если вдруг канал/провайдер не поддерживает архив), напоминание о передачах ну и ещё куча плюшек.
Плеер платный. Если бесплатная версия с урезанным функционалом.
Сначала, как и многие, использовал ломанную версию. Но, во-первых, в ломанной версии наблюдаются некоторые глюки, а во-вторых, уж очень мне понравился Tivimate. В итоге купил.
Варианта два – лицензия на год (примерно 350 рублей) или бессрочная лицензия (около 1200 рублей). За эту цену можно использовать на 5 устройствах(!). В итоге лицензионная версия без всяких глюков работает у меня, мох родителей, родителей жены и на приставке друга. По-моему за спокойное использование без глюков и гемора это совсем не дорого.
Купил сначала на год, потом хотел купить бессрочную, но там целый геморрой с переходом с одного типа лицензии на другой – делать бэкап на всех устройствах, потом ждать дату окончания годовой лицензии, оплачивать бессрочную, ждать, пока на всех устройствах «вылетит» премиум версия, снова на каждом устройстве восстанавливать резервную копию, заходить в акканут. Вот прям ужас. В итоге, 5 января лицензия автоматом продлилась ещё на год.
Мой совет, если вдруг присматриваетесь к покупке – попробуйте ломанную, понравится – покупайте сразу пожизненную.
Пользуясь случаем, если вдруг меня читают разработчики – ребята, может есть возможность как-то без гемора перейти на пожизненную премиум версию без ожидания окончания подписки, перенастройки на каждом устройстве и т.п. Напишите мне, а?)
Допустим, с плеером разобрались, Вы выбрали для себя подходящий вариант.
Теперь самое время поговорить о ПРОВАЙДЕРАХ IPTV.
Чтобы определиться с выбором провайдера, для начала стоит посетить какой-нибудь тематических ресурс, на котором можно сравнить что и за какие деньги предоставляет каждый провайдер. Забиваем в поисковике «IPTV провайдеры», найдётся несколько ресурсов, на которых есть сравнение и отзывы юзеров.
Важная ремарка. В зависимости от «крупности» провайдера, у него имеется какое-то количество серверов, географически расположенных в разных городах и странах. У кого-то есть автоматический выбор лучшего сервера (который не всегда корректно работает), у кого-то нет.
У каких-то провайдеров есть возможность теста соединения между вашим оборудованием, у кого-то нет.
Скорее всего, вне зависимости от того, есть ли автоматический выбор и тесты, Вам всё равно придётся «методом тыка» перебрать какое-то количество серверов, пока не подберёте оптимальный, на котором при просмотре телевидения у вас не будет зависаний и буферизации. И запомните – не всегда, тот сервер, который географически расположен ближе, будет сервером с лучшим качеством связи.
Может получиться так, что находясь, например, в условном Серпухове, хорошее качество будет при выборе сервера в Германии, а при использовании сервера в Москве у вас будут проблемы.
Я остановил свой выбор на двух провайдерах, дома подключены оба, у моих родителей и родителей жены только один.
Почему так и в чём отличия.
Первый, и, наверное, самый известный/популярный сейчас провайдер – iLook, он же Эдем/Edem.
Из плюсов iLook – огромное количество каналов, в том числе национальных каналов других стран. В личном кабинете можно включать/отключать группы каналов, можно составить свой собственный список каналов. У меня отключены каналы других стран, отключено несколько неинтересных мне категорий, при этом количество каналов – 1973 шт. Это один из плюсов – каналов не просто много, а очень много. Второй плюс – ценник. Всё удовольствие – 1$/мес.
Теперь к минусам.
Первый минус – стабильность. Провайдер довольно старый, серверов много, но, тем не менее, периодически наблюдаются проблемы: фризы/буферизация.
Пробовал разные сервера – всё равно проблемы. Конечно, можно было бы предположить, что проблема с провайдером. Да только картина такая на трёх провайдерах – и у меня, и у моих родителей, и у родителей жены. Справедливости ради отмечу, что все эти переборы серверов и проблемы были больше года назад, в последнее время проблем стало заметно меньше. На новогодних праздниках много смотрел каналов именно через iLook – столкнулся только один раз с проблемой при просмотре самопального кинозала.
Вторая проблема – не на всех канал присутствует архив. Это прям печалит.
Почему же у меня подключен iLook? Потому что большой выбор каналов. Как уже писал выше, проблемы, конечно, есть, но я использую его как дополнительный, для просмотра каналов, которых нет у основного провайдера. При нерегулярном использовании с проблемами сталкиваешься не так часто, так что за 1$/мес. меня iLook устраивает.
Провайдер Glanz
Помучившись первое время с iLook, я начал искать более стабильного провайдера. Наткнулся на Glanz, и он меня полностью устроил.
На данный момент Glanz предоставляет 913 каналов за 2 евро в месяц. На каждом канале есть архив. На популярных каналах глубина архива 14 дней, на остальных 7.
Из плюсов – отсутствие бардака в названиях каналов (сравниваю с iLook), стабильность. Честно скажу – с облегчением выдохнул, когда подключил во всех трёх квартирах Glanz. Да, сервер пришлось подобрать вручную, но это было довольно просто – добился отсутствия лагов со второй-третьей попытки. Отличная поддержка в Telegram – новостной канал, несколько чатов. Поддержка реагирует быстро и без проблем. Правда, если полениться и не использовать поиск и задать вопрос по какой-то проблеме, которая миллион раз обсуждалась или ответ присутствует в FAQ – могут и послать. Но тут я их поддерживаю 😊
На мой взгляд, по соотношению цена/качество, равных Glanz сейчас нет.
ПРОСМОТР ФИЛЬМОВ/СЕРИАЛОВ
Настало время заключительной части – настройка просмотра фильмов и сериалов.
Существуют куча сервисов, которые за определённую денежку предоставят Вам доступ к различным фильмам/сериалам. Но ни на одном платном сервисе вы не сможете посмотреть всё, что Вам хочется, а платить за несколько таких сервисов будет уже накладно.
Мы настроим просмотр кино и сериалов с торрентов в реальном времени.
Для начала разберёмся с технической частью вопроса, а именно установим плеер и программу для просмотра видео с торрентов в реальном времени.
Перепробовав множество плееров, я пришёл к выводу, что самым адекватным плеером для Android TV является Vimu.
Ранее всегда пользовался MX Player/VLC, но на данный момент только Vimu ни разу не подвёл.
И с VLC, и с MX Player возникали те или иные проблемы.
Плеер Vimu без проблем устанавливается из Play Market.
Далее нужно установить TorrServe – программа которая как раз и будет отвечать за то, что торрент одновременно будет скачиваться и воспроизводиться в плеере. В настройках TorrServe не забываем по умолчанию выбрать плеер Vimu.
После установки этой связки, нужно установить несколько программ, которые будут заниматься поиском кино и сериалов на торрентах.
Довольно неказистое на вид приложение, но, тем не менее, считаю на данный момент его самым лучшим.
Скачиваем архив с 4pda и устанавливаем.
Это же приложение поможет нам с таким насущным вопросом, как обход блокировок РКН.
Ни для кого не секрет, что РКН регулярно блокирует те или иные ресурсы, в том числе и популярные торрент-трекеры.
Для настройки обхода блокировок, заходим в Num, нажимаем на надпись “Num” в правом верхнем углу, и мотаем до самого низа, до надписи «Обход блокировок РКН».

После нажатия на этот пункт меню, в левой части экрана жмём «Установить VPN-клиент» и устанавливаем клиент OpenVPN.

Далее возвращаемся в приложение Num и нажимаем на надпись «Получить настройки VPN». Скачается профиль Antizapret. Автоматически откроется клиент OpenVPN, сохраняем профиль Antizapret и подключаемся.
Чтобы каждый раз при загрузке устройства VPN подключался автоматически, открываем приложение «OpenVPN for Android», идём в меню «Settings» и ставим галочку «Connect on boot».

Готово, у нас настроен глобальный (для всех приложений) обход блокировок 😊
По умолчанию Num использует Okko как каталог сериалов и фильмов. Если вы хотите найти фильм/сериал на торрентах, а в этом каталоге его нет, то при выполнении поиска в приложении Num нажмите «Искать на трекерах».

Ну и если вдруг Вам не хватает тех торрент-трекеров, которые поддерживает Num, вы можете использовать Jackett (можете установить свой собственный Jackett-сервер, а можете найти общедоступный). Но Jackett это отдельная тема – если будет интересно, могу запилить пост. А так – гугл с яндексом Вам в помощь.
HD Videobox
Хоть данное приложение уже и не поддерживается разработчиком (посадили бедолагу), тем не менее, о нём стоит упомянуть. На данный момент есть рабочая версия, которая поддерживается силами пользователей 4pda.
Суть та же самая, что и у Num – поиск торрентов с кино/сериалами.
Рекомендую к установке, правда, сколько оно ещё будет поддерживаться и работать, неизвестно.
Фух, ну вот, вроде, и всё.
У нас получилась приставка на Android TV, на которой мы можем посмотреть множество телеканалов, а так же любой фильм или сериал.
Я не затрагивал некоторые вопросы, так как информации и так не мало.
Так же не осветил вопрос просмотра YouTube, т.к. лично у меня куплен YouTube Premium, и я смотрю ролики без рекламы через стоковое приложение.
Если есть какие-то вопросы – пишите.

Мини-гайд по настройке AndroidTV приставки
Несколько задержался с постом, не очень я дружу с тайм-менеджментом. Кроме того, я так и не смог сегодня добраться до телевизора, поэтому гайд будет по-большей части в текстовом виде. Если руки дойдут — завтра прикреплю картинки, но по-идее и без них ничего сложного быть не должно.
Итак, вот вы купили Андроид-приставку, дабы сделать из вашего тупого телевизора неожиданно умный. Что же требуется предпринять?
Ну, для начала, если у вашей приставки есть USB порт — то я бы очень советовал прикупить вот такую вот (или подобную ей) приблуду:
Это позволит подключить к приставке одновременно LAN-кабель (а это сразу заметный плюс к скорости и минус к пингу), USB-флешку гигов на 32-64 в виде внешней памяти (мы же хотим не только смотреть фильмы онлайн, но и при случае скачать пару фильмецов для дальнейшего оффлайн просмотра? Мало ли, решим на дачу в какой-нибудь Мухосранск уехать. Я вот регулярно катаюсь), а так же можно еще и подключить беспроводную мышку и клаву, если хочется изврашений. Ну или инет посерфить. Короче, приблуда, несомненно, полезная, уж 350р отдать за нее не жалко.
Важное уточнение! LAN кабель будет более выгодным, если Wi-Fi у вас 2.4ГГц, если 5ГГц, то смысла особого подключать по кабелю нет. Кроме того, в случае, если скорость по тарифу у вас больше 100 Мбит — лучше взять версию USB хаба подороже, с портом на 1000 Мбит. Спасибо отписавшимся в комментариях за замечания.
Далее. Вот есть у нас приставка, а софта на ней нема. Надо его туда залить. Вопрос — как? Наиболее простой способ — скачать на телефон и на телевизор из Маркета файловый менеджер X-Plore. В дальнейшем, можно пользоваться только им, он вполне хорош. Хотя я предпочитаю ES File Explorer, мне он больше по душе, но его нельзя поставить из маркета. Оба этих файловых менеджера дают возможность передавать файлы с телефона на телек по локальной сети. По сути, это единственная функция, которая нам пригодится, но файловый менеджер — вещь незаменимая, должен стоять всегда.
Теперь непосредственно к софту. Что мы хотим? Смотреть Ютуб, кинцо, ТВ и торренты. По порядку:
Ютуб. Приложение SmartTubeNext. Адаптированная под телевизор облегченная версия Трубы без рекламы. Тут все просто, без лишних слов. Не забываем включить автообновление и SponsorsBlock (если вы, конечно, не любитель рекламы Вартандера и Рэйд Шэдоу Леджендс от ваших любимых блогеров) в настройках. Ах, да, дефолтный Ютуб отключить, снести, изничтожить ересь любым доступным способом. И ещё желательно подключить Ютуб в телефоне к SmartTubeNext, тогда можно будет в любой момент транслировать ютуб с телефона на ТВ. Я таким образом чаще пользуюсь, чем напрямую.
Кинцо. LazyMedia Deluxe. В архиве ниже лежит крякнутая версия, но я очень советую купить лицензию. Стоит она вроде-бы жалких 200р, но дает такие преимущества как автообновление (это важно, РКН постоянно блочит сервисы для просмотра кинца, а автор проги заботливо меняет зеркала и прокси чуть ли не сразу после блокировки) и синхронизацию между вашими устройствами. Так, например, начать смотреть сериал можно на ТВ, а досматривать его с того же места на телефоне. Сама прога это сборник кучи видеосервисов, как Filmix, HDRezka, KinoGO, Zona, Octopus, HDVB и так далее. Кроме того, умеет искать еще и торренты по куче трекеров. Мастхэв короче, поддержите разраба.
ТВ. По понятным причинам, телевидение смотреть мы будем через интернет. Тут к нам на помощь приходит IPTV. Для его просмотра нам нужен IPTV плеер. Я советую OTT Player, он бесплатный и есть в маркете. Далее нам нужен IPTV плэйлист со списком каналов. В интернете есть бесплатные плейлисты, но у них вечно не пашет половина каналов и их приходится время от времени обновлять вручную. Для тех, кто готов пожертвовать 1$ в месяц — советую плэйлист ЭдемТВ (сайт ilook.tv ). Найденный нами любым способом плэйлист мы импортируем в плеер и наслаждаемся телевидением. В случае с Эдемом это что-то около 800 каналов, и детских, и очень взрослых, и иностранных.
Торренты. Здесь все несколько сложнее. Точнее не совсем так. Если мы хотим просто качать торренты — в Маркете устанавливаем Transmittion BTC, и, собственно, качаем. Если же мы хотим смотреть видео напрямую из торрента — надо ставить TorrServe (есть в архиве), плеер для видео (MX Player тоже есть в архиве), и настраивать их, чтобы они дружили и дружно вместе пахали на благо вашего досуга.
Торрсерв ставим, из файла ставится клиент. Запускаем клиент, внутри через него устанавливаем сервер. Сервер настраиваем по инструкции с 4PDA:

Впоследствии, если торрент будет лагать и вылетать по причине чрезмерной нагрузки на приставку (мало ли, может у вас она совсем дохленькая. У меня вот на кухне МиСтик с процессором от калькулятора и 1Гб ОЗУ), можно поиграть с кешем и буфером в сторону их уменьшения. На стике у меня вроде буфер всего 10мб, но торренты до 15Гб он хоть и со скрипом, но жрет.
MX Player. Версия, что я скинул, в дополнительных кодеках не нуждается, но в нее надо (причем сразу при первом запуске) импортировать настройки для нормальной работы с онлайн-видео. После этого должно как часы работать. Настройки тоже в архиве. Кстати, сам плеер можно использовать для просмотра скачанных ранее видео или онлайн-просмотра напрямую из LazyMedia. Правда, в LazyMedia и так встроенный плеер удобный, но это вопрос вкуса.
С основными пунктами разобрались, что ещё можно впихнуть в наш Смарт ТВ, чтобы он стал не просто Смарт, а прямо СуперСмарт?
Браузер. Рекомендую Puffin. Есть в Маркете. Вообще, серфить инет с телевизора это гиблое дело, но пусть будет, надо же чем то забить память приставки?
Радио. Почему нет? Пусть будет. Мне понравился FM Play. Есть в Маркете.
Лайфхак для тех, у кого где-нибудь на даче подключен ТриколорТВ. В Маркете есть их Андроид приложение, качаем, логинимся по данным с дачи, теперь у вас Триколор. Можно удалить IPTV, и платить только за спутник.
Тот самый пресловутый ES File Explorer из самого начала поста. Я его, кстати, в архив тоже завернул. Если поставите ES, то X-Plore можно снести.
Sideload Launcher. Есть в Маркете. Эта приблуда нужна для запуска приложений, не адаптированных под АндроидТВ. Такие приложения не отображаются в общем списке, поэтому запускать их можно через сабж.
Простенькие ретро-игры. Если у вас есть беспроводной геймпад, или USB хаб из самого начала поста и проводной геймпад — можно погонять на телевизоре и поностальгировать. Battle City, Sonic the Hedgehog, Super Mario Bros. Их без проблем потянет любой АндроидТВ девайс. Только надо ставить эмуляторы. MD.emu, Nesoid, My Boy Advance, PPSSPP. Часть из них, кстати, надо запускать лаунчером из предыдущего пункта. Ну и да, нужны образы игр, их полно в сети. Кстати, есть положительный опыт игры в Теккен 5 (точнее ее PSP порт) на моей MiBoxS. Позалипал один вечер.
Kodi. Вариант для красноглазиков, хотя я и сам такой отчасти. Это не просто мультимедийный комбайн, а машина смерти. Умеет все, но всему надо учить, порой долго и со слезами. Вообще, при правильной настройке способен заменить вообще все из вышеперечисленного, но скорее убьет ваши нервы, чем вы его настроите. Не советую обычному пользователю, вообще. Но упоминания, несомненно, достоин.
Стриминговые сервисы. Netflix, Spotify, IVI, Яндекс.Музыка, Кинопоиск, Окко. Тысячи их. Если не жалко денег — ставьте, все удобны и красивы. Вот только жрут бабло как не в себя. Я из них только Spotify использую, и то по студенческой подписке за 85р.
Moonlight. О, а вот это классная тема. Ставится из Маркета. Если у вас приставка подключена по кабелю или Wi-Fi 5ГГц, есть геймпад, работающий с приставкой, и мощный комп с кучей игр и видюхой NVidia — с помощью этой проги можно играть в игры с компа как на консоли. Я так Ведьмака 3го прохожу, или под настроение залипаю в Steep. Работает без заметного глазом инпут-лага и с хорошей картинкой. Для АМД есть аналог SteamLink, но он медленнее.
Обычные андроид игры. Я пробовал запускать Майнкрафт и Террарию, пашут. Теоретически можно ещё много чего, но я это сделал просто ради теста. Возможность есть, почему бы и не да.
Chromecast. Эта фича очень удобна при работе с телефона. С помощью хромкаста можно, например, включить видео из мобильного браузера напрямую в телевизоре или включить музыку из плеера на телевизоре через колонки, если они подключены.
Ну и напоследок, еще в архиве лежит Android TV Remote, ставится на телефон и коннектится с приставкой. По сути — второй пульт, но он позволяет использовать клавиатуру телефона для набора на телевизоре. Очень удобно, если голосовой ввод сбоит.
Спасибо за внимание, если что упустил, или есть вопросы — пишите, поправим пост вместе или коллективно решим возникшую проблему.
Ищете способ отключить App Market на смартфонах Realme? Вот подробное руководство по настройке и удалению приложения
App Market, также известный как "Магазин приложений", является предустановленным приложением на смартфонах Realme. Оно предоставляет доступ к большому количеству приложений, которые можно загрузить и установить на устройство. Однако, в некоторых случаях пользователи могут захотеть отключить или удалить App Market по различным причинам. В этой статье мы расскажем о способах отключения и удаления App Market на смартфонах Realme.
Шаг 1: Перейдите в настройки
Откройте "Настройки" на вашем устройстве Realme, нажав на иконку шестеренки на главном экране или панели уведомлений.
Шаг 2: Найдите иконку "App Market"
Пролистайте страницу с настройками вниз и найдите раздел "Управление приложениями" или "Приложения". В этом разделе вы должны найти иконку "App Market".
Шаг 3: Выберите "App Market" и отключите или удалите
Нажмите на иконку "App Market" и вы увидите доступные варианты для управления приложением. В зависимости от версии операционной системы вашего устройства, вы можете выбрать один из следующих вариантов:
Отключение
Если вы хотите временно отключить App Market, вы можете нажать на кнопку "Отключить" или "Деактивировать". Приложение будет скрыто с экрана главного меню и не будет автоматически обновляться или отображаться после перезагрузки устройства.
Удаление
Если вы хотите окончательно удалить App Market с вашего устройства, вы можете нажать на кнопку "Удалить" или "Деинсталлировать". Приложение будет полностью удалено с вашего смартфона Realme, и вы больше не сможете получать обновления или использовать его.
Важное замечание: Перед удалением App Market
Удаление App Market может привести к некоторому функциональному ограничению устройства Realme, так как некоторые системные приложения могут быть зависимы от нее. Поэтому рекомендуется резервировать важные данные и создать точку восстановления перед удалением приложения.
Заключение
Следуя приведенным выше шагам, вы сможете отключить или удалить App Market на смартфонах Realme. Однако, учитывайте возможные ограничения после удаления приложения.
Удалить китайские приложения APK Скачать бесплатно для Android
Возможно, вы видели множество китайских приложений на телефонах Android, которые бесполезны и занимают место. Итак, у нас есть приложение, известное как «Удалить китайские приложения». Это поможет вам полностью удалить все ненужные приложения с ваших телефонов.
Он удаляет все виды китайских приложений с ваших телефонов, будь то системные приложения или другие. Большинство таких приложений бесполезны, и иногда вы не можете удалить их со своих телефонов. Потому что они встроены и предлагаются производителем.
Большинство пользователей не понимают этого языка, поэтому нет смысла держать их в телефоне. Кроме того, они бесполезны и в основном предназначены для нативных пользователей. Итак, загрузите приложение Remove China и установите его на свой телефон, чтобы избавиться от подобных вещей.
Что такое удаление китайских приложений?
Удаление китайских приложений — это инструмент, который сканирует ваше устройство, чтобы найти бесполезные приложения. Кроме того, они занимают много места на ваших устройствах, но не дают вам никаких полезных функций.
Но вы не можете удалить их со своих телефонов. Однако, используя этот инструмент владельца One Touch App Labs, вы можете легко удалить их со своих устройств.
Я уверен, что миллионы людей ищут такое программное обеспечение. Потому что большинство телефонов Android по всему миру производятся либо в Китае, либо китайскими компаниями.
Таким образом, большинство компаний добавляют продукты на свои смартфоны, чтобы получить спонсорство. Но в основном это такие раздражающие и иногда довольно рискованные.
Эти вещи несут ответственность за ненужную рекламу, ссылки для взрослых, рекламу и другие опасные вещи. Более того, некоторые из этих вещей используются для извлечения данных пользователя, что довольно рискованно и угрожает конфиденциальности пользователей.
Поэтому важно удалить эти приложения с помощью China App Remover. У вас также есть возможность удалить владельца приложения в Китае. Это полезный инструмент, который вы собираетесь любить.
App Подробнее

Как удалить китайские приложения с телефонов Android?
Процесс прост, и вы можете очень легко использовать это удивительное приложение «Удалить китайские приложения». Вам не нужно много работать или проходить какой-либо сложный процесс.
Просто загрузите и установите приложение «Удалить приложения из Китая» на свои телефоны. Запустите приложение на своих телефонах и нажмите на опцию сканирования, чтобы узнать, сколько китайских приложений на вашем устройстве.
Он выдаст вам список, в то время как есть опция удаления слишком правого Infront для каждого сканированного программного обеспечения. Итак, просто проверьте, полезно ли это или нет, а затем нажмите на кнопку удаления. Вот и все, теперь ваше устройство будет свободно от этих вредоносных файлов.
Как избавиться от вредоносных приложений?
Большинство китайских приложений состоит из вредоносных файлов и других проблем, которые могут повредить ваши данные и телефоны. Кроме того, они используют для показа рекламы для взрослых и ненужной рекламы.
Это потребляет батарею вашего устройства намного быстрее и занимает огромную часть памяти на мобильных телефонах Android. Так что шансов удалить их с телефонов практически нет.
Но, используя China App Remover на своих мобильных телефонах, вы можете легко и просто избавиться от подобных вещей. Однако для этого вам необходимо скачать Remove Chinese Apps Apk с этой страницы и установить его на свои телефоны для сканирования таких вредоносных приложений.
Как использовать Удалить китайские приложения?
Для того, чтобы использовать это приложение, вам необходимо установить Remove Chinese Apps Apk. Но сначала вы должны скачать его файл Apk с этой страницы. Мы предоставили прямую ссылку для скачивания прямо здесь, в конце этой страницы. Итак, нажмите на эту ссылку и подождите несколько секунд, чтобы загрузчик заработал.
Это легкое приложение, которое можно скачать в течение 1-2 минут. Таким образом, вы не должны ждать так долго. Итак, после того, как вы закончите процесс установки, просто откройте этот инструмент на своих телефонах и нажмите на кнопку сканирования.
В течение нескольких секунд вы узнаете, сколько приложений на китайском и сколько из них являются вредоносными или бесполезными.
Но есть некоторые проблемы с этим программным обеспечением. Он сканирует все в ваших приложениях и обнаруживает каждое китайское приложение. Но не каждое сканируемое приложение является вредоносным или бесполезным. Он обнаруживает такие игры, как PUBG Mobile, Call of Duty Mobile, TikTok и некоторые другие.
Таким образом, они не являются вредоносными, и вам не нужно об этом беспокоиться. Таким образом, вы можете пропустить их и удалить те приложения, которые являются для вас анонимными.
Это безопасно?
Поскольку вы используете его для удаления ненужных китайских приложений, это безопасно. Так что иногда он обнаруживает системные файлы и там нужно быть осторожным. Потому что вы собираетесь повредить свои телефоны, если вы удалите такие системные приложения из ваших телефонов.
Итак, для этого просто откройте то каждое приложение, в котором вы сомневаетесь, что это системное программное обеспечение. Позже вы узнаете, безопасно ли это удалить. Вам не нужно вдаваться в подробности, просто запустите и проверьте, как это работает и что предлагает.
Заключение
В Индии люди сходят с ума от китайских продуктов. По этой причине они начали кампанию по бойкоту и прекращению использования этих продуктов, включая их приложения.
Более того, Тик Ток также столкнулся с такой же негативной реакцией пару недель назад. Google Play также удалил преднамеренные обзоры более одного миллиарда низких оценок и обзоров индейцев.
Тем не менее, это зависит от пользователей, каким образом они хотят использовать этот инструмент. Итак, мы поделились приложением здесь на этой странице для наших читателей. Если вы заинтересованы, то вы можете скачать последнюю версию Remove Chinese Apps Apk для своих мобильных телефонов Android.