# STRUCTURE OF THE ADB BACKUP HEADER # 1. Magic: ANDROID BACKUP# 2. Version (1 only): 1# 3. Compression (1=compressed): 1# 4. Encryption (AES-256/none): AES-256# 5. User Password Salt (128 Hex): 7369CED537D83E155219...# 6. Master Key Checksum Salt (128 Hex): 21D8562EA19F0AA81B5D...# 7. Number of PBDKF2 Rounds (10000): 10000# 8. User key Initiatlization Vector (IV) (32 Hex): 434A7A67212109AE1903...# 9. Master IV+Key+Checksum (192 Hex): 49B0BEFBFE7CD8D7A18D...# Notes: lines 5-8 only occur if encrypted.# Hex is written in ALL-CAPS.# The decrypted blob structure is:# <iv len-1B><iv-16B><key len-1B><key-32B ><checksum len-1B><checksum-32B># where B=byte and len=length in bytes## Decryption occurs as follows:# 1. Create PBKDF2-derived User Key from user password (entered) and User Salt# 2. Decrypt the Blob using the derived user key and user IV# 3. Separate Blob into 3 components# 4. Generate PBKDF2-derived Master Checksum from Master Key and Master Key# Checksum Salt# 5. Check derived Master Checksum against Master Checksum recoverd from Blob# 6. If matches, proceed with decryption using Master Key and Master IV