yashsingh1/xdaforums huggingface dataset:
[Touch Pro, Fuze General] fahadm3:
can anyone send me the link for the original htc touch pro / raphael ROM or even the cab file??
[Touch Pro, Fuze General] eddieul:
Are U able to use SEARCH ?

http://wiki.xda-developers.com/index.php?pagename=HTC_Raphael_WM6.1_ROMs
[Asus ROG Phone 7 / 7 Ultimate] slademon0000:
Wanted to see if someone could create or make a way to have the back panel always be on even when the screen is off.
[Redmi Note 8 Questions & Answers] ictecnics:
When I boot after the update of the rom, unlock pattern shows as 3x3 dots. I'm coming from previous version with 6x6 pattern. System doesn't accept pattern because it's not the same. I can't change pattern grid size, not showing recovery with Google account and I had disabled Google function to find the device for privacy reasons.
[Redmi Note 8 Questions & Answers] Uluru25:
Look here, this might be your solution to bypass the screen lock feature. But for sure you need access to your /data directory.
[Redmi Note 8 Questions & Answers] ictecnics:
This is what I don't have: Access to data it shows encrypted folder names.
[Redmi Note 8 Questions & Answers] alecxs:
you can change the screen lock from adb cmd line, you just need to figure out the encoding.

adb shell locksettings set-pattern --old '17=CIOPQRST' '14789'

https://blog.alxu.ca/unlocking-large-pattern-encryption-in-twrp.html
[Redmi Note 8 Questions & Answers] ictecnics:
adb devices shows "device unauthorized" when system has booted so I can't use adb shell. Before the update/pattern problem I tried several times to flash magisk via TWRP, process shows ended succesfully but phone remains unrooted. I've tried to unistall renaming magisk to uninstaller.zip and fails with a message that can't access to data. I don't know if with TWRP I can do anything but I would to flash again previous version of the ROM but it's not downloadable online.
[Redmi Note 8 Questions & Answers] alecxs:
you can authorize adb with a script that runs from overlay.d or from system/etc/init

https://xdaforums.com/t/accessing-my-phone-with-a-dead-screen.4542763
[Redmi Note 8 Questions & Answers] ictecnics:
Let me post the message that I have when

When I boot the system and I try adb shell:

* daemon not running; starting now at tcp:5037

* daemon started successfully

error: device unauthorized.

This adb server's $ADB_VENDOR_KEYS is not set

Try 'adb kill-server' if that seems wrong.

Otherwise check for a confirmation dialog on your device.

When I try adb devices (also with system booted):

List of devices attached

1270c2f0 unauthorized

No sure if magisk it's installed properly.
[Redmi Note 8 Questions & Answers] alecxs:
to which partition you have copied RSA key to phone? where did you place the init script?
[Redmi Note 8 Questions & Answers] ictecnics:
I don't know how to do it, I've to read link in the post with calm. I only flashed ROM zip's from recovery and Magisk zip/apk, never modified other things manually like modifiing files with adb shell. I'm discovering a lot of things to do via adb / fastboot due to my problem. I'm a GNU/Linux user but with basic knowledge of system scripts and structure.
[Redmi Note 8 Questions & Answers] alecxs:
use AIK to modify boot.img, you will see if there exist overlay.d directory or not (only if the boot.img is patched with Magisk)

otherwise mount /system(_root) rw and place the script there. I used the /cache partition for the key. It didn't work on my Samsung but there are many ways to authorize adb, it's all written in that thread.
[Redmi Note 8 Questions & Answers] alecxs:
I have moved the off-topic discussion to separate thread.
[Redmi Note 8 Questions & Answers] ictecnics:
Hi

Seems that I have overlay.d directory when unpacked boot.img. I have to put init.adbguard.rc and adbguard.sh in this directory?
[Redmi Note 8 Questions & Answers] ictecnics:
According to https://blog.alxu.ca/unlocking-large-pattern-encryption-in-twrp.html and https://github.com/TeamWin/Team-Win-Recovery-Project/issues/1388 I think that my 6x6 pattern was 123456<BHNT but when I try adb shell twrp decrypt '123456<BHNT' I have this warning:

/system/bin/sh: can't open BHNT: No such file or directory
[Redmi Note 8 Questions & Answers] alecxs:
TWRP cannot decrypt, you need to do this in Android. Don't forget the quotes, < is a special char for redirecting files.
[Redmi Note 8 Questions & Answers] ictecnics:
I'm waiting to try this but I don't know if this is the procedure.
[Redmi Note 8 Questions & Answers] ictecnics:
In Android = system booted I think. Command returned the error with quotes. I tried to put \ before < symbol (also with quotes) and command decrypt in TWRP failed with code 6.
[Redmi Note 8 Questions & Answers] alecxs:
unpack the zip and you have the directory names where the .rc and the .sh file belong to. edit the path in shell script with the location of adb_keys file, if necessary. repack the boot.img, flash it, find your local adbkey.pub, rename it adb_keys and copy to proper location on phone (I used cache partition). if the script is executed successfully, adb_keys will renamed to adb_keys.bak. after second reboot adb is authorized.
[Redmi Note 8 Questions & Answers] ictecnics:
I checked the directory structure where I extracted the AIK and I only see a sbin subdirectory inside overlay.d. The path is /home/..../AIK-Linux-v3.8-ALL/AIK-Linux. Once "unpackimg.sh" is run, "ramdisk" and "split_img" directories are created. Inside "ramdisk" there is only "overlay.d", ".backup" and the "init" file, inside "split_img" only files. About the adbkey.pub file so far I have only located an "adbkey" file (without .pub) inside /home/.../.android and the first line says "-----BEGIN PRIVATE KEY---- -". I honestly don't know what to put or where
[Redmi Note 8 Questions & Answers] alecxs:
ramdisk/overlay.d is the right directory for the .rc file, and the .sh file should placed ramdisk/overlay.d/sbin. I meant this zip I have linked two days ago, you obviously didn't read that thread:

if there is no adbkey.pub file in ~/.android directory, run adb with another phone so a file is created.
[Redmi Note 8 Questions & Answers] ictecnics:
I connected another phone, enabled OEM debugging and OEM unlock and no adbkey.pub is created in ~/.android, it shows the same files as before: adb.5037 and adbkey. Ran adb shell, connected to other phone, no file created.
[Redmi Note 8 Questions & Answers] alecxs:
sorry with connect I meant a established adb connection. you need to authorize adb devices on phone screen. this is how a RSA key looks like.

QAAAAPNufVHFpe0ZWtg9tON+uVYnvlWHfdva30vqlshPDnj974MwMmfqqBOO9ThitmRNRdWGwu+LRxvAI7iuwl8bdFR1bf4h747k06YMEwbNDRO/Uk/mMGWOeiBWWQbFUPniMqofg+zcVkKjhcQlCI8V+h0uSoQNfTgWEkxid9YUY+VKjZyq6Q7pwDcFgQZwVe1Bm+j5ZaxbSIyNio8c8sboitLNEt4H9tCaB8NhXz1xCBpSY0uAOkUrxrql5n/52iwWnXgQX1KqjQeTCPsL1gsO0imPtAOgJ7alhJ3ITHidmIwspWK8uN9Sc/zEIxLXCaXRaM/opTmUTVaHcUdd8f2wdjQftyPbuTguKth78Weer8B7/yh70UiBUuQXMwXodoHgjZUcUbRkfihyHqiYxszgLri99HnTpm909yV8KN8fxeRyOOZ3X9ke7yFSVr2+Gu/3EN9QKUz+dKpb0B3yVhCgvx8vVDY4P+V0wPMZNoJkit7xeli/UFHiI92/FlGufds0e6XORw1ltR9VqAlZnuNdiygrXWFuwYkNVs2RfbpE39hdp6clL0yw+liqMiLhyyNcsptMNpEIgcUbDKMK02JnpAAMqkTXJJno/ktUtBUW0gOxpEzLUCbvKqhhV+XPDRUGFXtl4TgxibhFd9eE46oVIpMa6dCVw6FPRNytklYVtlVKoZfCIAEAAQA= local@DESKTOP-9DO6FGV
[Redmi Note 8 Questions & Answers] ictecnics:
I have established connection via adb shell to the 2nd phone and authorized the RSA key fingerprint on the phone screen. I can navigate the directory structure without problem but no new file is created in ~/.android. I have the same two files. If helps the system is Ubuntu 22.04.1 LTS and the adb and fastboot are installed via apt repositories. If I open the adbkey file it's a private key but it doesn't say if it's RSA it starts with "-----BEGIN PRIVATE KEY-----" and ends with "-----END PRIVATE KEY----- ", size of the file is 1.7kb
[Redmi Note 8 Questions & Answers] ictecnics:
I've tried copying the adbkey file to /cache (not the correct one though) and running "fastboot boot image-new.img" and rebooting. I remember after the 2nd reboot abdkeys was supposed to be renamed to abdkeys.bak but from TWRP file explorer this file follows as "adbkeys"
[Redmi Note 8 Questions & Answers] ictecnics:
Found this link about how to regenerate adb keys but still only generating adbkey. Found in this link how to "force" generating adbkey.pub with "adb pubkey" command. Copied generated adbkey.pub as adb_keys to /cache and executed "fastboot boot iimage-new.img". Still unauthorized. Rebooted. Still unauthorized. Flashed image-new.img to boot with "fastboot flash boot image-new.img". Rebooted. Still unauthorized. Killed adb process. Still unathorized. Booted to recovery. /cache/adb_keys.bak does not exist.
[Redmi Note 8 Questions & Answers] alecxs:
that indicates the key is never installed. I guess the reason is the FBE file encryption... could be that the directory is credential encrypted on your android version.

