Skip to content

Commit 13f0165

Browse files
author
machiav3lli
committed
Initial X Release
* initial X release * restructured and cleaned the app: adding Bottombar-based navigation and Sort and Filter FAB(for now: only the basic filters) * rewritten Batch-(Activity, Adapter and Sorter) and most the layouts * partially rewritten Main-(Activity and Sorter) * completed the German translation
1 parent 6623da1 commit 13f0165

File tree

2 files changed

+75
-249
lines changed

2 files changed

+75
-249
lines changed

README.md

Lines changed: 67 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,35 @@
1-
OAndBackupX
2-
=======
1+
# OAndBackupX
32

4-
a backup program for android. requires root and allows you to backup individual apps and their data.
3+
OAndBackupX is a fork of the infamous OAndBackup with the aim to bring OAndBackup to 2020. And so most of the changes at first are optimizing the code and fixing the UX and hopefully will get some time later to rewrite the app as a whole. Therefore all types of contribution are welcome.
4+
5+
Now on OAndBackup: a backup program for android. requires root and allows you to backup individual apps and their data.
56
both backup and restore of individual programs one at a time and batch backup and restore of multiple programs are supported (with silent / unattended restores).
6-
restoring system apps should be possible without requiring a reboot afterwards. oandbackupx is also able to uninstall system apps. handling system apps in this way depends on whether /system/ can be remounted as writeable though, so this will probably not work for all devices (e.g. htc devices with the security flag on).
7+
restoring system apps should be possible without requiring a reboot afterwards. OAndBackup is also able to uninstall system apps. handling system apps in this way depends on whether /system/ can be remounted as writeable though, so this will probably not work for all devices (e.g. htc devices with the security flag on).
78
backups can be scheduled with no limit on the number of individual schedules and there is the possibility of creating custom lists from the list of installed apps.
89

9-
building
10-
========
11-
oandbackupx is built with gradle. you need the android sdk, rust for building the oab-utils binary, and bash or a compatible shell for executing the oab-utils build script (patches for making this buildable on windows are welcomed).
10+
## TODO
11+
12+
- [x] Fixing OAB-Utils build problem which was caused by a deprecated method in Rust
13+
- [x] Rewrite Batch-(Activity, Adapter and Sorter)
14+
- [ ] Rewrite Main-(Activity, Adapter and Sorter): only partially
15+
- [ ] Rewrite Scheduler
16+
- [x] BottomNavBar-based navigation
17+
- [x] Sort/Filter-FAB
18+
- [ ] Fix other filters not Responding
19+
- [ ] Add some new filters
20+
- [ ] Rewrite Preferences
21+
- [ ] Rewrite backup folder selector
22+
- [ ] New android external storage permissions compatibility: fixed for Android 10 only for now with legacy mode(fix priority: med)
23+
- [ ] Update dialogs' UI
24+
- [ ] Updating UI and UX: Design proposales are always welcome
25+
- [ ] You suggest!...
26+
27+
## building
28+
29+
OAndBackupX is built with gradle. you need the android sdk, rust for building the oab-utils binary, and bash or a compatible shell for executing the oab-utils build script (patches for making this buildable on windows are welcomed).
30+
31+
P.S: If you have any problem building OAB-Utils: you can find some helping notes in its Readme.md
32+
1233
```
1334
./gradlew build
1435
# building only debug
@@ -17,18 +38,18 @@ oandbackupx is built with gradle. you need the android sdk, rust for building th
1738
./gradlew assembleArm64
1839
```
1940

20-
version control
21-
==============
22-
oandbackupx is handled on both github:
23-
https://github.com/machiav3lli/oandbackupx
41+
## version control
2442

25-
busybox / toybox / oab-utils
26-
======
43+
OAndBackupX is handled on Github:
44+
https://github.com/machiav3lli/oandbackupx
45+
46+
## busybox / toybox / oab-utils
2747

2848
a working busybox or toybox installation is required at the moment, but work is in progress to include all the needed functionality in a binary included in the apk. this program is called oab-utils and is written in rust.
2949

