LinuxForum.Fans
Тема

gentoo и android

Автор: zenon 13 сообщений 6272 просмотров
#292122

С приобретением смарта с андроидом приходится разбираться.
Собственно как его корень целиком забекапить?
Пока вожусь с ним.
===============================
Кому интересно тело - Huawei U8950-1 (с одной симкой U8950D -китайский двухсимочный).
Разблокировка бутлоадера:
Код на офф сайте забираем. Ждем до 3-х дней.
fastboot:

text
# layman -a gentoo-zh
# emerge --ask dev-android/fastboot

Настройки >> Быстрая Загрузка >> Выкл; Выключаем тело.
Зажать "громкость вниз" и "вкл", ждем 5-10 сек до зависания лого Huawei.
Смотрим что в наличии:

text
# fastboot devices
13052b50    fastboot

Разблокировка:

text
# fastboot oem unlock XXXXXXXXXX

XXXXXXXXXX - код который прислали.
Перезагрузка:

text
# fastboot reboot

===============================
Дальше - Android Debug Bridge (ADB) - тут запутался, какой пакет за что отвечает вроде этот:

text
dev-util/android-sdk-update-manager

adb

text
# adb devices
List of devices attached 
0C37DCA82FF1    device
#292124
text
# lsusb | grep Huawei
Bus 003 Device 005: ID 12d1:1038 Huawei Technologies Co., Ltd. Ideos (debug mode)

sys-fs/mtpfs поставил, правила udev:
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", ATTR{idProduct}=="1038", MODE="0666"

text
# mtp-detect
libmtp version: 1.1.5

Listing raw device(s) No raw devices found.

Почему тут он не видит ничего?
libmtp

text
# eix libmtp
[i] media-libs/libmtp
     Available versions:  1.1.4 1.1.5 **9999 {+crypt doc examples static-libs}
     Installed versions:  1.1.5(13:30:21 23.12.2012)(-crypt -doc -examples -static-libs)
     Homepage:            http://libmtp.sourceforge.net/
     Description:         An implementation of Microsoft's Media Transfer Protocol (MTP).
#292257

Поставил busybox.
Теперь бы разобраться что бэкапить.

text
# adb shell ls /dev/block
loop0       loop5       mmcblk0p10  mmcblk0p15  mmcblk0p2   mmcblk0p7   platform
loop1       loop6       mmcblk0p11  mmcblk0p16  mmcblk0p3   mmcblk0p8
loop2       loop7       mmcblk0p12  mmcblk0p17  mmcblk0p4   mmcblk0p9
loop3       mmcblk0     mmcblk0p13  mmcblk0p18  mmcblk0p5   mmcblk1
loop4       mmcblk0p1   mmcblk0p14  mmcblk0p19  mmcblk0p6   mmcblk1p1
text
# adb shell cat /etc/fstab
/dev/block/mmcblk0p15 /cache ext4 rw
/dev/block/mmcblk0p18 /data ext4 rw
/dev/block/mmcblk0p19 /emmc vfat rw
/dev/block/mmcblk0p17 /system ext4 rw
/dev/block/mmcblk1p1 /sdcard vfat rw
text

