четверг, 16 июля 2015 г.

Мегафон Login 3 MT4A. Первый кастомный recovery - TWRP v2.8.1.0.

В этом посте я загляну в глубокое прошлое, а именно где-то с год назад, и постараюсь ответить на вопрос, который присутствует во всех FAQ по планшету Мегафон Login 3 MT4A:

- Существуют ли сборки альтернативного Recovery CWM или TWRP для нашего устройства?
- Да, теперь существуют. TWRP v2.8.1.0 был успешно собран мной этой ночью ;)

Честно говоря, у меня есть одна черта, не знаю уж плохая или хорошая - я никогда не могу бросить начатое на полдороги. Год назад, благодаря определенным событиям, я оставил все разработки касающиеся планшета Мегафон Логин 3 и пообещал себе никогда к ним не возвращаться. Отчасти это было вызвано неприятным осадком, который у меня появился из-за ... (не буду показывать пальцем), отчасти массой безрезультатно потраченного времени. И вот, спустя год, несмотря на данное себе обещание я все же решил вернуться к этому многострадальному планшету и посмотреть почему же никому до сих пор не удавалось собрать кастомный recovery.



Как видно из этих двух фото - невозможных вещей не бывает ;) Перед вами вполне рабочий TWRP для планшета Мегафон Login 3 , частично собранный из исходников, частично из пропатченных бинарников, скомпилированных для других устройств. Основной проблемой при сборке или портировании кастомного recovery для Login 3 - был нестандартный framebuffer и overlay, а также отсутствие исходников. Теперь все это позади.

Обновлено 16.07.2015 18:50:



В видео продемонстрирована работа кастомного recovery TWRP на планшете Мегафон Login 3 (MT4A). При съемке видео штатив и фотоаппарат доставать было лениво, поэтому решил по-быстренькому снять все на свой Alcatel Idol 3. Правда одной рукой и снимать и показывать было не очень удобно, поэтому периодически я не мог попасть в кнопки Назад и Домой ;)) Но на смысл обзора это не влияет. Как видно, тач работоспособен, все функции работают, разделы видны, backup'ы делаются и восстанавливаются, zip'ы прошиваются.


Backup'ы стоковых прошивок для TWRP


  • login3_twrp_V5.0.8.0.7z - официальная прошивка 5.0.8.0 (backup не включает в себя раздел recovery, т.е. оригинального recovery 5.0.8.0 в состав данного backup'а не входит)
  • login3_twrp_V5.2.8.0.7z - официальная прошивка 5.2.8.0, последняя на момент написания этого поста (в backup входят все разделы)

Для развертывания backup'а загрузитесь в TWRP и создайте backup своей текущей прошивки, чтобы на SD-карте появилась папка содержащая ваш backup - /SD-карта/TWRP/BACKUPS/<идентификатор>/. Затем распакуйте содержимое скачанного архива в данную папку и выберите в меню TWRP - Restore.

TWRP 2.8.1.0 для Мегафон Login 3 MT4A


Скачать TWRP 2.8.1.0 для Мегафон Login 3 MT4A
Пароль на архив: twrp.decker.su


История версий:

  • v1 - Первая релизная версия TWRP для Мегафон Login 3.
  • v2 - Вторая версия, включающая следующие изменения от vevs:

    • для контроля версии из ББ3 - изменил ro.build.display.id=V5.2.x.x
    • обновил бинарник busybox до 1.22.1 (версии Libc и прочего совпадают - работает нормально), unzip теперь знает новые версии форматов;
    • заменил install-recovery.sh на родной (размер больше на 1 байт) - некоторые патчи и скрипты контролируют его по SHA1, поэтому его лучше не менять;
    • добавил файлик временных зон
    • исправил маленький косяк (или фичу) в init.rc, из-за которого tmpfs вёл себя призабавно при попытке залить патч больше 462 Mb.

p.s.  Не забываем поделиться этой новостью, а также про волшебную кнопку Поддержать проект  ;)

Технические подробности


Для тех кого интересуют технические подробности сборки или ответ на вопрос - почему же из официальных исходников TWRP нельзя было собрать рабочую версию, пока что могу рассказать следующее. В Мегафон Login 3 нестандартный framebuffer и overlay. Если обратить внимание на структуру mdp_overlay:

