Альтернативные прошивки для телефонов, роутеров и даже телевизоров. ¶
By: eprst on 2023-06-06 17 ч.
Почти любая современная железка полностью бесполезна без соответствующего программного обеспечения (ПО), оно же "прошивка". Устройство с неработающей прошивкой - это "кирпич", полезность которого близка к нулю. Любое устройство (телефон, телевизор, и даже
автомобиль) продаётся с уже имеющейся "заводской" прошивкой. И если в некоторых случаях это приемлемо (действительно, идея залезть с программатором в новую стиральную машину выглядит сомнительно, ибо непонятно что там имеет смысл менять), то в случае довольно большого класса устройств (телефоны, роутеры, ноутбуки...) наоборот - использование заводской прошивки это как минимум плохо, а во многих случаях и вовсе неприемлемо. Поэтому существуют "альтернативные прошивки" разных типов. Тут мы рассмотрим зачем и почему они нужны, какие бывают, и откуда берутся. Первые несколько частей - общие философские рассуждения, дальше - техническая часть.
2. Почему нужны альтернативные прошивки.
Если вы купите почти любое электронное устройство, и внимательно изучите договор, то обнаружите что по факту вы не купили. Это не договор купли-продажи вообще, а больше похоже на договор аренды. Да, железка - ваша, но ПО (как минимум bootloader (загрузчик)
и OS (операционная система)) вы не купили, а всего лишь фирма производитель дала вам временное разрешение этим ПО пользоваться. И ничто не мешает это разрешение обратно забрать, когда угодно. Никакого вашего согласия или вообще каких то действий не требуется. Единственная причина, почему это происходит редко - коммерческая выгода, удалённое окирпичивание слишком большого процента устройств производителем привидёт к снижению спроса на новые и падению прибыли. Обращаю особое внимание: это единственная причина, других нет. (Тут стоило бы привести список примеров, когда "купленные" устройства окирпичивались и он реально очень длинный, и это тема отдельной статьи.) Это значит, что сама формулировка "мой телефон" - принципиально ошибочна. Термин "мой" означает принадлежность, собственность, то есть возможность сделать с этим предметом всё что угодно. Приминительно к телефону с заводской прошивкой это полностью не верно: вы можете сделать с вашим телефоном только то, что производитель вам разрешит. Поэтому телефон, ноутбук или телевизор - не ваш, вам лишь разрешили им пользоваться. Так вот: альтернативные прошивки нужны для того, чтобы вернуть эту ситуацию в правильное состояние, то есть сделать устройство действительно принадлежащим вам, то есть вернуть вам полный контроль.
3. Что не так с заводскими прошивками ?
ВСЁ. Цель существования заводской прошивки - максимизировать прибыль производителя. У них вообще нет такой цели чтобы сделать что-то как удобно пользователю. Даже в тех ситуациях, когда технически можно сделать правильно - умышленно делается полное гавно, всё равно альтернатив нету а маркетологи впарят что угодно.
3.1 bootloader (загрузчик). В подавляющем большинстве устройств он не позволит вам просто так сменить прошивку. В оЙфоне это неисправимо (и никакой jailbreak не поможет, он лишь позволяет ставить приложения не из маркета, больше ничего). В андроидах обычно
можно (не всегда). Поэтому ДО того как купить устройство следует точно выяснить:
возможно ли "разблокировать bootloader" и установить другую прошивку. Если нет - то такое устройство не нужно покупать никогда, что бы там не писали про него купленые блогеры. Так что вся продукция Apple идёт фтопку сразу, дальше просто нечего обсуждать.
небольшое отступление: бывают исключения, когда даже оЙфон допустимо использовать:
Например в кардинге некоторые действия можно сделать только так. Поэтому нормально
купить оЙфон, сделать на нём свои дела (после чего он во всех банках попадёт в
блэклист по ID, но это пофиг, если выхлоп больше чем цена. Но в этих ситуациях
телефон не является средством производства, а выступает лишь как расходный материал.
3.2 Следующий шаг - привязка телефона к аккаунту. Чтобы сделать хоть что-то полезное с андроидом из магазин вам придётся содать google аккаунт, без него даже приложение не установить. Никаких объективных технических причин для этого нет, это чистый маркетинговый высер. На Apple так вообще полный абсурд: если я сам напишу приложение то не смогу запустить его на "своём" оЙфоне. Для этого для начала понадобится "лицензия разработчика" которая стоит $199 и выдаётся после идентификации личности.
3.3 Некоторые функции, которые очевидны и легко реализуются в альтернативных прошивках принципиально невозможны в заводских. Например смена идентификаторов телефона, полный бэкап системы целиком на sd карточку, получение root прав, скрытие root прав от
пидерастических приложений которые с ним не работают, удаление лишних "системных приложений". Например, купив андроид с предустановленным фкантактом и фейспуком, не получится его удалить, никак. Можно только "disable", но будет ли оно фактически
отключено это большой вопрос.
3.4 Нет исходников. Это значит, что вообще любые заявления производителей относительно любых свойств системы - фуфло, их невозможно доказать. Причём что характерно - часто маркетинговые высеры про "безопасность" (да и по любому другому поводу) оказываются тупо ложью, причём не просто ошибкой, а умышленной дезинформацией. (тут должен быть ещё один длинный список примеров, когда "безопасные" телефоны сливали всё сразу в несколько контор, и никого за это даже не уволили, не чтобы посадили.)
// Это далеко не всё, но уже этих пунктов достаточно чтобы понять почему заводские прошивки - дерьмище.
4. Откуда берутся альтернативные прошивки ?
4.1 Они бывают разные. Грубо можно считать что их 2 больших класса: модифицированные заводские и собраные из свободных исходников. Оба варианта имеют свои плюсы и минусы, и какой выбрать - зависит от применения. Первый вариант: хакеры взяли заводскую прошивку, выкинули из неё всё дерьмо, добавили полезный софт. Тут весь вопрос в квалификации тех, кто делал, результат может получиться отличный, а могли сделать хуже чем было. Главный плюс (и одновременно минус) - сохраняются бинарники, типа драйверов видео или тачскрина, в которых могут быть специфические функции, для которых просто нет открытых исходников. Типичный пример - поддержка стилуса (это такой специальный "карандаш" которым можно рисовать по экрану намного точнее чем пальцем). Или драйвера для видео, свободная версия которых может не поддерживать например аппаратное декодирование. В общем много чего может не работать в свободных прошивках: иногда и так на%%уй не нужное FM радио, или полезный GPS, в общем всё что угодно. То есть смысл модификации заводских прошивок - работают все функции которые есть в железе (точнее, которые работают в оригинальной
прошивке).
4.2 Второй вариант: полностью свободные. Внезапно, исходный код Android - открыт, что даёт почти неограниченые возможности. Кто угодно может взять исходники, изменить любым способом и так много кто делает. Есть минималистичный вариант: AOSP - это просто
Android, собраный из исходников как есть или с минимальными модификациями (как правило для того, чтобы заставить его работать на конкретном устройстве). Есть более продвинутый вариант: LineageOS и его многочисленные форки и неофициальные сборки. Их реально дофига самого разного качества. (этому следует выделить отдельную статью.)
5. Сравнение
5.1 В заводских прошивках (абсолютно всех) есть бэкдоры, которые туда запихнули все, через чьи грязные лапы проходила прошивка: производитель железа (платы телефона), фирма, которой этот производитель отдал написание прошивки на аутсорс, левые индусы, которые фактически писали код, фирма которая собирала всё в кучу прикручивая поверх свои логотипы, фирма которая продавала под своим брэндом, если в рашке то вообще сверху понаставили всякого "отечественного" говнософта. В общем бэкдоры там точно есть и с
этим ничего и никак нельзя сделать, поскольку доступа (root) нету. В свободных прошивках бэкдоры тоже могут быть, их тоже люди пишут со своими интересами. Но есть принципиальная разница: есть инструменты, которыми бэкдор можно сделать бесполезным, кто-то может его найти, выяснить кто автор (в open source так принято, что у каждой строчки кода есть конкретный автор, и его легко найти).
5.2 В открытых прошивках (во многих) есть функции которых принципиально никогда не будет в заводских: например вырезание рекламы, подмена IMEI, полное шифрование системы и т.п.
6. Не только телефоны.
Ага, кроме телефонов есть ещё "роутеры" (это которые интернет по WiFi раздают). Там эта тема не менее актуальна. Роутер - очень ответственное устройство, через него проходит трафик не только одного телефона но множества устройств, он видит кто на какие сайты лезет, видит MAC адреса (не только подключенных к нему телефонов, но вообще всего вокруг у чего есть WiFi: другие соседние роутеры, проходящие мимо по улице телефоны...) знает реальный IP адрес, может даже подменять трафик. Кроме того, прошивка подавляющего большинства роутеров расчитана на крайне низкую квалификацию пользователя (чтобы справилась даже американская домохозяйка), и в ней фиг что нормально настроишь. Ещё есть модемы (это которые втыкаются в USB, в них втыкается SIM карта). Там примерно тоже самое но ещё хуже, т.к. есть IMEI, от которого один сплошной геморрой. И не забудем про телевизоры, которые давно уже превратились
в подслушиваюшие устройства (внезапно, в пультах от некоторых телеков есть микрофон который типа для голосовых команд, но ничто ему не мешает весь звук слать куда угодно).
7. Правильная подготовка телефона.
7.1 Перед покупкой обязательно следует выяснить, есть ли нормальные прошивки под эту модель, сложно ли его перешить (бывает очень по разному). Тут бывают самые неожиданные сюрпризы, например в некоторых моделях (xiaomi) для разблокировки загрузчика надо зарегаться на сайте призводителя, скачать специальную прогу, выйти в инет с этого телефона через SIM обязательно воткнутую в этот же телефон. Да, потом можно перешить, но нужен ли такой геморрой ? Лучший вариант - это конечно купить телефон у которого с завода свободная прошивка (такие есть, например FairPhone).
7.2 TWRP (или чтото аналогичное, но если на телефон не ставится twrp то с ним что-то не так, и лучше выбрать другой. Это "recovery" - инструмент для установки и модификации прошивок. Полюбому необходимо. Используется для установки прошивок с sd карты, умеет
бэкапить всё (вместе с системой если надо) на sd карту. Позволяет установить несколько разных версий андроида и переключаться между ними.
7.3 Установить понравившуюся OS (ну или ту, которую получится установить), обычно это LineageOS, RessurectionRemix, и куча их форков. Не стоит гнаться за самыми последними версиями, это лишь добавит тормозилова и глюков. Для андроида (на момент написания статьи) это версии 7-9 в зависимости от железа. Тут всё конечно сильно зависит от того, для каких целей вам телефон...
7.4 Gapps большинство руководств рекомендует ставить. По факту за редкими исключениями они на&&уй не нужны, от них одно тормозилово. Исключение - если вам телефон для кардинга (запускать банковские приложения, которые не работают без gapps). Во всех
остальных случаях лучше либо совсем без этого дерьма, либо поставить MicroG (внезапно, правильно приготовленный magisk+lsposed+microG проходит safetynet, на нём работает GooglePay (и MirPay тоже) в том числе по nfc, (да, можно снять нал в банкомате с рутованого телефона без gapps)).
7.5 Приложения. Тут конечно дело вкуса, но если есть возможность обойтись свободным ПО - то так и надо сделать. Для начала - установить f-droid и из него уже ставить приложения. Для подавляющего большиства целей этого достаточно. Если уж прям необходимого
приложения нет в f-droid и нет альтернативы (в большинстве случаев есть) то можно установить AuroraStore - оно позволяет скачивать и устанавливать приложения из гугля не имея аккаунта гугля и не устанавливая GooglePlay.
7.6 Root: весьма рекомендуется. Большинство приложений конечно и без него работают, но для некоторых он необходим. Бывает разный: "системный" и magisk. Первый вариант малофункционален и вообще устаревший. Magisk ставится почти на любую прошивку, имеет
кучу модулей для самых разных целей.
8. Приложения для андроид
8.1 Месседжеры:
8.1.1 Jabber (xmpp) клиенты
Conversations очень хорош, но к сожалению начиная с некторой версии (давно) из него выкинули поддержку OTR, вместо него там OMEMO. Действительно, сам omemo крут, но всё таки не все клиенты его поддерживают, и может так оказаться что ваш собеседник
использует например PSI+ и поэтому вы сможете писать только без шифрования. Поэтому всё таки лучше ставить Conversations Legacy, это форк старой версии, где всё еще был OTR. Conversations Legacy умеет оба: OTR и OMEMO, и в целом нет причин его обновлять.
ChatSecure когдато был очень хорош, и некоторые по привычке до сих пор используют. Чтобы установит нужно в настройках f-droid включить репозиторий Guardian project Archive. Xabber - совсем старьё, глючит на современных устройствах но зато может работать на
совсем древних андроидах, начиная с четвёртого.
8.1.2 Остальные
Briar - лучший выбор для организации ОПГ, апофеоз паранойи. (про него есть отдельная статья).
Tox клиенты: TRifA, aTox. До недавнего времени были очень глючными, и сейчас не на всех телефонах стабильно работают, но в большинстве случаев всё нормально. Умеют голосовые и видеозвонки, чистый p2p (серверов нет), почти всё хорошо кроме одной мелочи (которая не факт что недостаток, во многих случаях это плюс): при взаимном добавлении в контакты устанавливает соединение напрямую, то есть собеседник может увидеть ваш реальный IP.
e-mail: Тут K-9 вне конкуренции, смело сносите все дефолтные почтовые клиенты, этот умеет всё что надо, включая pgp шифрование.
Звонилка: В первую очередь фтопку дефолтную звонилку (disable, иногда бывает всё же нужна чтобы отправить USSD). Обязательно заменить на нормальную VOIP (Linphone). Да, разговаривать через VPN не очень удобно из-за задержки (для этой цели стоит иметь отдельный VPN в рашке (или той стране куда часто звоните). Зато есть VOIP конторы на выбор (zadarma, sipnet, и ещё куча), акк можно зарегать самому или купить. Цена на звонки будет примерно такая же или ниже. Да, придётся платить 2 раза: опсосу за LTE трафик и VOIP за звонок, но зато при правильной настройке можно спокойно звонить в фсб и сообщать что на вокзале бомба (это
кстати хороший способ убедиться что у вас всё правильно настроено).
SMS вообще нах не нужны. Для этого есть сервисы в интернете (для одноразовых) или лучше воткнуть симку в USB-LTE модем, который умеет менять IMEI, выехать в лес и там работать с смс (это если требуется чтобы симка была под вашим контролем).
8.2 Браузеры
Тут как обычно полный разброд и шатание. Есть несколько точно нужных, остальные по вкусу.
Tor Browser. Прям так и ставится из f-droid. Клиент TOR содержит в себе, отдельно ставить ORBOT (как раньше) не нужно.
Privacy Browser - просто нормально настроеный для большинства случаев, реклама вырезается, куки, javascript, и прочая бяка по дефолту выключены, но легко включаются обратно для каждого сайта по отдельности.
IceCat Mobile - старый firefox, каким он должен быть. Несмотря на преклонный возраст вполне исправно работает.
Остальное: бывает, что кривые глючные сайты в нормальных браузерах не работают, это потому что их авторы - пидарасы. Допустимо установить на такой случай Chrome, но не в коем случае не как основной.
8.3 VPN.
По правильному VPN должен запускаться на роутере, и по wifi раздаваться уже пропущенным через VPN, так что любые телефоны независимо от прошивки, да хоть оЙфоны никак не отправят ничего напрямую, и сами не смогут увидеть свой реальный IP при всём желании. Но всякое бывает, вы можете оказаться гдето с одним телефоном а интернет только в халявный в задрипаной кафешке. Так что настроеный VPN на телефоне нужен, но этот аварийный вариант а не для постоянного использования. Для этого ставим дефолтный OpenVPN (и если ваш VPN сервис работает со своим приложением - то скачиваем сертификаты для OpenVPN а если так не получается то шлём такой сервис на%уй). Все что нужно от VPN сервиса - это параметры подключения (ip, port, сертификаты), никакие приложения не нужны, и если вам скажут иначе - это враньё. Бывают еще сервисы с поддержкой других протоколов (типа WireGuard), тут аналогично - ставим официальное приложение протокола, прописываем ключи от сервиса. Лучший вариант - это разумеется свой собственный VPN сервер, купить самую дешёвую виртуалку (примерно $4/мес) установить на выбор любой линукс, OpenWRT или pfSense (это тема отдельной статьи).
8.4 Остальное
Не лишним будет bitcoin кошелёк для мелочи прям на телефоне: Electrum есть под андроид.
FreeOTP+ для двухфакторной аутентификации.
GhostCommander - файловый менеджер (есть варианты (total commander)). К нему удобные плагины
(SFTP, SMB) которые позволяют копировать файлы на сервера с ликуксом (по sftp) или в
виндовые "расшареные папки" (по smb).
Hacker's keyboard - нормальная клавиатура
NetMonitor - посмотреть какие приложения куда лезут (на какие сайты)
ObscuraCam - вырезает EXIF из фоток, замыливает рожи.
OpenCamera - нормальная, правильная камера, с кучей настроек, не щёлкает при съёмке.
RealCalc - правильная замена дефолтного калькулятора
SecScanQR - сканер штрихкодов
SyncThing - вообще не понимаю как без него обходятся и почему нет в дефолтном андроиде. Это
для синхронизации содержимого папок между любыми устройствами. Например настраиваете чтобы
содержимое DCIM/OpenCamera синхронизировалось с вашим домашним компом. Делаете фотку и она
тут же (как только есть интернет хоть какой нибудь) отправляется на комп (или на второй телефон,
можно сделать между телефонами в обе стороны, и вообще как угодно).
Transdroid - управлялка скачивалкой торрентов. На компе дома ставить скачивалку торрентов
(transmission, qbittorrent) и с телефона можете добавлять закачки, удалять, ставить на паузу.
как только очередной большой торрент скачался - на телефоне будет уведомление.
Trigger - открывалка дверей. Да, сначала нужно поставить электромеханический замок и правильно
его настроить, но зато на расстоянии от дома можете подключиться к wifi, и удалённо открыть.
Что прикольно, в двери может вообще не быть замочной скважины и ручки. Разумеется с криптографией
там всё как надо, и кто попало не откроет.
WiFi Analyzer - посмотреть какие wifi сети вокруг, на каких каналах, mac адреса точек доступа...
Wrong PIN Shutdown - выключает телефон после 3 неправильных вводах pin кода.
FakeGPS - подменяе ваши координаты. Не все приложения работают, многие банки так не нае%ешь. Но
всё таки иногда полезно.
Insular (форк Island) - делает work profile - то есть позволяет иметь 2 копии одного приложения
(например 2 копии приложения одного банка с разными аккаунтами внутри).
NeoBackup - бэкапы данных приложений. Если TWRP делает бэкап всего раздела data (всех приложений
одновременно) и такой бэкап занимает несколько гигов, то этой прогой можно бэкапить выборочно
только нужные приложения.
8.5 Модули Magisk и Xposed - будут в отдельной статье.
8.6 развлечения
SkyTube
YouTube Vanced
Thorium
VLC
9. "Роутеры"
Тут 2 основных варианта: OpenWRT ставится на большинство роутеров, кроме совсем гавнища, а pfSense ставится на x86 старые компы. pfSense заслуживает отдельной статьи, но с точки зрения функциональности они аналогичны, трудно придумать что-то что умеет OpenWRT и не умеет pfSense, и наоборот тоже. Но интерфейс сильно отличается, и есть свои особенности, что делает иногда один из них более удобным. "роутер" с заводской порошивкой чисто формально не является роутером (и поэтому в кавычках), т.к. просто не имеет главной для этого функции: маршрутизации (роутинга) пакетов. Что умеет OpenWRT и не умеет "роутер" из магазина (могут быть исключения, но если в них конкретно разбираться то сравнение в любом случае будет в пользу OpenWRT):
9.1 MultiWAN - то есть подключение к нескольким провайдерам одновременно, и настраиваемые пользователям правила какой трафик через каких провайдеров слать. Типичная ситуация: на роутере настроен WAN Ethernet (для подключения дома проводом), в USB можно воткнуть LTE модем или второй USB-WiFi адаптер в режиме клиента подключится к соседскому WiFi (угадать пароль) или к халявному WiFi в кафешке (взять с собой powerbank чтобы запитать роутер прям в рюкзаке). А можно и одновременно все эти 3 интернета включить.
Правила могут выглядеть примерно так: если подключен провод - слать весь трафик туда, если нет то поровну балансировать нагрузку между оставшимися (ага, можно воткнуть несколько модемов если надо).
9.2 Принудительный пропуск всего трафика через TOR/VPN (причём разные устройства по разным правилам). Обычно на роутере запущен OpenVPN клиент, и любой трафик от телефонов (и чего угодно подключеного по WiFi идет через VPN). Кроме того, запущен клиент TOR, и любой трафик на .torify.net сайты идёт через него. То есть, на клиентсяких устройствах (телефонах, ноутбуках) не надо даже ставить tor browser: можно вообще в любом браузере (хоть в дефолтном ie) зайти на .torify.net сайт.
9.3 MultiSSID Это когда роутер делает несколько разных WiFi сетей, с разными правилами. Например можно пускать трафик через разные выходные ноды (разных стран) в зависимости от того, к какому wifi ssid подключен клиент. Бывает очень удобно когда надо иметь выходной IP то в одной стране то в другой: просто подключается к другой wifi сети и готово.
9.4 Установка произвольного софта. Да, на OpenWRT можно установить почти любую прогу, которой хватит ресурсов (*****U, RAM). Можно самому писать и запускать программы прямо на роутере, на куче разных языков: lua, php, python и даже erlang.
9.5 Вырезание дерьма (рекламы, следилок). Заблокировать всякие там вкантакт, мордокнигу и прочее подобное фуфло - легко. И даже на дефолтном оЙфоне или умном телевизоре не будет рекламы.
9.6 Подмена MAC. Когда на телефоне не ловит gps (в помещении) есть способ приблизительного определения геолокации по ближайшем WiFi точкам. Для этого есть базы MAC адресов с их привязкой к координатам (их сами пользователи и составляют, когда мимо вашего дома проходит ктото с оЙфоном где включен gps и wifi одновременно, MAC адрес вашей точки отправится в apple. Но это и в другую сторону работает: можно легко найти MAC и SSID какой нибудь кафешки в USA, и прописать в свой OpenWRT такие же. При некоторых условиях окружающие телефоны подумают что они в USA (если другие способы не сработают, типа gps не ловит, сотовая тоже).
9.7 Нестантартные каналы WiFi. Сейчас эфир засран очень сильно, практически в любом месте вокруг десятки WiFi точек. Но они следуют правилам: в рашке например разрешены каналы 1-13 и мощность до 100мВт. А в других странах другие правила, например можно выставить регион япония или боливия, там нет ограничений и можно выбрать канал 14, (который будет полностью свободен) и наслаждаться скоростью WiFi такой, как она должна быть. (не на всех моделях работает, часто есть аппаратное ограничение).