Jak vytvořit zálohu zařízení Android před flashováním firmwaru. Jak vytvořit zálohu zařízení Android před flashováním firmwaru Zálohování neznámé struktury rom je nemožné

Dobrý den, Habrakhabr.

obecná informace

Tato příručka je navržena tak, aby vám pomohla vytvořit úplnou zálohu vašeho zařízení (celá paměť se všemi oddíly) nebo jeden oddíl (včetně sdcard atd.) přímo do vašeho počítače:
  • Na úrovni Memory Block (pomocí příkazu dd): pro jednotlivé sekce nebo celou paměť (všechny sekce). Záložní kopie bude mít vždy stejnou velikost jako ukládaný oddíl.
  • Na úrovni souboru (pomocí příkazu tar): pouze pro jednotlivé oddíly. Kopie bude obsahovat pouze soubory a složky, které existují v zařízení, takže zabere mnohem méně místa v závislosti na zaplnění oddílu.

Tyto pokyny platí, když je zařízení zapnuté nebo v režimu ClockworkMod Recovery (v těchto případech bude ADB fungovat v režimu Fastboot tento pokyn nelze použít). Pokud není uvedeno jinak, všechny příkazy jsou určeny pro použití v systému Windows. Totéž platí pro Linux a Unix.

Požadavky

  • Zakořeněné zařízení Android;
  • Busybox nainstalovaný na zařízení;
  • Pokud používáte Linux / OS X, již máte potřebné nástroje, pro Windows si stáhněte Cygwin a nainstalujte s ním netcat, pv a util-linux, při instalaci je vyberte (dodám, že je lepší použít terminál z Cygwin mintty.exe než nativní Windows cmd.exe, protože kopírování rychlost u prvního dosáhla 3-4 MB/s a u cmd.exe - maximálně 400 kB/s);
  • ADB nainstalován;
  • Ujistěte se, že adb.exe je ve vaší proměnné PATH. Podívejte se a nebo použijte Správce cest;
  • Povolen režim ladění USB na zařízení a odpovídající ovladače nainstalované v systému Windows. Zadáním „zařízení adb“ do terminálu by se mělo zobrazit vaše zařízení.

Přepážky v zařízení

Nyní musíte na svém zařízení identifikovat oddíly a bloky, ze kterých chcete vytvořit kopii. Chcete-li zkopírovat jeden oddíl, můžete použít příkazy tar nebo dd, zatímco pro zkopírování celé paměti musíte použít pouze dd.

Na Teclast x98 3g K definování oddílů se používají dva příkazy: cat proc/partitions a mount.

Příklad toho, co by se mělo objevit v reakci na jejich vstup v terminálu.

127|root@android:/ # mount
namontovat
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
žádný /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 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
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
root@android:/ # cat proc/partitions
cat proc/partitions
hlavní vedlejší #bloky název

179 10 30535680 mmcblk0
179 11 229376 mmcblk0p1
179 12 32768 mmcblk0p2
179 13 32768 mmcblk0p3
179 14 131072 mmcblk0p4
179 15 131072 mmcblk0p5
179 16 131072 mmcblk0p6
179 17 786432 mmcblk0p7
179 18 262144 mmcblk0p8
179 19 1048576 mmcblk0p9
259 0 27742188 mmcblk0p10
179 30 2048 mmcblk0boot1
179 20 2048 mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504 mmcblk1p1

Na Androidu je obvykle celý blok obsahující všechny oddíly umístěn v /dev/block/mmcblk0 a všechny ostatní oddíly jsou jeho podsekcemi. Můžete nainstalovat parted s podporou GPT a zobrazit informace o všech oddílech.

Veškerá paměť telefonu -> /dev/block/mmcblk0 (ačkoli na některých telefonech to může být také karta sdcard).
Příčky -> vše záleží na konkrétním zařízení. Obvykle /dev/block/platform/dw_mmc/by-name/ vypíše všechny oddíly pro dané zařízení.

Zálohujte veškerou paměť (přes adb)

Připojte telefon s povoleným režimem ladění USB k počítači.

