thunderboltmld

Перераспределение памяти телефона вручную

66 posts in this topic

Более простой способ: Разметка памяти мобильных устройств

 

Это не так сложно, как кажется. У меня, во всяком случае, получилось, хотя я не гуру в андроиде  :D . Описываемый мною способ основывается на этой информации
 
Итак, кратко теория.
 
В нашем телефоне есть четыре больших раздела, размеры которых мы можем поменять:
system (в стандартной прошивке размер 768мб + 1мб между разделами)
cache (512мб + 1мб)
data (768мб + 1мб)
SD (около 1.5Гб)
 
Раздел system лучше от греха подальше не трогать, такой большой размер cache вроде бы нужен для нормальной работы OTA (обновление по воздуху). Так как эти обновления бывают редко, бОльшую часть времени этот раздел практически пустой и в этой программе во всех вариантах переразметки кэш уменьшают. Ну и святое дело отгрызть от внутренней SD, если все равно стоит внешняя SD  :D
 
Размеры этих разделов хранятся в MBR и EBR1. Но, просто изменить их там недостаточно, надо потом заново отформатировать изменившиеся разделы.
 
Общая схема действий.
 
1. Нам нужны custom recovery, чтобы не потерять наши данные. Я использовал TWRP, вроде бы сработает и на CWM
2. Если у вас что-то записано на внутренней SD, перепишите это на внешнюю SD. Если какие-то программы установлены на внутреннюю карту, то либо переустановите на телефон, либо забекапьте с помощью Titanium
3. Заходим в recovery и делаем backup, разделы system и data. Будьте внимательны, бекап надо сделать на внешнюю SD. По умолчанию TWRP может сделать бекап на внутреннюю SD и тогда вы его потеряете после переразметки!
4. Записываем через Flash Tool измененные файлы MBR и EBR1 (как именно менять чуть ниже)
5. Заходим в recovery и делаем Wipe -> factory reset, при этом и отформатируются нужные разделы. Если при этом менялся размер SD, вы увидите кучу сообщений об ошибке, но не переживайте, ничего страшного в этом нет.
6. Тут же в recovery сделайте restore
7. Запустите аппарат. Вы увидите сообщение о том, что SD надо отформатировать, отформатируйте.
8. Наслаждайтесь  :D
 
Как и что менять в MBR и EBR1.
 
Прежде всего нам нужен какой-нибудь Hex Editor. Например, этот
Сами файлы MBR и EBR1 берете из прошивки для Flash Tool, той, которая у вас установлена. Можно также их скачать из телефона напрямую, с помощью того же Flash Tool. В файле MBR записаны размеры разделов system и cache, в файле EBR1 - data и SD. 
 
Рассмотрим самый простой случай: мы хотим увеличить размер data за счет SD, не трогая cache.
 
 

post-10353-0-21701300-1378193628_thumb.p
В начале идет куча нулей, четвертая строка снизу отвечает за data, третья снизу за SD. Если вы не собираетесь настраивать размеры разделов с точностью до килобайта, вам достаточно менять цифры только в столбце 08 и 0c. Те значения, которые мы будем менять, я выделил красным. Каждая единица в столбце соответствует 32мб. Как мы видим, в стандартной прошивке там число 18 в шестандцатиричной системе, что соответствует 24 в десятичной. Умножаем 24 на 32 и получаем как раз 768мб. На размер для SD не смотрите, он указан в виде "до конца памяти".
 
post-10353-0-81834300-1378198048_thumb.p
Итак, я увеличил размер /data. Сейчас у меня в столбце прописано число 4a. Запустите калькулятор винды, выберите вид программиста, выберите Hex, наберите 4a, потом выберите Dec. Вы увидите, что это соответствует 74 в десятичной системе, то есть 2368Мб. Раз мы увеличили размер раздела /data, мы должны сдвинуть начало раздела SD. На сколько увеличили размер, настолько и сдвигаем. Запускаем калькулятор, вид программист, режим Hex. Вычитаем: 4a (стало) - 18 (было) = 32. Добавляем 41 (старый сдвиг SD), получаем число 73. Его и записываем в столбце 08 в строке SD. Но, надо и уменьшить размер SD. В том же калькуляторе набираем BE (старое значение из столбца 0c для SD) и вычитаем 32, получаем число 8C, которое и прописываем в столбце 0c. (Обратите внимание, все числа в шестандцатеричном формате) В этом случае размер SD получился около 20Мб. Чтобы этот хвостик не мешал, можно применить патч из основной темы про перераспределение памяти.
 
