Git Product home page Git Product logo

neo-backup's Introduction

Neo Backup

Contributor Covenant GitHub repo stars GitHub License GitHub All Releases GitHub release Small translation badge

Neo Backup (formerly OAndBackupX) is a fork of the famous OAndBackup with the aim to bring OAndBackup to 202X and part of Neo Applications suite. For now the app is already fully rewritten, coming up would be making it robust and adding some lengthily planned features which could ease the backup/restore workflow with any device. Therefore all types of contribution are always welcome.

Neo Applications Banner

Now on functionality of our App:

  • It requires root and allows you to backup individual apps and their data.
  • Both backup and restore of individual programs one at a time and batch backup and restore of multiple programs are supported.
  • Restoring system apps should be possible without requiring a reboot afterwards.
  • 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.

And here's the project's FAQ.

A Stance: I stand with Ukraine, as I stood and still stand with Yemen, Syria, Afghanistan, Myanmar, Sudan, Columbia, Somalia, Hong Kong (not China) and everywhere human beings are being oppressed by bigger states and/or local ************s.

Installation

Get it on F-Droid Get it on IzzyOnDroid Get it on GitHub

Recommendation

A combination with your favourite sync solution (e.g. Syncthing, Nextcloud...) keeping an encrypted copy of your apps and their data on your server or "stable" device could bring a lot of benefits and save you a lot of work while changing ROMs or just cleaning your mobile device.

Community

You can join either our Telegram or Matrix groups to make suggestions, ask questions, receive news, or just chat.

Our Code of Conduct applies to the communication in the community same as for all contributors.

Encryption

If enabled the data backup will be encrypted with AES256 based on a password you can set in the settings, which you'll have to use when you want to restore the data. This way you can store your backups more securely, worrying less about their readability.

Compatibility

Version 5.0.0 uses new encryption, new databases, fixes most of reported bugs in 4.0.0 and boost the performance to something near the 3.2.0's. With that said, it's incompatible with the older versions.

Version 4.0.0 marks a full overhaul of the app structure and thus breaks compatibility with previous versions.

Till the version 0.9.3 there's been no structural change in how the app handles backup/restore. So you could use that version to restore the old backups, then move to the newest version and renew your backups so that they'll stay compatible as long as the logic of the app doesn't radically change.

Changes & TODOs

if you have some kotlin and android knowledge and like to contribute to the project, see our Taiga.io project here to see what is still needed to be done, where a help could be needed or if you'd like to fix one of the issues.

The communication and each contribution in the project community should follow our Code of Conduct.

Screenshots

Building

OAndBackupX is built with gradle, for that you need the android sdk.

Licenses

OAndBackupX is licensed under the GNU's Affero GPL v3.

App's icon is based on an Icon made by Catalin Fertu from www.flaticon.com

All new icons in 7.0.0 based on CC0 icons found on SVG Repo. A huge thanks for the project's maintainers.

Credits

Jens Stein for his unbelievably valuable work on OAndBackup.

Nils, Martin and DL for their active contribution to the project.

Oliver Pepperell for his contribution to the new anniversary design.

Open-Source libs: FastAdapter, RootBeer, NumberPicker, Apache Commons.

Languages: Übersetzungsstatus

Übersetzungsstatus

The Translations are now being hosted by Weblate.org.

Before that, translations were done analog/offline by those great people:

Kostas Giapis, Urnyx05, Atrate, Tuchit, Linsui, scrubjay55, Antyradek, Ninja1998, elea11.

Donations

I, myself acknowledge the role of the donations to motivate the work on FOSS projects, but in the state of how dynamic everything around my FOSS-contributions is, I would prefer to not take donations for now (the same answer as the last years). Nevertheless this project wouldn't have the accessibility it has without translations, which you the community drive and for which Weblate provides a platform. That's why I would suggest you to consider donating to Weblate.

Thanks to Tuta for the premium account. Tutanota

Authors

Antonios Hazim & Harald Gutsche

neo-backup's People

Contributors

70h avatar akrai avatar andreaugustodev avatar atrate avatar comradekingu avatar dl200010 avatar fjuro avatar generator avatar hg42 avatar jensstein avatar jll5 avatar machiav3lli avatar mapi68 avatar nykula avatar omarnamis avatar padanian avatar rerbin avatar rex07 avatar santossi avatar smarquespt avatar smojo avatar sn-o-w avatar sr093906 avatar t1011 avatar thejenja avatar tiefkuehlpizze avatar tsiflimagas avatar unbiaseduser-github avatar weblate avatar yzx23333 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neo-backup's Issues

[Feature request] Multiple backups of the same app

Right now, as far as I can see, it's only possible to have one single backup at one time. The file structure is like so