Pokud jde o Teclast x98 3g a případ, kdy se zařízení nespustí (bootloop). Je velmi důležité, aby byl povolen režim ladění USB, než se to všechno stane. Tablet úplně vypněte, odpojte všechny kabely, dejte pár sekund na „odpočinek“ a připojte kabel z počítače k ​​tabletu, měla by se objevit taková velká bílá baterie, která bude indikovat, že probíhá proces nabíjení, teprve potom , i ve vypnutém stavu lze s přístrojem pracovat přes terminál a adb.

Spusťte Cygwin Terminal a zadejte (v případě potřeby nahraďte mmcblk0):

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Na dalším řádku vlevo uvidíte blikající kurzor. V tuto chvíli zařízení čeká na přenos Bloku po síti.

adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0,5 > mmcblk0.raw

Uvidíte, jak se velikost souboru začne zvětšovat, dokud se nezkopíruje celý vybraný blok. Nyní máte kompletní zálohu zařízení v raw formátu. Veškerý obsah zkopírovaného bloku můžete vidět pomocí gptfdisk, který je k dispozici pro Windows, Linux a další OS (oficiální webové stránky nebo). Totéž můžete udělat pomocí ClockworkMod Recovery, ale zpočátku musíte připojit oddíl /system, protože BusyBox, který je součástí ClockworkMod, nemá netcat, takže musíte použít netcat z /system oddílu vašeho zařízení.

S pomocí určitých nástrojů v Linuxu můžete upravit a extrahovat požadované sekce z celého bloku.

ADB můžete používat přes WiFi, podobně jako Wi-Fi ADB.

Zálohujte veškerou paměť (přes WiFi)

Odkaz na autora: Nandroid přímo do počítače bez sdcard.

Nezbytné:

  • Nainstalovaný FTP server v počítači nebo jiném zařízení;
  • Uživatel s heslem;
  • Instalovaný port pro FTP servery, výchozí je 21, ale in v tomto příkladu použité 40;
  • Domovský adresář uživatele s právy zápisu.

Dobrým pravidlem je zkopírovat myfifo do /cache a ne do /data, protože můžete omylem přepsat důležitá data, pokud pro obnovu použijete nezpracovaná data.

Spusťte Cygwin Terminal a zadejte:

adb shell
su
mkfifo /cache/myfifo
ftpput -v -u user -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Otevřete jiný terminál Cygwin a zadejte:

adb shell
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo

Pár poznámek:

  • FIFO lze vytvořit pouze v nativních souborových systémech Linux; FAT k tomu není vhodný;
  • Proces čtení oddílu ze zařízení jej žádným způsobem nemění.

Zálohujte veškerou paměť (přes USB tethering nebo Wi-Fi tethering)

Chcete-li to provést, musíte odpojit všechna síťová připojení v počítači, kromě toho, se kterým budete provádět proces kopírování.
Jakmile připojíte počítač k zařízení Android, můžete zobrazit IP adresu počítače a IP zařízení ve „Vlastnostech připojení“. IP - bude IP samotného počítače a brána bude obsahovat IP zařízení Android.
  • Wi-Fi modem: Počítač< - Wi-Fi --->zařízení Android< - 3G --->Internet
  • USB modem:
    Počítač< - USB --->zařízení Android< - Wi-Fi --->Internet
    Počítač< - USB --->zařízení Android< - 3G --->Internet

Proces je naprosto podobný přenosu dat přes Wi-Fi, jediná věc je, že rychlost přenosu dat bude mnohem vyšší, protože počítač a zařízení Android jsou připojeny přímo, namísto použití routeru jako brány. V tomto případě bude bránou samotné zařízení Android. USB modem má nejvíce vysoká úroveň přenos dat.

Zálohujte jeden oddíl (raw = přesná kopie oddílu bit po bitu)

Vše je podobné tomu, co bylo popsáno výše, pouze musíte nahradit mmcblk0 příslušnou sekcí. V tomto konkrétním případě můžete použít software k zobrazení obsahu zkopírovaného oddílu. Záleží na souborový systém: DiskInternals Linux Reader, plugin pro Total Commander a ImDisk Virtual Disk Driver. Můžete také použít software pro obnovu dat z jednotlivých oddílů, například Recuva spolu s VHD Tool nebo nástroji příkazový řádek, které jsou součástí samotných operačních systémů.

