CAT S31: Backup ohne USB-Debugging möglich?

Ahoj,

ich bin gerade auf diesen Thread gestoßen.

Das ROM (gesamter flash, oder einzelne Partitionen) lässt sich auslesen im EDL-Modus (Qualcomm "Emergency Download modus").

Dazu:

1. EDL-Tools (GitHub - bkerler/edl: Inofficial Qualcomm Firehose / Sahara / Streaming / Diag Tools :)) auf dem Computer installieren (unter Arch Linux: Paket "edl-git" (AUR (en) - edl-git))
2. Gerät ausschalten.
3. micro-USB-Kabel bereit halten (bereits am Computer anschließen, am Handy noch nicht)
4. Volume-Up und Volume-Down-Knopf gleichzeitig drücken
5. USB-Kabel anschließen
6. Nun sollte das Gerät im EDL-Modus sein. Bildschirm bleibt schwarz, oder flackert ganz kurz auf.
7. Nun auf dem Computer `edl rl <dir>` werden alle Partitionen jeweils einzeln in das Verzeichnis `<dir>` gedumpt (`<dir>` ggf. vorher anlegen).
8. Mehr edl-Befehle stehen hier: GitHub - bkerler/edl: Inofficial Qualcomm Firehose / Sahara / Streaming / Diag Tools :) oder mit `edl -h`.

Ich habe das gerade durchgeführt, und habe folgende Partitionen gedumpt bekommen:

Code:
1.0M  abootbak.bin
1.0M  aboot.bin
256K  ap_nvram.bin
32M   boot.bin
384M  cache.bin
256K  cmnlibbak.bin
256K  cmnlib.bin
512K  config.bin
256K  ctrl_flag.bin
32K   DDR.bin
1.0M  devi.bin
1.0M  devinfo.bin
1.0K  fsc.bin
1.5M  fsg.bin
5.0K  gpt_backup0.bin
6.0K  gpt_main0.bin
256K  keymasterbak.bin
256K  keymaster.bin
512K  keystore.bin
1.0M  misc.bin
64M   modem.bin
1.5M  modemst1.bin
1.5M  modemst2.bin
256M  oem.bin
1.0M  pad.bin
32M   persistbak.bin
32M   persist.bin
32M   recovery.bin
512K  rpmbak.bin
512K  rpm.bin
512K  rsv.bin
512K  sbl1bak.bin
512K  sbl1.bin
16K   sec.bin
10M   splash.bin
8.0K  ssd.bin
4.0G  system.bin
768K  tzbak.bin
768K  tz.bin
9.0G  userdata.bin


Ein dump des gesamten flashes in eine Datei `<flash_dumpfile>` geht mit `edl rf <flash_dumpfile>`. `parted` erkennt nur bei manchen Partitionen ein Dateisystem:

Code:
Number  Start   End     Size    File system  Name          Flags
 1      67.1MB  134MB   67.1MB  fat16        modem         msftdata
 2      134MB   135MB   524kB                sbl1
 3      135MB   135MB   524kB                sbl1bak
 4      135MB   136MB   524kB                rpm
 5      136MB   136MB   524kB                rpmbak
 6      136MB   137MB   786kB                tz
 7      137MB   138MB   786kB                tzbak
 8      138MB   139MB   1049kB               pad           msftdata
 9      139MB   141MB   1573kB               modemst1
10      141MB   142MB   1573kB               modemst2
11      201MB   201MB   32.8kB               DDR
12      201MB   203MB   1573kB               fsg
13      268MB   268MB   1024B                fsc
14      268MB   268MB   8192B                ssd
15      336MB   336MB   16.4kB               sec
16      336MB   337MB   1049kB               devi
17      337MB   370MB   33.6MB  ext4         persist
18      370MB   404MB   33.6MB  ext4         persistbak
19      404MB   404MB   262kB                ap_nvram      msftdata
20      404MB   404MB   262kB                ctrl_flag     msftdata
21      470MB   471MB   1049kB               misc
22      537MB   537MB   524kB                rsv           msftdata
23      604MB   614MB   10.5MB               splash
24      671MB   672MB   1049kB               devinfo
25      738MB   739MB   524kB                keystore
26      739MB   1007MB  268MB                oem
27      1007MB  1008MB  524kB                config
28      1074MB  1074MB  262kB                cmnlib
29      1074MB  1074MB  262kB                cmnlibbak
30      1074MB  1075MB  262kB                keymaster
31      1075MB  1075MB  262kB                keymasterbak
32      1141MB  1142MB  1049kB               aboot
33      1142MB  1143MB  1049kB               abootbak
34      1208MB  1242MB  33.6MB               boot
35      1242MB  1275MB  33.6MB               recovery
36      1275MB  1678MB  403MB   ext4         cache
37      1678MB  5973MB  4295MB  ext4         system
38      5973MB  15.6GB  9662MB               userdata