OAndBackupX/app/app.zip
OAndBackupX/app/app.log

What if we just created numbered directories that contain the backups, something like this

OAndBackupX/app/1/app.zip
OAndBackupX/app/1/app.log
OAndBackupX/app/2/app.zip
OAndBackupX/app/2/app.log
...
OAndBackupX/app/99/app.zip
OAndBackupX/app/99/app.log

To make it easier to see which backup is which we could show the date the backup was created in the UI (like it already does but show them as a list instead) or even add an optional "Description" field to the log file.

To keep the app backwards compatible, we could check if the numbered directories exist, and if they don't, move the content of app/ to app/1/

What do you think?

P.S. Why are the files .log if they just contain json data? Why not .json?

Req: non root backup mode

Please provide a non root backup method. It would be able to back up the apks and the data that is on the SD card even if it can't access the data partition.

Can't backup OsmAnd+ map files

There are some map files but only 13kb files are backuped. The old oandbackupx directory is as 10x large as the new OAndBackupX. I guess there are some other apps which are not backuped completely.

Crashing on start up

App crashes on start up on my pixel 3a running the April update. It is granted permission and allowed root. I tried the arm64 and universal versions of the newest version of the app. I'll grab a log in a bit and post it.

Replace old links

Some links (e.g. changelog) point to the origin repo. This is a little confusing. Thanks!

Restored backups are installed to Work Profile as well [Shelter]

When an app is restored from a backup, it is installed to the Work Profile even if the app wasn't originally installed to the Work Profile.

I am using an app called Shelter to make use of the Work Profile feature in case you would like to test this behaviour.

For reference, Titanium Backup doesn't do this.

External data of selected apps

Hi!
For some apps I would like to save the external data. For others like OSMand or Antennapod I don't want to save the external data, because it is too large. Maybe you could add something like a blacklist for apps, which external data is not to be saved.

OpenPGP support

Do you plan to bring back the support of OpenPGP encryption with Openkeychain?

Support legacy/old android versions

as a backup app a possible usecase is to migrate data from an old phone to a new one.

currently android 7 is required but old phones often have lower android versions, so it would be good to be able to install this app on lower android versions.

Unnecessary errors logged when clearing already-empty cache

While performing a backup of all apps, if the backup fails, there are lots of errors in the displayed log about "AnySoftKeyboard: rm: /data/data/com.menny.android.anysoftkeyboard/cache/*: No such file or directory".

** Solution could be to add '-f' (force) flag to "rm -r " in src/main/java/com/machiav3lli/backup/handler/ShellCommands.java for all rm commands so that it performs an "rm -rf" instead.

Moving from .zip to .tar.gz / Add permissions to .zip

A gzip compressed tar file would be a much more natural format for backups, as tar files store information like file permissions, owner, group, symlinks as core information. Most Linux distributions come with gzip and tar by default, and WinRAR, 7Zip, PeaZip, etc can open .tar.gz files easily for Windows. This would get rid of the need to correct file permissions and ownership after restoring the app's data. The tar format is very simple and there are implementations such as JTar or Apache Commons Compress, both under the Apache License.

An alternative option instead of migrating to .tar.gz, is to keep using zip files, but store the unix information inside the zip file. The upper two bites of the "external file attributes" store the unix permissions, and file type (regular, directory, symlink, device, socket, etc). A 0x7875 header is added in the "extra data" to store the unix ownership. Unfortunately, the zip implementation in Java does not give you access to the internal/external file attributes and always writes 0 for both. The implementation in Apache Commons Compress does let you handle this field though.

http://commons.apache.org/proper/commons-compress/apidocs/org/apache/commons/compress/archivers/zip/X7875_NewUnix.html
https://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute

Cannot restore due to INSTALL_FAILED_VERIFICATION_FAILURE

As discussed in the Telegram group, restore of Spotify does not work.
I've added some log statements to see what's going on and I found this.