struct mdp_overlay {
 struct msmfb_img src;
 struct mdp_rect src_rect;
 struct mdp_rect dst_rect;
 uint32_t z_order; /* stage number */
 uint32_t is_fg;  /* control alpha & transp */
 uint32_t alpha;
 uint32_t blend_op;
 uint32_t transp_mask;
 uint32_t flags;
 uint32_t id;
 uint32_t user_data[6];
 uint32_t bg_color;
 uint8_t horz_deci;
 uint8_t vert_deci;
 struct mdp_overlay_pp_params overlay_pp_cfg;
 struct mdp_scale_data scale;
};

См. файл msm_mdp.h. Константа MSMFB_OVERLAY_SET после сборки превращается в 0xC2686D87. Если вдаваться в подробности и посмотреть как она получается:

#define IOCPARM_MASK 0x1fff  /* parameter length, at most 13 bits */
#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)
#define IOCBASECMD(x) ((x) & ~IOCPARM_MASK)
#define IOCGROUP(x) (((x) >> 8) & 0xff)
#define IOC_OUT  0x40000000 /* copy out parameters */
#define IOC_IN  0x80000000 /* copy in parameters */
#define IOC_INOUT (IOC_IN|IOC_OUT) = C0000000
#define _IOC(inout,group,num,len) (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))
#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))
#define MSMFB_IOCTL_MAGIC 'm'
#define MSMFB_OVERLAY_SET       _IOWR(MSMFB_IOCTL_MAGIC, 135, struct mdp_overlay)

То недрудно понять что 0x268 - это не что иное как размер структуры, т.е. sizeof(mdp_overlay). Так вот, в нашем планшете overlay surface structure, т.е. struct mdp_overlay другая. Она длиннее на 0x60 байтов. Поэтому при сборке из исходников при запуске TWRP мы получаем либо отсутствие изображения, либо синий экран - т.е. невозможность проинициализировать Overlay (Overlay Set Failed). В сборке же TWRP из этого поста, за счет использования патченных бинарников от других устройств - используется правильная структура overlay'я, поэтому он работает.

Видеоинструкция по установке TWRP


Совсем недавно уважаемый zzzepr, с замечательными видеороликами которого вы можете ознакомиться на его канале YouTube, снял небольшую видеоинструкцию по установке TWRP на Мегафон Login 3:


Так что теперь, проблем с установкой TWRP, если они у кого-то возникали, не должно остаться совсем.

