LG GT540 Optimus. Перенос Data на System | увеличение памяти для установки приложений



Реп: (207)
Обмен местами разделов system и userdata LG GT540
Изображение LG GT 540, Optimus, Swift
Отдельная тема создана по просьбам трудящихся, для уменьшения путаницы, а также для более простого контроля за темой data2system и отслеживания новых версий.

Что это такое и зачем оно надо?
Не так давно я придумал "трюк" позволяющий расширить объем внутренней памяти доступной для установки приложений (и хранения данных приложений)

Суть в том, что разбиение внутренней флеш памяти на разделы предусматривает разные размеры разделов для /system (245 МБайт) и /data (138,5 МБайт)
подробнее:
# cat /proc/mtd
dev: size erasesize name
mtd0: 00500000 00020000 "boot"
mtd1: 04000000 00020000 "cache"
mtd2: 00500000 00020000 "recovery"
mtd3: 00060000 00020000 "splash"
mtd4: 0f500000 00020000 "system" == 256901120 Байт == 250880 КБайт == 245 МБайт
mtd5: 002c0000 00020000 "lgdrm"
mtd6: 08a80000 00020000 "userdata" == 145227776 Байт == 141824 КБайт == 138,5 МБайт
mtd7: 00100000 00020000 "misc"
mtd8: 00080000 00020000 "usd"
mtd9: 005a0000 00020000 "pkg"
mtd10: 1cfc0000 00020000 ""

появилась идея переместить систему в раздел данных пользователя, тогда можно использовать бОльший раздел для данных пользователя
на самом деле идея была много извращеннее: переместить систему на ext2 раздел флешки, примонтировать 245МБ раздел как /data, а 138Мб как /data/data, но это вызвало некоторые проблемы и не было стабильно (при отвалах флешки.. итп..)

Замечу, что для использования этих прошивок нужен работающий recovery!!!
для его получения ознакомьтесь с LG GT540 Технические хитрости (сборник)
Думаю не будет лишнем и упоминание о том что вы и только вы сами ответственны за то, что вы делаете со своим телефоном.
Если вы не до конца понимаете как что работает и что вы собираетесь сделать - лучше изучите соответствующие темы форума, а если хотите задать вопрос описывайте все как можно подробнее. Четкий, подробный, правильно сформулированный вопрос уже будет содержать 90% ответа на него :)
я бы даже сделал "акцию": за точный и правильно составленный вопрос с исчерпывающей информацией ставить плюсик в репу спрашивающего :)

Ограничения и особенности
[/size][/color] !!! Обязательно внимательно прочитать !!!
Приведенный способ содержит свои ограничения и особенности:
Основное ограничение - 138.5 Мб для системы, таким образом официальные прошивки набитые под завязку всякой проприетарной шнягой проходят лесом..
Кастом прошивки в основном почищены от проприетарного мусора напиханного туда производителем и вполне могут уместиться на разделе /data (иногда только нужен легкий взмах напильника ;) )
Особенности:
1) фактически я не переименовываю разделы system и data, т.е. рекавери и фастбут их будут видеть также как и раньше.. в нашем случае наоборот (например fastboot -w или wipe в рекавери фактически затрет /system, а fastboot erase system или format /system в рекавери равносилен хардресету)
2) в принципе все особенности следствие п.1 update.zip для рекавери работать не будет (ну точнее будет... но делать будет немного не то, точнее не там %))
3) прочие функции рекавери связанный с работой с разделами также могут работать не правильно! (fix permissions в особенности.. он убьет вам систему испортив раздел данных - выход будет один- хард ресет (fastboot erase system или format /system в рекавери))
4) возможны глюки некоторых программ работающих с разделами (и берущих информацию не основываясь на mount а основываясь на /proc/mtd), поэтому производя насилие над прошивкой с поменянными data и system делайте nandroid backup (в рекавери)
5) исходя из вышесказанного, при появлении проблем, прежде всего, пеняйте на ваши манипуляции с прошивкой перед тем как обращаться с проблемой к разработчику оригинальной прошивки.

