Ozip Extractor Tool -
# Often just raw ext4 or sparse image output_img = os.path.join(output_dir, 'system.img') with open(output_img, 'wb') as out: out.write(data) print(f"[+] Extracted ZTE OZIP to: output_img") Main function ------------------------------------------------------------ def main(): if len(sys.argv) < 2: print("Usage: ozip_extractor.py <input.ozip> [output_directory]") print("\nExample: ozip_extractor.py firmware.ozip ./extracted") sys.exit(1)
input_file = sys.argv[1] if not os.path.exists(input_file): print(f"[-] File not found: input_file") sys.exit(1)
output_dir = sys.argv[2] if len(sys.argv) > 2 else "ozip_output" Path(output_dir).mkdir(parents=True, exist_ok=True) ozip extractor tool
def detect_ozip_type(filepath): """Detect OZIP variant by reading header.""" with open(filepath, 'rb') as f: header = f.read(12)
if header[:4] == OZIP_MAGIC: # Check for version version = struct.unpack('<I', header[4:8])[0] if len(header) >= 8 else 0 return ('STANDARD_OZIP', version) elif header[:4] == b'ZTE\x00': return ('ZTE_OZIP', 1) else: return ('UNKNOWN', 0) def extract_standard_ozip(input_path, output_dir): """Extract standard OZIP (Asus style).""" with open(input_path, 'rb') as f: # Read full file (for small-to-medium OZIPs) data = f.read() # Often just raw ext4 or sparse image output_img = os
def xor_decrypt(data, key): """Apply XOR decryption to the data.""" return bytes([b ^ key for b in data])
print(f"[*] Processing: input_file") ozip_type, version = detect_ozip_type(input_file) print(f"[*] Detected type: ozip_type") 'system.img') with open(output_img
try: if ozip_type == 'STANDARD_OZIP': extract_standard_ozip(input_file, output_dir) elif ozip_type == 'ZTE_OZIP': extract_zte_ozip(input_file, output_dir) else: print("[-] Unsupported or unknown OZIP variant.") print("[*] Try manual XOR decryption with different keys (0x00-0xFF).") sys.exit(1) print(f"[✓] Extraction complete. Output: output_dir")
# Decrypt using XOR decrypted = xor_decrypt(data[4:], XOR_KEY)
#!/usr/bin/env python3 """ OZIP Extractor Tool v1.0 Author: Open Source Purpose: Extract .ozip firmware files from Asus, ZTE, and similar Android devices. """ import sys import os import struct import zlib from pathlib import Path Configuration ------------------------------------------------------------ OZIP_MAGIC = b'OZIP' # Common OZIP file signature XOR_KEY = 0x6D # Typical obfuscation key (may vary)