{"id":9461,"library":"android-backup","title":"Android Backup Tools","description":"The `android-backup` library provides tools to unpack and repack Android backup files (.ab). It's designed to work with Android backup format version 0.2. The current version is 0.2.0, with a very slow release cadence, and it is explicitly a Python 2.x only library.","status":"active","version":"0.2.0","language":"python","source_language":"en","source_url":"https://github.com/bluec0re/android-backup-tools","tags":["android","backup","mobile","adb","python2"],"install":[{"cmd":"pip install android-backup","lang":"bash","label":"Install with pip"}],"dependencies":[],"imports":[{"note":"The primary class 'AndroidBackup' is nested within the 'android_backup' module itself, not directly at the top level of the package.","wrong":"import android_backup","symbol":"AndroidBackup","correct":"from android_backup.android_backup import AndroidBackup"}],"quickstart":{"code":"# This code requires Python 2.7\nimport os\nfrom android_backup.android_backup import AndroidBackup\n\n# Create a dummy backup file for demonstration\n# In a real scenario, 'backup.ab' would be an actual Android backup file\nwith open('dummy_backup.ab', 'w') as f:\n    f.write('Android Backup\\n1\\n0.2\\nNONE\\n') # Minimal header for demo\n\n# Ensure adb and Java are in PATH for actual operations\n# This example will likely fail without a valid .ab file and external tools\ntry:\n    print(\"Attempting to initialize AndroidBackup (requires Python 2.7, adb, and Java)\")\n    backup = AndroidBackup(filename=\"dummy_backup.ab\")\n    print(\"Backup object created.\")\n    # Uncomment the following lines to actually unpack/repack if you have\n    # a valid backup file and external tools setup:\n    # backup.unpack(output_path=\"./unpacked_data\")\n    # print(\"Backup unpacked to ./unpacked_data\")\n    # backup.repack(input_path=\"./unpacked_data\", output_filename=\"repacked_backup.ab\")\n    # print(\"Backup repacked to repacked_backup.ab\")\nexcept Exception as e:\n    print(\"Could not process backup (expected if external tools are missing or .ab is invalid):\", e)\nfinally:\n    if os.path.exists('dummy_backup.ab'):\n        os.remove('dummy_backup.ab')\n","lang":"python","description":"This quickstart demonstrates how to import and initialize the `AndroidBackup` class. Note that this library *requires Python 2.7* and external tools (`adb` and `java`) to be installed and accessible in your system's PATH for full functionality (unpacking/repacking)."},"warnings":[{"fix":"Ensure you are running the library within a Python 2.7 environment (e.g., using `virtualenv`, `conda`, or directly invoking `python2` if available).","message":"The `android-backup` library is *exclusively compatible with Python 2.7*. It explicitly does not support Python 3.x, and attempting to run it in a Python 3 environment will result in syntax errors or unexpected behavior.","severity":"breaking","affected_versions":"All versions (v0.2.0 and prior)"},{"fix":"Install the Android SDK Platform-Tools and a JDK, then add their respective `bin` directories to your system's PATH environment variable.","message":"This library relies on external tools: `Android Debug Bridge (adb)` from the Android SDK Platform-Tools and a `Java Development Kit (JDK)`. These tools must be installed and their executables must be available in your system's PATH.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Verify the backup file's format version. If it's not v0.2, consider using other tools or alternative methods for unpacking/repacking.","message":"The library explicitly states support for Android backup format version 0.2. Backups created with older or newer Android versions might not be compatible or could lead to unexpected issues.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"search_vec":"'0.2':29 '0.2.0':34 '2':47 'ab':18 'adb':54 'android':1,6,15,25,51 'android-backup':5 'backup':2,7,16,26,52 'cadenc':40 'current':31 'design':21 'explicit':44 'file':17 'format':27 'librari':8,50 'mobil':53 'provid':9 'python':46 'python2':55 'releas':39 'repack':14 'slow':38 'tool':3,10 'unpack':12 'version':28,32 'work':23 'x':48","created_at":"2026-04-17T01:19:02.811095+00:00","updated_at":"2026-04-17T01:19:02.811095+00:00","problems":[{"fix":"You are using `android-backup` in a Python 3 environment. This library is Python 2.7 only. Activate or create a Python 2.7 environment and run your script there.","cause":"Attempting to run Python 2.x code (like `print 'hello'`) in a Python 3 interpreter.","error":"SyntaxError: Missing parentheses in call to 'print'"},{"fix":"Install the Android SDK Platform-Tools package, which contains `adb`. Ensure the directory containing `adb` (e.g., `platform-tools`) is added to your system's PATH environment variable.","cause":"The `adb` command-line tool (Android Debug Bridge) is not installed or not found in your system's PATH.","error":"FileNotFoundError: [Errno 2] No such file or directory: 'adb'"},{"fix":"Ensure a Java Development Kit (JDK) is installed and configured correctly. Verify that `java` is in your PATH and that the library can access necessary Java components for processing Android backup files.","cause":"Java or related tools are not correctly set up, or the Android backup tools' Java dependencies are not met.","error":"JavaException: Class not found: com/android/vts/proto/ComponentSpecification"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.2.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/bluec0re/android-backup-tools","docs":null,"changelog":null,"pypi":"https://pypi.org/project/android-backup/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-06-28","next_check":"2026-07-28","install_tag":null}}