Билайн Про. Переразметка памяти.

Не так давно я писал о новом LTE смартфоне от Билайн - Билайн Про (он же ZTE Blade Q lux 4G, и он же, судя по всему скоро будет продаваться у МТС под пока неизвестным названием). В прошлой статье мы рассмотрели как установить CWM и получить root-права на Билайн Про, и по сути это было довольно просто. Сегодняшняя же наша статья рассчитана на продвинутых пользователей, которым не чужд SP Flash Tool и которые владеют навыками восстановления телефонов на платформе MediaTek (хотя все будет не так страшно, но если вы не уверены в своих силах - не делайте ничего из описанного здесь).

Основная проблема Билайн Про (ZTE Blade Q lux 4G) - недостаток внутренней памяти, а именно памяти для установки приложений. В телефоне установлена eMMC флеш на 8 Gb, которая разбита крайне бездарно. Память телефона делится на внутреннюю (память для установки приложений) - всего ~1.27 Gb и память телефона (фактически виртуальная SD-карта) - 4.44 Gb. Естественно что 1.27 Gb - это крайне мало, и установив пару-тройку приложений (Viber, ВКонтакте, еще что-нибудь) постоянно приходится сталкиваться с проблемой нехватки места. Даже, когда мы пытаемся скачать приложение из Google Play, зачастую мы получаем сообщение в стиле "упс, недостаточно памяти для распаковки приложения", недостаточно памяти для того, для сего ... что и обидно, т.к. мы знаем, что в нашем бюджетнике памяти-то целых 8 Gb. Для примера я решил задаться целью и увеличить внутреннюю память (т.е. память на которую устанавливаются приложения) в два раза.

Итак, что мы знаем про Билайн Про? Телефон этот на новой платформе - MT6572/MT6732M, поэтому про всякие там MTK Droid Tools и т.п. можно забыть. Они не умеют работать с разделами нашего телефона. Здесь нам поможет светлая голова, прямые руки и ADB. Первое что мы делаем это узнаем структуру разделов через cat /proc/partinfo :


Как мы видим, разметка диска в телефоне GPT, т.е. GUID Partition Table. Не лишним будет ознакомиться с ее описанием, хотя бы на Википедии. Как мы видим, в телефоне primary guid partition table - это раздел pgpt, а secondary guid partition table - это раздел sgpt. Я захотел увеличить память в два раза. Внутренняя память - это у нас раздел userdata, intsd - соответственно это виртуальная SD-карта. 

Кстати, заметил что на форуме 4PDA появился некий пользователь KOTwasya, который судя по всему обладает доступом к исходникам прошивок под данный аппарат (и судя по всему к официальным), так вот он собирал официальную прошивку с флагом TESTE_PARTITION_RESIZE и добивался вообщем-то того же эффекта. Но, как я уже говорил - для того чтобы осуществить переразметку памяти на телефоне вовсе не обязательно собирать что-то исходников. Все что нужно - это сам телефон, а он у нас уже есть. Ну да не буду отвлекаться. 

Если мы хотим увеличить userdata в 2 раза, то у нас должно получиться примерно следующее:

Разметка памяти "ДО", т.е. оригинальная разметка.
И разметка пвмяти "ПОСЛЕ", т.е. то, что мы хотим получить.
Внимательно читаем про GUID Partition Table, и в частности про GUID partition entry format, т.к. мы будем изменять именно записи о разделах (!):

Тут мы довольно быстро понимаем, что запись о каждом разделе в PGPT представляет собой 128 байт и сам раздел задается с помощью First LBA и Last LBA, а вовсе не Offset и Size. Ну да ничего. Выкачиваем PGPT из телефона с помощью Readback в SP-Flash Tool и смотрим на него:


Красным обведены как раз FirstLBA и LastLBA. Как же сконвертировать LBA в Offset'ы и Size'ы? Да все очень просто. Смотрим к примеру на раздел userdata:

FirstLBA = 0x0000000000308000, Last LBA = 0x0000000000557FFF

Теперь смотрим на Start Offset, End Offset и Size в таблице выше для этого же раздела:

0x0000000061000000 - 0x00000000AAFFFE00 - 0x000000004A000000 (размер раздела)

Ну как, уже понятно? Нет? Ну тогда смотрите:

0x308000 * 0x200 = 0x61000000 , а 0x557FFF * 0x200 = 0xAAFFFE00 ... а 0xAAFFFE00 + 0x200 = 0xAB000000.

Все. Теперь нам понятно как рассчитать начала и концы разделов в LBA. Теперь удвоим размер раздела userdata и получим новый PGPT:


Здесь я обвел только то, что мы изменили. Пришло время залить новый PGPT в телефон. Изменяем scatter файл (он есть у нас из предыдущей статьи про установку CWM), так, чтобы раздел PGPT можно было залить в телефон. И, честно говоря, нас ждем "облом". Потому что в телефоне есть еще SGPT и он при загрузке не понимает такого издевательства над собой. Поэтому я выполнил последовательно две операции, залил новый, модифицированный PGPT с увеличенной памятью в телефон и отформатировал область память, в которой лежит SGPT (копия GPT):


После чего добился того чтобы телефон запускался (несколько раз у меня что-то переглючило при прошивке PGPT, поэтому я пробовал прошивать еще пустой userdata.img и пустой cache.img, вместе с PGPT и еще пару раз делал Readback PGPT чтобы убедиться что правильный раздел был записан в телефон). Наконец у меня все запустилось, я зашел в Philz Touch Recovery и еще раз для верности форматнул Cache и Userdata (можно сделать просто Wipe Data / Factory Reset). Запустил телефон (а вернее восстановил Backup который я делал перед началом экспериментов) и ... смотрите и радуйтесь:


Внутренней памяти стало 2.24 Gb, память телефона (виртуальная SD) - 3.44 Gb. Т.е. как мы и планировали, мы увеличили раздел userdata за счет intsd. Если 2.24 - недостаточно, тогда можно разбить userdata / intsd в другой пропорции, например 4.24 Gb / 1,44 Gb. Тут каждый как говорится, может творить что хочет.

Файлы которые я использовал: beeline_pro_repartition.7z , в архиве - оригинальный scatter, модифицированный scatter, а также оригинальный pgpt (pgpt_original.bin) и pgpt (pgpt.bin) c 2 Gb внутренней памяти.

Для тех кто хочет поэкспериментировать - берем SP_Flash_Tool_exe_Windows_v5.1452.00.000, модифицированный scatter, модифицированный PGPT и заливаем все это в телефон. При этом не забываем отформатировать sgpt со следующими параметрами:

linear_start_addr: 0x1d1f80000
partition_size: 0x80000

После чего сделать wipe'ы в recovery и/или формат разделов data и cache. Вот вообщем-то и все. Как мы убедились - переразметить память собственного телефона так как нашей душе угодно не так уж и сложно.

Готовая прошивка с 2Gb памяти телефона для Билайн Про


Т.к. материал сложен для понимания, решил также выложить готовый "боекомплект". Внутри архива стоковая прошивка от Билайн Про с интегрированным Root и 2Gb памяти телефона (userdata). Также в прошивке уже присутствует универсальный Philz Touch Recovery, который "видит" и внешнюю SD и внутреннюю память.

Шить через SP Flash Tool не ниже 5.1452.00.000, при прошивке выбрать Firmware Upgrade и Scatter - !Mod_MT6752_Android_scatter.txt, т.е. все так, как показано на картинке:


Скачать прошивку Билайн Про 2Gb
(пароль на архив - decker.su)

Набор Scatter'ов и PGPT для предыдущей прошивки


Как я и говорил, для тех кому мало 2Gb, вполне могут сделать себе 4Gb. Пример:


В архиве beeline_pro_1gb_2gb_4gb_userdata_decker_su.7z есть все необходимое. На всякий случай поясню. Скачиваете предыдущий архив с прошивкой, распаковываете в папку, например D:\firmware ... Скачиваете этот архив и распаковываете его в ту же папку. Т.е. в D:\firmware помимо файлов из архива с основной прошивкой у вас должны быть:
  • pgpt_original.bin
  • pgpt_2gb.bin
  • pgpt_4gb.bin
  • !Mod_MT6752_Android_scatter_1Gb.txt
  • !Mod_MT6752_Android_scatter_2Gb.txt
  • !Mod_MT6752_Android_scatter_4Gb.txt

Далее, если мы хотим прошиться на 1Gb - выбираем scatter - ...1Gb.txt, 2Gb - ...2Gb.txt и, наконец, 4Gb - ..4Gb.txt.

p.s. Так как прошивка сделана для заливки с помощью Firmware Upgrade - ее вполне можно использовать для восстановления кирпичей. Что, естественно, дополнительный плюс.

p.p.s. По просьбам пользователей zzzepr отснял небольшую видеоинструкцию по этому посту, которую я и размещаю здесь:



Внимание! Материалы приведенные в данной статье размещены в ознакомительных целях. Все действия описанные в данной статье вы осуществляете на свой страх и риск! Автор(ы) статьи не несут ответственности за вышедшее из строя оборудование, в результате ошибочных действий или неверного понимания вами смысла изложенного в ней материала, а также в силу любых прямых и косвенных причин, которые потенциально могут привести к неработоспособности вашего устройства или любым другим проблемам с ним. Если вы не уверены в своих силах, сомневаетесь и т.п. - не выполняйте ничего из вышеописанного. Используя материалы из этой статьи вы соглашаетесь с тем, что ответственность за ваши действия несете вы и только вы.
Share This :



sentiment_satisfied Emoticon