23 комментария :

  1. Чувак, ты гений)) интересно, а на престижио мультипад ренжер встанет это рекавери?
    Ещё бы циан.мод запилить, было бы вообще красиво))

    ОтветитьУдалить
  2. Как обновить оптему? Стоит Рут не обновляется убрал Рут тоже самое.

    ОтветитьУдалить
    Ответы
    1. Причем здесь Мегафон Optima и Мегафон Login 3 (MT4A)?

      Удалить
    2. Привет я хотел спросить тебя можно ли партировать miui на Мегафон Логин 3 планшет?С mipad , и где найти информацию как это сделать.

      Удалить
  3. Маэстро Декер, большое спасибо! Всё получилось! Будем пользоваться!

    ОтветитьУдалить
  4. Если планшет навернется, эта штучка восстановит ВСЮ систему? Или только отдельные данные?

    ОтветитьУдалить
  5. Отличная штука! Попробовал забэкапить систему и восстановить её! Все на УРА! Огромнейшее спасибо!!!!

    ОтветитьУдалить
  6. Есть на нем кастомная прошивка?

    ОтветитьУдалить
  7. скажите пожалуйста, почему у меня не обновляется, идет установка обновление, выдает install aborted

    ОтветитьУдалить
  8. Помогите (((( как подключить клавиатуру через usb к логин 3, возможно ли это. Если можно то пошагово.

    ОтветитьУдалить
  9. Здравствуйте,
    прежде всего хочется выразить Вам благодарность за труды и словами.

    Если Вам не сложно, посоветуйте как быть:

    Около года назад при покупке Мегафон Login 3 (MT4A) легко получили root следуя Вашим инструкциям в этой статье:
    http://www.decker.su/2014/08/root-login-3-mt4a.html

    На днях супруга, разочарованная объёмом рекламы попыталась установить AdFree Android (следуя описанию в теме на 4pda.ru).

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

    "Данные на вашем планшетном ПК больше недоступны из-за прерванного шифрования. ... кнопка ОК."

    В ходе перезагрузки система что-то удаляла, что-то восстановила и вернула мне голый, но относительно рабочий планшет с версией ПО 5.2.5.0, какими-то постоянными ошибками Google+ и сообщением о доступности обновления системы (вероятно до 5.2.8.0). При этом при попытке обновить ПО, возвращает на recovery и выводит ошибку: "/system/bin/debuggerd/" has unexpected contents.

    https://plus.google.com/107533891037114501313/posts/C5eBadjHryr?pid=6228972621994306754&oid=107533891037114501313

    https://plus.google.com/u/0/107533891037114501313/posts/j5MCjcmjxPf?pid=6228967921692698322&oid=107533891037114501313


    Backup, сделанный с помощью HDD Raw Copy после покупки планшета, утерян. Поэтому есть только от сего момента. Но не суть.

    Посоветуйте пожалуйста что попробовать и в какой очерёдности?
    Поможет ли мне установка TWRP v2.8.1.0. и последней прошивки с данного поста?

    Заранее спасибо Вам за советы.

    ОтветитьУдалить
    Ответы
    1. Прошейте TWRP из этого поста, затем разверните backup любой из прошивок выложенных в этом посте и сделайте wipe'ы.

      Удалить
    2. здравствуйте у меня прошивка идет и планшет выключится что делать помогите пожалуйста ?

      Удалить
  10. Здравствуйте.подскажите после прошивки все работает нормально но исчезло перенос на флещ.флещ видит но ничего на неё не сохраняется. Также приходит обновление скачиваеся но я не могу его установить.и возможно но ли сделать подмену памяти на флещ.

    ОтветитьУдалить
  11. Добрый день! Все получилось с прошивкой, только остался вопрос как произвести подмену памяти планшета на SD. Заранее спасибо

    ОтветитьУдалить
  12. После установки прошивки twrp_login3_recovery_by_decker_vevs_v2.img, следуя вашим инструкциям, столкнулся с двумя проблемами:
    1. Планшет перестал видеть sd-карту (которую до это видел и юзал без нареканий), компьютер эту карту видит.
    2. В TWRP нет Kitkat-SuperSU-v2.00+.zip. Знаю как установить его через меню рекавери, но теперь вместо рекавери тврп. Замкнутый круг получается.

    ОтветитьУдалить
    Ответы
    1. twrp_login3_recovery_by_decker_vevs_v2.img - это не прошивка, а образ кастомного recovery TWRP. Установка TWRP никак не может повлиять на читаемость той или иной SD-карты в планшете. Рекомендуется проверить планшет на работоспособность с другими SD. По-поводу получения root через установку Kitkat-SuperSU-v2.00+.zip - тоже не очень понятно, данный архив есть в комплекте с TWRP. Прошить его вы можете через пункт меню Install ZIP в TWRP. Если у вас отсутствует SD карта - то для прошивки вы можете поместить этот архив во внутреннюю память устройства.

      Удалить
    2. виноват, поспешил писать. с картой разобрался. я накосячил с local/primary.
      сейчас карта работает, я поместил на неё ваш зип с Kitkat-SuperSU и из TWRP его установил. но рут прав я не получил, сам SU требует обновления, но обновиться не может. никак.
      а затеяно это всё оттого, что нет возможности перемещать приложения на СД, а для этого надо рут...

      Удалить
    3. Скачайте последнюю версию SuperSU в виде zip архива для установки через кастомный recovery с официального сайта разработчика и будет вам счастье.

      Удалить
  13. подскажите пожалуйста,всю голову себе уже сломал....прошить это рекавери совсем не получаеться....тогда почитал и попытался просто разово запустить это рекавери....и тут тоже не чего не получилось, он просто зависает на этой синей заставке где написанно "teamwin" и всё...как быть?

    ОтветитьУдалить