Zálohujte jeden oddíl (tar = kopírují se pouze soubory a složky)

V tomto případě je vyžadován již připojený oddíl. (Výše jsem popsal, jak najít oddíly na Teclast x98 3g.)
Chcete-li zobrazit seznam všech připojených oddílů v terminálu Cygwin, zadejte:

Nyní byste měli vědět, kde a jaký oddíl je připojen, například Firmware je připojen v /system, což je v podstatě ROM.
V tomto případě budete muset otevřít tři terminály Cygwin kvůli omezením uloženým samotným Androidem:

Otevřete první terminál Cygwin a vytvořte FIFO, například v /cach, a přesměrujte na něj tar:

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Musíte to udělat, protože přesměrování tar na stdout (s "-") nefunguje na Androidu a poškozuje uložený soubor.

Otevřete druhý terminál Cygwin:

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Otevřete třetí terminál Cygwin:

adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0,5 > system.tar

Výsledný soubor tar můžete zobrazit pomocí Winrar, Total Commander, PeaZip atd. Vezměte prosím na vědomí, že byste neměli extrahovat soubory ani je upravovat, protože formát tar uchovává přístupová data a data vlastníka pro každý soubor, která po extrahování do oddílů FAT/NTFS zmizí.

Štítky: Přidat štítky

Dobrý den, Habrakhabr.

obecná informace

Tato příručka je navržena tak, aby vám pomohla vytvořit úplnou zálohu vašeho zařízení (celá paměť se všemi oddíly) nebo jeden oddíl (včetně sdcard atd.) přímo do vašeho počítače:
  • Na úrovni Memory Block (pomocí příkazu dd): pro jednotlivé sekce nebo celou paměť (všechny sekce). Záložní kopie bude mít vždy stejnou velikost jako ukládaný oddíl.
  • Na úrovni souboru (pomocí příkazu tar): pouze pro jednotlivé oddíly. Kopie bude obsahovat pouze soubory a složky, které existují v zařízení, takže zabere mnohem méně místa v závislosti na zaplnění oddílu.

Tato instrukce platí, když je zařízení zapnuté nebo je v režimu ClockworkMod Recovery (v těchto případech bude ADB fungovat, v režimu Fastboot tato instrukce neplatí). Pokud není uvedeno jinak, všechny příkazy jsou určeny pro použití v systému Windows. Totéž platí pro Linux a Unix.

Požadavky

  • Zakořeněné zařízení Android;
  • Busybox nainstalovaný na zařízení;
  • Pokud používáte Linux / OS X, potřebné nástroje již máte, pro Windows si stáhněte Cygwin a nainstalujte s ním netcat, pv a util-linux, při instalaci je vyberte (dodám, že je lepší použít terminál od Cygwinu mintty.exe než nativní Windows cmd.exe, protože rychlost kopírování prvního dosáhla 3-4 MB/s, a cmd.exe - maximálně 400 kB/s);
  • ADB nainstalován;
  • Ujistěte se, že adb.exe je ve vaší proměnné PATH. Podívejte se a nebo použijte Správce cest;
  • Povolen režim ladění USB na zařízení a odpovídající ovladače nainstalované v systému Windows. Zadáním „zařízení adb“ do terminálu by se mělo zobrazit vaše zařízení.

Přepážky v zařízení

Nyní musíte na svém zařízení identifikovat oddíly a bloky, ze kterých chcete vytvořit kopii. Chcete-li zkopírovat jeden oddíl, můžete použít příkazy tar nebo dd, zatímco pro zkopírování celé paměti musíte použít pouze dd.

Na Teclast x98 3g K definování oddílů se používají dva příkazy: cat proc/partitions a mount.

Příklad toho, co by se mělo objevit v reakci na jejich vstup v terminálu.

127|root@android:/ # mount
namontovat
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
žádný /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 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
[b]/dev/block/mmcblk0p9 /system ext4 ro,noatime,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p6 /config ext4 rw,nosuid,nodev,noatime,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,noauto_da_alloc,data=ordered 0 0
/dev/block/mmcblk0p8 /logs ext4 rw,nosuid,nodev,relatime,data=ordered 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
tmpfs /mnt/libreg tmpfs rw,noexec,noatime,size=4k,mode=700,gid=1003 0 0
/dev/block/vold/179:1 /storage/sdcard_ext fuseblk rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
root@android:/ # cat proc/partitions
cat proc/partitions
hlavní vedlejší #bloky název