however, you can try other methods. first, rule out the script execution is not the issue. you can do this by checking magisk.log in cache, or let the scipt create a new file on cache so you know it is executed.

also make sure you use the correct file name adb_keys

you can try the resetprop and set ro.adb.secure=0 (not on production builds)
[Redmi Note 8 Questions & Answers] ictecnics:
In first attempt with "adbkey" I copied to cache as adbkeys but after generation of .pub I copied as adb_keys.

Magisk.log is attached

Can explain me how to try the second method you said? I see inside init.adbguard.rc this line "# setprop ro.adb.secure 0". I have to modify and uncomment? Where to put resetprop?

Thank you
[Redmi Note 8 Questions & Answers] alecxs:
yes, just uncomment it. no need for resetprop. I can't see overlay.d in magisk.log, maybe the magisk version is too new?
[Redmi Note 8 Questions & Answers] ictecnics:
I'll try with older Magisk (I have 26, 25 and 25.2 downloaded too) and uncommenting.
[Redmi Note 8 Questions & Answers] ictecnics:
Tried to flash Magisk 25.2, pulled boot image again, unpacked, copied overlay.d files, Uncommented line, repacked. Still Unauthorized.

I'm doing this procedure:

- adb pull /dev/block/bootdevice/by-name/boot boot.img

- Putting boot.img inside AIK directory.

- unpackimg.sh

- copy init.adbguard.rc and adbguard.sh inside ramdisk and overlay.d subdirectory

- uncommented line from init.adbguard.rc

- repackimg.sh

- Putting smartphone to bootloader

- fastboot boot image-new.img

- System booting

- PIN from SIM card

- Rebooted

- PIN from SIM card

- adb devices

I attach magisk.log

Could it be that Magisk is not properly installed on the system?

Other options for me?

Thank you
[Redmi Note 8 Questions & Answers] alecxs:
create a very simple shell script, something like echo "Hello World" > file. this way you figure out the script is executed at all.
[Redmi Note 8 Questions & Answers] ictecnics:
Where to put the script? Inside overlay.d/sbin?
[Redmi Note 8 Questions & Answers] alecxs:
you can modify the existing shell script.
[Redmi Note 8 Questions & Answers] ictecnics:
My files at this moment.

Hello World worked.
[Redmi Note 8 Questions & Answers] alecxs:
ask the ROM developer what you can do to authorize adb from start-up script, maybe the location for adb_keys has changed (or the file name)
[Redmi Note 8 Questions & Answers] ictecnics:
Hello World result means that Magisk works?
[Redmi Note 8 Questions & Answers] alecxs:
yes, obviously the .sh script(s) are executed, and you have write access to /cache.