Описание метода ручной модификации
приведенные тут прошивки - это модификации кастомных прошивок.
если интересен способ модифицирования, он описан по ссылке -> LG GT540 Технические хитрости (сборник) (Пост #6644760)
в кратце:
Модификация заключается в редактировании ядра (меняются только 3 строчки в init.rc расположенного в boot.img, отвечающие за монтирование разделов /system и /data) переносе системных файлов в раздел данных и сохранению образа получившейся системы.

Готовые прошивки
итак, вот список модификаций прошивок в виде образов для восстановления через рекавери:
Android 2.3
data2system mod for 2.3.3 SwiftDroid v1.9 by Mur4ik http://narod.ru/disk/10458538001/233-19-data2sys.zip.html
Пердыдущие версии
data2system mod for 2.3.3 SwiftDroid v1.8 by Mur4ik http://narod.ru/disk/8526701001/20110327-2...ta2sys.zip.html
data2system mod for 2.3.3 SwiftDroid v1.5fm by Mur4ik http://narod.ru/disk/7095127001/233-15-data2sys.zip.html
data2system mod for 2.3.3 SwiftDroid v1.4b by Mur4ik http://narod.ru/disk/5997218001/232-14b-data2sys.zip.html

Android 2.2
data2system mod for 2.2.1 SwiftDroid LittleBrother by Mur4ik http://narod.ru/disk/10471132001/22-lb-data2sys.zip.html
data2system mod for 2.2 SuperFast Froyo v3 http://narod.ru/disk/10469047001/22-sff-v3-data2sys.zip.html
data2system mod for 2.2.1 OpenSwift 4.4 kernel 1.5 by Quarx http://narod.ru/disk/6059964001/221-os44k1...ta2sys.zip.html

Android 2.1
data2system mod for 2.1 BlackSystem (kernel 0.3.1) by Quarxhttp://narod.ru/disk/6014167001/21-q31-data2sys.zip.html

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

Установка
-1) в первую очередь, на всякий случай, резервируем свою текущую систему через recovery (nandroid backup)
0) Сохраняем нужные данные с телефона! восстановление эти образов очищает все данные!
1) качаем и распаковываем резервную копию системы.
2) папку из архива кинуть на SD карту в папку clockworkmod/backup/
3) зайти в recovery -> backup and restore -> restore -> выбираем образ
4) reboot system now
5) долго долго ждем пока загрузится в первый раз...

Хардресет
всеже если "очень хочется чтоб уж точно" или просто в процессе работы возникла необходимость, хардресет делать так:
fastboot:
fastboot erase cache
fastboot erase system
recovery:
mounts and storage ->
format cache
format system

PS
от себя, да и не только добавлю: 2.2/2.3 прошивки, позволяющие переносить приложения на sdcard в совокупности с этим методом позволяют практически не задумываться о месте в телефоне (ну естественно в разумных пределах), и необходимость в data2ext (data2sd на ext2/3/4 раздел карты памяти) отпадает

Новый способ by Mur4ik

Описание
Мысли об этом способе витали на форуме еще до появления кастом прошивок 2.2 (а возможно и еще раньше).
Общий принцип: переразбиение разделов до нужных размеров при помощи модификации bootloader (не путать с boot)
В итоге, после применения мода, можно будет ставить почти любую (об этом далее) кастом прошивку как через фастбут, так и через рекавери
Я бы пока рекомендовал этот метод только опытным гикам :) Тем, кто не испытывает никаких проблем с kdz прошивальщиком, фастбутом, дровами к телефону итп..
Размер system: 150Mb
Размер data: 234Mb

В общем метод таков:
1) перезапись бутлоадера с другой информацией о разделах (только kdz прошивальщик)
2) форматирование разделов
3) установка кастом прошивки любым способом (но не любой кастомной. см. далее)

Особенности и ограничения
1) Ограничение максимальный размер system 150 Mb
2) прошивать через kdz нужно только один раз, переход на другую кастом прошивку удовлетворяющую условию 1 как при обычной смене прошивки - фастбут или рекавери.
3) В рекавери и фастбуте разделы "на своих местах", нумерация разделов также сохранена. Проблема совместимости приложений теперь не существует как класс.

