image

Не всегда производители различной техники выпускают действительно удобные и юзабельные гаджеты на рынок. Иногда на полки магазинов попадают довольно сырые устройства, а в случае бюджетных моделей — про них забывают сразу после выхода с конвейера. Другое дело, когда девайс оказывается непаханым полем в плане моддинга и всем свои видом намекает «давай, начни во мне копаться!», как и сегодняшний герой — Android-кнопочник Nobby 230! Сегодня мы с вами: напишем свой лаунчер, переработав UI телефона, портируем кастомное рекавери, добавим поддержку ROOT-доступа, вычистим хлам от производителя, предустановим необходимые приложения и оформим это всё в виде готового образа, который сможет поставить себе каждый владелец подобного телефона! Интересно?

Предисловие


Честно сказать, я не ожидал такой обширной реакции на статью об этом кнопочнике. Многие читатели выражали неподдельный интерес к подобному классу устройств и хотели бы получить смартфон в формате классического кнопочника. И в целом вариантов не так уж и мало, на любой вкус, бери — да выбирай! Тут и QWERTY смартфоны, которыми можно управлять почти полностью с клавиатуры, такие как BlackBerry KeyOne и его формальный наследник — UniHertz Titan:

image


image

Два красавца!

Так и модели 2010-2011 годов, когда был настоящий бум на QWERTY клавиатур и почти каждый известный бренд выпускал модели в подобном форм-факторе, например, Acer BeTouch E130 или Galaxy Y Pro. Самое приятное в подобных девайсах — найти подобные смартфоны вы можете и сейчас по 500-1.500 рублей на барахолках, если вы вдруг не сильно привередливы к функционалу устройства.

image

BeTouch 130 с трекболлом

image

Galaxy Y Pro с очень точным оптическим трекпадом!

Но всё же некоторым людям нужен обычный «тапок» в исполнении «моноблок». И вот тут всё гораздо сложнее: производители не хотят выпускать что-то серьёзное на этот рынок из-за рисков понести серьёзные убытки, ведь большинству людей кнопки не нужны вовсе. Однако, определенные шажки в эту сторону делаются. В первую очередь компанией Xiaomi, которая в 2018 выпустила Qin1s, оказавшийся весьма удачным, породив кучу (не смейтесь) реплик! Xiaomi оценили успех своего первенца и теперь время от времени развивает линейку Qin, выпуская кнопочные смартфоны на очень неплохом железе, которое тянет даже PUBG и Genshin Impact (!)

image
Qin 1S

image
Да, это выглядит странно :)

Оригинальный Qin 1s был построен на слабом и дешевом железе от UniSOC — SC9820E, который при ближайшем рассмотрении оказывается унаследованным от давнего знакомого бюджетников из 2014 — SC7715. Российские ритейлеры смекнули — если себестоимость подобных телефонов копеечная, то нужно дать потребителю кнопочный смартфон с максимальной ценой до 2.000 рублей. И таки сделали — Nobby 230, BQ 2400G/2800, SenseIT L250. Мобилки неплохо продавались, даже на 4pda появлялись темы про них, но особого развития в моддинг-сообществе они не получили. И это надо исправлять.

Что мы будем делать?


Свой «нобби» я сейчас использую в качестве резервного смартфона, из которого можно выйти в ВК и настрочить сообщение. Но у него есть объективные косяки, которые мне очень не нравятся:

  1. Дико неудобное меню (лаунчер). Оно не анимировано, слишком красочное и заставляет идти в подменю для просмотра всех приложений.
  2. Отсутствие ROOT-доступа. Я люблю моддить и копошиться в своих девайсах и точно знаю, что я такой далеко не один! Плюс наличие root-прав позволит нам на лету менять говерноры и ограничивать тактовую частоту чипсета, позволяя серьёзно экономить аккумулятор.
  3. Ненужные и не удаляемые приложения — например Facebook Lite и WhatsApp, который не обновить штатными средствами.

Загрузчик устройства оказался разблокированным, поэтому никаких проблем с моддингом не возникнет. Ещё один важный момент: дешевые Android смартфоны хардварно практически идентичны — те же чипсеты, те же чипы памяти, даже дисплеи схожи. Вы скорее всего без каких-либо проблем сможете поставить на свой девайс готовую кастомную прошивку (которую я оставлю в конце статьи).

Recovery