179 10 30535680 mmcblk0
179 11 229376 mmcblk0p1
179 12 32768 mmcblk0p2
179 13 32768 mmcblk0p3
179 14 131072 mmcblk0p4
179 15 131072 mmcblk0p5
179 16 131072 mmcblk0p6
179 17 786432 mmcblk0p7
179 18 262144 mmcblk0p8
179 19 1048576 mmcblk0p9
259 0 27742188 mmcblk0p10
179 30 2048 mmcblk0boot1
179 20 2048 mmcblk0boot0
179 0 30657536 mmcblk1
179 1 30657504 mmcblk1p1

Na Androidu je obvykle celý blok obsahující všechny oddíly umístěn v /dev/block/mmcblk0 a všechny ostatní oddíly jsou jeho podsekcemi. Můžete nainstalovat parted s podporou GPT a zobrazit informace o všech oddílech.

Veškerá paměť telefonu -> /dev/block/mmcblk0 (ačkoli na některých telefonech to může být také karta sdcard).
Příčky -> vše záleží na konkrétním zařízení. Obvykle /dev/block/platform/dw_mmc/by-name/ vypíše všechny oddíly pro dané zařízení.

Zálohujte veškerou paměť (přes adb)

Připojte telefon s povoleným režimem ladění USB k počítači.

Pokud jde o Teclast x98 3g a případ, kdy se zařízení nespustí (bootloop). Je velmi důležité, aby byl povolen režim ladění USB, než se to všechno stane. Tablet úplně vypněte, odpojte všechny kabely, dejte pár sekund na „odpočinek“ a připojte kabel z počítače k ​​tabletu, měla by se objevit taková velká bílá baterie, která bude indikovat, že probíhá proces nabíjení, teprve potom , i ve vypnutém stavu lze s přístrojem pracovat přes terminál a adb.

Spusťte Cygwin Terminal a zadejte (v případě potřeby nahraďte mmcblk0):

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox dd if=/dev/block/mmcblk0

Na dalším řádku vlevo uvidíte blikající kurzor. V tuto chvíli zařízení čeká na přenos Bloku po síti.

adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0,5 > mmcblk0.raw

Uvidíte, jak se velikost souboru začne zvětšovat, dokud se nezkopíruje celý vybraný blok. Nyní máte kompletní zálohu zařízení v raw formátu. Veškerý obsah zkopírovaného bloku můžete vidět pomocí gptfdisk, který je k dispozici pro Windows, Linux a další OS (oficiální webové stránky nebo). Totéž můžete udělat pomocí ClockworkMod Recovery, ale zpočátku musíte připojit oddíl /system, protože BusyBox, který je součástí ClockworkMod, nemá netcat, takže musíte použít netcat z /system oddílu vašeho zařízení.

S pomocí určitých nástrojů v Linuxu můžete upravit a extrahovat požadované sekce z celého bloku.

ADB můžete používat přes WiFi, podobně jako Wi-Fi ADB.

Zálohujte veškerou paměť (přes WiFi)

Odkaz na autora: Nandroid přímo do počítače bez sdcard.

Nezbytné:

  • Nainstalovaný FTP server v počítači nebo jiném zařízení;
  • Uživatel s heslem;
  • Nastavený port pro FTP server je standardně 21, ale v tomto příkladu je použito 40;
  • Domovský adresář uživatele s právy zápisu.

Dobrým pravidlem je zkopírovat myfifo do /cache a ne do /data, protože můžete omylem přepsat důležitá data, pokud pro obnovu použijete nezpracovaná data.

Spusťte Cygwin Terminal a zadejte:

adb shell
su
mkfifo /cache/myfifo
ftpput -v -u user -p pass -P 40 COMPUTER_IP block.raw /cache/myfifo

Otevřete jiný terminál Cygwin a zadejte:

adb shell
su
dd if=/dev/block/mmcblk0p12 of=/cache/myfifo