D/OAndBackupX.CommandHandler: command: pm install -r /data/local/tmp/1592832328710.apk
D/OAndBackupX.CommandHandler: command: toybox rm -r /data/local/tmp/1592832328710.apk
W/Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE
D/vndksupport: Loading /vendor/lib/hw/gralloc.msm8960.so from current namespace instead of sphal namespace.
D/OAndBackupX.CommandHandler: Failure [INSTALL_FAILED_VERIFICATION_FAILURE]
I/OAndBackupX.BackupRestoreHelper: com.spotify.music backup contains split apks
D/OAndBackupX.CommandHandler: command: toybox cp "/storage/emulated/0/OAndBackupX/com.spotify.music/split_config.arm64_v8a.apk" "/data/local/tmp/1592832338402.apk"
D/OAndBackupX.CommandHandler: command: pm install -p com.spotify.music -r /data/local/tmp/1592832338402.apk
D/OAndBackupX.CommandHandler: command: toybox rm -r /data/local/tmp/1592832338402.apk
D/OAndBackupX.CommandHandler: Failure [INSTALL_FAILED_INVALID_APK: Missing existing base package for com.spotify.music]
D/OAndBackupX.CommandHandler: command: toybox cp "/storage/emulated/0/OAndBackupX/com.spotify.music/split_config.de.apk" "/data/local/tmp/1592832344321.apk"
D/OAndBackupX.CommandHandler: command: pm install -p com.spotify.music -r /data/local/tmp/1592832344321.apk
D/OAndBackupX.CommandHandler: command: toybox rm -r /data/local/tmp/1592832344321.apk
I/zygote: Background concurrent copying GC freed 24144(1369KB) AllocSpace objects, 7(140KB) LOS objects, 49% free, 3MB/6MB, paused 91us total 157.363ms
D/OAndBackupX.CommandHandler: Failure [INSTALL_FAILED_INVALID_APK: Missing existing base package for com.spotify.music]
D/OAndBackupX.CommandHandler: command: toybox cp "/storage/emulated/0/OAndBackupX/com.spotify.music/split_config.xxhdpi.apk" "/data/local/tmp/1592832346291.apk"
D/OAndBackupX.CommandHandler: command: pm install -p com.spotify.music -r /data/local/tmp/1592832346291.apk
D/OAndBackupX.CommandHandler: command: toybox rm -r /data/local/tmp/1592832346291.apk
D/OAndBackupX.CommandHandler: Failure [INSTALL_FAILED_INVALID_APK: Missing existing base package for com.spotify.music]
I/OAndBackupX.ShellCommands: restoring: Spotify

It might be related to the verifier_verify_adb_installs setting. I cannot execute the needed pm install command via adb until I switch it off.

$ settings get global verifier_verify_adb_installs
0

Command to switch it off.

$ settings put global verifier_verify_adb_installs 0

"rif is fun" data backup goes on forever

On Essential PH-1 Stock February update, data for rif is fun can't be backed up. The message "backup (circle animation)" shows up but it doesn't get past that.

  • rif is fun version 4.116.7
  • oandbackupx arm64 version 0.9.4

This is also an issue in oandbackup.

Thanks for reading.

Feature: split APKs support

Since some split apks can't be restored by the app..I personally redownload them from the source ,however the option to restore only data isn't there..
This is my first time time in github,so point me if I m wrong somewhere..
Thx

How is Nextcloud backup possible?

In the readme it says, oandbackupx can be combined with syncthing or nextcloud for remote backups. However how is it actually possible to push those backups to Nextcloud? The backup location is a custom folder picker, so I can't choose Nextcloud via the Storage Access Framework, so there is no way to use Nextcloud? I could only select a data directory of the nextcloud app, however since it doesn't use the framework nextcloud isn't notified of any changes, and my backups won't be uploaded.

Thanks!

Bromite (Chromium fork) breaks when restoring data from oandbackup

Using oandbackupx 0.9.11-arm, it restores the data in Bromite 81.0.4044.127 but then the browser doesn't browse anymore. I can't open any site.

I should mention the data backup was made with oandbackup 0.3.5.

(already reported this issue for oandbackup so apologies for the crosspost, but it also affects
oandbackupx)

Backup to external sd

I can't get OandBackupX to backup to external SD.
When selecting a folder on the external SD, I get an error (something like "Can't create...")

Is there any chance to get backup to external SD (probably through Storage Access Framework) ?

A workaround could be the ability to configure any folder, including ones outside user storage area (I've been using Oandbackup configured to backup to "/mnt/media_rw/..."). Can such a setting be configured ? (can be through adb commands if there's no other possibility)

oab-utils should not follows symlinks

oab-utils will follow symlinks which can break some applications on restore. For example: if the application data has a lib symlink, it will follow it which leads to broken ownership and permissions for /data/app/(package)-1/lib/(arch), which may cause the application to malfunction or be considered not installed.

can't perform backups, fc remnants

Hi, the new update(0.9.12) improved the force close issue by much, though there are still some, but broke the backup function. The logs for the fc issue are those (basically two errors xD) https://del.dog/crilegutul
The error for the backup issue is this
2020/05/14 - 04:48:25: /system/bin/sh: [1]: rsync: inaccessible or not found.
Also, I may refer to some ui stuff, the splash screen doesn't quite show up, it flashes quickly and then fades out. Pull down to refresh also doesn't work very good, icon gets dragged back immediately after pulled down in a choppy motion and I'm not sure if refreshing is actually done. Other than these great work, keep it up😃

Some app can't restore