# adb shell cat /proc/mounts
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p17 /system ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p18 /data ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p15 /cache ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p16 /cust ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/vold/179:33 /mnt/sdcard2 vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:33 /mnt/secure/asec vfat ro,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard2/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/vold/179:19 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-0 /mnt/asec/com.dv.get-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-1 /mnt/asec/com.lonelycatgames.Xplore-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
text
# adb shell ls -l /
drwxr-xr-x root     root              2012-12-24 01:25 acct
drwxrwx--- system   cache             2012-12-23 01:25 cache
-rwxr-x--- root     root       244652 1970-01-01 03:00 charger
dr-x------ root     root              2012-12-24 01:25 config
drwxr-xr-x root     root              1970-01-01 03:00 cust
lrwxrwxrwx root     root              2012-12-24 01:25 d -> /sys/kernel/debug
drwxrwx--x system   system            2012-12-24 01:25 data
-rw-r--r-- root     root          118 1970-01-01 03:00 default.prop
drwxr-xr-x root     root              2012-12-24 01:25 dev
lrwxrwxrwx root     root              2012-12-24 01:25 etc -> /system/etc
-rwxr-x--- root     root       102896 1970-01-01 03:00 init
-rwxr-x--- root     root         2344 1970-01-01 03:00 init.goldfish.rc
-rwxr-x--- root     root        20215 1970-01-01 03:00 init.huawei.rc
-rwxr-x--- root     root         1726 1970-01-01 03:00 init.msm7627a.rc
-rwxr-x--- root     root         1428 1970-01-01 03:00 init.msm7630.rc
-rwxr-x--- root     root         3990 1970-01-01 03:00 init.qcom.sh
-rwxr-x--- root     root        24860 1970-01-01 03:00 init.qcom.usb.rc
-rwxr-x--- root     root         6231 1970-01-01 03:00 init.qcom.usb.sh
-rwxr-x--- root     root        48422 1970-01-01 03:00 init.rc
-rwxr-x--- root     root         2707 1970-01-01 03:00 init.target.rc
drwxrwxr-x root     system            2012-12-24 01:25 mnt
drwxr-xr-x root     root              2012-12-24 01:25 music_HWUserData
drwxrwx--x system   system            2012-12-24 01:25 persist
dr-xr-xr-x root     root              1970-01-01 03:00 proc
drwxr-xr-x root     root              1970-01-01 03:00 res
drwx------ root     root              2012-10-12 09:11 root
drwxr-x--- root     root              1970-01-01 03:00 sbin
lrwxrwxrwx root     root              2012-12-24 01:25 sdcard -> /mnt/sdcard
drwxr-xr-x root     root              2012-12-24 01:25 sys
drwxr-xr-x root     root              1970-01-01 03:00 system
drwxr-xr-x root     root              1970-01-01 03:00 tp
-rw-r--r-- root     root          272 1970-01-01 03:00 ueventd.goldfish.rc
-rw-r--r-- root     root        11238 1970-01-01 03:00 ueventd.rc
lrwxrwxrwx root     root              2012-12-24 01:25 vendor -> /system/vendor
drwxr-xr-x root     root              1970-01-01 03:00 wifi
#292426

Интересно cat'ом образ раздела можно корректно снять через adb shell (adb shell - это похоже на чрут андроида, оболочка - sh)
Например так:

text
# adb shell su -c "cat /dev/block/mmcblk0" > mmcblk0.img

su внутри без парольный.

#292504

Оказалось все гораздо проще, надо было просто подумать...

text
# adb pull /dev/block/mmcblk0 backup.img

И у нас в распоряжении все устройство целиком.
Или можно также отдельными разделами, а вот где хранится информация раздел/fs так и непонятно.

#302279

Красиво написано. Только вот на моем смартфоне su нету и как его туда внедрить совсем неясно(без прошивки разделов из bootloadera)

#302281

CyanogenMod - без него никак, на 4пда ищи свою модель...

#302336

А если использовать режим fastboot. Там есть опция (boot <kernel> [ <ramdisk> ]) значит можно на смарт загрузить своё ядро и рамдиск и запустить свой linux на смарте. И если это так то через него можно получить доступ к разделам без получения root и установки Mod`а (хотя бы на чтение) или здесь есть свои подводные камни (или я не прав). Хотелось бы все-таки сохранить оригинальный bootloader.

#302341

По идее можно, только вот бутлоадер должен быть разблокирован, у меня без этого невозможно было ничего на тело залить, в общем были перепробованы все варианты, без разблокировки и установки recovery раздела от CM никак.

#302344

А можно ли где нибудь достать рабочее скомпилированное ядро под этот девайс? Пробовал для ZTE Blade таким способом загружать ядро и рамдиск выдранные из ClockWorkMod recovery. И устройство разукрасив экран в разные цвета уходило в зависание. Но факт в том что в образе ClockWorkMod это же ядро работает без проблем может надо было добавлять командную строку какую-то или указать вручную адрес загрузки ядра. Но с ним у меня так ничего и не получилось да и не все попробовал что хотел (тело сдохло).

#303048
"zenon" написал:
# adb pull /dev/block/mmcblk0 backup.img

ка успехи? прообовал уже такой бекап обратно накатить после какого-нить фейла?

#303076

Fat-Zer, тут дело в том, что на мое тело официальной прошивки Huawei 8950 нет до сих пор в открытом доступе http://4pda.ru/forum/index.php?showtopic=421021
Поэтому пытался найти манёвр слить её... не тут-то было, подробности этого замкнутого круга уже толком не помню, не актуально стало.
В итоге залил CyanogenMod на свой страх и риск... в первых рядах... ничего работает, и бэкапы делает, так что adb теперь вроде как и не нужен, плюс ssh доступ есть, чего ещё желать? _:)
Смарт в продаже с декабря...

#303078

А, примерно так - fastboot может залить recovery.img, чтобы получить потом рута, и тогда можно заливать раздел через adb, но и через новый recovery (CM) после фастбута тоже можно.... как-то так.

Войдите или зарегистрируйтесь, чтобы ответить.