Как я уже сказал, подобные устройства работают на базе очень старого чипсета SC7715, поэтому с портированием recovery проблем никаких не будет — уже есть готовые версии TWRP и CWM с других смартфонов, которые нужно будет пропатчить. Суть вот в чём: в этих смартфонах используется не eMMC, а дешевая NAND память малой емкости, для работы с которой используется механизм называемый UBI. UBI — это стандарт, состоящий из механизма описания разделов (как GPT/MBR) и UBIFS — специальной файловой системы, оптимизированной для работы на флэш-накопителях. Просто так его распаковать и работать с ним не выйдет — нужна машина с Linux на борту и пакетами для работы с UBI, а поскольку мы хотим моддить из под Windows — придётся немного мудрить.

TWRP и CWM из коробки умеют монтировать раздел /system/ и предоставлять полный R/W доступ через adb. Так почему бы не использовать эту особенность для дальнейшей работы? Для портирования рекавери нам понадобится т. н. «кухня» для работы с образами — MTK Img Tools (после распаковки архива с софтом создаем папки Pack/Image и Unpack/Image), фирменная программа для прошивки ResearchDownload, родная прошивка и какой-нибудь TWRP с другого телефона на SC7715. Я брал от ZTE A9.

В SP Flash Tool открываем PAC со скачанной прошивкой и видим в директории программы папку ImageFiles. Заходим в неё, копируем оттуда recovery.img в папку Unpack/Image нашей «кухни» и туда же копируем .img образ рекавери, которое мы портируем.

image

Распаковываем оба рекавери с помощью Unpack -> Recovery/Boot, идём в Unpack/Image/recovery/kernel/ (подразумевается родной recovery) и копируем ядро kernel из стока в папку kernel/ портируемого рекавери. Если его сейчас собрать и прошить — то рекавери запустится, но раздел system не увидит — из-за ubi, который нужно проинициализировать в init'е. Заходим в файл ramdisk/init.rc донорского рекавери и в on boot добавляем это:

ubiattach 0 ubipac
mount_all /fstab.scx15
mount -t ubifs /dev/ubi0_system /system/


Сохраняем, запаковываем наш модифицированный рекавери(Pack -> Recovery/Boot) и прошиваем его. А как же его прошить без ROOT прав, спросите вы? И тут нам поможет тот самый ResearchDownload! Нажимаем на шестеренки, жмем на строку recovery и выбираем выхлоп, который появился в Pack/Image MTKImgTool. В моем случае — recoverytwrp.img.
Все остальные галки снимаем — нам необходимо прошить только один раздел, закрываем диалог и жмем «старт». Подключаем смартфон выключенным с зажатой кнопкой 5 и ждём, когда девайс прошьется! После прошивки передергиваем батарею.

image

Зайти в рекавери легко: включаем отладку по USB, открываем командную строку и пишем adb reboot bootloader (если у вас конечно уже есть пакет adb). Устройство перезагрузится и если все сделано правильно — вы увидите рекавери, а ПК определит устройство как adb в режиме recovery с root доступом.

ROOT доступ


Тут варианта два: прошить готовый архив SuperSU или ручками положить бинарник su в /system/sbin и прописать ему необходимые права, а затем установить само приложение SuperSU. Я выбрал второй вариант для наглядности процесса — помещаем su в /system/xbin, назначая ему права 06755, а SuperSU.apk — в /system/app. Всё — у нас появились ROOT права! Кроме того, отсюда можно прошить MicroG или даже полноценные гаппсы. Но как они будут работать на этом устройстве… я не знаю. :)

Вычищаем хлам и заменяем приложения


Поразительно! В прошивке не оказалось хлама, вообще. Тут нет никаких левых пакетов, ничего подозрительного. Но в вашем телефоне может быть по другому: см. папки /system/app и /system/priv-app. Я лично удалил WhatsApp.apk, Facebook.apk и заменил стандартный лаунчер с клавиатурой: оба от Xiaomi (сюда ссылку на архив), а также добавил Opera Mini для более комфортного серфинга в сети.

image

Если у вас плохое зрение или вы модифицируете телефон для пожилого человека, вы можете увеличить размер элементов на дисплее, поменяв его dpi. Заходим в build.prop и меняем параметр «ro.sf.lcd_density» в большую сторону (125-130).
А ещё можно поменять анимацию загрузки или убрать противный громкий звук. Ну если уж пустились в пляски, то почему бы не поставить яблочко на загрузку? :) Идём в /system/media/ и заменяем bootanimation.zip на скачанный из интернета (гугл 240x320 boot animations).

