SMS-вирус под ОС Android или «Привет 🙂 Тебе фото…»
*Оригинальная картинка, наглым образом вытащеная из ресурсов apk
[прим. apk — расширение файла установки приложения на ОС андроид]
Вступление
1. Подготовка
Поверхностно поискав в интернете информацию, было установлено, что ссылка в смс сообщении является ничем иным, как адресом на загрузку apk файла. А apk файл — вирусом «Trojan.SMSSend», заражающий мобильные устройства под управлением ОС Android. Главные задачи данного «зловреда» — перехватывать управление устройством и использовать его в своих целях: блокировка исходящих вызовов, отправка сообщений «с приветом» и другие мелкие пакости.
Перейдя по ссылке из браузера я благополучно получил ответ «403 Forbidden».

Понятно, значит, стоит фильтр по браузеру. Что ж, буду проверять «на кошках», как говорится.
Недолго думая, решил «положить на алтарь науки» свой планшет Samsung Galaxy Tab 2. Сделав бэкап, со спокойной совестью нажал на кнопку «Общий сброс». На всякий случай убедился, что на sim-карте нет денег и приступил к установке.
2. Установка
Захожу в настройки, в пункте меню «Неизвестные устройства», убираю галочку «Разрешить установку приложений из других источников, кроме Play Маркет».
Перейдя по ссылке из смс-сообщения, получил предупреждение браузера, следующего характера:

Соглашаюсь и нажимаю кнопку «Продолжить». Скачалось приложение F0T0_ALB0M.apk:

Устанавливаю. Ужасаюсь количеством permission (разрешений). Операционная система любезно предупреждает:
Но я же не ищу легких путей, поэтому, «скрепя сердце», ставлю галочку «Я понимаю, что это приложение может нанести вред».
Когда приложение запрашивает права администратора, понимаю, что это последний этап. Нажимаю «Отмена», но диалог появляется снова. Эх, была не была, буду идти до конца, и нажимаю «Включить».

3. Вирус-приложение
Само приложение состоит из одной активити-картинки с обреченным котенком. Наверное таким образом разработчик пытался пошутить.

В этом месте, я немного забегу вперед (см. п.6) и приведу, код AndroidManifest.xml для лучшего понимания статьи.
В диспетчере приложений наш «зловред» гордо именуется «Google Play».

4. Удаление?
Благополучно заразив устройство, перехожу к фазе лечения. Сначала пробую удалить приложение. Захожу в «Диспетчер приложений» и вижу, что все кнопки заблокированы.

Понятно, значит, у приложения имеются права администратора и так просто удалить его не получится. Не беда, сейчас я их уберу. Захожу в пункт меню «Безопасность»->«Администраторы устройства» и убираю галочку напротив приложения.

Но, нет, не тут то было. Устройство благополучно переходит в настройки управления WiFi и зависает. Пришлось «прибивать» окно настроек.

Дальше хотелось решить вопрос «на корню», так сказать, и воспользоваться общим сбросом системы. Ну да, легко мне выбирать такой вариант — мои личные данные в бэкапе хранятся.
А как же обычные пользователи? У которых «внезапно» любимый телефон заразился вирусом. Они ведь даже исходящего вызова знакомому «тыжпрограммисту» не сделают. В общем, читерство это, не буду так делать.
Итог: штатными средствами нейтрализовать угрозу не удалось. Подключаем «тяжелую артиллерию».
5. Dr Web против вируса
Памятуя про хорошую лечащую утилиту «Dr.Web CureIt!», решил бороться с зловредом с помощью аналога под Android. Захожу на официальный сайт и качаю бесплатную версию антивирусника «Dr.Web для Android Light 9».
Устанавливаю, по WiFi обновляю сигнатуры.
Запускаю быструю проверку ― ничего.
Запускаю полную проверку ― тоже ничего.
Я разочарован! Печально вздохнув, удаляю антивирусник.
UPD от 6.09.14. На данный момент антивирусник успешно опознает данный зловред под детектом Android.SmsBot.origin.165. Алгоритм удаления такой же, как и при использовании Avast (см. ниже).
5. Avast против вируса
Скачиваю и устанавливаю версию «Avast-Mobile-Security-v3-0-7700».
При старте запускается экспресс-сканирование, которое никаких вирусов в системе не находит.

Ну и ладно, мозг подсказал очередную идею: вот есть какой-то пункт меню «Управление приложениями», а что если…
Да, действительно загрузился список приложений в системе.

Пункта «Удалить» нет. Поэтому, пробую остановить приложение. Остановилось.
Жду 2-3 секунды, приложение снова в работе.
Ладно, попробую с другой стороны. Запускаю принудительную проверку системы. О_о, обнаружено вредоносное ПО. Нажимаю «Устранить все» [прим. как-то это звучит в духе Дарта Вейдера или Далеков]. Avast сообщает, что удалить приложение не может, а нужно сначала отобрать права администратора у приложения. Появляется системный диалог:
И сразу же, поверх этого диалогового окна открывается «злополучное» окно настроек wi-fi. Нажимаю «Возврат», снова открываются настройки. Хорошо, хоть окно настроек не зависает.

Опять на тропу читерства меня толкают. Будем искать другое решение…
6. Реверс-инжиниринг
Посмотрим в исходный код приложения, благо на Android это не такая большая проблема. Много всего интересного…
Например, в классе SystemService указан url сайта lamour.byethost5.com (дизайн-студия).
Но больше всего мне понравился класс AdminReceiver, который является наследником системного класса DeviceAdminReceiver.
В этом классе есть переопределенный метод onDisableRequested, который срабатывает при отключении админполномочий для данного приложения. Полностью заблокировать кнопки в системном диалоге нельзя, поэтому разработчик вируса пошел на хитрость, он изменил текст сообщения на «Удалить все данные с устройства и вернуть заводские настройки? Нажмите «Да» если согласны, или «Нет» для отмены» и обильно прикрыл сверху назойливым окном настроек.
Бинго. Значит теперь я смело смогу нажать в данном диалоговом окне «Удалить» и планшет будет «здоров».
Послесловие
Таким образом, выполнив повторно пункт 5 данной публикации (не останавливаясь на последнем шаге), вирус версии 4.0 (согласно манифест-файлу) был побежден.
Почему не удалось напрямую из настроек убрать галочку админправ для приложения, а только используя Avast? Скорее всего, стоит очередная ловушка с переопределенным методом.
Выводы
Разработчики вирусов находят все новые лазейки.
Но, так или иначе, браузер и операционная система стали лучше защищать пользователей.
Мне необходимо было нажать 2 подтверждения и поставить галочку в настройках «Неизвестные устройства».
Как «заразить» Android смартфон вредоносным ПО
Телефон принесли в сервис, уже наверное, третий за неделю с вирусом, который рассылается через смс с другого заражённого устройства, при этом также списываются деньги с карт. Удалив вредоносное приложение через безопасный режим, решил повторить те действия которые необходимо выполнить, что бы «заразить» устройство. У меня просто нет слов…

фото.apk, это прям как девид_гетта.exe. Как же я задолбался всем мозги вправлять с этим в своё время) Нестареющая классика) На фейспальм уже нет сил)
ребзя, это ж экранизация древней копипасты. странно, что её ещё никто не запостил:
Пару месяцев назад в очередной раз чистил знакомому телефон от вирусов, знакомый ныл о том, что ему пришла вирусная смска и его слабозащищенный самсунг не выдержал этой ужасной атаки.
«Может я что то не понимаю в этой жизни?» — подумал я, и уже почти успел забыть об этом случае, как вдруг сегодня днем мне пришла заветная смска загадочного содержания.
Имея в руках старый телефон я убедился насколько все таки слаба защита, поскольку для полного заражения моего телефона винлокером мне потребовалось сделать всего пару простых шагов:
1 Открываем смс
2 «Ваш браузер опера устарел, пожалуйста скачайте его обновления пожалуйста перейдите по данной ссылке»
3 Игнорируем факт отсутствия браузера «Опера» в системе, переходим по ссылке
4 «Напоминаем вам о том, что переход по ссылке может вызвать боль и страдание. Вы уверены что хотите перейти?»
5 Да конечно, я уверен
6 Внимание! Браузер хром обнаружил что данная ссылка является вредоносной, в целях безопасности мы рекомендуем немедленно уйти с данной страницы»
9 Внимание, установка файлов напрямую а не из плей маркета может привести к заражению вашего телефона туберкулезом, пожалуйста не ставьте приложения которым не доверяете.
11 Для установки приложения требуется включить настройку «Установка приложений не из плей маркета. Включите ее пожалуйста»
12 Включение настройки «Неизвестные источники» потенциально подвергает ваш телефон опасности, вы уверены что хотите ее включить?
14 Приложение «Браузер опера требует от вас следующих разрешений:
Доступ к вай фаю, доступ к смскам, доступ к звонкам, доступ к файловой системе, код от банковской карты, ключи от квартиры, вашу почку в качестве донорской а вашу собаку для проведения опытов»
16 Внимание! Приложение «Обновление для оперы» требует администраторских прав к устройству. Это подразумевает что приложение сможет делать с вашим телефоном ВООБЩЕ ЧТО УГОДНО. Давайте админский доступ ТОЛЬКО приложениям которым вы доверяете
18 О ГОСПОДИ НА МОЕМ ТЕЛЕФОНЕ ВИРУС! ЧТО ЖЕ ДЕЛАТЬ ТЕПЕРЬ ОН ПРОСИТ ДЕНЕГ ЗА РАЗБЛОКИРОВКУ ДА ЕЩЕ И НА ЦЕЛЫЙ 1 КОНТАКТ ИЗ КОНТАКТ ЛИСТА ОТОСЛАЛ ТАКУЮ ЖЕ СМС. КАК ТАКОЕ МОГЛО СЛУЧИТЬСЯ?
18 кликов, 18 КЛИКОВ, КАРЛ!
Товарищи имеющие опыт заражения, поясните мне что я делаю не так?
древняя шутка про вирусы на Линукс — сам скачай, разожми из архива, configure, make, make install, а затем еще и сам запусти

НИЧТО НЕ ПРЕДВЕЩАЛО =)
Буквально, глянул на вредоносную смс, а оно уже установлось
Подлость от Хуавей. Замена стекла на 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. Да, я люблю подобные девайсы собирать в эдаку экосистему))


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!
Pochinochnay отзыв
У меня есть телефон OnePlus 5. Ему уже 6 лет. Он до сих пор отлично работает, но после того как утонул года 3 назад, не сразу видит зарядку, а быстро вообще не заряжается. Я его давно хотел починить, но имел плохой опыт с мастерскими до этого, как-то обманули меня пару раз. Да и телефон не широко распространённый, большинство сервисов просто с ними не работают.
Увидел в пикабу посты @Pochinochnay, и решил попробовать. Пару дней назад написал им в ватсап, мне ответили что надо менять разъем, а лучше нижнюю плату, займёт времени час, и указали стоимость.
Сегодня я был в тех краях, нашёл их в картах. Немного посомневался, куда заходить — вход гостиницы «Тверская», но почти сразу увидел их баннер.
Что в итоге — телефон сдал, получил через час, заплатил столько сколько написали в ватсапе. Поменяли мне нижнюю плату, телефон заряжается, и от быстрой зарядки тоже. Дали гарантийный договор на 90 дней.
Про Пикабу я не упоминал, так что отношение ко мне было как к обычному заказчику.
Ни о каком отзыве меня не просили, решил написать просто потому что хочу чтобы больше было информации о честном и качественном сервисе. Это просто трындец, сколько в Москве жуликов, надо как-то помогать людям их избегать.

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное 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, банально решил «забить» на поддержку собственного устройства. И я лично считаю, что не стоит закидывать в долгий ящик их тем читателям, которые купили когда-то себе подобный девайс и забили, смирившись с отсутствием гайдов.
Немного энтузиазма, опыта и видения будущего проекта — и все получится 🙂