Не запутались? На всякий случай, прикладываю свои файлы MBR и EBR1. 
mbr_ebr1.zip
 
Если же вы хотите и размер cache изменить, схема в принципе та же, только задействуется еще и файл MBR. Cache в нем указан в последней строке. В родной прошивке там стоит число 10, что соответствует 16 в десятичной системе, умножаем на 32, получаем 512Мб. Если вы хотите, например, уменьшить его в два раза, значит в столбце 0c для cache пишете 08, соответственно надо сдвинуть начало /data (уменьшаем значение в столбце 08 в файле EBR1 для data на 8) и увеличить размер data (увеличиваем значение в столбце 0c в файле EBR1 для data на 8)
 
Надеюсь, понятно объяснил  :)
 
Внимание! Файлы, которые я выложил, подходят для P770, прошивка 110/113. Для других телефонов/прошивок берите за основу MBR и EBR1 из своих прошивок! Возможно, у вас используется также и файл EBR2!
Edited by linerty
Разметка памяти мобильных устройств
10 people like this

Share this post


Link to post
Share on other sites
0000000001F0: 00 00 05 00│00 00 00 B8│01 00 FF FF│FF FF 55 AA

 здесь идет следующий раздел, 0001b800h - это адрес чего? начала раздела или начала записи EBR2? и длинной до конца памяти

 Видимо, начало раздела, который начинается с EBR2

 

В EBR2:

0000000001C0: 00 00 83 00│00 00 00 A4│3C 00 00 78│34 00 00 00

начало раздела 003ca400h и размер 00347800h (1760559104 байт) - это раздел FAT? почему метка у него 83 - как линукс? 

Да, это FAT. Почему 83 - не знаю, у меня тоже 83

 

В общем я запутался с адресацией на начала разделов и на начала записи EBR-ов и отступов между разделами.

Выходит у меня вложенная структура:

MBR описывает основной раздел со своим EBR1 и разделы "protect_f", "protect_s", "sec_ro"

EBR1 - разделы "android", "cache", "usrdata" и в нем еще следующий раздел со своим EBR2

EBR2 - содержит только "fat"

 

Похоже, что так

2 people like this

Share this post


Link to post
Share on other sites
Видимо, начало раздела, который начинается с EBR2

но тогда в скаттере там другая адресация, или там по другому идет нумерация?

PRELOADER 0x0

{

}

MBR 0x600000

{

}

EBR1 0x680000

{

}

__NODL_PMT 0x700000

{

}

__NODL_PRO_INFO 0xb00000

{

}

__NODL_NVRAM 0xe00000

{

}

__NODL_PROTECT_F 0x1300000

{

}

__NODL_PROTECT_S 0x1d00000

{

}

__NODL_SECCFG 0x2700000

{

}

UBOOT 0x2720000

{

}

BOOTIMG 0x2780000

{

}

RECOVERY 0x2d80000

{

}

SEC_RO 0x3380000

{

}

__NODL_MISC 0x3980000

{

}

__NODL_RESV 0x3a00000

{

}

LOGO 0x3a80000

{

}

EBR2 0x3d80000

{

}

__NODL_EXPDB 0x3e00000

{

}

ANDROID 0x4800000

{

}

CACHE 0x2d200000

{

}

USRDATA 0x3d200000

{

}

__NODL_FAT 0x7d200000

{

}

__NODL_BMTPOOL 0xFFFF00a8

{

}

Edited by Andrey_GAV
1 person likes this

Share this post