3050
you can get the source for busybox here: https://busybox.net/. you then need to cross-compile it for the architecture of your device (e.g. armv6). you can also try the binaries found here: https://busybox.net/downloads/binaries/.
3151
if you have a working toolchain for your target device, you should only need to run the following commands on the busybox source:
52+
3253
```
3354
make defconfig # makes a config file with the default options
3455
make menuconfig # brings up an ncurses-based menu for editing the options
@@ -37,43 +58,50 @@ if you have a working toolchain for your target device, you should only need to
3758
# build as a static binary if needed
3859
make
3960
```
40-
copy the busybox binary to your system, for example /system/xbin or /data/local, and make it executable. symlinking is not necessary for use with oandbackupx. in the oandbackupx preferences, provide the whole path to the busybox binary, including the binary's file name (e.g. /data/local/busybox).
4161

62+
copy the busybox binary to your system, for example /system/xbin or /data/local, and make it executable. symlinking is not necessary for use with oandbackupx. in the oandbackupx preferences, provide the whole path to the busybox binary, including the binary's file name (e.g. /data/local/busybox).
4263

4364
translations of the original OAndBackup are currently being managed on transifex: https://www.transifex.com/projects/p/oandbackup/
4465
so please come help us there or spread the link if you want the app available in your own language.
4566

67+
## Cryptography
4668