image

Кроме того, если у вас вдруг есть еще кнопки (качелька громкости например), вы можете ее назначить на какое-нибудь полезное действие — например, многозадачность или открытие шторки уведомлений. Для этого заходим в /system/usr/keylayout/gpio-keys.kl (ваш может называться по другому, ищите файл без копирайтов Android), смотрим где действие VOLUME_DOWN/VOLUME_UP и меняем на желаемое действие (можно посмотреть здесь)

Из коробки на стоковой прошивке приложения устанавливать нельзя — так решил производитель, видимо, чтобы не ломать пользователю экспиренс несовместимыми приложениями. Однако это легко поправить — достаем build.prop:

adb pull /system/build.prop

Меняем в нем парааметр persist.sys.disable.app=true на false, и закидываем обратно:

adb push build.prop /system/

Кастомизировал прошивку под себя — что дальше?


Теперь нам нужно сделать т. н. «вайпы» — стереть раздел с данными приложений, иначе Android может начать конфликтовать с ними и упасть в «бутлуп». Если примонтированы /data/ и /cache/, то достаточно прописать в adb recovery --wipe_data --wipe_cache. Перезагружаемся — работает? Загрузились? Первая загрузка может занимать пару минут, но если уж смартфон запустился и все работает как нужно — то значит вы всё сделали правильно!

Как теперь поделится ей с сообществом? Вариантов три: использовать встроенный механизм бэкапов CWM (работает при условии, что вы починили все точки монтирования), запаковать весь образ /system/ в .tar архив, чтобы потом его распаковать одной командой, либо подготовить update архив (требует написания скрипта обновления, который сохранит все разрешения файлов). Плюс этого способа заключается в частичной автоматизации процесса установки прошивки. Делается это так:

tar -cvf /sdcard/system.tar /system/

На флэшке должен появится system.tar, который уже хранит в себе все разрешения файлов и симлинки.

Как потом кому-то установить вашу кастомную прошивку? Например вот так:

tar -xvf /sdcard/system.tar -C /

Не забываем вайпы! Вроде бы все довольно легко и просто, да? Ну это пока мы не касались темы модификации SystemUI или даже android.jar напрямую… Но в любом случае, информация в статье может оказаться полезной не только обладателям подобных кнопочников, но и обычных смартфонов, которые не знают с чего начать. На 4pda информация есть, но она недостаточно централизована, поэтому надеюсь, что эта статья будет полезной.

Пишем свой лаунчер


Надоел стандартный интерфейс системы? Напиши его сам! В процессе написания статьи меня очень сильно начал раздражать стандартный лаунчер. Он тормозной, у него нет плавности и он банально неудобен. Ну а лаунчеров под подобные версии системы практически нет…

image

И я решил запилить свой домашний экран, с виджетами и плавной анимацией! Сказано — сделано, лаунчер писался в попыхах, с учетом слабых мест UI-фреймворка Android. Минимум аллокаций, вся навигация в приложении через смену contentView (любой вызов startActivity занимал минимум одну секунду), плавные анимации через animate, перерисовка только по необходимости и конечно же хоткеи!

image

Лаунчер не имеет никаких внешних зависимостей кроме android.jar, в том числе и от мною нелюбимого AppCompat. Благодаря этому, конечный размер приложения составил всего 27кб, а потребление ОЗУ ~11мб. А ещё он добавляет удобные хоткеи: кнопка вверх откроет шторку уведомлений, влево откроет браузер, вправо — whatsapp, а вниз — музыкальный плеер!
Заценить костыли лаунчер, написанный за один день, можно на моем GitHub!

Теперь то он хоть юзабелен?

image

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


Но в остальном — смартфон работает вполне ничего. У нас появился относительно адекватный домашний экран, возможность накатить патчи интерфейса с помощью Magisk и без проблем обновлять WhatsApp (в одной из официальных прошивок был баг, который не позволял обновлять системные приложения).

image

Как я уже говорил — на смартфоне без проблем работают WhatsApp и ВК, можно посерфить некоторые страницы или поиграть в несложные игрушки. Ребята с 4pda пишут, что берут его в армию, а кто-то на режимные объекты! И всё таки идея офигенная: теперь я точно уверен, что концепция смартфонов-кнопочников имеет право на жизнь и в первую очередь, если у них появится такое же моддинг-коммьюнити, как и в своё время у первых Android смартфонов!

