Q. зачем это нужно
A. Например, на другой планшет нужно перенести, и негде взять... - или для бекапа...
0-1. Все команды Linux из терминала начинаются с '#' , а команды из windows c '>'
'#' или '>' набирать не надо.
Если adk у вас не установлен, то распакуйте все из [attachment="2536009:adb.zip"] и положите, например, в с:\tmp
далее работаем в этой директории.
>
adb devices> adb shell или вместо adb shell - более удобный putty (
https://puttytray.goeswhere.com/в нем выберите connection type adb, port 5037, host :transport-usb (именно! с двоеточия начинается))
драйверы для adb тут:
http://adb-file-explorer.googlecode.com/fi...0usb_driver.zip или тут:
http://developer.android.com/sdk/win-usb.html#
su - все команды из root
0. Для временного хранения будем использовать временный диск
/mnt/obb - его размер ~450mb
Q. Можно сразу писать на карточку?
A. Можно, но так быстрей и карточка не изнашивается!
chmod 777 /mnt/obb1. копируем образы. Внимание! Это для планшета
Mars. на других планшетах - другая разметка, внимательно
скорректируйте разделы под свой планшет.
#
cat /proc/mtddev: size erasesize name
+mtd0: 00800000 00200000 "bootloader"
+mtd1: 00800000 00400000 "logo"
+mtd2: 00800000 00400000 "aml_logo"
+mtd3: 00800000 00400000 "recovery"
+mtd4: 00800000 00400000 "boot"
-mtd5: 20000000 00400000 "system"
-mtd6: 08000000 00400000 "cache"
-mtd7: 40000000 00400000 "userdata"
-mtd8: 195000000 00400000 "NFTL_Part"
разделы помеченные "+" - будем копировать, остальные - не будем. Раздел system будем копировать пофайлово.
Данные с Fat32 раздела - сами копируйте, если нужно. data и cache - индивидуальны,
а мы все равно будем делать wipe.
В принципе можно и раздел "system" скопировать и восстановить таким же образом. Но полезней по-другому.
# cat /dev/mtd/mtd0 > /mnt/obb/mtd0
# cat /dev/mtd/mtd1 > /mnt/obb/mtd1
# cat /dev/mtd/mtd2 > /mnt/obb/mtd2
# cat /dev/mtd/mtd3 > /mnt/obb/mtd3
# cat /dev/mtd/mtd4 > /mnt/obb/mtd4
> adb pull /mnt/obb/mtd0 mtd0
> adb pull /mnt/obb/mtd0 mtd1
> adb pull /mnt/obb/mtd0 mtd2
> adb pull /mnt/obb/mtd0 mtd3
> adb pull /mnt/obb/mtd0 mtd4
> ren mtd0 u-boot-aml-ucl.bin
> ren mtd1 logo.img
> ren mtd2 aml_logo.img
> ren mtd3 uImage_recovery
> ren mtd4 boot.img
больше нам временные файла не нужны:
# rm /mnt/obb/mtd*
2. копируем system
заставить штатный
busybox делать то, что нужно не получилось. Поэтому tar будем делать прилагаемым.
> adb push busybox /mnt/obb
# cd /mnt/obb
#
chmod 777 busybox#
./busybox tar czf system.tgz /systemtar: removing leading '/' from member names
- Эта операция займет минут 20.
Или отдыхаем, или открываем поочередно наши образы (каждый по 8MB) и чистим от нулей в конце - чтобы размер нашей прошивки был поменьше.
в каждом образе в конце либо нули, либо 'FF' - Можно программой HxD их поудалять
вдумчиво!
Или оставить как есть - размер на самом деле сильно не изменится из-за компрессии...
bootloader - после 60000 - можно удалять.
для logo и aml_logo и планшета
Icou, Onda - есть программа - можете разобрать их на файлы ( img -> bmp и bmp -> image).
см.
ICOO ICOU7 - Обсуждение (Пост #19296228)В планшете
Mars - это BMP файлы - их можно почистить с конца в соответствии с форматом или просто обрезать, зная их
размер.
ядра recovery и boot в адресах 0C-0F - находится длина ядра (MSB) - идем по этому адресу, оставляем еще строку с нулями
- далее все можно удалять - (используем shift на клавиатуре).
3. Копируем наш файл и разархивируем его в каталог system (программой 7-zip или winrar).
>
adb pull /mnt/obb/system.tgzон нам более не нужен
# rm /mnt/obb/system.tgz
> del system.tgz
4. Проверяем. Что-то забыли скопировать? У Вас могут быть какие-то еще полезные файлы...
однозначно
не нужно копировать это
acct
boot
cache
config
d
data
default.prop
dev
etc
init
init.factorytest.rc
init.goldfish.rc
init.rc
initlogo.rle.bak
mnt
proc
sbin
sdcard
sys
ueventd.goldfish.rc
ueventd.rc
5. создаем директорию C:\tmp\META-INF\com\google\
android и
кладем туда 2 файла - интерпретатор edify: update-binary и update-script - сам скрипт - берем это с родственной прошивки.
6. С высокой вероятностью скрипт тот, что нужно, но проверяем
имена файлов, которые мы получили из образов.
ах да, там, наверное, есть строчка
package_extract_dir("recovery", "/system"); - удаляем ее - мы эти 2 файла уже скопировали.
возможно проверьте для / root
set_perm(0, 0, 06755, "/system/xbin/su");и есть ли su сам...
7. архивируем файлы - выбираем все, кроме uImage_recovery (и естественно программ windows и нашего дополнительного busybox)
- это пойдет в update.zip
8. Подписываем update.zip с помощью программы:
http://4pda.to/forum/dl/post/2488843/signapkwin.zip9. проверяем прошивку - переносим u-boot-aml-ucl.bin, uImage_recovery и update_signed.zip на карточку и т.д.
на всякий случай имеем карточку со старой прошивкой - вдруг чего-то не учли...
10. прошиваем с вайпами data и cache