Pár poznámek:

  • FIFO lze vytvořit pouze v nativních souborových systémech Linux; FAT k tomu není vhodný;
  • Proces čtení oddílu ze zařízení jej žádným způsobem nemění.

Zálohujte veškerou paměť (přes USB tethering nebo Wi-Fi tethering)

Chcete-li to provést, musíte odpojit všechna síťová připojení v počítači, kromě toho, se kterým budete provádět proces kopírování.
Jakmile připojíte počítač k zařízení Android, můžete zobrazit IP adresu počítače a IP zařízení ve „Vlastnostech připojení“. IP - bude IP samotného počítače a brána bude obsahovat IP zařízení Android.
  • Wi-Fi modem: Počítač< - Wi-Fi --->zařízení Android< - 3G --->Internet
  • USB modem:
    Počítač< - USB --->zařízení Android< - Wi-Fi --->Internet
    Počítač< - USB --->zařízení Android< - 3G --->Internet

Proces je naprosto podobný přenosu dat přes Wi-Fi, jediná věc je, že rychlost přenosu dat bude mnohem vyšší, protože počítač a zařízení Android jsou připojeny přímo, namísto použití routeru jako brány. V tomto případě bude bránou samotné zařízení Android. USB modem má nejvyšší rychlost přenosu dat.

Zálohujte jeden oddíl (raw = přesná kopie oddílu bit po bitu)

Vše je podobné tomu, co bylo popsáno výše, pouze musíte nahradit mmcblk0 příslušnou sekcí. V tomto konkrétním případě můžete použít software k zobrazení obsahu zkopírovaného oddílu. V závislosti na systému souborů: DiskInternals Linux Reader, plugin pro Total Commander a ImDisk Virtual Disk Driver. K obnově dat z jednotlivých oddílů můžete také použít software, jako je Recuva ve spojení s VHD Tool, nebo nástroje příkazového řádku, které jsou součástí samotných operačních systémů.

Zálohujte jeden oddíl (tar = kopírují se pouze soubory a složky)

V tomto případě je vyžadován již připojený oddíl. (Výše jsem popsal, jak najít oddíly na Teclast x98 3g.)
Chcete-li zobrazit seznam všech připojených oddílů v terminálu Cygwin, zadejte:

Nyní byste měli vědět, kde a jaký oddíl je připojen, například Firmware je připojen v /system, což je v podstatě ROM.
V tomto případě budete muset otevřít tři terminály Cygwin kvůli omezením uloženým samotným Androidem:

Otevřete první terminál Cygwin a vytvořte FIFO, například v /cach, a přesměrujte na něj tar:

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox mkfifo /cache/myfifo
/system/xbin/busybox tar -cvf /cache/myfifo /system

Musíte to udělat, protože přesměrování tar na stdout (s "-") nefunguje na Androidu a poškozuje uložený soubor.

Otevřete druhý terminál Cygwin:

adb forward tcp:5555 tcp:5555
adb shell
su
/system/xbin/busybox nc -l -p 5555 -e /system/xbin/busybox cat /cache/myfifo

Otevřete třetí terminál Cygwin:

adb forward tcp:5555 tcp:5555
cd /path/to/store/the/backup
nc 127.0.0.1 5555 | pv -i 0,5 > system.tar

Výsledný soubor tar můžete zobrazit pomocí Winrar, Total Commander, PeaZip atd. Vezměte prosím na vědomí, že byste neměli extrahovat soubory ani je upravovat, protože formát tar uchovává přístupová data a data vlastníka pro každý soubor, která po extrahování do oddílů FAT/NTFS zmizí.

Štítky:

  • Android
  • Záloha Nandroid
  • Ukládání dat
  • Překlad
Přidat štítky

Poté, co si stáhneme vše potřebné, můžeme např. v kořenu nějaké složky vytvořit složku Android a rozbalený obsah archivů uspořádat do složek, tzn. ovladače ve složce Drivers, Platform Tools v samostatná složka, SP Nástroj Flash v samostatném, MTK Droid Tools také v samostatném.