Этот телефон мне очень напоминает жигули. Жигуль — неплохая машина за свою скромную цену, но как по мне — АвтоВАЗ сделал лишь минимум, чтобы машина могла привезти из точки А в точку Б (в случае нобби — позвонить и написать сообщение), открывая своей простотой кладезь возможностей различного тюнинга и доработок. Тоже самое и с нобби — ты покупаешь просто телефон. Но в отличии от большинства «тапков» — ты его ещё можешь довести под себя — а это самое ценное для техногика и любителя покопаться в различных девайсах!

image

А вы как думаете? :) Жду ваше мнение в комментариях.

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


  1. bodyawm Автор
    00.00.0000 00:00
    +1

    Похожи? :)


    1. StjarnornasFred
      00.00.0000 00:00
      +3

      Пятиконечные диски на 4 болтах? Адъ перфекциониста :)


      1. Gor40
        00.00.0000 00:00

        Hidden text


        1. nafikovr
          00.00.0000 00:00

          шестиконечная звезда на 5 спиц?


          1. Gor40
            00.00.0000 00:00

            Это как образец. Их разные делают.


      1. radtie
        00.00.0000 00:00

        С дисками вообще сложно, например 5 болтовые почти все 7-8 лучевые ))


    1. bodyawm Автор
      00.00.0000 00:00
      +9

      Я основательно закупился девайсиками для будущих статей. И все из них очень интересные!

      В первую очередь, я купил QWERTY смартфоны: SGH-i600, BlackBerry Torch и beTouch E130. Все они по своему интересны: самсунг работает на винмобайле, Torch на BBOS7, а beTouch - на Android 2.1!

      Будет и вот такой смартфон-раскладушка Samsung Galaxy W 2014, купленный мной за 1.000 рублей. Но достался он мне непросто - девайс продавался в Красноярске, продавец не хотел никаким образом отправлять, только личная встреча и Хабровчанин Денис Матофонов пришёл на помощь, съездив куда-то в ближайший поселок за ним, а затем отправил мне! Говорим ему большое спасибо, девайс действительно очень интересный и... с подвохом!

      И да, у него два сенсорных дисплея, и оба амолед!

      BlackBerry Z30, который я взял себе как основной. Купил за 500 рублей как "невключайку" :) Отличный девайс, SuperAMOLED дисплей, 2х ядерный снепдрегон из 2012, 2гб ОЗУ. Бегает он неплохо и сейчас. Уже оценил удобство BB Hub!

      Купил абсолютно новый One Touch Fire E за 1.000 рублей, в пленках, коробке и с полным комплектом! Это смартфон на FireFox OS - мобильную ОС для бюджетников, которую забыли... а затем воскресили в виде KaiOS, которую можно встретить на современных Nokia!

      Ну и целых 15 новых китайских мобилок из 2012-2013 года, которые завалялись у какого-то торгаша. Каждый девайс обошелся мне в 300 рублей, всего 15 девайсов, из которых 3 бонусом! И тут тоже история классная получилась: у меня есть подписчик и постоянный читатель Yohohori-san с DTF. Этот лот мне скинули в общей конференции, я сразу им заинтересовался, позвонил - продавец с доставкой не работал ни в какую, а жил в Москве около метро. Я созвал клич среди читателей на DTF, Yohohori пришёл на помощь и в тот же день забрал не только мобилки "в рассрочку" (у меня на руках не хватало на все девайсы), но еще и умудрился отправить в тот же день! А ещё Yohohori подарил мне 2 нетбука на атоме. Говорим ему большое спасибо!

      Аr@evilaks подарил мне Galaxy Nexus и несколько забавных HTC.

      Спасибо вам всем, моим читателям, за вашу поддержку :) Без вас я бы не смог делать столько контента!


      1. isden
        00.00.0000 00:00
        +1

        Samsung Galaxy W 2014

        А можно плз точное название модели этой раскладушки? В гугле какую-то дичь показывают по этой строке.


        1. bodyawm Автор
          00.00.0000 00:00
          +2

          1. isden
            00.00.0000 00:00

            Спасибо. Я с пробелом после W искал :)


            1. iShkval
              00.00.0000 00:00

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


  1. StjarnornasFred
    00.00.0000 00:00
    +1

    UniSOC — SC9820E, который при ближайшем рассмотрении оказывается унаследованным от давнего знакомого бюджетников из 2014 — SC7715.

    А вот и нет. SC9820E не следует путать с SC9820A, там всё разное, вплоть до архитектуры. А вот у SC9820A, действительно, то же ядро Cortex A7 (точнее, два), что и у одноядерного SC7715. Впрочем, в плане команд управления спредтрумы, не считая галлитов от RDA, все плюс-минус одинаковы.

    А можно попробовать прогнать на нём Antutu и/или какие-нибудь ещё бенчмарки? По приколу, плюс для понимания, какие сведения о платформе он отдаёт.


    1. bodyawm Автор
      00.00.0000 00:00

      В какой то момент у спредтрума был очень популярный чипсет SC6820, который применялся в ультрабюджетных девайсах - некоторых самсунгах и... бесчисленнных репликах флагманов этого самого Samsung. А в Orange Pi 2G IoT используется RDA8820. Примерно в момент выхода 6820, RDA объединилась с Spreadtrum и похоже SC6820 - это RDA8810 с Mali вместо Vivante :)

      А маркировки спредтрума жесть. 9820 оказались лте чипсетами, в то время как в этом девайсе используется sc7715, несмотря на то, что спеки вроде говорят от 9820. А оф. спекиговорят о SC7731. Весело :)

      Nobby - Mobile phone Nobby 230, Черный с синим


  1. nbkgroup
    00.00.0000 00:00
    +4

    Просто так его распаковать и работать с ним не выйдет — нужна машина с
    Linux на борту и пакетами для работы с UBI, а поскольку мы хотим моддить
    из под Windows — придётся немного мудрить.

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


    1. bodyawm Автор
      00.00.0000 00:00

      Под линухом ubi тож костыльно монтировать))


  1. Abyss777
    00.00.0000 00:00

    А в нём такого нет?

    https://habr.com/ru/post/575626/


    1. bodyawm Автор
      00.00.0000 00:00

      Не похоже. Ничего влево не улетает


  1. MikeVC
    00.00.0000 00:00

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


    1. Max_Pershin
      00.00.0000 00:00

      Есть — но с проблемами — у 6261 меньше оперативной памяти чем нужно для mtkos. И стандартный подход изменен.


      1. bodyawm Автор
        00.00.0000 00:00

        Это почему? 6261 унаследован от 6235/6225 (те, на которых работали ноклы), ОЗУ там так же вроде, только кол-во ПЗУ обрезали до 4 мегабайт (!), тогда как дампы на тех мобилках весили 16-32.


    1. bodyawm Автор
      00.00.0000 00:00

      можно, но в открытом доступе исходников есть (на самом деле есть, но не полные и под старые чипсеты).

      6261 - обрезанная версия для часов, которая умеет дешевую spi память.


      1. MikeVC
        00.00.0000 00:00

        Я про супер миниатюрные телефоны. Очень они мне понравились. Но софт там сырой, хотелось бы доработать. Они на 6261 и прошивка там 4мб (есть дамп). Слить и разломать ее не проблема. Но чем и как модифицировать ?


        1. bodyawm Автор
          00.00.0000 00:00

          был софт для 6225, можно было картиночки менять))


  1. iShrimp
    00.00.0000 00:00

    Посоветуйте ресурсы по разработке под старые версии Android (2.3-4.0). Хотелось бы дать девайсам вторую жизнь. Нужен какой-нибудь 2d графический движок, поддерживающий старые андроиды.


    1. bodyawm Автор
      00.00.0000 00:00
      +1

      сейчас сам делаю ВКшечку под старые ведра, можно сказать "в лоб" - апдейтится весь вью с последними 200 сообщениями. На слабых устройствах работает так себе, при скролле подтормаживает :)

      Лонгполлинг не юзаю, пуши тем более - их тут впринципе нет.

      Под Java есть AndEngine (2D). Для 3D старый юнити (3-4) подойдет.


  1. Uint32
    00.00.0000 00:00

    А что сейчас есть из не совсем древних кнопочников, на которые можно было бы взгромоздить lineageos? (Ах мечты, мечты...)


    1. bodyawm Автор
      00.00.0000 00:00

      Qin? pmOS предлагается портировать самому)