47-
Cryptography
48-
============
49-
oandbackupx supports encrypting the backups using an external cryptography provider.
69+
OAndBackupX supports encrypting the backups using an external cryptography provider.
5070
First you need to install an app which implements the openpgp-api, e.g. OpenKeychain: https://www.openkeychain.org/, and set up an identity.
51-
The "Cryptography" section of the preferences of oandbackupx is then enabled and here you can choose which openpgp and identity to use.
52-
53-
special usage notes
54-
===========
55-
* long press an item in the list of apps to get the context menu.
56-
* delete backup: deletes the backup files for the chosen app.
57-
* uninstall: somewhat more aggresive than a normal uninstall. in addition to doing a normal uninstall via android commands (via pm and thereby uninstalling for all users of the device), uninstalling from oandbackup deletes files the app might have left over in /data/app-lib/. this is useful, as a normal uninstall via android settings in rare circumstances can leave files there making a reinstall of the same app impossible while they are there.
58-
this also works on system apps (although this is still somewhat experimental), which are deleted with a normal rm after the system partition has been remounted as read-write. it is afterwards remounted as read-only.
59-
* enable / disable: uses the android script `pm` to enable or disable an app. disabling an app removes it from the normal user interface without uninstalling. this can be used for enabling or disabling an app for muliple users at a time (if the device has multiple users enabled). users are identified with an id: 0 is the first user (owner).
60-
* multiple users: multi-user is still somewhat experimental but should work. when restoring in a multi-user setting, `pm install -r $apk` gets called and subsequently the app is disabled for every user who has the app listed in /data/system/user/$user/package-restrictions.xml (unless the app is listed as enabled="1").
61-
this can create problems for users installing the same app at some later point, but is necessary to prevent the app from being installed to all users at the same time. the context menu has an option to enable or disable apps which can be used if other users become unable to use a specific app due to disabling on restore.
62-
enabling and disabling only works after an initial install (not necessarily from oandbackup) or restore of the app.
63-
64-
restoring data can also be done manually from the backup files. oandbackup stores the program data files in zip-compressed archives so they can be uncompressed and unpacked with any tool supporting that format (e.g. ```unzip dk.jens.backup.zip```). the unpacked files should then be placed in the directory indicated by "dataDir" in the log file stored with the backup files. this directory will usually be in /data/data/.
65-
after restoring the files, the user and group id of the package need to be set. therefore data can only be restored for packages where an apk has been installed successfully. uid and gid can be obtained with the ```stat``` program (e.g. ```stat /data/data/dk.jens.backup```) and set with ```chown```. finally, the correct permissions need to be set with ```chmod```. oandbackup does this by setting 771 for all data files although this is probably not the best method. the subdirectory lib/ needs to be excluded from both ```chown``` and ```chmod```.
66-
on android 6 / marshmallow (api 23) you would also need to use the ```restorecon``` command on the data directory (e.g. ```restorecon -R /data/data/dk.jens.backup```) or use another method of restoring the file security contexts.
71+
The "Cryptography" section of the preferences of OAndBackupX is then enabled and here you can choose which openpgp and identity to use.
72+
73+
## special usage notes
74+
75+
* long press an item in the list of apps to get the context menu.
76+
* delete backup: deletes the backup files for the chosen app.
77+
* uninstall: somewhat more aggresive than a normal uninstall. in addition to doing a normal uninstall via android commands (via pm and thereby uninstalling for all users of the device), uninstalling from OAndBackupX deletes files the app might have left over in /data/app-lib/. this is useful, as a normal uninstall via android settings in rare circumstances can leave files there making a reinstall of the same app impossible while they are there.
78+
this also works on system apps (although this is still somewhat experimental), which are deleted with a normal rm after the system partition has been remounted as read-write. it is afterwards remounted as read-only.
79+
* enable / disable: uses the android script `pm` to enable or disable an app. disabling an app removes it from the normal user interface without uninstalling. this can be used for enabling or disabling an app for muliple users at a time (if the device has multiple users enabled). users are identified with an id: 0 is the first user (owner).
80+
* multiple users: multi-user is still somewhat experimental but should work. when restoring in a multi-user setting, `pm install -r $apk` gets called and subsequently the app is disabled for every user who has the app listed in /data/system/user/$user/package-restrictions.xml (unless the app is listed as enabled="1").
81+
this can create problems for users installing the same app at some later point, but is necessary to prevent the app from being installed to all users at the same time. the context menu has an option to enable or disable apps which can be used if other users become unable to use a specific app due to disabling on restore.
82+
enabling and disabling only works after an initial install (not necessarily from oandbackup) or restore of the app.
83+
84+
restoring data can also be done manually from the backup files. OAndBackupX stores the program data files in zip-compressed archives so they can be uncompressed and unpacked with any tool supporting that format (e.g. ```unzip com.machiav3lli.backup.zip```). the unpacked files should then be placed in the directory indicated by "dataDir" in the log file stored with the backup files. this directory will usually be in /data/data/.
85+
after restoring the files, the user and group id of the package need to be set. therefore data can only be restored for packages where an apk has been installed successfully. uid and gid can be obtained with the ```stat``` program (e.g. ```stat /data/data/com.machiav3lli.backup```) and set with ```chown```. finally, the correct permissions need to be set with ```chmod```. OAndBackupX does this by setting 771 for all data files although this is probably not the best method. the subdirectory lib/ needs to be excluded from both ```chown``` and ```chmod```.
86+
on android 6 / marshmallow (api 23) you would also need to use the ```restorecon``` command on the data directory (e.g. ```restorecon -R /data/data/com.machiav3lli.backup```) or use another method of restoring the file security contexts.
6787
the code which does these things are in the methods doRestore and setPermissions of ShellCommands.java.
6888

69-
licenses
70-
=======
71-
as a fork of oandbackup, oandbackupx is licensed under the MIT license (see LICENSE.txt)
89+
## licenses
7290

73-
android-support-v4 is written by The Android Open Source Project and licensed under the Apache License, Version 2.0 (see NOTICE.txt in the libs directory)
91+
as a fork of OAndBackup, OAndBackupX is licensed under the MIT license (see LICENSE.txt)
7492

7593
openpgp-api-lib is written by Dominik Schürmann and licensed under Apache License, Version 2.0
7694

77-
author
78-
======
95+
App's icon is based on an Icon made by [Catalin Fertu](https://www.flaticon.com/authors/catalin-fertu) from [www.flaticon.com](https://www.flaticon.com)
96+
97+
Placeholders Icon made by [Smashicons](https://www.flaticon.com/authors/smashicons) from [www.flaticon.com](https://www.flaticon.com)
98+
99+
## credits
100+
101+
[Jens Stein](https://github.com/jensstein) for his unbelievably valuable work on OAndBackup.
102+
103+
[Rahul Patel](https://github.com/whyorean) whose work on AuroraStore and Design inspired this design.
104+
105+
## author
106+
79107
antonios hazim

0 commit comments

Comments
 (0)