Premier Voyons pourquoi il n'est pas (encore) possible de monter une partition chiffrée des données utilisateur à partir de TWRP, en particulier sur les appareils Samsung.
Le cryptage est soutenu par le matériel dans TEE et est donc spécifique au fournisseur. En outre, ...
... certains vendeurs comme Samsung utilisent leurs propres techniques de cryptage. Sans une déconstruction/décompilation lourde des bibliothèques personnalisées, et des ports réussis par un mainteneur actif, ceci ne sera peut-être jamais fait.
Le décryptage implique le micrologiciel sous-jacent. Il nécessite le montage de diverses partitions et l'exécution de bibliothèques pour la communication avec (TEE) Trusted Execution Environment.
Pour les appareils Qualcomm, il est nécessaire d'exécuter qseecomd
pour les appareils Exynos, le démon Trustonic Kinibi. Dans cet exemple, le modem
La partition est montée avec mounttodecrypt
drapeau (qualcomm)
/firmware vfat /dev/block/bootdevice/by-name/modem flags=slotselect;display="Firmware";mounttodecrypt;fsflags=ro
Comme on peut le voir sur cette liste de bibliothèques, la vendor
est montée. Il s'agit également d'un contenu spécifique à l'équipementier utilisé par LineageOS et qui n'est pas inclus par défaut dans TWRP. Certaines constructions récentes de TWRP l'ont, la plupart des constructions sont conçues pour utiliser le firmware. Cependant, aucun appareil Samsung n'est connu. Cet exemple provient d'un autre appareil qualcomm et non de Samsung :
/firmware/image/cmnlib.b00
/firmware/image/cmnlib.b01
/firmware/image/cmnlib.b02
/firmware/image/cmnlib.b03
/firmware/image/cmnlib.mdt
/firmware/image/keymaste.b00
/firmware/image/keymaste.b01
/firmware/image/keymaste.b02
/firmware/image/keymaste.b03
/firmware/image/keymaste.mdt
/system/bin/linker64
/system/bin/qseecomd
/system/lib64/hw/keystore.qcom.so
/system/lib64/libbacktrace.so
/system/lib64/libbinder.so
/system/lib64/libcnefeatureconfig.so
/system/lib64/libc.so
/system/lib64/libcutils.so
/system/lib64/libEGL.so
/system/lib64/libgccdemangle.so
/system/lib64/libGLES_trace.so
/system/lib64/libGLESv2.so
/system/lib64/libgui.so
/system/lib64/libhardware.so
/system/lib64/liblog.so
/system/lib64/libm.so
/system/lib64/libnetd_client.so
/system/lib64/libsigchain.so
/system/lib64/libstdc++.so
/system/lib64/libstlport.so
/system/lib64/libsync.so
/system/lib64/libui.so
/system/lib64/libunwind-ptrace.so
/system/lib64/libunwind.so
/system/lib64/libutils.so
/system/vendor/lib64/libdiag.so
/system/vendor/lib64/libdrmfs.so
/system/vendor/lib64/libdrmtime.so
/system/vendor/lib64/libNimsWrap.so
/system/vendor/lib64/libQSEEComAPI.so
/system/vendor/lib64/librpmb.so
/system/vendor/lib64/lib-sec-disp.so
/system/vendor/lib64/libsecureui.so
/system/vendor/lib64/libsecureui_svcsock.so
/system/vendor/lib64/libssd.so
/system/vendor/lib64/libStDrvInt.so
/system/vendor/lib64/libtime_genoff.so
/system/vendor/lib64/libvendorconn.so
Maintenant Comme nous savons qu'il y a beaucoup de recherche pour faire fonctionner le décryptage, il est évident que les mainteneurs de TWRP sont désespérément pressés de fournir un support de cryptage pour tous les appareils. Par conséquent, le décryptage n'est toujours qu'une bonne chose, qui dépend fortement des connaissances et de l'engagement des mainteneurs.
C'est peut-être l'une des raisons pour lesquelles les moddeurs d'Android préfèrent utiliser des ROMs personnalisées. non crypté
Cryptage est forcée depuis Android 5.0 avec forceencrypt=
dans fstab (FDE) ou fileencryption=
(FBE)
Les drapeaux encryptable=
forceencrypt=
y forcefdeorfbe=
pointent toujours vers le pied de page cryptographique. Ils sont donc interchangeables.
Pour désactiver le cryptage forcé (FDE) utiliser le premier drapeau. Modifiez votre entrée fstab pour userdata
partition et remplacer forceencrypt=
con encryptable=
/dev/block/platform/11120000.ufs/by-name/USERDATA /data ext4 noatime,nosuid,nodev,discard,errors=panic wait,check,encryptable=footer,length=-20480,reservedsize=128M
Cela peut être fait à partir de TWRP en installant no-verity-opt-encrypt-6.1.zip
L'avantage de désactiver le cryptage forcé tout en conservant la disponibilité pour le cryptage est dans la nature de Direct Boot vs Départ sécurisé . Au premier démarrage, l'appareil crée une clé maîtresse de 128 bits générée de manière aléatoire, puis la hachure avec un mot de passe et un sel stocké. Le hachage résultant est également signé par un TEE (tel que TrustZone), qui utilise le hachage de la signature pour chiffrer la clé principale. Il existe quatre types d'états de chiffrement :
- par défaut
- PIN
- mot de passe
- motif
Auf Direct Boot la première est forcée avec mot de passe par défaut en effet, c'est ainsi que la plupart des appareils Android sont encore cryptés. (TWRP sonde toujours contre mot de passe par défaut et ne demander le mot de passe que si le décryptage échoue).
Si vous choisissez Départ sécurisé dans le menu de sécurité, le mot de passe de la base de données est recréé en utilisant les informations d'identification de l'écran de verrouillage actuel. l'inconvénient de cet état de cryptage est qu'Android ne démarre pas tant que la phrase de passe correcte n'est pas saisie.
Pour surmonter cette difficulté, les avantages de Départ sécurisé con Direct Boot a été fusionné avec (FBE) File-Based Encryption, qui a été introduit avec Android 7.0 et appliqué aux appareils livrés avec Android 10+.
Soyez conscient il n'y a aucun moyen de désactiver l'application de (FBE) Cryptage basé sur les fichiers . La seule méthode qui reste est donc de désactiver complètement le cryptage en supprimant le fileencryption=
de fstab (sans remplacement approprié). En effet, c'est ainsi que Magisk fonctionne actuellement lorsqu'il est flashé depuis TWRP.
Universal DM-Verity ForceEncrypt Disk Quota Disabler désactivera complètement le cryptage.
El seulement* Le moyen de décrypter les données existantes sur les appareils Samsung est de démarrer dans Android.
(*il existe des enquêtes pour casser le cryptage, mais pas pour le cryptage Samsung)
Si votre objectif est de récupérer des données à partir d'un appareil Samsung crypté, TWRP est la solution idéale. no la voie à suivre.