Link to post
Share on other sites

 

 

Как ты наверное знаешь, в MBR записаны сектора по 512 байт (0x200), смещения указаны относительно самого MBR, то есть 0x600000
 
Первая строка твоего MBR указывает на смещение EBR1 относительно MBR. У тебя там 0x0400, умножаем на 0x200, получаем 0x80000, добавляем к смещению самого MBR, получаем 0x680000
 
EBR1 0x680000
{
}
 
Далее идет PROTECT_F, 0x6800 * 0x200 + 0x600000 = 0x1300000
 
__NODL_PROTECT_F 0x1300000
{
}
 
Далее PROTECT_S, 0xB800 * 0x200 + 0x600000 = 0x1D00000
 
__NODL_PROTECT_S 0x1d00000
{
}
 
Далее SEC_RO, 0x016c00 * 0x200 + 0x600000 = 0x3380000
 
SEC_RO 0x3380000
{
}
--------------------------------------------------------------------------------------------
Теперь очередь EBR1. Учитываем, что он начинается с 0x680000.
 
Первым идет Android: 0x020c00 * 0x200 + 0x680000 = 0x4800000
 
ANDROID 0x4800000
{
}
 
Потом Cache: 0x165c00 * 0x200 + 0x680000 = 0x2d200000
 
CACHE 0x2d200000
{
}
 
Дальше Data: 0x1e5c00 * 0x200 + 0x680000 = 0x3D200000
 
USRDATA 0x3d200000
{
}
 
Потом EBR2: 0x01B800 * 0x200 + 0x680000 = 0x3D80000
 
EBR2 0x3d80000
{
}
 
Интересно, что запись про EBR2 последняя, а при этом EBR2 располагается раньше остальных.
 
---------------------------------------------------------------------------------------------------------------------------
 
И теперь EBR2. Не забываем, что у него сдвиг 0x3D80000
 
Тут только FAT. 0x3ca400 * 0x200 + 0x3D80000 = 0x7D200000
 
__NODL_FAT 0x7d200000
{
}
 
Стало яснее?
3 people like this

Share this post


Link to post
Share on other sites
Стало яснее?

Ага!

Как раз ликбез для меня, подробно.

Спасибо!

 

p/s что-то не понял как репутацию здесь на форуме поднимать, поднял репутацию твоих ответов.

1 person likes this

Share this post


Link to post
Share on other sites

У меня тоже Lenovo S750, изучаю данный вопрос. Так вот мне интересно - а можно ли отредактировать эти файл тык, чтобы в смартфоне даже намека не было на "Память телефона"? Ну то-есть все свободное место отдать под "Внутренне хранилище" (/data)?

Share this post


Link to post
Share on other sites

У меня тоже Lenovo S750, изучаю данный вопрос. Так вот мне интересно - а можно ли отредактировать эти файл тык, чтобы в смартфоне даже намека не было на "Память телефона"? Ну то-есть все свободное место отдать под "Внутренне хранилище" (/data)?

Можно! И еще убрать монтирование в vold.fstab этого несуществующего раздела.

 

Но проще в vold.fstab убрать монтирование "Память телефона" (emmc), тогда телефон ее не видит. И чуть оставить этой памяти, т.к. в рекавери TWRP без этой emmc всегда ругается на ошибку монтирования (раздела ведь нет, а в рекавери он прописан) или подредактировать еще и рекавери под данное распределение.

1 person likes this

Share this post


Link to post
Share on other sites

Все! теперь и я понял, как модифицировать эти файлы (MBR, EBR1 и EBR2).

Огроменное человеческое спасибо Andrey_GAV и thunderboltmld без них я бы еще фиг знает сколько маялся с распределением памяти.

Иду раздавать плюсы в репу.

Share this post


Link to post
Share on other sites
В том же калькуляторе набираем BE (старое значение из столбца 0c для SD) и вычитаем 32, получаем число 8C, которое и прописываем в столбце 0c

всё понял кроме этой строчки, подскажите откуда взялось эти 32мб которые надо вычитать  , это всегда 32 или оно от чегото зависит ? срочно надо, подскажите кто знает ;)