I backuped all my app on Android 9 and restored them on Android 10. Some apps doesn't work or can't restore settings:

  • Muzei: Settings are not restored
  • Termux: Doesn't work after restored. It seem that some bin are missing.
  • Librera Reader: Setting are not restored Config files are stored in external storage.
  • NClientV2: Can't recognize downloaded files Download path is changed. Android version related?
  • RemoteFiles: Stuck

OAndBackupX crashes after every restoring. It works but just crash which is strange.

[Bug] Crash on backup

OS: Android 10

OandbackupX version: 0.9.7-universal

Description: Application crashes when trying to back up app+data (package: Protonmail)

Steps to reproduce: Try to back an app up on fresh install

Log: https://del.dog/nexelemebe

Exclude cache from backup

It would be great if there was an option to exclude caches from the backups, since the cache usually does not include necessary / non-reproducible data, but instead tends to make the backups unnecessarily larger.
This could be implemented by just ignoring the folders called cache, since this seems fairly standardized.

The next level would be to also include the ability for a per-app black- or whitelist, however this per-app setting is probably not necessary for most users.

Invalid argument and Operation not permitted errors

The mentioned errors occur on symlinks and special files like named pipes:

2020/06/14 - 16:26:16: cp: /storage/emulated/0/OAndBackupX/org.fdroid.fdroid/org.fdroid.fdroid/files/fdroid/index.html: Operation not permitted [F-Droid]
2020/06/14 - 16:26:16: cp: /storage/emulated/0/OAndBackupX/org.fdroid.fdroid/org.fdroid.fdroid/files/fdroid/repo/org.fdroid.fdroid_1000011.apk: Operation not permitted [F-Droid]
2020/06/14 - 16:28:10: cp: /storage/emulated/0/OAndBackupX/com.keramidas.TitaniumBackup/com.keramidas.TitaniumBackup/files/fifo0: Invalid argument [Titanium Backup]

[IDEA] OAndBackupX without root

Hi,

would it be possible to run OAndBackupX without root as a system app (priv-app)? If it would have enough permissions given that sepolicy has rules for?

Progress bar

When backup a large app, progress bar is very useful. Could you please add one? Thanks!

Backup error with spaces in backup path

Hi,

OAndBackupX v1.1.0 gives error if a space is in the backup directory path.

Android 10, crDroid 6.6 3005.2 (LOS)

'/sdcard/- Cloud/Backups/OAndBackupX'

2020/06/01 - 12:00:02: rm: /data/data/com.tamasenco.neonverse.invaders.shmup.attack/cache/*: No such file or directory [Neonverse] 2020/06/01 - 12:00:02: cp: 'Cloud/Backups/OAndBackupX/com.tamasenco.neonverse.invaders.shmup.attack' not directory [Neonverse] 2020/06/01 - 12:00:02: cp: 'Cloud/Backups/OAndBackupX/com.tamasenco.neonverse.invaders.shmup.attack' not directory [Neonverse] 2020/06/01 - 12:00:02: cp: 'Cloud/Backups/OAndBackupX/com.tamasenco.neonverse.invaders.shmup.attack/device_protected_files' not directory [Neonverse]

error=13

I am not able to backup apps or data. It shows error=13 as shown in the screenshot:
Screenshot_20200616_202954_com machiav3lli backup

Best regards

Background persistant / wake-lock blocking

Hi, firstly thank you for resurrecting and improving OAndBackup!

The biggest problem at the moment I am having with the app is that Android kills the backup process, perhaps this can be avoided by making a persistent notification when performing a backup.

And it would also be a good idea to request a battery optimization exception.

My device info:

  • Xiaomi Mi 9T
  • Android 10 (Pixel Experience+)
  • Magisk v20.4 (Stable)
  • OAndBackupX v0.9.8-arm64

Apps get restored "ONLY in Work profile", instead of primary profile

Different than the other "shelter" issue since in that apps got installed in both work and primary profile,however in this case the apps get restored in only work profile

Fix- 1) Restore ur app
2)after installing check whether your work profile has that app or not.
3) if yes, navigate to the backup folder and install that app from the base.apk
4)uninstall app from work profile
Note- after installing base.apk in primary profile, u will automatically get ur data since u restored it earlier (given in step 1 u selected "apk+data")

Compatibility with oandbackup

I need to backup restore feom KitKat to Oero.
So I would need to use oandbackup to backup and yours to restore.
Would that work?
Or maybe you can lower the minsdk?

Bug: App restarts if cache directory doesn't exist

If 'Clear app's cache' is enabled, if the cache directory doesn't exist (such as being cleared in a previous backup), oandbackupx will close and relaunch.
This is in the log:
rm: /data/data/arun.com.chromer/cache/*: No such file or directory [Lynket]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.