Установка мода
1) Если у вас уже кастом прошивка и system влезает в 150 мб - делаем backup в рекавери (есть особенность при переходе с data2sys.. об этом ниже..)
2) прошиваем kdz прошивальщиком: http://narod.yandex.ru/disk/10706845001/20E_234-150-64.kdz !ВНИМАНИЕ! см. п.3!!!
3) после как тел пойдет в перезагрузку - НЕ ДАТЬ ЕМУ ЗАГРУЗИТЬСЯ, т.е. сразу удерживать камеру для того чтоб вошел сразу в fastboot после прошивки.
4) войдя в фастбут:
fastboot erase system
fastboot erase userdata
fastboot erase cache
5) заливаем рекавери
6) заливаем прошивку или восстанавливаемся из рекавери
7) готово!

При переходе с data2sys на этот вариант
1) меняем названиями system.img и data.img
2) тоже делаем в файле nandroid.md5
⇓ это делать уже после прошивки kdz и прошивки рекавери через фастбут: ⇓
3) Advanced restore - system, Advanced restore - data
4) прошиваем оригинальное ядро от вашей версии прошивки через фастбут (можно прошить в тоже время как и рекавери)
5) готово.

Благодарности
благодарность за новый метод выражаем Mur4ik


Сообщение отредактировал bald1984 - 03.11.11, 12:11
Причина редактирования: приведение к общему виду



Реп: (6)
Спасибо использую этот мод еще с 2.1 а в 2.3 это действительно очень удобно единственное что напрягает это проблемы с рекавери\фастбутом иногда по ошибке восстанавливаю data (то есть систем) или хардрезет в систем сделаю... как вы уже говорили очень хорошо было б разобрать рекавери что б все отладить под мод кстати это никто не может сделать? кто то ведь прикрутил рекавери к нашему телефону?



Реп: (0)
Да. Большое спасибо за эту разработку!



Реп: (3)
подскажите а если я перекину модифицированое ядро в свой бэкап то в сработает ли в этом случае метод указанный AntonCh?



Реп: (3)
всё выяснил, выдает ошибку несовпадение контрольных сумм MD 5



Реп: (207)
Сергей23 @ 29.03.2011, 06:45 *
подскажите а если я перекину модифицированое ядро в свой бэкап то в сработает ли в этом случае метод указанный AntonCh?

Сергей23 @ 29.03.2011, 07:34 *
всё выяснил, выдает ошибку несовпадение контрольных сумм MD 5

так как вы сделали и не должно работать.
можно разве что испробовать другой "финт ушами":
1) берем свой бэкап
2) берем соответствующий мой
3) комбинируем как описанно ниже

но прежде нужно удостовериться что system занимает менее 138 Мб
для этого под вашей системой необходимо войти под adb shell с компьютера или в любой эмулятор терминала на сотовом
и ввести команду
df

будет результат вроде:
Filesystem 1K-blocks Used Available Use% Mounted on
...skip...
/dev/block/mtdblock4 250880 122344 128536 49% /system
/dev/block/mtdblock6 141824 1156 140668 1% /data
...skip...

отсюда видно что в /data (mtdblock6) всего места 141824 КБ
также видно что в /system (mtdblock4) занято 122344 КБ
поскольку 141824 КБ > 122344 КБ то "финт" скорее всего удастся

итак:
из вашего бакапа копируем в другую папку (папка не должна содержать русских букв и пробелов):
system.img
data.img
nandroid.md5
из моего:
boot.img

потом переименовываем data.img в system.img и наоборот:
1) переименуем data.img в temp.img
2) переименуем system.img в data.img
3) переименуем temp.img в system.img
(соблюдаем регистр!)