Edited by lineon85

Share this post


Link to post
Share on other sites

уже понял :)

Share this post


Link to post
Share on other sites

Помогите пожалуйста переразметить разделы т.к. не могу въехать они у меня не похожи на приведенные здесь примеры :(

(мтк6575) 

 

00 00 05 00   00 00 20 00   00 00 00 cf   16 00 00 00
00 00 83 00   00 00 20 cf    16 00 00 00  10 00 00 00
00 00 83 00   00 00 20 d7   26 00 00 00  10 00 00 00
00 00 0b 00   00 00 20 df    36 00  ff   ff    ff   ff  55 aa

 

00 00 83 00   00 00 e0 9e   00 00 00 28   00 00 00 00
00 00 05 00   00 00 e0 ee   00 00 20 d8   15 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 55 aa

 

 

00 00 83 00   00 00 20 00   00 00 00 d8   15 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 55 aa

 

 

ВСЕ Получилось !!! оказалось довольно просто !!!! 

Edited by pp7808

Share this post


Link to post
Share on other sites

Lenovo A516. Данные из прошивки "Lenovo A516_ROW_S117_MOD_131027.zip"

Фраза из описания прошивки, связанная с памятью.

...Внешняя карта памяти установлена как основная (как /sdcard). Раньше /sdcard был ссылкой на папку из раздела приложений /data...

 

http://yadi.sk/d/zsYDZ5RpENpe6

 

Интересует. Возможности перераспределения памяти в этом аппарате.

Edited by gloriamas

Share this post


Link to post
Share on other sites

Помогите пожалуйста переразметить разделы т.к. не могу въехать они у меня не похожи на приведенные здесь примеры :(

(мтк6575) 

 

00 00 05 00   00 00 20 00   00 00 00 cf   16 00 00 00

00 00 83 00   00 00 20 cf    16 00 00 00  10 00 00 00

00 00 83 00   00 00 20 d7   26 00 00 00  10 00 00 00

00 00 0b 00   00 00 20 df    36 00  ff   ff    ff   ff  55 aa

 

00 00 83 00   00 00 e0 9e   00 00 00 28   00 00 00 00
00 00 05 00   00 00 e0 ee   00 00 20 d8   15 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00
00 00 00 00   00 00 00 00   00 00 00 00   00 00 55 aa

 

 

00 00 83 00   00 00 20 00   00 00 00 d8   15 00 00 00

00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00

00 00 00 00   00 00 00 00   00 00 00 00   00 00 00 00

00 00 00 00   00 00 00 00   00 00 00 00   00 00 55 aa

 

 

ВСЕ Получилось !!! оказалось довольно просто !!!! 

 

подскажите какие значения нужно редактировать если есть EBR1, EBR2 ?  раньше редактировал на апарате где было только EBR1 и там было все просто и понятно как в инструкции в шапке, а сейчас немогу разобратся что нужно редактировать 

Share this post


Link to post
Share on other sites

подскажите какие значения нужно редактировать если есть EBR1, EBR2 ?  раньше редактировал на апарате где было только EBR1 и там было все просто и понятно как в инструкции в шапке, а сейчас немогу разобратся что нужно редактировать 

 

Нужно разобраться где у Вас  разделы Data и FAT у меня оба оказались вообще в MBR... мне очень помогло описание thunderboltmld тут и booroondook тут

Share this post


Link to post
Share on other sites

Внимание! Файлы, которые я выложил, подходят для P770, прошивка 110/113. Для других телефонов/прошивок берите за основу MBR и EBR1 из своих прошивок! Возможно, у вас используется также и файл EBR2!

Не выложите оригинальные файлы MBR/EBR1 от прошивки 110/113? Я получил обновление по OTA и честно говоря не знаю, как их выдрать из телефона.

Share this post


Link to post
Share on other sites

По OTA они не меняются, возьмите из предыдущей, из комплекта прошивки по кабелю

Share this post


Link to post
Share on other sites

Спасибо автору, прошил свой аппарат, на SD выделил 626 мб (P770_ROW_S113_130424)

Единственный минус: новому файлу EBR1 нужно просчитать сумму, этого автор не указал.

Выкладываю свой EBR1 и cheksum (заменить новую сумму в файле CHEKSUM.INI на новое значение).

Самое главное, не забудьте ПУНКТ 5. Заходим в recovery и делаем Wipe -> factory reset, при этом и отформатируются нужные разделы. Если при этом менялся размер SD, вы увидите кучу сообщений об ошибке, но не переживайте, ничего страшного в этом нет.

EBR1 CHECKSUM.rar

Share this post


Link to post
Share on other sites

после перехода на 4.2.2 со 113)где гуляет память неизвестно)