Dále na svém zařízení povolte režim vývojáře a aktivujte ladění USB. Tito. Nejprve přejděte do Nastavení -> O telefonu (O zařízení) a klikněte několikrát (5-7) na „Číslo sestavení“, dokud se nezobrazí zpráva, že je aktivován režim vývojáře. Dále přejděte do nabídky Nastavení -> Pro vývojáře a zaškrtněte políčko „Ladění USB“:

Poté připojte zařízení k počítači a nainstalujte ovladače ADB (tj. buď spuštěním AdbDriverInstaller.exe z archivu, nebo otevřením správce zařízení a ručním zadáním cesty k ovladačům v složka Android ADB ovladač x64 pro neznámé zařízení). Výsledek by měl vypadat takto (Správce zařízení):

přístroj Android ADB Rozhraní ve Správci zařízení potvrzuje, že jsme připraveni na další krok.

Počkáme, dokud v něm nebude zařízení detekováno, a klikneme na tlačítko „Blokovat mapu“:

Poté klikněte na tlačítko „Vytvořit rozptylový soubor“ a výsledný soubor (u mě se jmenoval MT6582_Android_scatter.txt) uložte na disk. V tomto okamžiku je přípravná fáze dokončena a můžete přejít přímo ke čtení dat.

Otevřete výsledný soubor v programu Notepad++ nebo Word (všimněte si, že běžný poznámkový blok nebude fungovat) a najděte v něm řádek partition_name: CACHE:

A pamatujte si, co je napsáno ve sloupci linear_start_addr, v tomto případě je to 0x3E900000.

Odpojíme telefon od PC a vypneme, tzn. podržte tlačítko vypnutí a v nabídce vyberte „Vypnout“, můžete také odpojit a vložit baterii. Dále spusťte nástroj SP Flash Tool a přejděte na kartu Readback. Dále klikněte na tlačítko Přidat. V důsledku toho se v tabulce objeví jeden řádek:

Klikneme na něj, jsme vyzváni k výběru umístění pro uložení souboru ROM_0, vybereme složku, do které jej chceme uložit a na další obrazovce do pole Délka zadáme číslo, které jsme si zapamatovali dříve (linear_start_addr):

Konečný výsledek by měl být něco takového:

Poté připojíme vypnutý telefon (!) k PC. V tomto okamžiku je vhodné otevřít správce zařízení. Prozatím na této obrazovce nestiskneme žádná tlačítka v nástroji SP Flash!

V okamžiku připojení bude detekováno neznámé zařízení MT65xx PreLoader a OS vás vyzve k instalaci ovladačů pro něj. Níže uvedený obrázek to jasně ukazuje. Je lepší otevřít správce zařízení bezprostředně před připojením telefonu, abyste „chytili“ okamžik, kdy se objeví MT65xx PreLoader. Pokud se zařízení objeví a operační systém nenabízí automatickou instalaci ovladačů, je třeba to provést ručně kliknutím pravým tlačítkem myši na zařízení MT65xx PreLoader.

Vyberte „Vyhledat ovladače v tomto počítači“ a označte složku, ve které se nachází rozbalený obsah archivu mtk_xp_vista_7_8_x32_x64.zip (tj. v tomto okamžiku byste měli archiv někam rozbalit). Po úspěšné instalaci ovladačů by se obrázek ve správci zařízení měl změnit na tento:

Pokud jsou ovladače nainstalovány, můžete přejít k dalšímu kroku. Vezměte prosím na vědomí, že po připojení telefonu se port Preloader USB VCOM Port může objevit pouze na několik sekund - to je normální, naším úkolem v této fázi je nainstalovat ovladače telefonu tak, aby byl detekován přesně jako port Preloader USB VCOM, a ne neznámé zařízení MT65xx PreLoader. Pokud jste náhle nestihli nainstalovat ovladače a telefon se zapnul, vyjměte baterii, odpojte telefon, vložte baterii, připojte telefon a opakujte postup.

Jakmile jsme si jisti, že jsou ovladače nainstalovány, odpojíme telefon od PC. Vypneme, v otevřeném SP Flash Tool stiskneme tlačítko Readback a připojíme vypnutý telefon k PC. Poté projdeme procesem čtení firmwaru z telefonu:

Mnoho lidí píše o potížích, které vznikají právě v tomto kroku. Pokusím se vysvětlit trochu podrobněji. Po stisknutí tlačítka Readback přejde SP Flash Tool do pohotovostního režimu, aby se mohl telefon připojit, tzn. Předpokládá se, že jste předtím stihli zachytit okamžik, kdy je váš vypnutý telefon identifikován jako MT65xx PreLoader a nainstalovali jste na něj ovladače tak, aby se v COM portech objevil Preloader USB VCOM Port. Pokud náhle z nějakého důvodu SP Flash Tool napsal chybu nebo se telefon nestihl připojit, může pomoci následující metoda (vše popsané platí pouze v případě, že jste správně nainstalovali ovladače a po připojení telefonu, Preloader USB VCOM Objeví se port): odpojte telefon od PC, vyjměte baterii, stiskněte tlačítko Readback, připojte telefon s vyjmutou baterií. V nástroji SP Flash Tool bude červený pruh (Download), během této doby rychle vložíme baterii zpět, pokud máme čas, objeví se modrý pruh Readback s procenty, jako na obrázku:

Čekáme na dokončení procesu. Vytvoření zálohy může trvat 10–15 minut. Stačí se podívat na běžící procenta a na nic nesahat 😉 Na konci postupu čtení se zobrazí zpráva Readback Ok:

Zatímco děláme zálohování, je čas vysvětlit, co je rozptylový soubor a co je soubor ROM_0, který obdržíme jako výstup. Paměť telefonu je běžný EMMC Flash, který je rozdělen do konkrétních sekcí. Soubor Scatter je soubor popisu sekce (například Scatter má sekce PRELOADER, RECOVERY, LOGO, ANDROID atd.). Účel oddílů je jiný, například Recovery obsahuje obraz pro obnovení, logo obsahuje logo použité při načítání systému, Android obsahuje obraz systému atd. Soubor ROM_0, který získáme jako výstup, je v podstatě nepřetržitý výpis EMMC Flash v jednom souboru. Abychom ale mohli výslednou zálohu firmwaru použít například k obnově jiného podobného zařízení, budeme ho muset ještě rozdělit na oddíly. Zde popíšu několik způsobů, jak toho dosáhnout. První a nejběžnější je prostřednictvím MTK Droid Tools. Řekněme, že již máme soubor ROM_0 vytvořený pomocí nástroje SP Flash Tool.

Zapněte napájení zařízení (telefonu) a nechte jej nabootovat, poté znovu spustíme MTK Droid Tools (režim ladění USB na telefonu musí být samozřejmě zapnutý a ovladače ADB nainstalovány v PC), přejděte na záložku root, backup, recovery a klikněte na tlačítko „Vytvořit zálohu z ROM_ flash disku“:

Vybereme ROM_0, kterou jsme získali v předchozím kroku a v okně protokolu vidíme něco jako následující:

— Uložte složku v počítači: E:\Android\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\
— rozptyl se uloží do souboru:
E:\Work\Megaphone Login Plus\MtkDroidTools\backups\KINGSING_S1_141117_ForFlashtoolFromReadBack_150512-005322\MT6582_Android_scatter.txt kopírování dokončeno
- preloader.bin ... zkopírováno ... řez OK
- MBR...zkopírováno
- EBR1...zkopírováno
- pro_info ...zkopírováno
- nvram.bin...zkopírováno
- protect_f ...zkopírováno
— protect_s ...zkopírováno
-seccfg...zkopírováno
- uboot.bin...zkopírováno
- boot.img ...zkopírován

No atd. Nyní ve složce uložení, pro mě je to E:\Android\MtkDroidTools\backups\ máme složku s kompletní zálohou našeho firmwaru, rozdělenou do sekcí (tj. každá sekce v samostatném souboru):

Tím je proces vytváření záložního firmwaru dokončen. Pokud jste jen chtěli zjistit, jak vytvořit záložní firmware pomocí SP Flash Tool a uspěli jste, nemusíte číst dále.

Pro pokročilé

