For 2 days, I've desperately been trying to recover a very important, accidentally deleted text conversation from Message+. Let me say, I know NOTHING about tech! After trying questionable softwares that could not assist without rooting (and I felt doubtful they be helpful even if I had rooted), it seemed like the best option was to try to find the deleted files by downloading ADB and doing a backup. After a lot of frustration, I was finally successful in creating a backup.ab file. The phone did require be to encrypt it. But the issue that has plagued me today is unpacking that to a .tar file. After tons more research, I have installed Android Backup Extractor and java. While I have found a couple people ask similar questions on the web, my error message appears to be different. I was praying for some help in translating it and figuring out what to do next. Here is what I typed along with the error message. BTW, my phone is a Galaxy S10+ running on Android Version 12. And the backup file has over 40,000 kb.
C:\Program Files\Java\jdk-21\bin>java -jar abe.jar unpack backup.ab [password]
This backup is encrypted, please provide the password
Password:
Calculated MK checksum (use UTF-8: true): 37BDEBD1C840E3B9C82E9EE3D221758E8358AC92DF1C2FD274BBDC525066311D
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: [password] (Access is denied)
at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
at org.nick.abe.Main.main(Main.java:40)
Caused by: java.io.FileNotFoundException: [password] (Access is denied)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:289)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:230)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:118)
at org.nick.abe.AndroidBackup.getOutputStream(AndroidBackup.java:314)
at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:199)
... 1 more
Update 1
After fixing the missing tar file argument problem the error message changed:
C:\Program Files\Java\jdk-21\bin>java -jar abe.jar unpack backup.ab backup.tar [belle]
Exception in thread "main" java.lang.RuntimeException: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:233)
at org.nick.abe.Main.main(Main.java:40)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:861)
at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:941)
at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:734)
at java.base/com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)
at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2244)
at org.nick.abe.AndroidBackup.extractAsTar(AndroidBackup.java:131)
... 1 more
Thank you so much for any help!
Update 2
I also just tried using android tools processor instead.
C:\Program Files\Java\jdk-21\bin>java -jar abp.jar unpack backup.ab backup.tar
Backup encrypted, enter password (will NOT be displayed):
Password:
No error message was produced, so I thought it might have worked. Yet no .tar file in sight!
abp.jar
- what is it? Also make sure there is no fixed backup password set in developer options. Otherwise the backup password may work different than you expect, see e.g. last comment of https://android.stackexchange.com/a/255843/2241 – Robert Feb 25 '24 at 22:47