post-53860-0-54507800-1390333950_thumb.ppost-53860-0-78934100-1390333962_thumb.p

Share this post


Link to post
Share on other sites

Очень подробно и доступно по ручной переразметке описано тут:

http://4pda.ru/forum/index.php?showtopic=383013&st=0#entry16443051

 

Кроме того что тут описано в топике, желательно еще править Scatter и Userdata.img (менять размер образа и прошивать его).

Если же этого не делать - в большинстве случает это заметно вовсе не будет, но система будет криво прошита. Что можно увидеть в файлах proc/... dumpchar_info, emmc, partitions (несовпадение параметров начала и размера)

Share this post


Link to post
Share on other sites
Привет всем. Там-то о разбиении P780 телефон здесь? Я хочу, чтобы разделить так: внутренней системы хранения: 3GB и 500MB встроенной памяти. Хотите repartionez с Xakep аромат, но я прошить прямо с flashtools. Теперь используйте Life v0.7.
При необходимости я могу спросить и вкладки здесь.

 

Hi all. There's something about partitioning P780 phone here? I want to partition this way: Internal storage: 3GB and 500MB built-in storage. I want to repartition with Xakep's Aroma repartition tool, but I flash it directly with flashtools. Now use the Life v0.7. If needed I can upload ebr files here.

Share this post


Link to post
Share on other sites

Очень подробно и доступно по ручной переразметке описано тут:

http://4pda.ru/forum/index.php?showtopic=383013&st=0#entry16443051

 

Кроме того что тут описано в топике, желательно еще править Scatter и Userdata.img (менять размер образа и прошивать его).

Если же этого не делать - в большинстве случает это заметно вовсе не будет, но система будет криво прошита. Что можно увидеть в файлах proc/... dumpchar_info, emmc, partitions (несовпадение параметров начала и размера)

Взяв файлы из стоковой прошивки 110ROW наткнулся на несоответствие: размер раздела Data в файлах MBR, EBR1 записан как 768 Мб, а образ раздела Userdata.img в прошивке содержит 767 Мб. Почему так ? и на что это влияет?

 

п.с. размеры разделов cache и system из прошивки совбадают с описанием их размеров в файлах MBR и EBR1.

Share this post


Link to post
Share on other sites

http://4pda.ru/forum/index.php?showtopic=544998 - профильная тема по переразметке, где есть много информации и ответов.

 

А по поводу разницы в 1мб - это нормально, так и должно быть. По крайней мере некоторые производители этот 1мб оставляют (якобы для шифрования данных)

Share this post


Link to post
Share on other sites

подскажите как откусить от раздела preload память и добавить ее к разделу data?

 

нашел как можно отредактировать скаттер а вот дальше непонимаю что делать....

Share this post


Link to post
Share on other sites

Заменил приложенные MBR1 и EBR в итоге полный объем системной памяти 3.8, но доступно только 607Мб. Чем она занята? 

Share this post


Link to post
Share on other sites

Кто-нибудь уже заполнял расширенную память до отказа?

Edited by germanich-o

Share this post


Link to post
Share on other sites

Товарищи, хелп) сделал аналогичные действия на устройстве Idea pad a2207h-a. Память уменьшилась, но дата не приросла) нет идей почему?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.