Opis sposobu na zrobienie backupu dowolnej partycji. Można zrobić też zrzut całej pamięci telefonu.
Po co?
Kopia zapasowa pamięci zawierającej wszelkie informacje potrzebne dla działania modułów radiowych (GSM, WiFi, BT etc.) umożliwi nam naprawienie zepsutego telefonu (np. po wgraniu złego softu lub po innych modyfikacjach typu flashowanie niskopoziomowe - ratowanie)
Na MTK wystarczy zrobić backup nvram z procesorami Qualconm już tych partycji np. z IMEI jest wqięcej.
Można również zrobić kopię systemu a później przywrócić poprzez fastboot. Przydatne do ratowania systemu.
MTK a Qualcomm
Dla procesorów MTK mamy narzędzie o nazwie MTK Droid Tools (MTK Droid Root & Tools v2.5.3):
http://forum.xda-developers.com/showthread.php?t=2160490
Nic jednak nie stoi na przeszkodzie żeby zrobić backup partycji NVRAM na MTK sposobem z tego tematu.
MTK przechowuje IMEI w pamięci NVRAM.
Qualcomm najprawdopodobniej na kilku partycjach: MODEMST1, MODEMST2 oraz FSC
Potrzebne narzędzia:
Przeczytanie FAQ:
http://######/adb-dzialaniefunkcjeprzyklady-dla-wszystkich/
Sterowniki adb:
http://developer.android.com/sdk/win-usb.html#top
http://www.mediafire.com/download/byub0kqkbb4dgq1/latest_usb_driver_windows.zip
Program adb.exe. Polecam zainstalować sobie Minimal ADB and Fastboot:
http://forum.xda-developers.com/showthread.php?t=2317790
Do listowania partycji. Binarka programu parted:
http://www.mediafire.com/download/a6lsudghd3h1jwp/parted.zip lub z załącznika w pierwszym poście: http://forum.xda-developers.com/showthread.php?t=2450045
SHA1 4b47b45d44581a85588b0cecd5fc97b57044211d
Lista partycji - prosty sposób
Włącz w telefonie tryb debugowania USB
Podłącz do komputera i zainstaluj sterowniki ADB
Zainstaluj pakiet minimal ADB
Przejdź w konsoli CMD do ścieżki gdzie znajduje się program adb.exe np.:
cd /d "C:\Program Files (x86)\Minimal ADB and Fastboot"
Wykonaj poniższe polecenia:
adb devices
adb shell
---
w powłoce telefonu
---
su
mount
Odczytujemy linijkę dla partycji /system:
/dev/block/bootdevice/by-name/system /system ext4 rw,seclabel,relatime,discard,data=ordered 0 0
Interesuje nas ciąg do by-name
Wykonaj polecenie zmieniajac odpowiednio ciąg /dev/block/bootdevice/by-name:
ls -la /dev/block/bootdevice/by-name
jeśli chcemy zapisać to w pliku na teleonie:
ls -la /dev/block/bootdevice/by-name >> /sdcard/ls.txt
I odczytaj plik ls.txt w telefonie.
Lub można od razu zapisać na komputerze poleceniem (wychodzimy z shella telefonu CTR+C lub CTRL+D):
adb shell ls -la /dev/block/bootdevice/by-name >> ls.txt
Odczytaj ścieżkę partycji:
lrwxrwxrwx root root 1970-01-06 03:34 system -> /dev/block/mmcblk0p26
np. dla system mamy symlinka do /dev/block/mmcblk0p26. Więc jeśli chcemy zrobić kopię partycji system to robimy kopię /dev/block/mmcblk0p26.
Tworzenie kopii zapasowej
Pokażę na przykładzie listy wyżej. Charakterystyczny rozmiar 1573kB.
Odczytujemy numer partycji jeśli korzystamy z parted lub innych progamów:
12 7357kB 8930kB 1573kB modemst1
13 8930kB 10.5MB 1573kB modemst2
23 201MB 203MB 1573kB fsg
Lub odczytujemy ścieżkę podobną do z polecenia ls:
/dev/block/mmcblk0p26
UWAGA: błąd w poleceniu dd może mieć nieodwracalne skutki!
"if" (ang. input file - plik wejściowy) - czyli nasza partycja
"of" (ang. output file - plik wyjściowy) - kopia na karcie pamięci
Jeśli partycja miała numer 12 to robimy kopię mmcblk0p12 (nazwa: modemst1) do pamięci wewnętrznej.
Tak samo postępujemy z kolejnymi:
dd if=/dev/block/mmcblk0p12 of=/sdcard/mmcblk0p12_modemst1
dd if=/dev/block/mmcblk0p13 of=/sdcard/mmcblk0p13_modemst2
dd if=/dev/block/mmcblk0p23 of=/sdcard/mmcblk0p23_fsg
Gotowe. Możesz teraz przenieść te 3 pliki z pamięci telefonu w bezpieczne miejsce.
Backup tablicy partycji
Wyżej mamy opis zrobienia kopii zawartości partycji. Tutaj postaram się umieścić opis jak zrobić kopię tablicy partycji, żeby można ją było odtworzyć.
Pierwszy sposób: ręczny odczyt sektorów przez dd:
http://forum.xda-developers.com/showpost.php?p=33359023&postcount=5
Drugi sposób to kopia za pomocą gdisk na andorida: http://www.mediafire.com/download/2kc5jnmj5dp74y5/gptfdisk.zip
Problemy
Błędy Permission denied będą sie wyświetlać jeśli:
nie wykonujemy poleceń jako root
nie zamontowaliśmy partycji systemowej do zapisu (adb remount lub adb shell "su" "" "mount -o remount,rw /system")
nie mamy zrootowanego telefonu
błąd adb push
adb push parted /system/bin/parted
Można to ominąć robiąc wszystko jako root. Można wgrać ręcznie plik parted na pamięć telefonu, zamontować systemową partycję do zapisu i nadać chmod.
adb push parted /sdcard/parted
(w razie błędu wgraj ręcznie plik parted na pamięć telefonu)
adb shell
--
w shellu telefonu
--
su
mount -o remount,rw /system
cp /sdcard/parted /system/bin
chmod 0755 /system/bin/parted
Opis partycji
Źródło opisów: http://forum.xda-developers.com/showthread.php?t=1959445
GPT - GUID Partition Table
sbl1 - secondary bootloader, sbl1bak - kopia sbl1
aboot - AP Bootloader, abootbak - kopia aboot
rpm - Resource and Power Manager, rpmbak - kopia rpm
tz- trust zone, tzbak - kopia tz
hyp - ??????????????
pad
modemst1 - IMGEFS1 (NV Data)
modemst2 - IMGEFS2 (NV Data)
misc
This partition contains miscellaneous system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings etc. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.
fsc???????????????
SSD - Secure Software Download
splash - ?????????
keystore ????????
config ??????????
oem ??????????
DDR ??????
modem - CP binary
FSG - Golden Copy
sec ????????
boot - Kernel
system - Android /system
persist - Persist
Info: http://forum.xda-developers.com/google-nexus-5/general/guide-to-fix-persist-partition-t2821576
Persist is partition mounted at /persist. It has ext4 file system. DRM releated files, sensor reg file (sns.reg), wifi and bluetooth mac addresses are stored there.
If you experience the following issues:
Can't access to internal storage.
No signal even after formating cache and fastboot flash cache.img
IMEI number is lost even after formating cache and fastboot flash cache.img
You get "e: cannot mount /persist" in recovery
then your persist partition have to be fixed
cache - Cache. Może zawierać skrypty uruchamiane przy pierwszym włączeniu telefonu
recovery -
The recovery partition can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. To learn more about this partition and its contents, see the ‘About Android Recovery’ section of our guide to ClockworkMod recovery.
userdata lub data- Najczęściej opisana jako pamięć telefonu.
Also called userdata, the data partition contains the user’s data – this is where your contacts, messages, settings and apps that you have installed go. Wiping this partition essentially performs a factory reset on your device, restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.
Na przykładzie Xiaomi RedMi Note LTE Dual SIM
Lista plików znajdujących się w obrazach FastBoot od xiaomi:(czyli tych do postawienia systemu)
fastboot %* flash tz %~dp0images\tz.mbn || @echo "Flash tz error" && exit /B 1
fastboot %* flash sbl1 %~dp0images\sbl1.mbn || @echo "Flash sbl1 error" && exit /B 1
fastboot %* flash rpm %~dp0images\rpm.mbn || @echo "Flash rpm error" && exit /B 1
fastboot %* flash aboot %~dp0images\emmc_appsboot.mbn || @echo "Flash emmc_appsboot error" && exit /B 1
fastboot %* flash hyp %~dp0images\hyp.mbn || @echo "Flash hyp error" && exit /B 1
fastboot %* flash tzbak %~dp0images\tz.mbn || @echo "Flash tzbak error" && exit /B 1
fastboot %* flash sbl1bak %~dp0images\sbl1.mbn || @echo "Flash sbl1bak error" && exit /B 1
fastboot %* flash rpmbak %~dp0images\rpm.mbn || @echo "Flash uboot rpmbak" && exit /B 1
fastboot %* flash abootbak %~dp0images\emmc_appsboot.mbn || @echo "Flash abootbak error" && exit /B 1
fastboot %* flash hypbak %~dp0images\hyp.mbn || @echo "Flash hypbak error" && exit /B 1
fastboot %* flash modem %~dp0images\NON-HLOS.bin || @echo "Flash modem error" && exit /B 1
fastboot %* flash system %~dp0images\system.img || @echo "Flash system error" && exit /B 1
fastboot %* flash cache %~dp0images\cache.img || @echo "Flash cache error" && exit /B 1
fastboot %* flash userdata %~dp0images\userdata.img || @echo "Flash userdata error" && exit /B 1
fastboot %* flash recovery %~dp0images\recovery.img || @echo "Flash recovery error" && exit /B 1
fastboot %* flash boot %~dp0images\boot.img || @echo "Flash boot error" && exit /B 1
fastboot %* flash sec %~dp0images\sec.dat || @echo "Flash sec error" && exit /B 1
fastboot %* flash splash %~dp0images\splash.img || @echo "Flash splash error" && exit /B 1
Lista partycji, których warto zrobić backup, których nie ma a obrazach fastboot
przykład Xiaomi RedMi Note LTE Dual SIM
11 6309kB 7357kB 1049kB pad
12 7357kB 8930kB 1573kB modemst1
13 8930kB 10.5MB 1573kB modemst2
14 10.5MB 11.6MB 1049kB misc
15 11.6MB 11.6MB 1024B fsc
16 11.6MB 11.6MB 8192B ssd
18 22.0MB 22.6MB 524kB keystore
20 22.6MB 89.7MB 67.1MB oem
21 134MB 134MB 32.8kB DDR
23 201MB 203MB 1573kB fsg
27 1847MB 1881MB 33.6MB ext4 persist
Źródła podstawowych opisów:
http://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/
Dopóki nie znajdę jakiegoś schematu to niestety nie uzupełnię opisów.
Źródła:
http://forum.xda-developers.com/showthread.php?t=2450045
http://forum.xda-developers.com/showthread.php?t=2317790
http://en.miui.com/thread-59832-1-1.html
Posty użytkowników:
http://######/forum/topic/5795-backup-nvram/
Lista partycji - sposób zaawansowany
Zanim zaczniemy tworzyć obrazy partycji musimy dowiedzieć się które urządzenie blokowe to te właściwe.
Włącz w telefonie tryb debugowania USB
Podłącz do komputera i zainstaluj sterowniki ADB
Zainstaluj pakiet minimal ADB
Przejdź w konsoli CMD do ścieżki gdzie znajduje się program adb.exe np.:
cd /d "C:\Program Files (x86)\Minimal ADB and Fastboot"
Wypakuj plik parted do folderu z adb.exe.
Wykonaj po kolei poniższe polecenia:
adb devices
adb root
adb remount
adb push parted /system/bin/parted
adb shell cat /proc/partitions >> partitions.txt
adb shell mount >> mount.txt
adb shell
-------------
teraz pracujemy w konsoli telefonu
-------------
su
chmod 0755 /system/bin/parted
parted /dev/block/mmcblk0
print
exit
CTRL+C
CTR+D
Powinna wyświetlić nam się lista partycji z etykietami (przyjaznymi nazwami):
root@@gucci:/ # parted /dev/block/mmcblk0
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
Model: MMC QN1SMB (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 542kB 524kB sbl1
2 542kB 1066kB 524kB sbl1bak
3 1066kB 2115kB 1049kB aboot
4 2115kB 3163kB 1049kB abootbak
5 3163kB 3687kB 524kB rpm
6 3687kB 4212kB 524kB rpmbak
7 4212kB 4736kB 524kB tz
8 4736kB 5260kB 524kB tzbak
9 5260kB 5785kB 524kB hyp
10 5785kB 6309kB 524kB hypbak
11 6309kB 7357kB 1049kB pad
12 7357kB 8930kB 1573kB modemst1
13 8930kB 10.5MB 1573kB modemst2
14 10.5MB 11.6MB 1049kB misc
15 11.6MB 11.6MB 1024B fsc
16 11.6MB 11.6MB 8192B ssd
17 11.6MB 22.0MB 10.5MB splash
18 22.0MB 22.6MB 524kB keystore
19 22.6MB 22.6MB 32.8kB config
20 22.6MB 89.7MB 67.1MB oem
21 134MB 134MB 32.8kB DDR
22 134MB 201MB 67.1MB fat16 modem
23 201MB 203MB 1573kB fsg
24 203MB 203MB 16.4kB sec
25 203MB 237MB 33.6MB boot
26 237MB 1847MB 1611MB ext4 system
27 1847MB 1881MB 33.6MB ext4 persist
28 1881MB 2283MB 403MB ext4 cache
29 2283MB 2317MB 33.6MB recovery
30 2317MB 7818MB 5501MB ext4 userdata
Zapisujemy sobie numery interesujących nas partycji z pierwszej kolumny. (modemst1, modemst2, fsg). Będą różne dla różnych modeli.
W plikach partitions.txt i mount.txt mamy informacje o dokładnych pozycjach poszczególnych partycji (sektor początkowy i końcowy) oraz o zamontowanych partycjach.