потом редактируем nandroid.md5:
1) заменяем в файле system.img на data.img и наоборот
например было:
8c39f4ba648d9ecc4d315fc282d996b6 boot.img
4970d1389bdabfd137560e02aad14b16 cache.img
8005ff72e51913b4b89adaf164cd3e16 data.img
ae77331e317d940ed1243d1657d9cf48 system.img

стало
8c39f4ba648d9ecc4d315fc282d996b6 boot.img
4970d1389bdabfd137560e02aad14b16 cache.img
8005ff72e51913b4b89adaf164cd3e16 system.img
ae77331e317d940ed1243d1657d9cf48 data.img

т.е. заметьте что контрольные суммы местами не меняем.
2) из папки с моим бекапом открываем nandroid.md5, копируем оттуда контрольную сумму boot.img и заменяем ее в своем новом nandroid.md5 (можно всю строку скопировать и заменить)
3) готово.. копируем в телефон и восстанавливаемся с этой папки :)

процесс сложный. но тем самым не будет хардресета :)
на любые app2sd не повлияет :) (ну точнее на некоторые повлияет, но в положительную сторону - места в памяти будет больше:))



Реп: (3)
ок спасибо за подробную инструкцию, её бы в шапку добавить



Реп: (0)
а если провернув весь этот трюк, захочется откатиться, ни каких глюков не будет, т.е если я востановлю свой бэкап все будет как раньше?



Реп: (3)
AntonCh а через фастбут можно как нить это всё замутить? Или пока что токо рекавери?



Реп: (6)
myxa007, да бекап вернет все на место как было.



Реп: (29)
AntonCh,
Я тут подумал... в образах рекавери для нашего тела есть файл recovery.fstab с таким содержанием:
# mount point fstype device [device2]

/boot mtd boot
/cache yaffs2 cache
/data yaffs2 userdata
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/sd-ext ext4 /dev/block/mmcblk0p2
/system yaffs2 system

... то есть fstab для рекавери меню... а что если взять и именно здесь поменять местами точки монтирования...
на выходе будет recovery_clockwork_3.0.х.х_swift.img под все твои моды... хоть в рекавери режиме не будет путаницы... как думаешь?



Реп: (13)
Подскажите пожалуйста, каким образом в 2.3.3v1.8 by Mur4ik+gapps + data<->sys сделать вайп батареи? Или через рекавери нормально работает?



Реп: (0)
warrean,
, да нормально через рекавери работает.



Реп: (11)
Помоему циановские темы не устанавливаются на данные прошивки. Можно как то поправить?



Реп: (11)
а нет... все ок.



Реп: (3)
А нельзя переразбить разделы каким то образом? Что бы Sistem стала весить 140Мб предположим, а всё остальное в Data ушло?

Сообщение отредактировал Evnikian - 05.04.11, 15:09



Реп: (1)
доброго времени суток)
в 1 посте темы сказано, что все функции рекавери, связанные с разделами могут работать неправильно, а так как я слабо разбираюсь в этом вопросе, то прошу ответить мне на такой: можно ли делать вайпы? батарейки, кэша, и прочего. спсибо)



Реп: (6)
sadist38 Батареи можно, остальное не совсем вайп кэша нет остальное будет перепутано то есть вайп систем сделает хард резет (сотрет данные) а вайп дата сотрет систем также фикс премисион (фикс прав) убивает систему (проверено лично) как из рекавери так из ром менеджер.



Реп: (3)
если надо вайп кеша сделать до делай форматирование кэша,



Реп: (6)
если надо вайп кеша сделать до делай форматирование кэша,

Дело в том что фактически кеш находится в дата (а дата фактечески в систем) то есть рекавери просто не найдет кеш так как по мнению рекавери кеш должен находиться в дата разделе (но в этом случае он в систем разделе) потому формат (или вайп) кеша не будут работать.

А нельзя переразбить разделы каким то образом? Что бы Sistem стала весить 140Мб предположим, а всё остальное в Data ушло?

Нет насколько я знаю пока никто так и не смог разбить флеш память.

Сообщение отредактировал atilavp - 08.04.11, 14:04



Реп: (8)
А чем это лучше ручной установки в /system ?


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 23.06.24, 07:53