Co dělat, když MTK Droid Tools „nevidí“ telefon? Nebo je nemožné vytvořit rozptylový soubor nebo rozdělit výsledný soubor ROM_0 do sekcí? Jak získat mapu oddílu a je možné soubor ROM_0 „vystřihnout“ ručně? Existuje taková možnost. Chcete-li získat mapu oddílu na MTK 65xx, musíte zadat příkaz v konzole ADB - tzn. spusťte adb shell v konzole a zadejte tento příkaz:

Pokud najednou telefon z nějakého důvodu není viditelný přes ADB (v tomto případě vám doporučuji přečíst si příručku ADB, může být problém s VEN_ID zařízení a stačí jej zaregistrovat v %USERPROFILE%\.android\adb_usb.ini, pak lze stejný příkaz zadat v samotném telefonu instalací emulátoru terminálu pro Android z Google Play:

Jak vidíte, výsledek je naprosto stejný a linear_start_address sekce cache lze převzít odtud. Ano, mimochodem, v nových zařízeních, například založených na MTK 6752, jako je Beeline Pro, ZTE Q Lux atd. Mapu oddílů lze získat pomocí cat /proc/partinfo. MTK Droid Tools s těmito zařízeními vůbec nepracuje.

Nyní máme metodu pro získání počáteční adresy sekce cache, která je potřebná k získání ROM_0 pomocí nástroje SP Flash Tool. Známe také adresy (offsety) a velikosti každého oddílu. Tito. K „rozřezání“ ROM_0 na oddíly nepotřebujeme používat nástroje MTK Droid Tools. To lze provést ručně v libovolném Hex editoru, který podporuje funkci výběru a uložení bloku do souboru (používám konzolový HIEW). No, jako příklad, pojďme „vyříznout“ oddíl Recovery z výsledného souboru ROM_0.

Známe (z scatter nebo z dumchar_info) jeho linear_start_addr: 0x4180000 a partition_size: 0x1000000. Otevřete ROM_0 v HIEW a přejděte na 0x4180000. Tito. v konzoli vytvoříme hiew32 ROM_0, poté stiskneme F5 a zadáme adresu začátku oddílu - 4180000:

Jak můžete vidět z 4180000, máme podpis ANDROID!, který nám říká, že jsme na správné cestě 😉 Konec adresy oddílu se v našem případě vypočítá jako linear_start_addr+partition_size-1 = 0x517FFFF. Stisknutím HIEW * (hvězdička na doplňkové klávesnici) zahájíme výběr bloku (pokud posuneme šipky nahoru / dolů / doprava / doleva, vidíme, jak se blok začíná barevně zvýraznit) a buď sjedeme dolů na 0x517FFFF nebo to proveďte pomocí F5:

A dokončíme výběr bloku, opět pomocí „šedé“ * (na přídavné klávesnici). Poté stiskněte F2 - Vložit blok (uložení bloku do souboru):

A úsek obnovy máme to zaznamenané. Stejným způsobem můžete vyjmout jakýkoli jiný oddíl z ROM_0. Jak jste pochopili, vůbec nepotřebujeme nástroj MTK Droid Tool.

Pro zjednodušení postupu můžete také napsat skript / program, který to udělá automaticky pro všechny sekce, ale abych byl upřímný, nemám na to dost času a tento úkol se nevyskytuje příliš často, takže HIEW je docela pro tyto účely stačí.

p.s. To je prozatím vše... příspěvek se ukázal jako „návrh verze“, protože... Napsal jsem to ve spěchu, možná to doplním později, pokud budou nějaké nejasnosti. A samozřejmě jako vždy odpovím na vaše komentáře a dotazy...

p.p.s. Jak se mi podařilo trochu opravit, /proc/dumchar_info neobsahuje linear_start_addr z rozptylu, ale Physical_start_addr. Tito. v příkladu uvedeném pro oddíl pro obnovení máme:

linear_start_addr: 0x4180000
fyzický_start_addr: 0x2D80000
velikost_oddílu: 0x1000000

A v /proc/dumchar_info vidíme ve sloupci StartAddr přesně fyzický_start_addr. Ale pokud se podíváme na velikost prvního oddílu (preloader), je jasné, jak převést Physical_start_addr na linear_start_addr; pokud přidáte 0x1400000 k 0x2D80000 (toto je přesně velikost preloaderu), dostanete 0x4180000.

Publikace na dané téma