{"id":13448420,"url":"https://github.com/IzzySoft/Adebar","last_synced_at":"2025-03-22T09:31:19.913Z","repository":{"id":22371259,"uuid":"25707633","full_name":"IzzySoft/Adebar","owner":"IzzySoft","description":"Android DEvice Backup And Report, using Bash and ADB. Moved to https://codeberg.org/izzy/Adebar -- this is only a mirror now.","archived":true,"fork":false,"pushed_at":"2022-01-05T11:51:50.000Z","size":666,"stargazers_count":244,"open_issues_count":3,"forks_count":41,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-10-28T14:27:28.226Z","etag":null,"topics":["adb","adb-backups","android","documentation-tool","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IzzySoft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-24T20:50:54.000Z","updated_at":"2024-10-22T22:11:49.000Z","dependencies_parsed_at":"2022-07-25T13:17:02.738Z","dependency_job_id":null,"html_url":"https://github.com/IzzySoft/Adebar","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IzzySoft%2FAdebar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IzzySoft%2FAdebar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IzzySoft%2FAdebar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IzzySoft%2FAdebar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IzzySoft","download_url":"https://codeload.github.com/IzzySoft/Adebar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937751,"owners_count":20535124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adb","adb-backups","android","documentation-tool","shell"],"created_at":"2024-07-31T05:01:45.132Z","updated_at":"2025-03-22T09:31:19.212Z","avatar_url":"https://github.com/IzzySoft.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Adebar\n***Adebar*** stands for \u003cb\u003eA\u003c/b\u003endroid \u003cb\u003eDe\u003c/b\u003evice \u003cb\u003eB\u003c/b\u003eackup \u003cb\u003ea\u003c/b\u003end \u003cb\u003eR\u003c/b\u003eeport. It is mainly based on [Bash](http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 \"Wikipedia: Bash (Unix shell)\") and [Adb](http://en.wikipedia.org/wiki/Android_Debug_Bridge \"Wikipedia: Android Debug Bridge\"). It reportedly works on Linux, Mac and Windows (Cygwin).\n\n**Note:** As this is a collection of Shell scripts, you won't find any „binaries“ attached to releases – there are none for *Adebar* and no „compilation“ is required. Please take a look at [the wiki](https://codeberg.org/izzy/Adebar/wiki) for further details and instructions.\n\n\n## What makes *Adebar* specific?\nThere are plenty of backup solutions available for Android, including such intended as front-end for ADB. So what is specific for *Adebar* that I wrote it, knowing of those other solutions?\n\nThe task I wrote *Adebar* for is to be able to quickly backup a device, and restore the backup again – e.g. when I need to factory-reset a device. That includes the case where I have to send a device to be serviced, and need to use a different device meanwhile – which would rule out a \"complete restore\" due to the side-effects system-apps might cause, especially when the second device is from a completely different manufacturer, and/or runs a different version of Android or even a completely different ROM. That's one of the reasons why the scripts generated by *Adebar* create one backup file per app (instead of one huge `backup.ab` holding them all) – while the other is to be able to select what to restore in general.\n\nAs a side-effect, *Adebar* generates a „report“ (or „short documentation“) on the device – including general device information (like model, Android version, device features, device status, configured accounts) as well as some details on installed apps (install source/date, last update, version, etc.).\n\n\n## What kind of backup does *Adebar* create?\n*Adebar* itself does not create any backups. But it generates multiple files, including\n\n* a [shell script](http://en.wikipedia.org/wiki/Shell_script \"Wikipedia: Shell script\") to create separate ADB backups for the apps you've installed yourself (\"user-apps\"), including their `.apk` files and their data\n* a shell script to create ADB backups of system apps, only containing their data, plus shared storage\n* a shell script to create disk images of your device's partitions (for rooted devices)\n* a shell script to download contents of your internal/external SDCards and Backups via Titanium Backup's built-in web server (for rooted devices)\n* a shell script to disable (freeze) all apps you had disabled/frozen on your device\n* it pulls the `wpa_supplicant.conf` from your device, which holds information on all WiFi APs you've configured (root required) – and also some more configuration files.\n* it pulls the `packages.xml` from your device, which holds all information about apps installed on your device (with Android 4.1 and above, this again requires root)\n* a shell script to disable all broadcast receivers (aka \"auto-starts\") which were disabled on the given device\n* a [HTML][2] file listing all user-installed apps with their sources you've installed them from (e.g. *Google Play*, *F-Droid*, *Aptoide*), date of first install/last update, installed version, and more – plus the same for the (pre-installed) system apps.\n* a [HTML][2] file with some general device documentation.\n\nThose three HTML files still have a `.md` file extension for historical reasons (before v2.0.0, they were created using [Markdown][4]). They are not complete HTML documents (no header, no footer); the example configuration in `doc/` has a user-function `uf_postrun()` taking care to assemble the pieces into one file which then will be a valid HTML document and thus have an `.html` file extension. Some examples of such \"assembled device documentation pages\" can be [found here](https://pages.codeberg.org/izzy/adebar/).\n\n![Adebar-created files](https://codeberg.org/izzy/Adebar/wiki/raw/AdebarFiles.png)\n\nOptionally, if you have the PHP [CLI](https://en.wikipedia.org/wiki/Command-line_interface \"Wikipedia: Command-line interface\") available on your computer, you can parse the `packages.xml` with provided PHP scripts, located in the `tools/` directory. This directory also includes a few additional scripts:\n\n* `ab2tar`: shell script to convert ADB backup files into `.tar.gz` archives (requires `openssl` or `zlib-flate` and currently can only handle backups which were not password-protected)\n* `abrestore`: to help you if you have issues restoring ADB backups on Android 7 or higher (if your device is affected by the ADB restore bug, only restoring backups of apps already installed on the device)\n* `getapk`: grab the APK(s) for a given (group of) app(s) via ADB\n* `restoreapks`: restore all the APK's you have in a folder via ADB (as retrieved by `getapk`)\n* `mkdummy`: to create a \"dummy device\" from your real one (mainly intended for debug purposes: if you need assistance, you could zip/tar that after having it sanitized and attach it to an issue, or send it by other means)\n* `ssnap`: to create a series of screenshots from your device\n\n\u003e **As I cannot test *Adebar* on all existing devices/ROMs, there might be some errors/bugs here and there (specific to a given device, ROM or newer Android version); if you encounter one, please file an issue at [the project's Codeberg presence][1]. General feedback is also more than welcome if you're successfully using *Adebar* with your device, see [List of tested devices](https://codeberg.org/izzy/Adebar/issues/7).**\n\n\n## Requirements\nMost of them should already be obvious from above description. Nevertheless, all of them here in short:\n\n* **ADB** installed (and configured for your device) on your computer. This can either be the [complete Android SDK](https://developer.android.com/sdk/index.html \"Android SDK at Android Developers\"), or a [minimal installation of ADB](https://android.stackexchange.com/q/42474/16575 \"Android.SE: Is there a minimal installation of ADB?\").\n* **Bash** (version 4 or higher). As this is a very common shell environment, it's available by default on most Linux distributions. If you're a Windows user: sorry, the only windows I have are for light and fresh air – but I've received reports that *Adebar* ran successfully with [Cygwin](https://en.wikipedia.org/wiki/Cygwin).\n* **Android 4.0+**: As the `adb backup` and `adb restore` commands have not been present before Android 4.0, *Adebar* will not be of much use with devices running older versions – except for creating a „device documentation“ as outlined above, which indeed works even with Android 2.1.\n* some features require root on the Android device\n\n\n## QuickStart\nTo get started without too much hazzle, please see `doc/quickstart_config.sample`. Basically, you just copy that file to `config/` (giving it a name of your choice), adjust 4 to 6 settings to reflect your device plus directory structure (as indicated by comments in the file), and you're ready-to-go (i.e. starting `adebar-cli` with the name of your config as only parameter, e.g. `./adebar-cli myandy`).\n\n\n## More details\nA documentation describing steps for installation, configuration, usage, and more can be found in [the project wiki][3]. Examples of device documentation created by *Adebar* are [available here][5].\n\n\n## Contribute\nYou like *Adebar* and want to contribute?\n\n* Pull Requests are welcome!\n* [Report back your device](https://codeberg.org/izzy/Adebar/issues/7) that works with *Adebar* so it can be added to the wiki!\n* Motivate me e.g. by sending me some mBTC to `1FsfvUGUpoPkLvJboKAnuBXHZ1zN3hbBL1` :)\n\n## Tribute\nerrm… I mean, Credits and thanks:\n\n* Adebar Logo design by [Mathis Brüchert](https://social.anoxinon.de/@m4TZ) and Acrylic by [Mondstern](https://codeberg.org/mondstern)\n* Code submitted by [many contributors](https://github.com/IzzySoft/Adebar/graphs/contributors)\n* suggestions, problems pointed out, ideas given by even more great people via [issues](https://codeberg.org/izzy/Adebar/issues), by mail, at [Mastodon](https://mastodon.technology/@IzzyOnDroid)…\n\n[\u003cimg src='https://pixelfed.social/storage/m/_v2/13678/83a90637a-595111/ay84jSsXAhjQ/UukzNM5gRsshoVCa1kNtGSmfWdFFfvBc1W3bGibH.jpg' width='30'\u003e][6] (Adebar Logo in [Mondstern's Gallery][7] of [Codeberg projects][8])\n\n[1]: https://codeberg.org/izzy/Adebar \"Adebar at Codeberg\"\n[2]: https://en.wikipedia.org/wiki/HTML \"Wikipedia: HTML\"\n[3]: https://codeberg.org/izzy/Adebar/wiki \"Adebar Wiki at Codeberg\"\n[4]: https://en.wikipedia.org/wiki/Markdown \"Wikipedia: Markdown\"\n[5]: https://pages.codeberg.org/izzy/adebar/ \"Adebar DeviceDoc Examples\"\n[6]: https://pixelfed.social/p/mondstern/244110717177958400 \"Acrylic Logo by Mondstern\"\n[7]: https://pixelfed.social/mondstern \"Mondstern Acrylic Gallery\"\n[8]: https://codeberg.org/mondstern/artworks/wiki/Codeberg \"Codeberg projects in Mondstern's gallery\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIzzySoft%2FAdebar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIzzySoft%2FAdebar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIzzySoft%2FAdebar/lists"}