the only thing that is not executed is the setprop in .rc because you forgot to uncomment the triggering event. but you have set it from .sh with resetprop too, so it doesn't matter. this property is either ignored (production builds) or overwritten from another property file (there are many) and I don't know the order.

if script is executed, it should find adb_keys on /cache, and assuming there is access to /data it should place the key in /data/misc/adb. so either the script is broken, or there is no access to /data/misc.

Former one can happen if for example some toybox applet has different usage, a script that works on my phone doesn't necessarily mean to work on yours. this can be ruled out with your own script (mine is a bit oversized for such a simple task).

Latter one can happen if the way android encrypted that directory has changed on your android version. for credential-encrypted directories your pattern is required, which would let the cat chasing its own tail. I personally never tested on encrypted device, but usually this directory is only device-encrypted and therefore available in BFU state (confirmed by others)
[Redmi Note 8 Questions & Answers] ictecnics:
Tried to contact developers via Telegram. For the moment, no answer here. They have the link of the thread.
[Redmi Note 8 Questions & Answers] alecxs:
you can meanwhile play with a shell script. to avoid flashing boot.img over and over again, I recommend to execute a shell script from /cache instead from sbin. just make sure to always set the file executable. I recommend a subdirectory on /cache.

if the script is executed, then you can put commands in there and log the outcome, for example list files in /data

ls -l /data > /cache/out.txt

so you can see which directories are encrypted in BFU state.

your goal is to copy adb_keys into /data/misc/adb.

do not try to delete pattern.key or locksettings.db that will destroy the encryption!
[Redmi Note 8 Questions & Answers] ictecnics:
How to execute the script without booting boot.img?
[Redmi Note 8 Questions & Answers] alecxs:
forget what I said, I was assuming you flashed it into boot partition every time.
[Redmi Note 8 Questions & Answers] ictecnics:
I tried it one or twice but script not worked. I'm doing 'fastboot boot boot_image.img'. You said that adb is authorised at 2nd boot and I tried it with fastboot and after flashing image. Nothing worked.

In the other hand, there's another way to execute script from cache as you said without doing fastboot command?

Because TWRP not decrypt /sdcard, /system or /data I think that if there's a way to access /data is with magisk at boot (and I'm not sure if magisk can access without authenticating with pattern equivalent password).
[Redmi Note 8 Questions & Answers] alecxs:
you have Hello world script that works, use it!
[Redmi Note 8 Questions & Answers] ictecnics:
Yes, but I executed hello world script putting it into overlay.d, repacking image and booting with fastboot.

In the other hand I've found this article that says:

Obviusly I think that I have to get adb access first, but, deleting gesture.key will bypass pattern?

Could "Pattern Password Disable" work? I take a look to the script and I don't know if will work with encryption from TWRP.
[Redmi Note 8 Questions & Answers] alecxs:
⚠️ WARNING: as I said, don't do this. this doesn't work for FBE encryption where credentials are required for decrypt. this will result in unrecoverable data loss.
[Redmi Note 8 Questions & Answers] ictecnics:
OK. I will not do this.
[Redmi Note 8 Questions & Answers] ictecnics:
I tried some commands (var_cmd.sh) and that generated some files (cache_files). "cp /data/system/*.key /cache/script/system_keys" not copied nothing into the destination.
[Redmi Note 8 Questions & Answers] ictecnics:
Can I copy contents to an additional SD card from init script?