Обновление HDMI Tester`a RUNA для ремонта телевизоров
Для тех, кто не видел прошлые части, в кратце: тестер предназначен для быстрой диагностики телевизора или других устройств. А именно: замер сопротивления hdmi, usb, проверка пультов, эмуляция сервисных пультов и терминал, для чтения лога и ввода команд. Подробно описано в инструкции в телеграмм канале(ссылка в конце поста).

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

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

Замер сопротивлений внешне тоже изменился. Теперь нельзя выбрать вывод информации в вольтах или омах, только омы. Это было сделано для того что-бы не путать людей. А именно вывод информации в вольтах наводил на мысль о том что меряется не сопротивление, а падение напряжения, что в корне не верно и было написано много раз. Были добавлены шкалы, которые заполняются в зависимости от сопротивления.

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

Так же были убраны лишние настройки и расширены старые.

Ну и перейдем к сладкому, а именно расширению функционала терминала. А именно добавляются терминальные команды.

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

Почти одноплатник за 400 рублей: как применить дешёвый ТВ-стик 10-летней давности?

Официальная цена на последнюю модель Raspberry Pi составляет около 40$ за штучку. Однако купить её за такую цену невозможно, перекупы накручивают огромные ценники за одноплатники, основным преимуществом которых должна быть цена. И даже альтернативы от китайских друзей в виде Orange Pi или Banana Pi стоят как минимум 3-4 тысячи рублей, что по карману может быть не каждому. Но сейчас на барахолках можно найти старые и дешевые ТВ-стики по совершенно смешным ценам: 2-4$ за штучку, иногда даже с пультом и всеми кабелями. Почему бы не попробовать использовать их в качестве доступных одноплатников? Предлагаю попробовать.
Железный вопрос
Дисклеймер: Хотя такой стик вполне можно считать одноплатником, но прямым конкурентом RPi он не является — здесь нет GPIO. Спасибо за понимание.

Ещё в нулевых люди интересующиеся embedded и разработкой собственных устройств осваивали такие микроконтроллеры, как AVR и PIC32. Но область применений микроконтроллеров довольно узкая, если речь заходит о каких-то серьёзных применениях по типу быстрой обработки показаний с датчиков или реализации собственных компьтеров/игровых консолей. Конечно на рынке уже были DSP — цифровые сигнальные процессоры, которые были во много раз быстрее обычных микроконтроллеров и использовали все преимущества концепции VLIW (которая, кстати, применяется в отечественных процессорах Эльбрус), но раздобыть девкит, а тем более распаять его самому было настоящей проблемой для одиночек или даже небольших предприятий.

Поэтому с появлением одноплатных компьютеров всё стало гораздо проще: мы получаем вычислительные мощности среднего планшета/медиаплеера, но при этом, выполнено это всё в форм-факторе одной небольшой платы, где уже есть всё необходимое: подведено питание ко всем необходимым модулям, разведен USB-хаб, есть выходы на дисплей/телевизор и иногда на звук. Другим серьёзным преимуществом является открытость системы: в подобных платформах обычно используется Linux в том или ином виде (Android, десктопных Linux) или другие операционные системы. Производитель обычно предоставляет всё что нужно для разработки своих приложений и устройств на подобных платформах, в том числе исходники загрузчиков, device tree, исходный код ядра, а также полную схему устройства — это называется Open Source Hardware.

Я и сам давно интересовался одноплатниками, но, к сожалению, цены на них мягко скажем кусаются. Если искать какие-то старые и слабые модели по типу Raspberry Pi Zero, то даже на них цены конские (от 2.500 рублей на момент написания статьи). Приятный сюрприз сделали Orange Pi, выпустив в своё время 2G IoT с чипсетом RDA8810 за
700 рублей, но его производство было прекращено около года назад. В один день, я смотрел объявления на авито/юле и приметил интересный девайс, коим оказался NoName ТВ-стик на чипе Rockchip RK3028A. Цена была указана более чем демократичная, всего 400 рублей. Не раздумывая, я забрал его для дальнейших экспериментов.

Характеристики
Когда я получил устройство, я удивился с его размеров: в небольшой корпус размером со флэшку умудрились засунуть полноценный и довольно мощный ARM-компьютер! Включив его, я практически сразу понял, в чём был недостаток: циклическая перезагрузка на логотипе. Из кнопок на устройстве была только Fn, которая ничего не делала, даже если включить устройство с ней. Кнопки RESET я также не нашёл. Пришло время его разобрать, благо сделать это не сложно: весь корпус держится на клипсах, которые нужно аккуратно расщелкнуть пластиковой картой.
Перед нами открывается вид платы, которую можно легко вытащить.


Из того, что мы видим, мы можем сделать следующие выводы:
Процессор: Rockchip RK3028A (RK302A) с двумя ядрами Cortex-A9, работающими на частоте 1.2ггц и графическим ускорителем Mali-400.
Память: 512 мегабайт, судя по всему, DDR2, одной банкой.
ПЗУ: NAND-чип Hynix H27UBG8T2CTR-BC 4гб. Есть место под eMMC, практически готовое к установке чипа (припаяны BGA шары).
Вход на питание: 5в, среднее потребление до 0.5А при пиковой нагрузке. Стик способен питаться даже от порта USB на ПК. Выходы на питание OTG и USB-портов тоже 5 вольт, а не 3.3 как на смартфонах.
Один полноценный USB 2.0 порт с питанием 5в + дополнительный порт USB-OTG для подключения к ПК или выведения дополнительного USB-хоста (с него тоже можно питать плату)
Слот MicroSD для расширения памяти, до 32гб SDHC
Что-то похожее на UART для диагностики платы (предположительно, обведено в синий прямоугольник).
Ну, и само собой, HDMI для передачи видео (до 1080p 60FPS) и звука
Прошивка
Прошивку пришлось поискать: название устройства я нашёл, это некий MK805II, родной прошивки на который найти не удалось (в том числе, по номеру платы). Но поскольку ромы TV-боксов практически идентичные и в них нет зависимости от тачскринов/дисплеев/расположений GPIO (обычно они построены на базе референсной платы), я принялся искать другие боксы на этом чипе. Попутно найдя даташит, я узнал, что RK3028A — это полный аналог RK3026 (отличие в корпусах — 3026 в LQFP) и BatchTool они определяется как RK301A (родственник RK3066). После недолгих поисков, я нашёл DEXP LD303, который работал на том же чипе и на той же версии Android. Прошивка в формате img скачана, пора прошивать устройство.

Но сначала в режим прошивки нужно войти. Для этого у процессоров Rockchip есть два режима: LOADER (стандартный прошивочный режим, который можно активировать зажав кнопку RESET) и MaskedROM (для прошивки новых устройств, только-только сошедших к конвейера и где память пока ещё пуста. Активируется, если загрузчик первого уровня не может найти загрузчик второго уровня). Если кнопки/контакта RESET у нас нет даже на плате, то остаётся только MaskedROM, который активировать очень легко, если у вас NAND память: необходимо просто замкнуть I/O линии иглой. При чтении загрузчика, процессор получит бессвязный набор байтов и сам перейдет в режим MaskedROM, тут то мы и сможем его прошить. I/O линии можно найти в даташите к вашему чипу памяти.

Замыкать можно любой из этих 4х пинов между собой.
Замыкаем контакты, подключаем устройство со стороны разъема OTG (на DC IN линии USB не разведены) к компьютеру. Устанавливаем драйвера.

И запускаем RkBatchTool.

Как только устройство будет обнаружено и драйвер правильно установлен, мы сможем прошить устройство. Жмём кнопку Restore (именно её, а не Upgrade) и ждём, пока программа запишет новый загрузчик, перезагрузит устройство в LOADER-режим, отформатирует память и запишет новый образ системы.

Всё, процесс прошивки завершен, бежим втыкать наш одноплатник в HDMI телевизора, подключать питание и ждать загрузки. Заработало! Для первичной настройки понадобится мышь, которую можно подключить в обычный USB-порт.
По итогу мы получили стабильно работающий TV-стик на базе Android 4.2. Не сказать, что система очень свежая, но тоже вполне ничего, на неё всё ещё можно жить. Попробуем найти ему применение. Ниже будут именно фото, а не скриншоты для того, чтобы вы могли увидеть как оно смотрится в действии, ну и потому что нет встроенного скриншоттера.
Тонкий клиент
Применений у такого стика есть масса, и одно из них — тонкий клиент. Помните, были такие машинки раньше? Это небольшие компьютеры, которые обладают минимальными характеристиками (процессоры ARM, Geode, MIPS, небольшой объем ОЗУ, в качестве ОС — Linux/WinCE), предназначенные для подключения к более мощным компьютерам/серверам и работы с них. При этом, тонкий клиент занимается обработкой ввода, выводом картинки, сетью и иногда умеет автономно выполнять часть задач и может комплектоваться жёстким диском.

Такой стик тоже можно использовать в качестве компактного тонкого клиента, подключив его сзади монитора. Выводим хаб, подключаем периферию и ставим клиент RDP. Я смог без проблем подключится к основному ПК и пользоваться им. Кроме того, Android поддерживает некоторую другую USB-периферию: потенциально, даже внешние Ethernet сетевые адаптеры. К слову, Wi-Fi на стике реализован в виде USB-свистка, припаянного к плате. Выводить такой ТК сможет картинку вплоть до 1080p, чего должно хватать всем.
Игровая приставка

2 ядра на частоте 1.2ггц и Malii-400 — весьма неплохие вычислительные ресурсы для игр. О современных Modern Combat и Call Of Duty Mobile можно забыть, но кто сказал, что на таком стике будет не во что играть? Android полностью поддерживает USB-геймпады в любом количестве, так что из устройства выйдет неплохая машинка для игр. А вот для каких?

Не так уж и много Android-игр начала десятых поддерживают геймпад. Из некоторых — почти все части Asphalt и другие игры Gameloft, некоторые игры на Unity, GTA (который, к слову, будет тяжеловат для игры даже в 720p на Mali400). Но те, что поддерживают, обычно работают неплохо. Кое где придется повозиться с настройками графики.
И с эмуляторами дела обстоят вполне ничего: денди/сега/PS1 проявляют себя хорошо. Увы, игры с PSP или Ps2 консоль не потянет: смотрите в сторону устройств с Amlogic S905X.

Компактный сервер
Да, это не шутка. На устройстве можно развернуть сервер, в том числе и файловый. Или разместить на нём персональную страницу — кто на что горазд. У устройства есть поддержка USB-HDD или флэшек.

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

Самый очевидный пункт, ведь даже производитель называет это устройство медиаплеером. Впрочем, не для всех могут быть очевидны большинство возможностей данного гаджета. В список того, что сможет такой стик сейчас входит не только проигрывание музыки или видео в качестве до 1080p, но и DLNA-медиасервер и возможность использовать что-то типа Invidous для просмотра YouTube.

MP4 h263, 1080p30
Сейчас в магазинах техники до сих пор продаются бюджетные телевизоры без поддержки возможностей Smart-TV, так что если бюджет очень сильно ограничен, а получить смарт-устройство хоть в каком-то виде хотелось бы, то чем не вариант? У некоторых ТВ-боксов (именно боксов), есть и аналоговые выходы, что позволяет подключить их даже к старым ЭЛТ-телевизорам. Наверняка тут есть кто-то, кто до сих пор фанатеет по тем здоровым телевизорам, размером с шкаф и весом в пару сотен килограмм?

Подведем итог
Похоже на то, что старенькие ТВ-стики всё ещё могут послужить человеку хорошую службу и остаться полезными даже спустя 9-10 лет после их выпуска. Благодаря копеечной цене, поддержкой вывода изображения в FHD и наличию нескольких USB-хостов, подобные устройства могут оказаться крайне полезными на даче, в гараже или даже в офисе, особенно если есть нужда в тонком клиенте. Теоретически сюда есть возможность установить обычный десктопный linux, даже на отдельную SD-карту, но из-за малого объема ОЗУ и слабого, по меркам десктопного Linux, процессора, работать он будет так себе. Однако на барахолках стремительно дешевеют более мощные устройства на S905X и восьмиядерных, свежих RockChip’ах!
Конечно назвать это устройство полным аналогом RPi нельзя: тут нет гребёнки с GPIO. Но это не значит, что их нельзя реализовать самому: у нас есть потенциальный UART, у нас есть USB-хост, а значит с помощью самодельного GPIO Expander’а, мы сможем рулить пинами условной ардуины так, как нам нужно. Если вас заинтересовало такое устройство — то вперед на барахолки, выбор действительно большой.

Я купил смартфон с камерой 41мп за 600 рублей и оживил его. Сможет ли он стать повседневным фотоаппаратом?

Камера уже давно стала неотъемлемой частью современного смартфона. Ещё со времен ранних Sony Ericsson, производители пытались делать «камерафоны» и постепенно доводили качество фото до уровня дорогих «цифровиков». В 2023 году, развитие дошло до пика — например, Xiaomi ставит линзы Leica, а Huawei делает смартфоны с камерами 50+ мегапикселей и многие люди уже на полном серьезе берут камерофоны в качестве полноценной замены бюджетной зеркальной камере. Качественная фотография — недешевое удовольствие, однако недавно я наткнулся на Nokia Lumia 1020 с камерой 41мп в состоянии полного кирпича всего за 600 рублей. Сегодня мы с вами: разберемся, как работает процесс загрузки на процессорах Qualcomm, оживим смартфон с убитым загрузчиком в состоянии 9008, посмотрим, на что способен такой смартфон в современных задачах и оценим его камеру. Интересно? Тогда жду вас в статье!
❯ Покупка
Мобильная ОС Windows Phone в своё время были весьма перспективным игроком на мобильном рынке. Microsoft активно вкладывала силы в разработку новых устройств и версий этой системы, при этом продолжая «гнуть» свою линию касательно дизайна и опыта от использования мобильной системы. Немудрено, что у WP на пике её развития было довольно много почитателей, которые использовали систему до самой её смерти (формально — в 2016, фактически — в 2018).

Microsoft просто необходимо было заручиться поддержкой серьёзного производителя для того, чтобы конкурировать с устройствами на iOS и Android. Этим самым производителем стала
Nokia, мобильное подразделение которой когда-то перекупили Microsoft. У финского производителя было довольно много направлений, где они стремились найти своего покупателя и камерофоны — одно из них. Если говорить конкретно о смартфонах с революционной камерой — то первенцем стала Nokia 808 PureView, который по совместительству стал последним смартфоном на ОС Symbian. Смартфон работал на базе последней версии Symbian Belle, имел дисплей AMOLED с технологией ClearBlack, работал на базе бодренького (но не флагманского) чипсета от Broadcom, а вишенкой на торте была камера аж на 41мпкс.

Спустя год, Nokia приняла решение выпустить новый камерофон, в этот раз, уже на базе стремительно развивающиеся Windows Phone 8. Помимо свежей ОС, смартфон оснастили весьма серьёзным по тем временам железом — Qualcomm MSM8960, 2гб ОЗУ и 32гб ПЗУ, AMOLED-дисплей с HD-разрешением, а также камерой на всё те же 41 мегапиксель с системой оптической (не программной) стабилизации.

Недавно я снова листал барахолки в поисках чего-то интересного и приметил Lumia 1020 в состоянии кирпича за 600 рублей. Человек писал, что пытался разблокировать загрузчик и в конец добил смартфон, а как отремонтировать его теперь — не знает. Сказано — сделано, я заказал девайсик, а когда он пришел ко мне — начал ковыряться и пытаться оживить.

❯ Ремонт программный
При подключении к ПК, устройство успешно определилось системой, причём в режиме Qualcomm 9008 aka QHSUSB_DLOAD — сервисный режим. Но перед тем как мы перейдём непосредственно к ремонту, нужно понять принцип работы загрузчиков на устройствах Qualcomm. После подачи питания на чипсет, он начинает выполнять так называемый BootROM — или первичный загрузчик, который записан производителем на заводе в ПЗУ чипа. Этот загрузчик невозможно повредить или изменить, поскольку он буквально «прожигается» и навсегда остается в каждом экземпляре чипа (этим пользовались при взломе старых iPhone, где находили уязвимости в BootROM и делали джейлбрейк). Задачей BootROM является найти в одном из источников и загрузить вторичный загрузчик, который в свою очередь проинициализирует оборудование (ОЗУ, eMMC) и начнёт процесс загрузки системы.

Первичный загрузчик может пытаться найти вторичный на любом из носителей — eMMC память, NAND память, USB и даже MicroSD-флэшка (это требуют наличия прожженного с завода фьюза в процессоре и работает не везде. Именно благодаря этому появились образы debrick для Galaxy S4/S4 Mini). И когда по каким-то причинам (например, неудачная прошивка или отвал памяти) BootROM не может найти вторичный загрузчик (в случае Nokia — Lumia BootMgr), он «сваливается» в режим 9008 — или режим низкоуровневой загрузки прошивки. Окирпиченый до такого состояния смартфон обычно нельзя прошить обычными средствами, поэтому некоторые мастера прибегают к помощи программатора, а другие — к помощи фирменных программ от производителя чипсета, коими являются QFIL и отчасти thor2.

Свежие люмии даже в состоянии полного кирпича может восстановить WDRT — Windows Device Recovery Tool, но с моделями 2013 года и ниже он не справится, нужно действовать самому. Устанавливаем WDRT (с ним идут необходимые драйвера и программы), открываем командную строку и идём в папку с установленной программой:
cd C:\Program Files (x86)\Microsoft Care Suite\Windows Device Recovery Tool\
Теперь ищем прошивку для нашего устройства в формате ffu (можно легко найти в интернете, например на lumiafirmware), а также emergency-файлы. Если найти их не получается, то можно скачать их с помощью попытки восстановления WDRT (однако он все равно не сможет сам восстановить устройство) — найти их можно будет в «C:/ProgramData/Microsoft/Packages». Конкретно для 1020 я уже нашёл emergency-файлы и выгрузил на свой диск. Кидаем полученные файлы в папку с WDRT.

Переключаемся на командную строку и выполняем вот такую команду:
thor2 -mode emergency -hexfile «FAST8960_EOS_ROW.hex» -mbnfile «RM875_msimage_v1.0.mbn» -ffufile «имя нашего ffu с прошивкой»
После этого пойдет процесс прошивки и thor2 сделает всё сам. Смартфон несколько раз перезагрузится — в первый раз на «красный экран», второй раз уже в систему. Вот и всё!
Важно также отметить, что если смартфон определяется как USB-HID — это не значит, что он не работает, просто АКБ упала в глубокий разряд и смартфону нужно время на то, чтобы её «растолкать».
Что же происходит в процессе прошивки? Сам по себе процессор в режиме 9008 делать ничего не может — он ожидает от thor2/QFIL специальной программы-программатора (которая занимается инициализацией ПЗУ/ОЗУ) — ей и является FAST8960_EOS_ROW.hex. Кроме программатора, нам нужен вторичный загрузчик — которым является файл RM875_msimage_v1.0.mbn. Он содержит в себе всё что нужно, чтобы смартфон мог загрузится до режима прошивки фирменными средствами производителя смартфона, конкретнее — таблицу разделов GPT, вторичный загрузчик, recovery раздел, реализация UEFI если это Lumia и т.п. После того, как thor2 восстановит загрузчик и перезагрузит смартфон, он прошьет смартфон обычной ffu прошивкой и на этом восстановление будет закончено. Смартфон снова ожил!
❯ Смотрим на смартфон
Как я уже говорил ранее, смартфон работает на базе ОС Windows Phone 8. Через некоторое время после выхода, на него вышло обновление до WP 8.1, но в текущих реалиях обновляться на неё никакого смысла нет. К сожалению, сейчас кое-как живёт и барахтается только Windows Mobile 10, которую в разы проще джейлбрейкнуть и под которую до сих пор выходит новый софт (в основном — клиенты приложений). За WP8 после 2016-2017 года как будто все забыли…

Магазин уже несколько лет как не работает, а просто установить приложения как условные apk нельзя. Ситуация очень близка к WP7. Однако есть способ сделать Interop Unlock (джейлбрейк) и устанавливать XAP-приложения, хотя толку от этого немного — большинство клиентов различных сервисов давно не работает, хотя, например, немногочисленные годные игрушки с WP7 сюда встанут без каких либо проблем.
Давайте же посмотрим, какие немногочисленные возможности всё ещё остались у этого смартфона «из коробки»:

Вот и весь магазин.
С звонками смартфон справляется неплохо. Для жителей центральных регионов может стать приятной плюшкой то, что у смартфона есть поддержка LTE и даже в качестве звонилки он всё ещё может неплохо поработать. Минусы тоже есть: нет поддержки VCF из коробки, а значит контакты нужно предварительно экспортировать на SIM (в WP 8.1 такая возможность есть).

А ещё тут очень удобное приложение для СМСок и почты. Всё очень круто анимировано и работает действительно быстро, ни о каких лагах и речи нет. Принимать СМС-ки от банков? Легко!

Но не звонилкой же мы едины. У смартфона нет поддержки MicroSD флэшек, но это компенсируется довольно большим объемом встройки — целых 32гб ПЗУ, на тот момент это было очень много. А чем эту память можно забить кроме фотографий и видеозаписей? Конечно же музыкой! Смартфон определяется как Nokia PC Suite (последней версией для WP7), так что можно синхронизировать плейлисты, а можно просто подключить смартфон как MTP-устройство и накидать музыки/видео напрямую. Как с проигрыванием видео, так и с воспроизведением музыки он справляется отлично.

Причем аудиотракт здесь действительно вполне ничего. До уровня BlackBerry (а те вообще похоже пытались впихнуть Hi-Fi плеер в телефон) не дотягивает конечно, но звучит очень и очень достойно, даже лучше чем Galaxy S4. Поддержка BT тоже, конечно же, есть. Как плеер смартфон очень неплохо подойдет и не нужно сравнивать его с дешевыми кнопочниками: те звучат в разы хуже.

Карты Here уже к сожалению не работают. Да и Internet Explorer Mobile уже безвозвратно устарел и ничего современного не откроет. Тоже самое в целом можно сказать про Edge в WM10, но тот хоть что-то открыть может.


И всё же обидно получается, смартфон так шустро работает но из-за закрытости, система не получила жизни и померла сразу с окончанием официальной поддержки. Грустно, а ведь всё так хорошо оптимизировано даже для слабых устройств!
❯ Фотовозможности
И конечно же куда без описания фотовозможностей! Это же камерофон и тут надо не рассказывать, а показывать. Однако всё же нужно сказать о том, что у смартфона аж три приложения камеры (два от Nokia и один от Microsoft), он умеет сохранять фото в Raw, у него есть полноценный HDR (причем он сохраняет несколько фото с разной экспозицией) и он умеет снимать видео 720p/30FPS с применением той самой оптической стабилизации. Часть фото ништяков на люмию вы могли увидеть в моих майских статьях. В общем, смотрим:








А вот так он снимает видео:
Полный фотосет можно посмотреть на imgur. Весьма достойно, согласитесь? И это при том, что я всё фотографировал на авто. Профессиональный фотограф сможет выжать из люмии ещё больше!

Игровая консоль по цене шаурмы: Можно ли купить живую приставку за 300 рублей?

В наше время, 300 рублей (4$) — совсем небольшие деньги. Большинство считает, что за эту сумму можно разве что плотно перекусить стритфудом, или пару раз съездить на такси, не говоря уже о покупке какой-то техники. Но всяческие барахолки всё ещё могут удивить: недавно я купил полноценную игровую консоль на Android с целым корпусом, дисплеем и кнопками всего за 300 рублей, которая висела на заставке. Ну а поскольку контент моих статей обычно связан с подручным ремонтом, то без фена, паяльника и дата-кабеля конечно же не обошлось! Интересно, на что способна консоль по цене шаурмы? Тогда добро пожаловать под кат!
Предисловие

В наше время принято считать, что только Nintendo из большой тройки продвигает портативный гейминг, в то время как Sony давным-давно ушла из этого направления (и это после оглушительного успеха PSP!), а Microsoft особо даже и не пыталась, ограничившись функциями Xbox и поддержкой DX11 в смартфонах на Windows Phone. Но так или иначе, на рынке всегда присутствовали игроки «помельче» — различные компании, которые выпускали свои консоли почти не имея собственной библиотеки игр или студий, опираясь лишь на эмуляторы. Двумя такими компаниями были JXD, выпускавшие чуть ли не 80% всех консолей для российского ритейла (EXEQ, Smaggi и.т.п) и Yinlips (Turbo Games, Emote, Func, !QU).

Хотя обе компании предлагали кучу разных моделей на любой вкус, из-за общей бюджетности устройств у них иногда всплывали несерьезные, но неприятные железные болячки: то Wi-Fi плохо ловит или вообще отвалится, то переключатель блокировки кнопок залипнет, то АКБ через год перестанет держать. Но в отличии от Vita, или 3DS, которые на вторичке сейчас стоят почти как новые в своё время, «китайцы» продолжали только падать в цене и в 2023 они стоят очень дешево. Так я и взял некую Turbo Games за 300 рублей, которая оказалась перемаркированым Yinlips YDP G18A (ревизия на AllWinner A10).

Основная фишка этой консоли в чипсете — A10 не только сам по себе неплохой чип для старых игрушек, но на нем есть возможность запустить обычный Debian, причём без каких-то особых проблем! Однако моя консоль висла на заставке и никак не хотела входить в рекавери. Будем ремонтировать!
Подобные консольки разбираются очень легко: либо четыре винтика на задней крышке, либо четыре винтика по ободкам. В моем случае пришлось слегка поработать дрелью, т.к консоль лежала где-то в сарае и винтики были заржавевшими. Тем не менее, приставка не была утопленником и в неё явно никто и никогда не лазил до меня. Отпаиваю старую и нерабочую АКБ, припаиваю нормальную и пытаюсь зайти в recovery.

А толку то нет! Консолька продолжает висеть на заставке. Ну, бывает и такое, качаем прошивку вот отсюда и фирменный флэшер livesuit отсюда. Запускаем LiveSuitPack, он распакует программу и установит драйвера. Зажимем кнопку reset на консоли (снизу, спрятана) и подключаем к ПК. Опа, ПК увидел консоль, это уже хорошо. Но как бы я не пытался, флэшер не видел устройство, а логов нигде не было! Я уже даже нашел пятачки RX/TX и хотел смотреть UART. Но косяк оказался хардварным: изначально я даже не подозревал отвал т.к консоль вела себя адекватно: инициализация ОЗУ проходила нормально, артефактов не было, с NAND загрузка тоже была. Но на одном форуме, сервисник тоже описал такую проблему с аллвиннером, с теми же симптомами. Подключил плату к ПК, придавив проц к плате и кто бы сомневался — пошёл шиться с первого раза 🙂

Диагностический прогрев подтвердил диагноз. Поскольку трафаретов A10 и навыков такого сложного реболла у меня нет, решение одно: налить флюса под процессор, заклеить весь пластик на плате термоскотчем и аккуратно прогреть феном под прямым углом, на температуре
200-250гр с небольшим потоком воздуха, около 30-40 секунд. Стоит быть осторожнее с совсем маленькими SMD-компонентами: чтобы не сдуть их случайно, лучше их тоже проклеить термоскотчем и оставить в прямой видимости только сам чип (в моём случае они были большими и я особо не боялся). Прогреваем чип, подключаем дисплей, подпаиваем АКБ и вуаля: плата ожила!

Поскольку я не первый раз грею портативные устройства, то я обязательно провел тест на тряску: потряс плату отдельно во время работы, потряс саму консоль в сборе — всё работает нормально и стабильно, никаких артефактов или зависаний/произвольных ребутов. Однако, важно отметить что прогрев — не полноценный ремонт (хотя олдовые сервисники часто писали в солюшках именно reheat, а не rework). Прогрев, конечно, поможет консоли пожить и возможно даже проработать не один год, но среди сервисников такая практика считается не очень хорошей.

Почему чипы отваливаются? Нет, тут причина не такая же, как у видеокарт. Мобильные чипы обычно не отваливаются «сами по себе» от нагрева, в отличии от GPU, зато очень чувствительны к падениям, особенно будучи горячими: скорее всего, эта консоль когда-то была ударником, после чего нарушился контакт BGA-шаров и она перестала работать. Как продлить жизнь гретому чипу? Не допускать его перегрева: а значит мы устанавливаем CPU-Master и принудительно заставляем ядро тормозить чип с стоковых 1.2ггц (на которых он довольно горяч) до «холодных» 600-800мгц, а ещё это продлит жизнь от АКБ. Для эмуляторов нам этого хватит с головой. Заодно я заменил АКБ с родного мертвого, на вполне живой от LG Leon на 2600мАч и почистил стик, который тут всего один и дублирует DPAD по какой-то причине.

Ну что-ж, после всех манипуляций (которые с учетом того, что я не сразу нашел проблему заняли день, если по факту ремонта — справился за полчаса-час) консолька полностью рабочая. Но как она себя проявит по прямому назначению? Давайте смотреть!


Вообще, у этой консоли вполне себе неплохие характеристики даже в наше время: одноядерный чипсет на частоте 1.2ггц (у нас уже 800мгц), 512мб ОЗУ, 4гб ПЗУ под ромы. Вполне себе можно разгуляться (а при наличии навыков — припаять второй чип NAND, например, с USB-флэшки). Разрешение дисплея выше чем у PSP в 2 раза — 480×800, но выполнен он по технологии TN. Из лично моих придирок — тачскрин резистивный. И это не проблема, если бы он был нормальный: резистивные тачи никогда не бывают полностью прозрачными и слегка «серят» картинку, что видно и в нашей консоли. А ещё в неё невозможно играть при солнечном свете: на дисплее вообще ничего не видно. Но в остальном, дисплей вполне себе ничего: более-того, он даже ремонтнопригодный и такой же дисплей можно выцепить с автомобильного навигатора, если разобьётся родной!

Работает девайс на базе Android 2.3 Gingerbread. Однако, есть возможность апгрейда до 4.0 ICS, правда толку от этого немного: лично мне 2.3 кажется удобнее. Из коробки есть ROOT доступ.
Для большинства эмуляторов старых платформ консолька подойдет идеально: есть полуаналоговый стик, тактильно кнопки весьма неплохие и не западают, стики удобные. На родной прошивке есть возможность замаппить физические кнопки на точки на экране, что позволяет играть в игры без поддержки геймпада. Во всем остальном — геймпад симулирует клавиатуру и это хорошо: в тех эмуляторах, что я пробовал, все хардварные кнопки определялись нормально.
Стандартный набор в виде NES и Sega Mega Drive работают безупречно и из коробки. Мне пришлось только назначить кнопки:

Артефакт из-за скриншотера, в эмуляторе все норм

Девайс тянет и более тяжелые игрушки от NeoGeo и кое-как справляется даже с N64! У меня часто раньше спрашивали, сможет ли китайская консолька справится с N64 — с твиками да!
Всё таки, получить полноценный гаджет за 300 рублей вполне возможно. И он даже сможет приносить пользу при относительно небольших трудозатратах (а иногда они вообще сводятся к сбросу устройства из рекавери до заводских настроек). Я уже всерьез начал коллекционировать китайские консольки: у меня есть JXD S7100, S7300, S5100, S5300, S601 (была), а теперь к ним добавился и вот такой Yinlips!
А вы как считаете? Купили бы подобную консольку за пару соток?

BlackBerry Passport за 2.500 рублей в 2023 — шедевральный QWERTY смартфон. Справится ли с повседневными задачами?

В наше время каждый год выходят десятки, если не сотни самых разных моделей новых смартфонов, но по настоящему диковинные и интересные из них лишь единицы. Apple немного подтянет железо и добавит фишечку, Xiaomi представит очередную занимательную технологию, которая ещё не пошла в серию, а небольшие бренды продолжают клепать совершенно одинаковые смартфоны. Однако, когда-то была одна Канадская компания, у которой почти каждое новое устройство было необычным и в чем-то диковинным. И сегодня я предлагаю посмотреть на венец творения этой компании — BlackBerry Passport, который обошёлся мне в 2.500 рублей и который я использую в качестве основного смартфона! На что способен флагманский смартфон на базе Snapdragon 801 и с 3гб ОЗУ из 2014 в наше время? Сегодня узнаем!
❯ Покупка
На этот раз предысторию смартфона я рассказывать не буду: кое-что из истории BB я рассказал в прошлой статье оBlackBerry Z30.
Недавно stupidmadworld выпустил видео о BlackBerry и в нём было довольно много неточностей (не осуждаю его, у меня тоже бывают опечатки), но особенно негативно он «проехался» по Passport. Сложилось впечатление, что девайс он купил в коллекцию или чисто для вида, не попытавшись его использовать в реальных условиях. Поэтому в этой статье предлагаю сосредоточиться на самом устройстве и его перспективах в наше время, ведь подобный форм-фактор легко может привлечь моего читателя!
Моим первым смартфоном от BB стал Curve 9360, который я купил всего за 300 рублей на известной онлайн-барахолке. Несмотря на удручающее состояние устройства, моя симпатия к BB продолжала только расти, а подогрел интерес читатель с Хабра, который заслал списанные из офиса PlayBook и инженерный прототип Z10 DevAlpha A (его уже не активировать). После этого я купил себе Z10, заодно прихватив Z30 за 500 рублей (копейки же!) и всё завертелось… Что стало с Z30, вы можете узнать из вот этойстатьи.

BlackBerry Torch 9800
Через некоторое время мне написал читатель с Хабра и предложил заслать несколько списанных из офиса девайсов, коими были BB Playbook и инженерный прототип BlackBerry DevAlpha A (который на TI OMAP). После того, как девайсы были получены, а я безуспешно попытался активировать DevAlpha A (она была не активированной) и поискать баги в самых разных версиях прошивки, я решил купить себе Z10 за 1.000 рублей и Z30 за 500 рублей. Как мы с вами знаем, Z30 позже стал моим основным смартфоном аж на месяц вперёд, опыт его использования я написал в этойстатье.

Ежевичная семья: Z30, Passport, 9360
После этого, мне написал мой подписчикGamersReview, заядлый фанат BlackBerry и скинул ссылку на объявление с разбитым Passport’ом, сказав, что он уже договорился и человек отдаст его за 1.500 рублей. Конечно же брать девайс-ударник — отчасти рулетка, но поскольку гаджет действительно интересный и стоит того, я решил рискнуть. Через неделю гаджет пришёл и отправился на полку ждать дисплей, заказанный с AliExpress за 1.000 рублей (прямую ссылку оставлять не буду, дабы не сочли за рекламу, но если нужно будет — пишите в ЛС).

❯ Ремонт

Как только дисплей приехал, сразу же сел перебирать смартфон. Я перебрал с сотню мобилок, но BB разбирал первый раз и меня сразу же удивило… насколько он продуман! Никакого клея, никаких герметиков, никаких танцев с феном вокруг устройства, всё сделано крайне продумано на винтиках и клипсах. Весь гаджет можно перебрать за 10 минут одной лишь отверткой, благодаря модульности. Начинается всё со снятия крышечки с слотами под SIM и MicroSD и заглушки в нижней части клавиатуры. Прошлые модели, кстати, имеют похожую концепцию с заглушками:


После откручивания винтиков, заднюю крышку остается лишь аккуратно снять, используя пластиковую карту или инструмент для разбора корпусов. Всё, вся плата как на ладони!

АКБ сразу же отключаем (шлейф, закрепленный винтиком), и выкручиваем остальные винтики с платы. Сам аккумулятор приклеен, его можно снять, потянув за язычок, либо аккуратно подсунув пластиковую карту под его дно.

Дисплей, судя по надписи «Easy Pick» и отклеенной фольге, уже когда-то меняли, да и это было заметно на этапе снятия крышки. 🙂 Откручиваем винтики, которые крепят металлическую рамку с дисплейным модулем и клавиатурой, и разделяем клавиатуру с дисплеем (их держат два винтика).

Дальше всё в обратном порядке: прикручиваем клавиатуру к новому дисплейному модулю (не забываем переместить разъем 3.5мм и датчики, если на вашем модуле их нет), одеваем рамку, устанавливаем плату, АКБ, заднюю крышку, заглушки и устройство собрано! Всё это занимает минут 10. Инженеры BlackBerry, мой поклон вам за такую конструкцию без клея. Кстати, даже в Priv они сохранили подобную конструкцию и там тоже устройство можно разобрать без фена.
Включаем смартфон, дисплей работает, тачскрин работает! Здорово! Но, девайс был на пароле, а контакт продавца был утерян. Что ж делать, спросите вы? 10 раз неправильно ввести пароль (или просто прошить устройство последней прошивкой автолоадером)!
Безопасность — одна из главных фишек BlackBerry. Если ввести неверный пароль 10 раз, то устройство перезагрузится,глубокимформатированием очистит весь пользовательский раздел (даже несмотря на шифрование, весь процесс занимает около 10 минут) и сбросится до заводских настроек.

После этого, устройство окажется на этапе активации (извиняюсь за качество фото).

Доходим до этапа активации Wi-Fi, откладываем активацию и сразу же в хабе запускаем процесс снова. Доходим до подключения Wi-Fi, быстро жмём 3 раза кнопку включения — должен активироваться диктор. Двумя пальцами тапаем два раза по дисплею и начинаем водить пальцем справа налево, пока не услышим «Skip activation». Как только услышали — делаем два тапа двумя пальцами и мы должны увидеть экран обновления. Он чутка повисит на поиске обновления и затем устройство будет полностью активировано — без напоминаний. Насколько я знаю, так можно активировать устройства и с BB Protect. Теперь наконец-то смартфон активирован и работает без каких либо проблем!

Такое провернуть можно с любым устройством на BlackBerry OS10, кроме первого прототипа Z10 (DevAlpha A).
Если голосовой диктор не появляется, то обновите устройство хотя бы до 10.2. Сделать это можно автолоадером (ищем «<модель> 10.3 autoloader», ставим BB Link, запускаем автолоадер и подключаем выключенный смартфон. Он сам обновит прошивку. В случае Z10 убедитесь, что качаете автолоадер для своей ревизии — там было 4 ревизии, одна из которых на другом чипсете).
Я использую Passport в качестве основного смартфона на протяжении двух недель и успел составить своё впечатление от этого, безусловно, крайне необычного устройства. Здесь нужно привыкать ко всему: QWERTY-клавиатура с смещенной русской раскладкой, дисплей с «квадратным» соотношением сторон, широкой форме самого устройства. Можно ли им пользоваться «на каждый день»? Давайте узнаем!
❯ Тактильные ощущения
Как вы уже могли заметить, смартфон очень широкий — обхватить его в одной руке бывает проблематичным. Однако разработчики рассчитывали, чтобы покупатель пользовался устройством именно двумя руками, как и любым другим QWERTY-смартфоном. И если первые дни пользования ты достаёшь Passport со страхом того, что ты его не удержишь и он упадёт на асфальт, то уже через неделю начинаешь чувствовать его габариты и рельеф и привыкаешь.

Тоже самое касается и весьма необычной клавиатуры, ведь возможности вызвать экранную «для подстраховки» нет — пользуйся только хардварной. И если англоязычная раскладка здесь стандартная, то русскоязычная немного отличается от общепринятой. Например, «ю» вынесли в верхнюю правую часть клавиатуры, а некоторые символы предлагается вводить двойным нажатием. По началу ты набираешь слова по несколько секунд, а спустя недельку-две начинаешь летать по мобильной клавиатуре почти так же, как и по обычной десктопной и понимаешь, в чём же эта магия QWERTY клавиатур и почему её не могут заменить всякие Taptic Engine. Кроме того, инженеры BB знали, что на привыкание понадобится некоторое время и добавил авто-исправление слов и словари. Поэтому даже новичок сможет писать достаточно грамотно и быстро.

Но поскольку клавиатура здесь не на 104 клавиши и даже стандартных для QWERTY-смартфонов Ctrl/Shift/Alt тут нет, то переключение языков, часть символов и управление регистром решили вывести как маленький кусочек тачпад-клавиатуры. Кто-то может поспорить с таким подходом и сказать: «да это же не тру-кверти!», но в целом, когда привыкаешь, то понимаешь что это удобнее, нежели тыкать десять сочетаний на компактной клавиатуре. Перед инженерами BB стояла задача не разместить полноценную клавиатуру на 104-клавиши, а сделать компактную, но при этом удобную клавиатуру, где поместились только символы и некоторые управляющие кнопки (backspace, enter, пробел). И у них получилось!
Кроме того, инженеры BlackBerry не хотели оставлять пространство клавиатуры бесполезным во время «повседневных» задач типа скроллинга ленты или просмотра веб-страниц и сделали клавиатуру… сенсорной! Причём эта фишка сохранилась и в Priv, и в устройствах от TCL (BB KeyOne/KeyTwo). Таким образом, если вы держите смартфон в одной руке, вы можете листать ленту/страницу просто проводя пальцем по самой клавиатуре. Да и сама клавиатура поддерживает некоторые жесты: например свайп справа налево удалит текущее напечатанное слово. Клавиатура поддерживает мультитач: страницы можно зумить, водя пальцами по клавиатуре. Крутотень!
Что же касается тактильных ощущений от остальной части смартфона, то на задней крышке нас ждет металлическая полоска и мягкий софт-тач пластик, которыйне испортилсяза 9 лет с момента выхода устройства. Сама рамка смартфона выполнена полностью из металла (причём хорошего, а не фольги, от падения он не прогибается и не облупливается), а стекло смартфона слегка закруглено по краям, что дает приятный эффект а-ля S6 Edge. Причём даже после неоднократной разборки и падений зазоры остались минимальными и без всякого клея: никаких люфтов или скрипа я не заметил. Смартфон спроектирован и собран очень добротно: немудрено для смартфона за 700$!
Но если смартфон тактильно очень классный, то как у него дела с железной начинкой? Тут тоже был «полный фарш». За 700$, BB предлагали топовый 4-ядерный чипсет Snapdragon 801, работающий на частоте до 2.5ггц, с полной поддержкой LTE, аж 3гб ОЗУ (в тот год столько получал разве что Galaxy Note) и 32гб памяти c поддержкой microsd, что дает очень большой плюсик производителю. Чипсет, скажем так, довольно горячий, но система эффективно расходует ресурсы даже на более слабых устройствах, поэтому ситуаций «снапдрагон грееца, можно зимой вместо батарей использовать» здесь немного. Я заметил только две: тяжелые игры и съемка FHD видео в 60 FPS. В остальные моменты, устройство либо холодное, либо едва теплое.
Все эти приложения остаются в фоне и не выгружаются. Можно спокойно занять минимум 2 страницы (по 6 приложений в каждой) и ничего лагать не будет. Снято на камеру 30FPS, учтите это.
Работает смартфон на базе собственной ОС BlackBerry — BB OS 10, которая за всё время существования получала целых 3 мажорных апдейта для всех устройств, даже самых первых! Самая лучшая из них — 10.3, поскольку в ней есть поддержка приложений для Android 4.3 JellyBean. Вероятно, кто-то возразит и скажет «да как на нём жить» и ответ будет прост — легко 🙂
❯ Использование или выживание?
Давайте разбираться. Что нужно большинству людей для комфортного повседневного использования смартфона? ВК, Telegram, WhatsApp/Viber, браузер, YouTube, музыка и камера — верно? Сможет ли со всем этим справится 9 летний флагманский смартфон?
Начинаем конечно же с соц. сетей и мессенджеров. И в BBOS 10 с этим нет никаких проблем — несмотря на отсутствие многих мессенджеров для BB10 нативно, инженеры BlackBerry реализовали слой совместимости (это не эмулятор, а именно «порт» окружения Android и отчасти Linux под BB) Android Runtime, который позволяет запускать многие приложения для зеленого робота, с максимальной поддерживаемой версией 4.3. Тут важен один момент: поддержка 4.3 появилась только в последней версии ОС — 10.3, до этого поддерживался лишь Android 2.2. Если у вас не устанавливаются приложения — то качаем автолоадер, прошиваем устройство (это безопасно) и всё будет работать. APK ставятся напрямую из проводника или браузера, с этим никаких проблем нет.

И Telegram, и ВК просто летают! Производительность не сравнить с современными смартфонами до 6-7-8 тысяч рублей. При этом с физической клавиатуры действительно гораздо удобнее печатать в мессенджерах, это совершенно иные ощущения. Да, нужно будет привыкнуть, но потом ты понимаешь, что так даже удобнее:

Браузер тут, конечно, устарел (можно поставить хром или лису прошлых версий, они будут работать относительно нормально, но у меня были болячки с скроллингом хрома), но кое-что загрузить всё ещё может. Например, можно полистать Хабр. А вот Пикабу браузер уже не загрузит, разработчики Пикабу идут вслед за современными веб-стандартами! Проблемы будут и с чтением DTF.

Вот так выглядит Пикабу:

В браузере полноценно работает YouTube. К сожалению, NewPipe Legacy уже не работает, поэтому нативный клиент можно получить разве что с моей реализацией. Но посмотреть видео можно, хотя YouTube явно не адаптирован для квадратных экранов:

С мессенджерами и браузером разобрались: их вполне можно использовать. С браузерами конечно посложнее, но в целом нормально. А что насчёт камеры? И тут хочется сказать, что BB делали упор не только в хардварную клавиатуру и удобство системы, но и камеру, микрофон (4 микрофона по всей площади смартфона — это не шутки!) и звук.

С музыкой, как уже сказано выше, всё тоже очень достойно. Честный и качественный стереозвук, по качеству и громкости сравнимый с внешней колонкой. BB постарались и здесь, судя по сообщениям на форуме, в устройстве стоит DAC от Wolfson (схожий применялся в iPhone) и есть поддержка внешнего USB Audio через OTG. Из коробки есть поддержка FLAC, а сам плеер очень удобный и поддерживает кучу разных фишек (эквалайзер, DLNA, возможность при подключенных наушниках выводить звук на динамики/слуховой динамик).
❯ Заключение
Смартфон получился весьма успешным по меркам BlackBerry: в 2014, благодаря высоким продажам он спас компанию, позволив ей продержаться до 2016 года. BlackBerry выпустила несколько различных версий Passport: премиальный Silver Edition с чуть отличающейся конструкцией и дизайном и версию для AT&T (скругленная). Уже через год появился продолжатель идеи: Priv, а затем и устройства от TCL — KeyOne и KeyTwo. Но некоторые пользователь считают их «не трушными» BB из-за того, что они работают на Android. Получается, Passport — лучший QWERTY смартфон в своем классе?
Идея Passport и Q5/Q10 все еще живы. Несмотря на то, что TCL потеряли права на BlackBerry, компания Unihertz из Китая, известная своими мини-смартфонами Jelly, смогли выпустить на рынок Titan и Titan Slim. И как жаль, что только юнигерц продолжает реализовывать такую концепцию…

А вам как Passport? Сейчас их средняя цена на барахолках в рабочем состоянии (я собирал конструктор) 4-5 тысяч рублей. Взяли бы такое устройство сейчас на каждый день? Есть ли будущее у смартфонов такого форм-фактора? Жду ваше мнение в комментариях!
Статья подготовлена при поддержке Timeweb.Cloud. Подписывайтесь на меня и TimeWeb, чтобы не пропускать новые статьи каждую неделю!

Poco X3 NFC ,не работает камера 64 Мп,отвал процессора
У меня на ремонте Poco X3 NFC , можно сказать младший брат модели Pro, с неисправностью камеры.Аппаратик приехал ко мне из другого города , где ему ,со слов клиента приговорили к замене материнскую плату .
При запуске приложения камера , на экране лишь темный фон ,изображения с камеры нет и приложение зависает через некоторое время.
Будем диагностировать и искать куда подевалось изображение.
Для начала проверяю камеры по отдельности в инженерном меню ,все камеры кроме основной задней камеры 64 Мп выводят изображение корректно.
Вот уже круг подозреваемых стал уже .
Разбираю аппарат ,беру мультиметр и в режиме проверки диодов ,проверяю разъем камеры .
Вот этот разъем.

И мультиметр говорит нам ,что ни один контакт разъема не висит в воздухе , а значит делаю поспешный вывод ,что всего то лишь нужно заменить камеру и все заколосится !
Т.к такого аппарата на ремонте у меня не было, у коллег тоже не нашлось,то иду на китайский садовод и заказываю камеру .
Спустя недели 3 она у меня.

Ставлю в аппарат ,но тут ждёт разочарование ,изображение с камеры не появилось.
Еще раз проверяю разъем камеры , пропаиваю его , все линии на месте .Но изображения нет.
Опять иду в инженерное меню открываю тест Rear Camera , и в какой то момент при изгибе и надавливании на плату появляется изображение с камеры ,буквально на несколько секунд и пропадает.
Начинаю вызванивать этот разъем ещё раз .
И вот теперь на одном из контактов разъема ,бесконечность .
Вот на этом контакте мультиметр начал показывать пустоту.

Именуется этот пин CSIO_A0_CLK_M
А значит уже по названию мы можем понять его предназначение и то где его искать.
А искать его нужно под большой микросхемой залитой компаундом,а именно под процессором.
Принимаем волевое решение , снимать и реболить процессор.
Аккуратно зачищаю компаунд по периметру , а микросхему UFS на 128 Гб которая стоит впритык к процессору локализую от нагрева .
И на минимально возможной температуре снимаю процессор с платы ,так что часть припоя под процессором вытянулась и встала столбиком ,это и есть показатель того ,что температура была минимально возможной для снятия.
Теперь зачищаю плату от компаунда

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

Шары получаются ровными а процесс быстрым.
А вот уже фото перед запайкой процессора на плату.

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

Включаю аппарат и в первую очередь проверяю работоспособность камеры во всех режимах.

Все работает .
Но вопрос , который может возникнуть у моего читателя ,как же так я на***лся при диагностике и заказал камеру.
Вопрос сложный ,но я думаю тут просто не повезло ,т.к этот контакт всегда прозванивался пока плата была вынута из рамы , но при установке ее в корпус он пропадал из-за механического воздействия ,а заметил я это только когда крутил и вертел плату с включенной камерой и на секунду появилось изображение.
Вот такие случаи бывают в нашем ремесле ,нужно отдать должное клиенту который все это время ждал заказанную мной камеру и не дёргал меня вопросами "а когда? ", с понимающими людьми всегда приятно работать и их техника всегда по итогу оживает.
Спасибо за внимание !
По вопросам ремонта ,контакт для связи со мной в моем профиле Пикабу.
Nokia выпустила смартфон с комплектом для самостоятельного ремонта
Финский производитель мобильных телефонов Nokia заключил партнерское соглашение со специалистами по ремонту iFixit, чтобы выпустить смартфон G22, который поставляется со сменными деталями и наборами инструментов, чтобы клиенты могли самостоятельно ремонтировать свой телефон.

По словам iFixit, сотрудничество было вызвано растущим спросом: все больше людей интегрируют ремонт в свою жизнь.
«Люди хотят чинить вещи сами, и мы рады помочь производителям удовлетворить эти потребности», — сказал Кайл Винс, главный исполнительный директор iFixit.
«Мы рады работать с такими производителями, как Nokia, которые хотят сделать ремонт более доступным», — сказал Винс.
Nokia G22 имеет съемную заднюю панель, изготовленную из 100% переработанного пластика.

Каждая часть поставляется с набором соответствующих инструментов, таких как пара пинцетов, ручка-присоска и отмычки. Затем пользователи могут прочитать прилагаемые инструкции, в которых подробно описано, как решить распространенные проблемы со смартфонами, включая замену аккумулятора, зарядного порта и замену экрана.
Инструменты изготовлены из специального пластика под названием делрин — жесткого термопласта, который часто используется для изготовления подшипников, фитингов и различных деталей электрических изоляторов. А отвертка изготовлена из стали.
Так компания хочет предложить доступную альтернативу сторонним ремонтным услугам, которые часто требуют длительного времени ожидания.
Модульные телефоны имеют длительный срок службы, поскольку их оборудование можно легко менять и обновлять.
«Люди начинают менять свое мнение и хотят прочные и экологичные вещи для заботы о планете, а также для экономии денег», — объяснил Винс.
«Это экономическая и экологическая необходимость — мы не можем продолжать жить так, как будто планета не нуждается в помощи. За последние 20 лет право на ремонт стало более важным, поскольку все больше и больше людей интегрируют ремонт в свою жизнь».

Положение о праве на ремонт было введено правительством Великобритании в 2021 году с целью сокращения потребления энергии и количества отходов. Часть закона предусматривает, что производители предоставляют запасные части и информацию о техническом обслуживании своей продукции.
Компания iFixit, предоставляющая услуги по ремонту в течение двух десятилетий, опиралась на свой опыт ремонта телефонов клиентов, чтобы определить наиболее распространенные запросы на ремонт смартфонов. Специалисты также изменили инструкции по ремонту, чтобы их было легко понять.
«За прошедшие годы мы узнали из первых рук, какой ремонт будет легким или с какими проблемами столкнутся люди», — сказал Винс.
«Прежде чем люди начнут ремонт, мы рекомендуем им прочитать все руководство, чтобы знать, что они собираются делать», — добавил он.
«При наличии терпения, правильных инструментов и руководств любой может исправить что угодно».

Все большее число производителей телефонов сотрудничают с iFixit, в том числе Google и Samsung, которые также выпустили мобильные телефоны, которые можно приобрести вместе с руководствами по ремонту и сменными деталями.
Ранее дизайнеры призывали производителей электроники сделать свою продукцию более ремонтопригодной. В 2018 году дизайнеры Formafantasma утверждал, что производители электроники должны сделать свои продукты более простыми для вскрытия и разборки.

Ремонт Samsung a50. Зависает, разбито стекло дисплея

Добрый день, давно не делал посты что-то.
Сегодня на ремонте "полтинник", хорошая народная модель. Часто бывают в ремонте, как и все Самсунги =)

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

При деформации часто отваливается проц и память. Начнём с простого. Разберём.




Память на компаунде, на 320° снимается довольно легко

Зачищаем компаунд, накатываем новые шары, ставим на место. Главное правильно позиционировать чип при установке.

Проверяем, ушла ли проблема с перезагрузками

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


Проверяем тач, всё в порядке. Можно снимать стекло



Зачищаем от старого клея, это нудно и долго. Ещё раз проверяем тач.

Защитим пока дисплей антипылевым скотчем

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


Готово. A50 залатали =)
Всеравно замена стекла не заводская процедура и часто не идеально получается. Например при замене полярика может оттенок поменяется, стекло по качеству отличается тоже.
А вы бы заменили отдельно стекло или сразу телефон купили новый?

Удаление Android-вируса
Наблюдал сегодня интересную картинку на одном Android-телефоне. Видимые симптомы были такие:
Во-первых, по рассказам владелицы, несколько раз всплывало окно с негром требованием выкупа текстом
«нам надо сделать некоторе обслуживание чтобы сделать твои ощущения от времяпровождения здесь превосходными»
Уже подозрительно, да. По ближайшему просмотру на телефоне обнаружилось некое неудаляемое приложение. С названием Babe и во-о-от с такой иконкой:

Через ADB нашел идентификатор этой дряни — id.co.babe.
Отзывы примерно в таком ключе: «Что это? Откуда это у меня? Почему я не могу это удалить?» и всё в таком духе
Удаление через ADB:
adb shell am force-stop id.co.babe
adb shell pm uninstall -k —user 0 id.co.babe
Ну и само собой, удаление SIM-меню, чисто для информационной гигиены — оно там не было удалено. В статьях выше этот момент, разумеется, есть (хотя здесь полнее).
adb shell pm disable-user com.android.stk
adb shell am force-stop com.android.stk
adb shell pm disable-user com.android.stk2
adb shell am force-stop com.android.stk2
adb shell pm uninstall -k —user 0 com.android.stk
adb shell pm uninstall -k —user 0 com.android.stk2
Возможно, кому-то пригодится.

Обход аккаунта гугл Huawei(Honor). Android 10
Добрый вечер уважаемые пикабушники. Ко мне в руки попал телефончик jsn-l21(c10) или проще говоря Honor 8x регион Россия, попал он ко мне с проблемой блокировки по гугл аккаунту. Так как там установлен Kirin 710 обойти через мрт не получалось, понизить прошивку до 9 андроида тоже. Тогда было решено искать выход из этой ситуации.
Порыскав на форумах я ничего не нашел. Тогда начал мучить телефон. После 4 дней попыток результата не удалось добиться.
Тогда я наткнулся на одного индуса который занимается разблокировкой. Метод взят у него.
Вставляем сим-карту с интернетом в наш телефон.

Далее нам нужно зайти в E-recovery и сделать сброс настроек. На 10 андроиде немного изменили вход. Теперь нам нужно на выключенном телефоне зажать кнопку включение и кнопку громкости +. Когда увидите логотип “Honor” кнопку включение можно отпустить. Увидите следующее меню.

Нужно нажать “clear data”.

Написать слово “Yes” и подтвердить сброс настроек. После того как процесс сброса будет завершен нажать “Back”. Попадем в такое меню.

В данном меню выбираем E-recovery. В открывавшемся меню выбираем “Emergency backup”

Нажимаем «Резервное копирование». Далее откроется меню в котором нужно нажать подсвеченное синим слово «здесь»

После этого телефон перезагрузится. И вы попадаете в гугл хром. Там скачиваем quick shortcut maker. Разрешаем установку из неизвестных источников.

Открываем установление приложение. Пишем слово «Настройки» тапаем. Откроется подменю. Там выбираем 2 пункт и открыть. Попадем в настройки выбираем «Биометрия и безопасность»
Нажимаем отпечаток пальца и создаем пароль из 6 цифр. Сохраняем.

Перезагружаемся. Ждем загрузки устройства. Загрузка может длиться минут 10. Подключаемся к wi-fi. И доходим до окна ввода пароля, вводим созданный нами пароль. Попадем в окно подтверждения аккаунта гугл, там есть кнопка «Пропустить». Пропускаем. Продолжаем настройку устройства. Выходим на рабочий стол.

По желанию в настройках можно изменить или отключить пароль. Обход закончен. Надеюсь кому-то будет полезно. Upd телефон не ворован. Принесен в сервис с документами и коробкой.

Обзор 11 респираторов 3M и SPIROTEK. Помогает ли респиратор от заражения вирусом. Ликбез по респираторам

На волне повышенного внимания к китайскому коронавирусу и выросшего спроса на медицинские маски и другие индивидуальные средства защиты органов дыхания, я решил прояснить для себя вопрос — какие вообще бывают респираторы, как они работают и от чего защищают.
План действий: поехать в строительный магазин, закупить некоторый ассортимент респираторов, прочитать про них, обобщить, сделать выжимку и изложить самую суть.
Перед этим, сделав контрольный заход в аптеку шаговой доступности и выяснив что медицинских масок там нет и заказать их невозможно, т.к. у поставщика они тоже закончились, я преисполнился осознанием правильности своего решения закупить хотя бы несколько строительных одноразовых респираторов на случай «мало ли что».
Итак, я в магазине, набираю по одному респиратору каждого вида, из тех что не выглядят слишком дорогими (все же они одноразовые и не должны стоить как самолет), покупаю и выдвигаюсь совершать мозговой штурм.

Первое и главное что выяснилось — не все так просто, как мне казалось ранее, несмотря на многолетний опыт строительных работ и эксплуатации респираторов, полумасок и даже полнолицевых масок. Казалось бы, что мне мешало раньше разобраться в вопросе? Ничего, кроме лени.
Выяснилось что маски бывают трех степеней защиты: FFP1, FFP2 и FFP3 (кто на это вообще смотрит, покупая респиратор поработать с цементом или минватой?). Респираторы бывают с клапаном и без. Респираторы бывают с дополнительными слоями защиты от чего то специфического, например определенного типа аэрозолей, органических растворителей, сварочных газов и т.п.
Респираторы действительно одноразовые. И эта одноразовость не всегда подразумевает работу в течение всего дня. В зависимости от загрязненности воздуха, может потребоваться сменить маску уже через 2 часа! Особенно если это маска без клапана и увлажняется выдыхаемым воздухом.
Казалось бы, что плохого в увлажненной маске, влажная ткань или мембрана может быть даже лучше начнет фильтровать пыль? А вот и нет. Принцип работы подобных респираторов — электростатическая фильтрация. Частицы пыли прилипают к мембране, а не просто механически ей останавливаются за счет мелких пор мембраны. Увлажненная маска теряет электростатические свойства и начинает работать намного менее эффективно, просто как механический фильтр.
Основной параметр маски или респиратора — степень очистки или класс защиты FFP
FFP1 респираторы имеют низкую эффективность фильтрации и степень очистки до 80%, защищают только от крупнодисперсных твердых аэрозолей (крупной пыли). Позволяют защищать органы дыхания при загрязнениях до 4 ПДК (предельно допустимых концентраций загрязняющих веществ).
Применяются при работе с нетоксичной пылью, при строительстве, деревообработке, хорошо защищают от частиц цемента, пыльцы, угля, металлических опилок и тому подобных крупных частиц пыли.
FFP2 респираторы очищают до 94% загрязнений, имеют среднюю эффективность и кроме вышеперечисленных загрязнений фильтруют также мелкодисперсные и жидкие аэрозоли. Применяются при загрязненности воздуха до 12 ПДК, при работе с пылью средней токсичности, пылью твердой древесины, углем, при электросварке, улавливают жидкие аэрозоли на основе масла и воды.
FFP3 респираторы обладают высокой эффективностью, очищают до 99% примесей, позволяют работать при загрязненности до 50 ПДК (по другим данным до 30 ПДК) и защищают органы дыхания помимо вышеперечисленных загрязнений также от мелкодисперсных твердых и жидких аэрозолей.
Применяются при работе с токсичной пылью, асбестом, радиоактивной пылью и для защиты от бактерий и вирусов, улавливают споры плесени
Важный вопрос — что же с продолжительностью их работы? В зависимости от степени загрязненности воздуха и условий работы, респираторы без клапана эффективно работают по некоторым данным до 2 часов, а респираторы с клапаном — до 8 часов. После этого, из-за увлажнения от дыхания и потери электростатических свойств, их эффективность снижается. С другой стороны, маркировка D означает что маска тестировалась на фильтрование доломитовой пыли в течение 8 часов, но скорее всего без учета увлажнения от дыхания и потери электростатических свойств.
Перейдем к рассмотрению непосредственно самих респираторов. Рассматриваются респираторы двух производителей — 3М и SPIROTEK, наиболее часто используемые в строительстве и встречающиеся в продаже. Производитель 3M — всем известная американская международная компания, корни бренда SPIROTEK, насколько мне удалось выяснить, уходят в международную компанию английского происхождения JSP. Цены масок указаны ориентировочные, для сравнения, на февраль 2020 года.

Два респиратора начального уровня от 3M — 8101 и 8112, имеют степень защиты FFP1. Маркировка NR D означает Non Reusable (однократно используемый) — все респираторы в данном обзоре относятся к однократно используемым. D означает что при тестировании с помощью имитации дыхания в условиях загрязненности доломитовой пылью, респиратор выполнял свои функции в течение 8 часовой рабочей смены.
Цена первого респиратора около 40 рублей, второго — около 80, что делает предпочтительным выбор второго респиратора с клапаном, т.к. продолжительность его работы будет существенно выше чем аналога без клапана.
Оба респиратора снабжены поролоновой прокладкой на нос и алюминиевым носовым зажимом для фиксации формы маски по форме носа.
Резинки, фиксирующие маску на голове не регулируемые, но достаточно эластичные.

Еще одна пара аналогичных респираторов производителя SPIROTEK — SPIROTEK VS 2100 и VS 2100 V, отличающихся лишь наличием клапана. У обоих степень защиты FFP1, что делает их применимыми только в условиях работы с простой грубой строительной пылью, ничего более вредного они отфильтровать не в состоянии.
Цена респиратора без клапана — около 35 рублей, с клапаном — около 50. Небольшая надбавка за клапан, выбор в пользу модели VS2100V.
Так же, как и предыдущие, эти две маски снабжены алюминиевым фиксатором на нос. Прокладка на нос у респираторов SPIROTEK выполнена из тканого ворсистого материала, более приятного тактильно, чем поролоновые прокладки респираторов 3M. Резинки этих двух респираторов, как и остальных респираторов SPIROTEK имеют пластиковый фиксатор натяжения, достаточно удобный для регулировки натяжения ремней на голове.

Пара складных компактных респираторов степени защиты FFP1 — SPIROTEK SH 3100 по цене чуть больше 30 рублей и SPIROTEK VS 4100 V по неожиданно высокой цене в 200 с небольшим рублей. В чем причина такой цены я так и не смог выяснить, никакими выдающимися характеристиками респиратор не отличается. Прокладка на нос у респиратора 4100 поролоновая, у респиратора 3100 вообще отсутствует, видимо из за компактности. У респиратора 3100 клапан отсутствует, у модели 4100 клапан есть.

Респираторы более серьезной, второй степени защиты FFP2 — 3M 8122 и SPIROTEK VS 2200 WV. Все маски второй степени защиты снабжены клапанами для выдоха, позволяют работать при загрязнениях до 12 ПДК, фильтруют до 94% твердых аэрозолей средней токсичности, а также аэрозоли на основе воды и масла. В остальном респиратор 3M ничем не примечателен, его цена около 90 рублей. Респиратор SPIROTEK VS 2200 WV более интересен, его цена около 300 рублей, он снабжен пластиковым сетчатым кожухом для защиты от деформации и загрязнения при снимании руками, четырехточечной усовершенствованной системой крепления и натяжения ремней, а также имеет дополнительный внутренний слой для защиты от сварочных газов, аэрозолей и озона. Это — респиратор для сварщика.

Два аналогичных по конструкции респиратора степени защиты FFP2 — SPIROTEK 2200 CV по цене около 100 рублей и 2200 AV по такой же цене. Модель CV (с серым внутренним слоем) имеет дополнительный слой фильтрующего материала с применением угольного фильтра и обеспечивает дополнительную защиту от органических газов и паров (краски, лаки, растворители и т.д.) в концентрации до 1 ПДК. Модель AV (с голубым внутренним слоем) имеет дополнительную защиту от кислых газов и паров (черная и цветная металлургия, литейное, аккумуляторное, гальваническое производство) в концентрации до 1 ПДК. Серия 2200 вообще довольно интересна своей специализацией. Рассмотренный выше респиратор 2200 WV имеет защиту от сварочных газов, аэрозолей и озона, а еще одна маска 2200 серии — SPIROTEK 2200V — является маской для защиты от обычной мелкодисперсной пыли.

Последний и самый интересный респиратор в данном обзоре — респиратор третьей категории защиты FFP3 — SPIROTEK VS 2300 V по небольшой цене около 190 рублей. Он защищает органы дыхания от аэрозолей при концентрации до 50 ПДК, фильтруя до 99% загрязнений. Заявлено что респираторы FFP3 могут задерживать бактерии, вирусы и споры. На мой взгляд, скорее не сами вирусы и споры, а пыль, на которой они летают в воздухе, это звучит более реалистично.
Респиратор хорошо прилегает к лицу, снабжен удобной четырехточечной системой натяжения и крепления ремней, а также приятным обтюратором (часть маски прилегающая к лицу, изолирующая внешний воздух от проникновения под маску) из ворсистой ткани.
Итоги и важная информация, которую нужно понять, чтобы уметь правильно выбирать и использовать средства защиты органов дыхания.
1. Одноразовые респираторы типа рассмотренных в обзоре — действительно одноразовые.
2. Респираторы первой степени защиты FFP1 — защищают от грубой строительной пыли. Второй степени FFP2 — мелкая пыль средней токсичности и жидкие аэрозоли. Третья степень защиты FFP3 защищает от токсичной и радиоактивной пыли, спор, бактерий и вирусов (скорее от пыли и капель влаги в которой они содержатся).
3. Респираторы с клапаном — лучше чем без клапана.
4. Если нужна защита от чего то более вредного чем простая пыль до 50 ПДК или особо токсичная пыль и газы до 1 ПДК — поищите полумаски с более серьезными сменными фильтрами типа РПГ-67, а то и полнолицевые маски с панорамным стеклом типа UNIX 5100, ППМ-88 или аналогичные.
5. Если во вдыхаемом воздухе нет кислорода, например в колодце, где идет выброс подземных газов — никакая маска или противогаз не поможет, нужна маска с принудительной подачей кислорода или принудительная вентиляция колодца.
Как создать вирусную ссылку для телефона и компьютера?
![]()
Случаются такие дни, когда охота насорить кому-нибудь скрытно, или же вы решили создать вирус, который будет красть данные, любые данные. Вообразим себя злыми хакерами, которые решили начать действовать. Давайте познаем это необъятное искусство.
Определение вируса
История компьютерных вирусов берет свое начало в 1983 году, когда Фред Коэн использовал его впервые.

Вирус — это вредоносный код, он направлен на захват управления вашими файлами, настройками. Создает копии самого себя, всячески захламляет персональный компьютер пользователя. Некоторые можно обнаружить сразу, когда другие скрываются в системе и паразитируют в ней. Часто их передача происходит с помощью сайтов, где размещен пиратский контент, порно-сайтов и других. Бывает, скачивание вирусов происходит при желании скачать мод или чит. Довольно просто распространить вирус, если у вас готова вирусная ссылка.
Методы воздействия вредоносных программ

К компьютерным вирусам относится множество вредоносных программ, однако не все они способны к «размножению»:
- Черви. Заражают файлы на компьютере, это могут быть любые файлы, начиная от .exe и заканчивая загрузочными секторами. Передаются через чаты, программы для общения типа Skype, icq, через электронную почту.
- Троянские кони, или трояны. Лишены самостоятельной способности распространяться: они попадают на компьютер жертвы благодаря их авторам и третьим лицам.
- Руткит. Сборка различных программных утилит при проникновении на компьютер жертвы получает права суперпользователя, речь про UNIX-системы. Представляет собой многофункциональное средство для «заметания следов» при вторжении в систему с помощью снифферов, сканеров, кейлоггеров, троянских приложений. Способны заразить устройство на операционной системе Microsoft Windows. Захватывают таблицы вызовов и их функций, методы использования драйверов.
- Вымогатели. Такие вредоносные программы препятствуют входу пользователя на устройство путем принуждения к выкупу. Последние крупные события, связанные с программами-вымогателями, — WannaCry, Petya, Cerber, Cryptoblocker и Locky. Все они требовали за возвращение доступа в систему криптовалюту биткоин.

- Кейлоггер. Следит за вводом логинов и паролей на клавиатуре. Фиксирует все нажатия, а затем отсылает журнал действий на удаленный сервер, после чего злоумышленник использует эти данные на свое усмотрение.
- Снифферы. Анализирует данные с сетевой карты, записывает логи с помощью прослушивания, подключения сниффера при разрыве канала, ответвления сниффером копии трафика, а также через анализ побочных электромагнитных излучений, атак на канальном или сетевом уровне.
- Ботнет, или зомби-сети. Такая сеть представляет собой множество компьютеров, образующих одну сеть и зараженных вредоносной программой для получения доступа хакеру или иному злоумышленнику.
- Эксплойты. Этот вид вредоносного программного обеспечения может быть полезным для пиратов, ведь эксплойты вызываются ошибками в процессе разработки программного обеспечения. Так злоумышленник получает доступ к программе, а дальше и к системе пользователя, если так задумал хакер. У них есть отдельная классификация по уязвимостям: нулевой день, DoS, спуфинг или XXS.
Пути распространения
Вредоносный контент может попасть на устройство разными способами:

- Вирусная ссылка.
- Доступ к серверу или локальной сети, по которой будет проходить распространение вредоносного приложения.
- Выполнение программы, зараженной вирусом.
- Работа с приложениями пакета Microsoft Office, когда с помощью макровирусов документов вирус распространяется по всему персональному компьютеру пользователя.

- Просмотр вложений, пришедших с сообщениями электронной почты, а они оказались с инфицированными программами и документами.
- Запуск операционной системы с зараженного системного диска.
- Установка на компьютер заранее зараженной операционной системы.
Где могут прятаться вирусы
Когда вирусная ссылка сделана, а вы запустили программу, которая начинает скрытую работу на персональном компьютере, то некоторые вирусы и другие вредоносные программы способны на сокрытие своих данных в системе или в исполняемых файлах, расширение которых может быть следующего типа:
- .com, .exe — вы скачали какую-то программу, а там оказался вирус;
- .bat — командные файлы, содержащие определенные алгоритмы для операционной системы;
- .vbs — файлы программы на языке Visual Basic for Application;
- .scr — файлы программ скринсейверов, которые крадут данные с экрана устройства;
- .sys — файлы драйверов;
- .dll, .lib, .obj — файлы библиотек;
- .doc — документ Microsoft Word;
- .xls — документ Microsoft Excel;
- .mdb — документ Microsoft Access;
- .ppt — документ Power Point;
- .dot — шаблон приложений пакетам Microsoft Office.
Признаки

Любое заболевание или заражение протекает в скрытой фазе или в открытой, этот принцип присущ и вредоносному программному обеспечению:
- Устройство начало работать со сбоями, программы, которые работали раньше хорошо, вдруг стали тормозить или вылетать.
- Медленная работа устройства.
- Проблема с запуском операционной системы.
- Исчезновение файлов и каталогов или изменение их содержимого.
- Содержимое файла подвергается изменению.
- Изменение времени модификации файлов. Можно заметить, если в папке используется вид «список», или вы посмотрите на свойство элемента.
- Увеличение или уменьшение количества файлов на диске, и впоследствии увеличение или уменьшение объема доступной памяти.
- Оперативной памяти становится меньше из-за работы посторонних сервисов и программ.

- Показ шокирующих или иных изображений на экране без вмешательства пользователя.
- Странные звуковые сигналы.
Методы защиты
Самое время подумать о способах защиты от вторжения:
- Программные методы. К ним относятся антивирусы, файрволлы и другое защитное ПО.
- Аппаратные методы. Защита от постороннего вмешательства к портам или файлам устройства, непосредственно при доступе к «железу».
- Организационные методы защиты. Это дополнительные меры для сотрудников и иных лиц, которые могут иметь доступ к системе.
Как найти список вирусных ссылок? Благодаря Интернету можно скачать сервисы, например, от Dr.Web. Или воспользоваться специальным сервисом для показа всех возможных вредных ссылок. Там есть список на вирусные ссылки. Остается выбрать наиболее подходящий вариант.
Вирусная ссылка
Не забывайте, что использование вирусных программ преследуется по закону!
Приступаем к самому главному действию — к созданию вирусных ссылок и выяснению способов их распространения.
- Выбираем операционную систему для атаки. Чаще это — Microsoft Windows, так как она распространена больше, чем остальные системы, особенно если речь зашла о старых версиях. К тому же многие пользователи не обновляют операционные системы, оставляя их уязвимыми к атакам.
- Выбираем способ распространения. Как создать вирусную ссылку, которая не будет распространяться? Никак. Для этого можно запаковать ее в исполняющий файл, макрос в Microsoft Office, веб-скрипт.
- Узнать слабое место для атаки. Совет: если пользователь скачивает пиратский софт, обычно он выключает антивирус или не обращает на это внимания из-за наличия таблетки в репаке, так что это еще один способ для проникновения.
- Определяем функционал вашего вируса. Вы можете просто проверить антивирус на способность обнаружить ваш вирус, или же использовать вредоносную программу в более масштабных целях типа удаления файлов, просмотра сообщений и других действий.
- Для того чтобы что-то написать, придется выбрать язык. Язык можно использовать любой, а то и несколько, но в большей мере используется язык C и C++, для макровирусов есть Microsoft Office. Разобраться можно с помощью уроков в Интернете. Visual Basic — это среда разработки.
- Время для создания. На это может уйти много времени. Не забудьте о способах сокрытия вируса от антивирусных программ, иначе вашу программу быстро найдут и обезвредят. Не факт, что вы кому-то сильно навредите, так что спите спокойно. Однако помните, что за любой зловредный софт нужно нести ответственность! Узнайте больше о полиморфном коде.
- Посмотрите методы сокрытия кода.
- Проверьте вирус на работоспособность в виртуальной машине.
- Загрузите его в сеть и ждите первых «клиентов».
Вирусная ссылка для телефона создается примерно так же, но с устройствами на iOS придется помучиться, так как там хорошая система защиты, в отличие от «Андроида». Однако в последних версиях удалось поправить многие дыры в системе защиты. Не забывайте, что есть еще старые устройства, а зная «любовь» к созданию новых версий у сторонних разработчиков, большая часть андроид-устройств подвержена опасности.
Телефонный вирус, который удаляет: как отправить?
Вот как отправить вирус, который удаляет все на телефоне, например, изображения и тексты:
Существуют вирусы, которые могут удалять изображения, видео и другой контент с телефона, но пытаться найти и отправить их другому человеку — плохая идея по многим причинам.
Это незаконное действие, и вы сами рискуете стать жертвой вируса.
Лучше попросить вежливо или обратиться в суд.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Так что если вы хотите узнать все о отправке вируса, который удаляет все на чей-то телефон, то эта статья для вас.

Как кто-то может отправить вирус, который удаляет все на телефоне? (3 балла)
Из соображений ответственности я не собираюсь учить вас, как уничтожать файлы на чужом телефоне.
Это плохая идея со всех сторон.
Но я могу объяснить, как работают вредоносные программы и как они могут удалить содержимое или уничтожить телефон.
Итак, вместо прямого ответа на первоначальный вопрос, я расскажу вам, что включают в себя некоторые вредоносные действия, и что вы можете с этим поделать.
Если вы находитесь в затруднительном положении, когда вам действительно нужно получить данные с телефона, который вы не контролируете, я расскажу о некоторых жизнеспособных методах для этого в следующем разделе.
Перед всем этим, пожалуйста, примите этот отказ от ответственности близко к сердцу.
Недопустимо намеренно отправлять вирусы другим людям.
Это потенциально незаконно и сопряжено с серьезными рисками.
я не рекомендуем попробовать заняться вирусами или незаконной деятельностью.
# 1 Как программное обеспечение может удалять файлы
Теперь, когда заявление об отказе от ответственности закончилось, давайте поговорим о том, как программное обеспечение может удалить или вывести из строя данные на телефоне.
Возможно, вы думаете, что это может сделать вирус, и технически это верно, но существует много видов программного обеспечения, которое может уничтожить данные на устройстве.
Их всех объединяет необходимость разрешение на доступ к файлам в первую очередь.
Таким образом, безопасность телефона в значительной степени влечет за собой контроль этих разрешений, чтобы предотвратить удаление файлов или блокировку телефонов случайными вредоносными программами.
Это важная вещь.
Любая программа, которая собирается удалить все на телефоне, должна сначала получить разрешение.
В случае с телефонами Android это связано с корневым доступом.
На iPhone это будет суперпользователь.
Оба слова описывают одно и то же понятие.
Программное обеспечение, которое может обойти системы безопасности на вашем телефоне, взаимодействует на базовом уровне.
По сути, даже будучи владельцем телефона, у вас нет такого уровня доступа (если только вы не сделаете джейлбрейк или рутируете свой телефон).
Таким образом, этот тип вредоносного ПО должен обойти общую структуру программного обеспечения вашего телефона.
В конечном итоге это означает, что большинство приложений и программного обеспечения не могут удалить все на телефоне.
Сначала он должен получить разрешение, и в большинстве случаев владелец телефона должен предоставить это разрешение (конечно, есть исключения, но тема очень быстро усложняется).
Итак, если вы хотите защитить свой телефон от такого рода программ, обратите внимание на разрешения.
Не давайте разрешения неизвестному программному обеспечению, и вы сможете избежать большинства случаев, когда вирус или другая программа могут удалить ваши файлы.
# 2 Какие виды программного обеспечения удаляют файлы
Но если что-то получит разрешение, то все ставки сняты.
По большей части существует несколько типов вредоносных программ, которые могут удалять или иным образом выводить из строя данные.
В первую входят вирусы.
Есть вирусы, которые удаляют данные, и есть даже некоторые известные вирусы, которые ведут себя именно так.
CIH и xHelper вирусы как удаляли файлы, так и вызывали массу проблем у пользователей.
В конце концов, таких вирусов слишком много, чтобы перечислить их все здесь.
Достаточно сказать, что этот тип программного обеспечения существует в изобилии.
Как правило, программы-вымогатели на самом деле не удаляют файлы.
Вместо этого он шифрует их так, что они становятся полностью недоступными для владельца устройства.
Хотя программы-вымогатели чаще всего нацелены на бизнес, программное обеспечение абсолютно точно может заблокировать все изображения, записи, тексты и другие файлы на телефоне.
№ 3. Как можно доставить вредоносное ПО
Но даже если есть программное обеспечение, которое может удалять файлы, оно не может просто волшебным образом появиться на вашем телефоне.
В конечном счете, вредоносное ПО должно быть доставлено на устройство, прежде чем оно вызовет проблемы..
Вот почему ваши устройства не подвергаются постоянным атакам.
Загрузка или установка программного обеспечения на телефон — одна из основных проблем, с которыми сталкиваются вредоносные программы.
Как упоминалось ранее, вредоносным программам в конечном итоге требуется разрешение, прежде чем они будут установлены и получат доступ к файлам.
Существует несколько способов, которыми пользователи обычно вступают в контакт с вредоносным программным обеспечением.
Один через магазин приложений.
Можно создать вредоносное приложение и разместить его в магазине приложений.
Оттуда пользователю легко установить программу, и проблем предостаточно.
Но если вы не очень хорошо умеете маскировать свою личность, загружать вредоносное ПО в магазин приложений — не лучшая идея.
Если вашу загрузку можно отследить до вас, вы будете нести ответственность за любой ущерб, причиненный этой загрузкой.
За пределами магазинов приложений вы можете делиться вредоносными файлами разными способами.
Кто-то может отправить текстовое сообщение или отправить файл другому пользователю.
Программное обеспечение можно загрузить на облачный сервер и поделиться им по ссылке для скачивания. Вы даже можете обмениваться файлами с социальными сетями.
Но опять же, отслеживание является проблемой для всех, кто пытается это сделать.
Как бы вы ни делились плохим программным обеспечением с кем-то, вы оставляете след.
Если вы отправите кому-то такой файл по электронной почте, он узнает, что вы его отправили.
Таким образом, последствий участия в таком поведении трудно избежать.
Хакеры и злоумышленники, рассылающие вредоносное ПО, часто умеют маскировать свою личность.
Они обладают значительными навыками в этой области, и именно поэтому их не всегда ловят за их усилия (хотя распространители вредоносного ПО попасться).
Без таких навыков попытка рассылки вредоносного программного обеспечения на самом деле просто вызовет проблемы.
Можно ли отправить вирус, который удаляет файлы? (2 вещи)
Теперь у вас есть представление о том, что связано с отправкой вируса, который удаляет все на телефоне. Это не маленькая задача.
Надеемся, что эти знания помогут вам подумать о том, как вы можете защитить себя от вирусов.
Но исходный вопрос предполагает, что, возможно, где-то есть данные, которых вы бы предпочли, которых нет на телефоне.
Это понятно, но использование вируса для получения этих данных — плохая идея по многим причинам.
Даже если вы преодолеете все препятствия на своем пути, вы можете столкнуться с очень серьезными последствиями за такое поведение.
Существуют юридические и личные риски, и к ним, вероятно, не следует относиться легкомысленно.
Кроме того, данные, вероятно, в любом случае резервируются где-то, например, через iCloud.
№1 Законность
Это, вероятно, одна из самых веских причин, почему вы не хотите никому отправлять вирус.
Его незаконный в большинстве стран мира.
Конкретные законы, управляющие распространением компьютерных вирусов, будут варьироваться от места к месту, но есть общая тенденция.
Если вы сознательно отправляете кому-то вирус, это незаконно.
Если вирус, который вы сознательно отправили, без разрешения вмешивается в компьютерную систему, это усугубляет характер преступления.
Таким образом, отправка вируса, который удаляет все на телефоне, определенно имеет значение.
В зависимости от того, где вы живете, последствия этого могут быть довольно серьезными, и вы также можете открыть для себя гражданские иски.
Довольно легко привести аргумент, что удаление всего на телефоне может привести к финансовым потерям человека, и вы можете быть привлечены к ответственности за это.
С юридической точки зрения это не лучшая идея.
# 2 Сопутствующий ущерб
Помимо юридических вопросов, вмешательство в вирусы — рискованная перспектива.
Если вы не можете создать этот вирус с нуля самостоятельно, любая попытка выполнить эту задачу, вероятно, потребует от вас загрузки вируса, созданного незнакомцем.
Как вы думаете, насколько хорошо вы сможете контролировать такой вирус?
Пытаясь атаковать другой телефон, вы можете невольно уничтожить все на своем телефоне.
Некоторые вирусы распространяются довольно быстро, и вы даже можете втянуть в эту смесь друзей и семью.
Нет никакой гарантии, что вы когда-нибудь сможете нацелиться на телефон, который вам действительно нужен, но вы все равно можете нанести большой непреднамеренный ущерб.
Как насчет найма хакера?
Если делать это самостоятельно слишком рискованно, не могли бы вы просто нанять хакера?
Что ж, в этом случае вы все равно будете подвергаться юридическому риску.
Точные условия преступления будут зависеть от того, как именно все закончится, но суть в том, что всегда незаконно нанимать кого-то для совершения преступления вместо вас. Это то что законы о заговоре для.
Кроме того, если вы не дружите с опытным хакером, наем незнакомца сопряжен с тем же набором рисков, что и развертывание неизвестного вируса.
Есть ли способы получить файлы с телефона? (3 способа)
Если вашей целью является избавление от данных, есть способы сделать это, не связанные с вирусами, юридическими рисками и тайными схемами взлома.
Можно пойти более простым путем.
Вы минимизируете риск, и у вас больше шансов на успех.
№1 «Найди мой телефон»
Если ваш телефон украден или пропал, и вы хотите получить с него файлы до того, как они попадут в чужие руки, вы можете воспользоваться Найди мой телефон функция (для iPhone).
С помощью этой функции вы можете удаленно заблокировать свой телефон и даже стереть все личные файлы, хранящиеся на устройстве.
Эквивалент Android Найти мое устройство. Он предлагает ту же услугу.
Если ваш телефон вышел из-под вашего контроля, вы можете воспользоваться услугой удаленного удаления всех данных с телефона.
# 2 Спросите
Если рассматриваемых данных нет на вашем телефоне, то все сложнее.
Если у кого-то из ваших знакомых есть фото, видео или другие файлы, которые вам не нравятся, вы всегда можете попросить их удалить их.
Очевидно, что исход этого разговора будет зависеть от характера ваших отношений, но всегда стоит подумать, прежде чем пускаться в шутки уровня ситкома.
#3 Привлекайте власти
Если неверные данные находятся в руках недобросовестных лиц, то лучшим выходом из положения может быть привлечение властей.
Если фотографии, видео и т. д. были сделаны без вашего разрешения, вы потенциально можете привлечь полицию, чтобы попытаться обуздать данные.
Если правоохранительные органы не могут помочь, вы также можете рассмотреть возможность судебного разбирательства.
Вы можете попробовать подать в суд на владельца телефона за контроль над данными, чтобы предотвратить их распространение.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)