.. userdata habe ich noch nicht geschafft, zu mounten. Da sollten aber die gesuchten Daten drin sein. Wie sind die Daten dort abgelegt? Direkt eine LUKS-Verschlüsselung scheint es auch nicht zu sein:
`cryptsetup open userdata.bin userdata`
antwortet mit
`Device userdata.bin is not a valid LUKS device.`.



Noch eine Information: `edl printgpt` hat folgendes informatives geliefert:

Code:
Qualcomm Sahara / Firehose Client V3.60 (c) B.Kerler 2018-2022.
main - Trying with no loader given ...
main - Waiting for the device
main - Device detected :)
sahara - Protocol version: 2, Version supported: 1
main - Mode detected: sahara
sahara - 
------------------------
HWID:              0x009600e100000000 (MSM_ID:0x009600e1,OEM_ID:0x0000,MODEL_ID:0x0000)
CPU detected:      "MSM8909"
PK_HASH:           0xdf989e3c2be41617a8ff5019ad996bf706bbd5d3eee0dc4b9a2f048f9224fa54
Serial:            0x11b41223

sahara - Detected loader: /usr/lib/python3.10/site-packages/edlclient/../Loaders/vivo/009600e100000000_df989e3c2be41617_fhprg_peek.bin
sahara - Protocol version: 2, Version supported: 1
sahara - Uploading loader /usr/lib/python3.10/site-packages/edlclient/../Loaders/vivo/009600e100000000_df989e3c2be41617_fhprg_peek.bin ...
sahara - 32-Bit mode detected.
sahara - Firehose mode detected, uploading...
sahara - Loader successfully uploaded.
main - Trying to connect to firehose loader ...
firehose_client
firehose_client - [LIB]: [33mNo --memory option set, we assume "eMMC" as default ..., if it fails, try using "--memory" with "UFS","NAND" or "spinor" instead ![0m
firehose - TargetName=MSM8909
firehose - MemoryName=eMMC
firehose - Version=1
firehose - Trying to read first storage sector...
firehose - Running configure...
firehose_client - Supported functions:
-----------------

Parsing Lun 0:

GPT Table:
-------------
modem:               Offset 0x0000000004000000, Length 0x0000000004000000, Flags 0x1000000000000000, UUID 1a06bb6b-916c-744f-68bf-504853595c24, Type EFI_BASIC_DATA, Active False
sbl1:                Offset 0x0000000008000000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 394b28f3-0c35-726a-cb58-a51f87f89454, Type 0xdea0ba2c, Active False
sbl1bak:             Offset 0x0000000008080000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID d57711db-cf07-348d-bc66-aa12e74bd386, Type 0xdea0ba2c, Active False
rpm:                 Offset 0x0000000008100000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID ef3bd6be-3bc7-9e61-6ce3-1c2ba2fd8b5d, Type 0x98df793, Active False
rpmbak:              Offset 0x0000000008180000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 78cf4689-eddd-d4c8-f1c2-bfb507cab1e8, Type 0x98df793, Active False
tz:                  Offset 0x0000000008200000, Length 0x00000000000c0000, Flags 0x0000000000000000, UUID a1dd7b07-dc62-e6d1-95e3-1f7d8893899d, Type 0xa053aa7f, Active False
tzbak:               Offset 0x00000000082c0000, Length 0x00000000000c0000, Flags 0x0000000000000000, UUID d063212f-2ccb-e8fa-970a-a9ff651693ba, Type 0xa053aa7f, Active False
pad:                 Offset 0x0000000008380000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 910d0541-7ef0-0a43-9c58-d286d6ef6d53, Type EFI_BASIC_DATA, Active False
modemst1:            Offset 0x0000000008480000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID 05451c7a-11d2-e4ff-1f0d-a251aa20439b, Type 0xebbeadaf, Active False
modemst2:            Offset 0x0000000008600000, Length 0x0000000000180000, Flags 0x0000000000000000, UUID f5a39256-e820-c169-ee37-ade334d189bb, Type 0xa288b1f, Active False
DDR:                 Offset 0x000000000c000000, Length 0x0000000000008000, Flags 0x1000000000000000, UUID 1c5f386c-0884-d74a-d128-92b8e122bbc2, Type 0x20a0c19c, Active False
fsg:                 Offset 0x000000000c008000, Length 0x0000000000180000, Flags 0x1000000000000000, UUID 365130a3-fda2-a896-7403-de9e9a7ce293, Type 0x638ff8e2, Active False
fsc:                 Offset 0x0000000010000000, Length 0x0000000000000400, Flags 0x0000000000000000, UUID a0eef2be-6426-f9d7-7da5-fde458fc5361, Type 0x57b90a16, Active False
ssd:                 Offset 0x0000000010000400, Length 0x0000000000002000, Flags 0x0000000000000000, UUID f8a88644-9486-da89-44e7-73e4c04920e2, Type 0x2c86e742, Active False
sec:                 Offset 0x0000000014000000, Length 0x0000000000004000, Flags 0x1000000000000000, UUID f91bb663-0ce1-c776-ca8a-47d8db570b81, Type 0x303e6ac3, Active False
devi:                Offset 0x0000000014004000, Length 0x0000000000100000, Flags 0x1000000000000000, UUID 9adb6ebf-35ac-c04a-0735-09b3f7fb18ef, Type 0x1b81e7e6, Active False
persist:             Offset 0x0000000014104000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID 5a0413bb-fa2d-9ea1-5d72-aef1d06615ba, Type 0x6c95e238, Active False
persistbak:          Offset 0x0000000016104000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID f8601125-2dce-9679-e658-0b56ba6d4b00, Type 0x6c95e238, Active False
ap_nvram:            Offset 0x0000000018104000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID badeebef-96d5-c80b-400b-568f8c97f793, Type EFI_BASIC_DATA, Active False
ctrl_flag:           Offset 0x0000000018144000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID f47f7a34-0919-9748-d06e-4fc4931e8c3d, Type EFI_BASIC_DATA, Active False
misc:                Offset 0x000000001c000000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 09219429-1e85-e188-4e1a-187a3856734d, Type 0x82acc91f, Active False
rsv:                 Offset 0x0000000020000000, Length 0x0000000000080000, Flags 0x1000000000000000, UUID 144a7cff-047a-d385-de88-9c77def7c3dd, Type EFI_BASIC_DATA, Active False
splash:              Offset 0x0000000024000000, Length 0x0000000000a00000, Flags 0x0000000000000000, UUID 286fdda6-3009-e2e8-d016-0e944d0c1ba7, Type 0x20117f86, Active False
devinfo:             Offset 0x0000000028000000, Length 0x0000000000100000, Flags 0x1000000000000000, UUID c67dc933-3771-c4c3-b830-e774614d72b5, Type 0x1b81e7e6, Active False
keystore:            Offset 0x000000002c000000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 370b5129-f3dc-890b-917a-fef87cca6ff5, Type 0xde7d4029, Active False
oem:                 Offset 0x000000002c080000, Length 0x0000000010000000, Flags 0x0000000000000000, UUID baf31a0d-8e2f-030a-6dd5-9e57862e6715, Type 0x7db6ac55, Active False
config:              Offset 0x000000003c080000, Length 0x0000000000080000, Flags 0x0000000000000000, UUID 8c2c92cb-a615-d9c8-57ff-c82e2eb954b0, Type 0x91b72d4d, Active False
cmnlib:              Offset 0x0000000040000000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID 282edeca-c51d-286c-428b-d112fd91e167, Type 0x73471795, Active False
cmnlibbak:           Offset 0x0000000040040000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID 79db965e-46cd-e0ff-0226-b4836c120b45, Type 0x73471795, Active False
keymaster:           Offset 0x0000000040080000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID 22b0e4e2-d2e7-ca4e-5b55-8a2482f312b7, Type 0xe8b7cf6e, Active False
keymasterbak:        Offset 0x00000000400c0000, Length 0x0000000000040000, Flags 0x1000000000000000, UUID a4aaa6d1-abc2-97a7-a2fd-14a7f3eac246, Type 0xe8b7cf6e, Active False
aboot:               Offset 0x0000000044000000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID 0ba47cbe-5d65-d863-5408-1ec1a42c489f, Type 0x400ffdcd, Active False
abootbak:            Offset 0x0000000044100000, Length 0x0000000000100000, Flags 0x0000000000000000, UUID eb49d1be-7f7d-fb3d-cb7c-9e97a058bf31, Type 0x400ffdcd, Active False
boot:                Offset 0x0000000048000000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID 40e74b1a-3fd2-fbe0-74c0-14b8b0002fee, Type 0x20117f86, Active False
recovery:            Offset 0x000000004a000000, Length 0x0000000002000000, Flags 0x1000000000000000, UUID 743c00f9-1505-cd37-3c5b-7b625c27bcf9, Type 0x9d72d4e4, Active False
cache:               Offset 0x000000004c000000, Length 0x0000000018000000, Flags 0x1000000000000000, UUID 4c95ec90-e89b-ca61-bfa2-31c051078f23, Type 0x5594c694, Active False
system:              Offset 0x0000000064000000, Length 0x0000000100000000, Flags 0x1000000000000000, UUID 8cdf09e1-2662-e3a3-2845-52641055411c, Type 0x97d7b011, Active False
userdata:            Offset 0x0000000164000000, Length 0x000000023fdfbe00, Flags 0x0000000000000000, UUID fea4f5ee-9d60-5f62-1318-fb4d43f6b86f, Type 0x1b81e7e6, Active False

Total disk size:0x00000003a3e00000, sectors:0x0000000001d1f000
 
Zuletzt bearbeitet:
dreieckli schrieb:
Wie sind die Daten dort abgelegt? Direkt eine LUKS-Verschlüsselung scheint es auch nicht zu sein:

Full-Disk Encryption | Android Open Source Project

File-Based Encryption | Android Open Source Project

Unter /system/etc oder im boot.img ist eine Datei namens fstab.* und dort steht drin, wie /userdata verschlüsselt wurde. Aber es wird vermutlich eine AES-256-XTS Verschlüsselung sein.

Aber viel wird dir das alles nicht bringen. Der Masterkey liegt auf einer gesicherten Partition ohne Zugriff von außen und ist zudem auch noch 2x verschlüsselt. 1x mit einem Default Key und dann noch 1x mit PIN/Muster/Passwort der Displaysperre, falls eingerichtet. Das ist schon annähernd Militärstandard. War gut gemeint mit LUKS, aber Google geht da noch ein paar Schritte weiter.
 
chrs267 schrieb:
Aber viel wird dir das alles nicht bringen. Der Masterkey liegt auf einer gesicherten Partition ohne Zugriff von außen und ist zudem auch noch 2x verschlüsselt. 1x mit einem Default Key und dann noch 1x mit PIN/Muster/Passwort der Displaysperre, falls eingerichtet. Das ist schon annähernd Militärstandard. War gut gemeint mit LUKS, aber Google geht da noch ein paar Schritte weiter.

Da ich mit EDL ja den gesamten Flash dumpen kann, und mit EDL ja auch den gesamten Flash schreiben kann: Da müsste es doch prinzipiell möglich sein, entweder wirklich alles zur Entschlüsselung nötige auszulesen, oder ein System aufzuspielen, wass dann auf dem Gerät die Entschlüsselung durchführt und das Ergebnis rausreicht. Es wurde nämlich keine Passwortbasierte Verschlüsselung eingerichtet, also kein User-Input war nötig, um zu entschlüsseln.

So prinzipiell.

Ich brauche die Entschlüsselung nicht (Daten waren nicht wichtig), aber vielleicht ja wer anders auf seinem/ihrem Gerät.
 
@dreieckli Ich habe dir extra Links gesetzt, damit du dich in das Thema einlesen kannst. Du weißt überhaupt nicht, was für eine Verschlüsselung hier gemeint ist:
dreieckli schrieb:
Es wurde nämlich keine Passwortbasierte Verschlüsselung eingerichtet, also kein User-Input war nötig, um zu entschlüsseln.

Du kannst auch selbst mit EDL nicht alles vom Speicher lesen/beschreiben. So einfach ist das leider nicht. Ich kenne dieses Tool selbst und habe damit schon intensiv gearbeitet. Das Trusted Execution Environment heißt nicht umsonst so. Glaubst du wirklich, du schließt ein USB-Kabel an und kannst den Masterkey kopieren und die Daten einfach so entschlüsseln? Bestenfalls noch mit einem Python-Script von github.com, das irgendwer dort anbietet. Samsung z.B. brüstet sich selber damit, die Verschlüsselung nach Militärstandard eingerichtet zu haben.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: dreieckli

Ähnliche Themen

K
Antworten
6
Aufrufe
150
KCTML
K
K
Antworten
1
Aufrufe
83
Meerjungfraumann
Meerjungfraumann
K
Antworten
0
Aufrufe
204
KalleMerkt
K
Zurück
Oben Unten