cp /data/system/*.db /cache/script/system_db copied db files that are shown encrypted in TWRP. I think that cache partition size will be too small for DCIM content for example.
[Redmi Note 8 Questions & Answers] alecxs:
yes, try /storage/????-???? for the MicroSD Card. but I am afraid you can't copy anything that is credential encrypted (like DCIM)
[Redmi Note 8 Questions & Answers] ictecnics:
I'll try but seems that the main objective is still to authorise device via adb. Do you know if find command works with init script? I'm thinking that could be that abdkeys is in a diferent directory. It's possible?
[Redmi Note 8 Questions & Answers] alecxs:
I have no clue why it doesn't work. maybe it's a different directory, maybe not. can you view /data/misc from script? does /data/misc/adb exist? what's inside?
[Redmi Note 8 Questions & Answers] ictecnics:
I attached a few posts back the var_cmd.sh that I tried and the output of ls -l inside cache_files.zip. I can't review it now but I think that output of misc was blank.
[Redmi Note 8 Questions & Answers] alecxs:
I missed the attachments. try to create the directory and place the key from cache.

mkdir /data/misc/adb
cp /cache/adb_keys /data/misc/adb
chmod 2750 /data/misc/adb
chmod 0640 /data/misc/adb/adb_keys
chown -R system.shell /data/misc/adb
chcon -R u:object_r:adb_keys_file:s0 /data/misc/adb
ls -l /data/misc/adb > /cache/ls_data_misc_adb.txt 2>&1
[Redmi Note 8 Questions & Answers] ictecnics:
Hi, creating directory into /data/misc will not destroy anything that it's not reversible? Is always not credential encrypted?
[Redmi Note 8 Questions & Answers] alecxs:
No. But if you are afraid you can backup userdata partition beforehand.

If you wanna know it for sure you can double check init.rc how the directory is created.

https://android.stackexchange.com/q...on-security-and-backup-restore-considerations

if it looks like this /data/misc is encrypted with system DE key

https://chromium.googlesource.com/a...ore/+/refs/heads/upstream/rootdir/init.rc#697

mkdir /data/misc 01771 system misc encryption=Require
[Redmi Note 8 Questions & Answers] ictecnics:
Tried to execute without mkdir. I checked if adb subfolder exists before with

ls -l /data/misc > /cache/ls_data_misc.txt

adb_keys copied succesfully and I now have adb shell access but...

When I'm trying to access /data:

ginkgo:/ $ cd data/

ginkgo:/data $ ls

ls: .: Permission denied

When I try to access /sdcard

ginkgo:/ $ cd sdcard

/system/bin/sh: cd: /sdcard: No such file or directory

When I access to /system

ginkgo:/ $ cd system

ginkgo:/system $ ls

apex build.prop framework priv-app system_ext

app etc lib product usr

bin fonts lib64 system_dlkm vendor
[Redmi Note 8 Questions & Answers] ictecnics:
I have this:

ginkgo:/ $ ls -l

total 68

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 acct

drwxr-xr-x 31 root root 640 1971-10-17 14:42 apex

lrw-r--r-- 1 root root 11 2009-01-01 01:00 bin -> /system/bin

lrw-r--r-- 1 root root 50 2009-01-01 01:00 bugreports -> /data/user_de/0/com.android.shell/files/bugreports

drwxrwx--- 7 system cache 4096 1971-10-17 14:42 cache

drwxr-xr-x 4 root root 0 1970-01-01 01:00 config

lrw-r--r-- 1 root root 17 2009-01-01 01:00 d -> /sys/kernel/debug

drwxrwx--x 57 system system 4096 2023-07-05 00:02 data

d????????? ? ? ? ? ? data_mirror

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 debug_ramdisk

drwxr-xr-x 27 root root 4180 2023-07-05 00:02 dev

lrw-r--r-- 1 root root 11 2009-01-01 01:00 etc -> /system/etc

l????????? ? ? ? ? ? init -> ?

-????????? ? ? ? ? ? init.environ.rc

d????????? ? ? ? ? ? linkerconfig

drwx------ 2 root root 16384 2009-01-01 01:00 lost+found

d????????? ? ? ? ? ? metadata

drwxr-xr-x 15 root system 320 1971-10-17 14:42 mnt

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 odm

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 odm_dlkm

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 oem

d????????? ? ? ? ? ? postinstall

dr-xr-xr-x 571 root root 0 1970-01-01 01:00 proc

lrw-r--r-- 1 root root 15 2009-01-01 01:00 product -> /system/product

lrw-r--r-- 1 root root 21 2009-01-01 01:00 sdcard -> /storage/self/primary

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 second_stage_resources

drwx--x--- 4 shell everybody 80 1971-10-17 14:42 storage

dr-xr-xr-x 15 root root 0 1971-10-17 14:42 sys

drwxr-xr-x 15 root root 4096 2009-01-01 01:00 system

d????????? ? ? ? ? ? system_dlkm

lrw-r--r-- 1 root root 18 2009-01-01 01:00 system_ext -> /system/system_ext

drwxr-xr-x 20 root shell 4096 2009-01-01 01:00 vendor

drwxr-xr-x 2 root root 4096 2009-01-01 01:00 vendor_dlkm
[Redmi Note 8 Questions & Answers] alecxs:
you now have adb access in BFU state. you can't access files without unlocking the pattern. you can change the pattern from adb if you know the proper encoding.

even if unlocked you don't have access to data without root. you need to type 'su'
[Redmi Note 8 Questions & Answers] ictecnics:
How to do this? I've tried "whoami" from adb shell and show "shell" user.
[Redmi Note 8 Questions & Answers] alecxs:
refer to post #4
[Redmi Note 8 Questions & Answers] ictecnics:
ginkgo:/ # su

/system/bin/sh: su: inaccessible or not found

adb shell locksettings set-pattern --old '123456BHNT' '14789'

/system/bin/sh: locksettings: inaccessible or not found
[Redmi Note 8 Questions & Answers] ictecnics:
Sorry! I executed command while in TWRP!

This is the output

adb shell locksettings set-pattern --old '123456BHNT' '14789'
Error while executing command: set-pattern
java.lang.IllegalArgumentException: row must be in range 0-2
at com.android.internal.widget.LockPatternView$Cell.checkRange(LockPatternView.java:221)
at com.android.internal.widget.LockPatternView$Cell.of(LockPatternView.java:215)
at com.android.internal.widget.LockPatternUtils.byteArrayToPattern(LockPatternUtils.java:860)
at com.android.server.locksettings.LockSettingsShellCommand.getOldCredential(LockSettingsShellCommand.java:251)
at com.android.server.locksettings.LockSettingsShellCommand.checkCredential(LockSettingsShellCommand.java:372)
at com.android.server.locksettings.LockSettingsShellCommand.onCommand(LockSettingsShellCommand.java:111)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.locksettings.LockSettingsService.onShellCommand(LockSettingsService.java:2573)
at android.os.Binder.shellCommand(Binder.java:1049)
at android.os.Binder.onTransact(Binder.java:877)
at com.android.internal.widget.ILockSettings$Stub.onTransact(ILockSettings.java:1053)
at android.os.Binder.execTransactInternal(Binder.java:1280)
at android.os.Binder.execTransact(Binder.java:1244)
[Redmi Note 8 Questions & Answers] alecxs:
obviously the encoding is wrong. you need to figure out correct usage. search for error row must be in range 0-2
[Redmi Note 8 Questions & Answers] ictecnics:
According to this link I think that my 6x6 was 123456<BHNT but with "<" I've this output

adb shell locksettings set-pattern --old '123456<BHNT' '14789'
/system/bin/sh: can't open BHNT: No such file or directory
[Redmi Note 8 Questions & Answers] alecxs:
try more quotes

adb shell "locksettings set-pattern --old '123456<BHNT' 14789"

or try from shell

adb shell
locksettings set-pattern --old '123456<BHNT' 14789

I remember another user claimed locksettings can't handle 4x4 patterns so maybe this is dead end.

if only numbers accepted, only 3x3 pattern can changed this way.
[Redmi Note 8 Questions & Answers] ictecnics:
Same error: "row must be in range 0-2". I've Googled and for the moment I can't find and explanation. My pattern was 6x6. if this method works only till 4x4 will not work for me.
[Redmi Note 8 Questions & Answers] ictecnics:
I think the explanation is that I'm putting 6x6 old pattern and command expects 3x3 pattern. I tried

adb shell "locksettings set-pattern --old '12369' 14789"

But I've "Request throttled" and after nothing changes. Trying 14789 doesn't work. Maybe can't change 6x6 to 3x3 with this command.

Any other method to try? Any way to act as root with adb shell? Maybe trying to rename (not delete) /data/system/gesture.key from init script (https://resources.infosecinstitute....nsics-cracking-the-pattern-lock-protection/)?
[Redmi Note 8 Questions & Answers] alecxs:
You have read 10 years old google result. your credentials are required to solve the puzzle to derive encryption keys. How should decryption work without the old pattern?

I recommend to make a full backup of userdata partition first. This gives you some room to play. But be aware, once you performed factory reset the backup becomes useless, as the keys are stored in TEE keystore only (which is secure deleted on factory reset).