- Мобильные устройства изнутри. Изменение разметки памяти планшета
- Изменение разметки памяти планшета
- 1.Введение.
- 2.Планирование изменений разметки памяти.
- 3.Внесение изменений в прошивку планшета.
- 3.1.Внесение изменений в GPT-файл.
- 3.2.Прошивка GPT-файла в МУ.
- 4.Проверка результатов проделанной работы.
- 5.Заключение.
- ciases / Переразметка памяти на смартфоне.md
- Переразметка памяти андроид для чего
Мобильные устройства изнутри. Изменение разметки памяти планшета
Изменение разметки памяти планшета
1.Введение.
Как-то попался мне в руки планшет YB1-X90L от Lenovo, выполненный на чипе от Intel:
Рис.1. Планшет YB1-X90
Я попытался выполнить над ним некоторые, в принципе, я бы сказал, стандартные модификации для мобильного устройства (МУ), попавшего в руки разработчика:
- разблокировать загрузчик;
- установить custom recovery;
- получить ROOT;
- посмотреть разметку памяти;
- ну и общие исследования возможностей работы.
Все пункты плана были успешно выполнены. Одним из незапланированных пунктов стало исследование раздела разметки, который я назвал GPT-разделом Intel-типа.
Тем не менее, на многих сайтах очень популярна тема по изменению разметки МУ, выполненной по GPT-схеме, тем более, если это GPT-раздел Intel-типа. Получается, что этот вопрос, несмотря на теоретические выкладки, так и остается до сих пор не закрытым… Вот я и решил воспользоваться моментом, что у меня на руках имеется свободное МУ, которое можно немного «помучать», и провести натурные испытания своих теоретических познаний. Короче, я задумал изменить разметку памяти…
Перед началом выполнения работ я снял все, что можно по существующей разметке: файлы partitions, dev/block/by-name/ и образ GPT-раздела.
- планшет, имеющий стоковую прошивку;
- образ GPT-раздела Intel-типа;
- файл partitions, снятый с реально работающего МУ.
Что надо: для своих экспериментов мне понадобился отдельный раздел памяти размером 512Мб.
Соответственно, для его размещения нужно где-то в памяти планшета найти эти мегабайты…
2.Планирование изменений разметки памяти.
Давайте внимательно рассмотрим файл partitions:
«Кандидатами» на «урезание» из-за своих размеров могут быть, например, три раздела: android_country (mmcblk0p11), android_data (mmcblk0p14) и android_system (mmcblk0p13). Они, как правило, имеют размер раздела гораздо больше, чем образ, заливаемый в них, что и позволило бы мне беспрепятственно выделить память под новый раздел. Однако не забывайте, что изменение размеров разделов, соответственно и смещений расположения разделов, потребует возни с восстановлением данных этих разделов, т.е. их резервного сохранения и последующего восстановления… Поэтому проще «откусить» свободное место от раздела data, т.к. он расположен последним. Это позволит нам избежать выполнения пересчета размеров затронутых разделов памяти и восстанавливать придется только один раздел.
Таким образом, нам нужно только добавить новый раздел между разделом android_system и разделом android_data. Этот раздел назовем win_tools, а размер зададим 512Мб. Все параметры нового раздела сведены в таблицу:
3.Внесение изменений в прошивку планшета.
Нам повезло, т.к. если бы GPT-раздел был стандартным, то пришлось бы изменять оба раздела: основной и резервный. А так только меняем один GPT-раздел Intel-типа. Приступаем…
3.1.Внесение изменений в GPT-файл.
Сначала внесем изменения непосредственно в GPT-файл, хранящий образ GPT-раздела прошивки планшета. Для этого берем из стоковой прошивки файл gpt.bin и:
- Загружаем его в hex-редактор:
Находим запись о разделе android_system и копируем ее полностью в качестве шаблона нового раздела:
Переходим на начало записи о следующем разделе, т.е. android_data, и вставляем шаблон:
Новая запись должна содержать описание нового раздела, возьмем значения параметров описания из табл.1 и заполним поля Size (было 0x00000F00, станет 0x00000200), Label (было android_system, станет win_tools) нового раздела. Все внесенные изменения отмечены красным цветом на рисунке:
Переходим на заголовок GPT-раздела и внесем изменения в поле Number (Число записей о разделах) (смещение 0х08 заголовка). В поле было число 0х000E (14 разделов), мы запишем туда число 0x000F (станет 15 разделов), на рисунке ниже оно выделено красным цветом:
Все, раздел разметки изменили, теперь нужно его поместить в планшет.
3.2.Прошивка GPT-файла в МУ.
Т.к. мы решили переместить начало раздела android_data, то, чтобы потом найти данные там сохраненные, выполним backup раздела. После этого можно смело менять разметку памяти…
Прошивка любых образов разделов, снятие/установка блокировки загрузчика и т.п. действия выполняются при помощи флешера фирмы Intel PhoneFlashTools. Причем использовать нужно тот, версия которого поддерживает Ваше МУ. Исследуемый планшет нужно «препарировать» версией 5.3.2.0. Дополнительным условием для успешного проведения операции является наличие json-файла, управляющего процессом выполнения. С версией флешера разобраться легко, а вот json_файл пришлось писать самому, т.к. изменять разметку, похоже, еще никто не пробовал.
ВНИМАНИЕ! Перед выполнением любых работ по изменению разметки памяти ОБЯЗАТЕЛЬНО выполните резервное копирование всех разделов памяти.
Дело в том, что переразметка физически затрагивает только один раздел — раздел разметки. Все Ваши данные, система, IMEI сохраняются на прежних местах. Только МЕНЯЮТСЯ указатели на эти места, которые и хранятся в разделе разметки. Это приводит к тому, что Вы средствами МУ (операционной системой) просто не сможете попасть в места хранения информации.
4.Проверка результатов проделанной работы.
После выполнения работ я снял всю информацию по новой разметке: файлы partitions и образ нового GPT-раздела.
Посмотрим содержимое partitions:
Теперь можно сравнить, что было и что стало, с разметкой:
Видно, что раздел mmcblk0p14 размером 24986624 переместился на строчку ниже, уменьшился до размера 24462336 и стал теперь разделом mmcblk0p15, а на его месте появился новый раздел mmcblk0p14 размером 524288.
Ну и сравним содержимое образов GPT-разделов до и после переразметки. Вот заголовок стокового GPT-раздела:
Вот записи о промежутке разделов system — data этого же образа:
А вот заголовок GPT-раздела после переразметки:
Вот записи о том же промежутке разделов system — data GPT-раздела после переразметки:
Все говорит за то, что раздел действительно существует, кстати, а вот список разделов, снятый из папки /dev/block/by-name при помощи Total Commander:
Рис.9. Список образов разделов МУ
5.Заключение.
Те, кто внимательно почитали публикацию, поняли, что вносить изменения чисто в разметку памяти совсем несложно, а если учесть, что для этих целей существуют и специализированные редакторы…
Гораздо больше проблем возникает при занесении этой разметки внутрь МУ, хотя это уже материал для другой публикации…
Источник
ciases / Переразметка памяти на смартфоне.md
Инструкция по увеличению, уменьшению и восстановлению внутренней памяти и USERDATA — Пример Для Аппарата 1/4.
Перезагружаемся в рековери. Размонтируем все что есть: twrp > монтирование > отключаем все. Далее в Расширенные > Терминал . На текущей директории Выбрать(Select) . Попадаем в командную строку. Смотрим информацию по разделам командой (0 — ноль):
После команды, появится таблица и идем в самый низ, находим цифры 26 и 27 . 26 раздел с именем userdata , если вы запароли только внутренню память, то за это отвечает 27 раздел, его может не быть вообще или быть, но без метки ‘grow’ , если просто нет метки, то из-за этого внутренняя память может не монтироваться (для этого нужно ввести команду: parted /dev/block/mmcblk0 name 27 ‘grow’ и перезагрузиться рековери и выбрать внутреннюю память в разделе инсталл,после перезагрузки она определится).
2. Удаление разделов
Перед удалением разделов, посмотрите начальные значения в мегабайтах для 26 и 27 разделов . Они указаны как данные с которых берется начало ,например: 1347 3959 — первое значение, начало — в мегабайтах, а второе конец. Так как у меня аппарат 1/4, то поэтому у меня конец в 3959 — что равно 4гб общей памяти. У меня был только 26 раздел, из — за чего и пропала внутренняя память, а 27 не было, он пропал. Поэтому я решил делать переразметку.
Удаление разделов (это необратимые действия. После них разделы для системы будут потеряны): Вводим команды:
Все разделов нет. Они удалены. Делаем проверку таблицы снова и для этого вводим команду:
В таблице должно бить 25 наименования после удаления, то есть последняя цифра в нумераци должна быть 25.
3. Создаем раздел userdata (внутренняя память)
Вводим начальные и конечные данным в мегабайтах. Если хотите добавить больше места на внутренню память для программ и музыки, например, у меня раздел 26 начинался на 1347, а конечный я указал 2000(мегабайт). Таким образом, 27 раздел нужо будет записывать с конца 26. То есть 27 -тот где будут проги и музыка ,будет начинаться с 2000 и заканчиваться 3959. То есть для своих данных я освободил 1.8 гб.
Команда для создания 26 раздела — UserData:
Цифры, вписываете свои-из своей таблицы,которые нужно было переписать на листик или в блокнот на комп.
Выдаем имя новому разделу
Проверяем разделы после выполнения:
Должен появиться 26 ой раздел в ext2 c конечным разделом — в моем примере конечный обьем 2000мб. Если появился то идем дальше.
4. Создаем раздел для данных (внешняя память)
Здесь мы создаем 27 раздел — для данных, музы и т д. Команда создания почти такая же что и в предыдущем шаге. Вместо 100% можно указать конечный размер 3959 в мегабайтах.
Далее присваиваем имя или имя для 27 раздела, чтобы оно отображался как внутрення память для программ и монтировался в компьютере.
Проверяем разделы после выполнения:
Должен появиться раздел 27 с вашими введенными данными. М моем случае, он начинается на 2000мб и заканчивается на 3959мб.
После этого или делаем перезагрузку в рековери снова,чтобы обновить данные и ставим прошивку или же ставим ее сразу. Если Интернал Сторедж-Врунтренняя память для программ и ваших данных не отображается, проверьте есть ли в 27 разделе метка grow , у 26 раздела это метка userdata . Если у 27 раздела нет метки, делаем ее так:
Потом перезагружаемся в рековери, выбираем внутреннюю память, если до этого грузились с юсб или сд карты.
Если после всего все работает ,но внутренней памяти нет-для программ, игр и т д. Тогда проделайте еще раз:
Внимание,начальные и конечные данные указывайте свои,вместо конечных данных, можно ставить просто 100% Потом перезагружаемся снова в рековери,выбираем раздел интернал сторедж и вместо нуля при выборе, там поменяются данные на ваши, которые вы указали при переразметки.
Источник
Переразметка памяти андроид для чего
Разметка памяти мобильных устройств. Теория и практика
В этой теме будут затронуты следующие вопросы:
- строение файлов разметки памяти, таких как scatter, MBR, EBR, GPT, EFI, parameter и др.;
- предложены средства (приложения) для изменения разметки памяти;
- даны практические рекомендации по осуществлению операций по переразбивке (переразметке) памяти мобильных устройств.
Для начала стоит начать с материала под спойлером «Полезная информация«, а затем, наполнившись знаниями, приступить и к практике, используя приложения, представленные ниже:
Требования:
- операционная система Windows 7 или выше;
- установленный пакет .NET 4.0.
Возможности:
- позволяет изменять размер ЛЮБОГО раздела памяти с автоматическим пересчетом параметров всех разделов;
- позволяет удалять любой раздел полностью;
- восстанавливать PMT-файл по имеющемуся scatter-файлу;
- восстанавливать scatter-файл по имеющемуся PMT-файлу;
- автоматически формирует файлы разметки памяти (scatter, MBR+EBR);
- устанавливает верхнюю границу памяти 3 способами ;
- размеры памяти привязаны к размеру блока, размер которого можно выбрать ;
- работает с нестандартными scatter-файлами;
- мультиязычность. Поддерживается два языка: русский и английский.
Свежая версия
Архив содержит папку с ресурсами русского языка, распаковать ВСЮ структуру вместе.ScatterEditor_v1.06.zip ( 43.32 КБ )
ИнструкцияИнструкция пользователя ScatterEditor_v1.06.zip ( 1.36 МБ )
Требования:
- операционная система Windows 7 или выше;
- установленный пакет .NET 4.0.
Возможности:
- поддерживает файлы новой структуры;
- позволяет изменять размер ЛЮБОГО раздела памяти с автоматическим пересчетом параметров всех разделов;
- позволяет удалять разделы;
- автоматически формирует файлы разметки памяти (scatter, MBR+EBR);
- правильно устанавливает верхнюю границу памяти, которая просматривается через свойства аппарата;
- мультиязычность. Поддерживается два языка: русский и английский.
Свежая версия
Архив содержит папку с ресурсами русского языка, распаковать ВСЮ структуру вместе.Scatter2Editor_v207.7z ( 34.77 КБ )
Инструкция в pdf форматеИнструкция пользователя Scatter2Editor_v2.03.zip ( 1011.1 КБ )
Требования
- операционная система Windows 7 или выше;
- установленный пакет .NET 4.0.
Возможности
- позволяет редактировать размер и флаг ЛЮБОГО раздела;
- позволяет изменять параметры командной строки запуска;
- мультиязычная версия;
Свежая версияRK_ParamEd_v1.01.rar ( 20.43 КБ )
Инструкция пользователяRK_ParamEd_1.01. Users manual.rar ( 990.79 КБ )
- PartitionsA23 — разметка разделов на процессорах AllWinner — для чипов А23 и А33, A31s (возможно подойдёт и для других чипов)
Приложение для обработки файлов разметки схем DOS (MBR+EBR, partition.bin и т.п.) и GUID (файл GPT, EFI и т.п.).
Требования
- операционная система Windows 7 или выше;
- установленный пакет .NET 4.0.
Свежая версияPartitionsEditor_1.02.rar ( 122.15 КБ )
Инструкция пользователя
Скоро будет.
В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).
Сообщение отредактировал derak1129 — 12.10.21, 06:08
Проверить успешность процесса переразмеки, можно только одним способом : посмотреть каким стал размер того раздела, манипуляции с которым Вы проводили в программе ScatterEditor .
Посмотреть размеры разделов телефона можно, например, через программку MTK Droid Tools Для этого подключите тел. к ПК, на котором уже установлены все необходимые драйвера, и запускаем прогу (через эту же прогу получаем временный Root-Shell , если его нет) затем жмем на кнопку «Карта блоков» . Появляется новое окошко, в котором и смотрим размеры разделов телефона.
Сообщение отредактировал SevenMaxs — 15.09.14, 17:14 ps: Могу помочь в создании топиков (в стиле Android update-script, лучшую инфу с форума собрал в одном месте). Prince_Saint Что такое MBR-файл. Введение. Структура MBR и EBR файлов. MBR имеет размер 512 байт, т.е. один физический сектор и имеет следующую структуру: Каждая запись таблицы разделов имеет длину 16 байт, а содержимое зависит от используемой ОС. Для мобильных устройств формат записи таблицы разделов имеет следующий вид: Структура записи таблицы разделов Смещение раздела указывается от первого сектора описываемой этой таблицей области памяти. Т.е. если в поле смещения раздела указано значение 0х400, а сама таблица (MBR) расположена в памяти, начиная с адреса 0х00600000 (это указывается в scatter-файле), то этот раздел физически будет расположен в памяти с адреса 0х00600000 Код типа раздела описывает его содержимое. Так, если раздел не содержит информации, т.е. пуст, то его код устанавливается в 0х00. Работа с MBR и EBR файлами. В связи с большим объемом материала примеры я решил вынести в отдельный пост. Сообщение отредактировал vin2809 — 12.02.14, 20:39 Введение. Строение scatter file. [__NODL_]name offset [length]
Квадратные скобки означают необязательный параметр.
EXT4_IMG — раздел содержит часть файловой системы EXT4;
EMMC_BOOT_1 —
BINREGION — область «сырого кода»;
Пример полного scatter-файла второй версии, приведен в файле «Scatter_v2.txt». Работа со scatter file. Пример scatter-файла Сообщение отредактировал vin2809 — 27.02.14, 15:26 Источник |