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

label
label
label
В этом посте я загляну в глубокое прошлое, а именно где-то с год назад, и постараюсь ответить на вопрос, который присутствует во всех 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, если они у кого-то возникали, не должно остаться совсем.
Share This :



sentiment_satisfied Emoticon