We want an encrypted backup app fully supporting BIP39/SLIP39 (beyond what SeedVault supports) which backs up app/OS data to your home directory, a storage drive or via a device-to-device transfer. It doesn't need to initially support backing up home directory files since they can already be backed up without it. t will always use device-to-device mode meaning that allowBackup="false" and the legacy backup file exclusion system will be completely ignored since they only apply to cloud backups. One of the main issues with SeedVault is that it's considered to be a cloud backup. It should also support choosing which apps get backed up, and if and when backing up the home directory is supported which parts of that are included.

It doesn't need to support SAF or cloud storage since people can simply grant use a cloud storage app and tell it to sync the backup directory. GrapheneOS supports Storage Scopes now which means users never need to give access to files in their home directory to use apps and therefore having things in your home directory is a much better approach than it ever was in the past since there's no need to give apps access to everything. We should still get more users doing this as intended, but we don't need to focus on working around the storage model anymore.

We would focus on making a robust, highly usable app providing the bare minimum and then we can improve it from there. Look at our app repository client for the most recent example of an app we built ourselves without a legacy codebase we need to improve upon. It's a very good app and supports a lot of modern features not included in other app repository clients including split APK support, selection of best match release based on min API level / architecture, fs-verity, dependency management with circular dependency support, atomic multi-package installation for groups of packages with interdependencies, release channels, parallel downloads/installs, automatic update checks, idle-only fully automatic updates to avoid respawning apps that are being actively used including when it isn't a privileged app, compressed app downloads, resuming interrupted downloads, proper metadata signing with key rotation, TLS key pinning, etc. It also has a pretty good user interface. It's actually a very good app, which we built from scratch and expanded based on our needs. We can do the same thing with a backup app but we need more developers. The app repository client is a shining example of what we're capable of doing now when we apply significant resources to a task like this for enough time. Our other apps haven't gotten the same level of attention yet, but they could. Camera app is in a fairly similar state as the app repository client before the recent rewrite to greatly improve it. Our other apps are much older and aren't as good (note: not including the badly aged AOSP apps as ours).

We simply need to do this ourselves. No one else is going to build what we need for us. They do not share our approach or goals, they don't know how to make great software and they're incredibly hostile towards not only us but also our users. They lie to our users when they report issues to blame them on us. There's no path forward beyond replacing the app. We can continue updating it but it's not getting less awful.

    Our app repository client demonstrates that we're capable of building a great app fulfilling a ton of our requirements well. To do this for a backup app, it will take us dedicating around 2 experienced developers to it for a couple months to get it written and then continuing to put work into it for around a year for it to reach the point that it's a great app. Our app repository client was quite usable from early on but it wasn't really a great app until the recent rewrite and major improvements. There are no longer any pressing issues for it. It's in a great state and just works. People don't really think about it much because it does the job that it's meant to do well and there's no need to fiddle with it. The same thing should apply to the backup app.

      5 days later

      GrapheneOS It doesn't need to support SAF or cloud storage since people can simply grant use a cloud storage app and tell it to sync the backup directory.

      This means people wanting to do cloud backups need to store app data twice.

      a month later

      All I got is...finally! I got all proof I needed Seedvault is a dumpster fire kept around to confuse and destroy users trust.

      I've been advocating it's complete removal for months now as Seedvault is about on par with downloading the apps 1 by 1 manually. Nothing more. Well..it'll happily gobble up 30+ gb or more of storage space given your selected settings, then restore less than 1% of it if that

        17 days later

        Skyway as a matter of fact I've tried all three solutions.
        I've had it directly on a USB from start to finish
        I've had it on device and then moved to USB when storage gets full
        I've also kept it entirely on device from start to finish

        In all three scenarios nothing will restore properly, if it does, it's just the app

          N3rdTek yeah I've found it just restores the app . very rare to restore app data

          8 days later

          The question is, why not start by removing all entries of Seedvault from GrapheneOS. It gives a false sense of security that we have backups which doesn't work. We will spend many hours trying to restore when it doesn't work. (those hours can instead be spent by taking proper manual backups meanwhile).
          We might as well be without Seedvault completely and only then users are forced to take full backups of their own without trusting or cutting corners by using Seedvault and it's false sense.

          I just experienced it myself now with a second phone, and I found out I could test one by one by removing app (reinstall) and Seedvault will ask for backup folder to restore its app data. Out of 20 apps it installed 3 only, and of course the 3 I didn't care about.

          Seedvault is just increasing attack surface as it is now with no real use of it. Better remove it completely.
          Since this is also a highly requested topic we would love to see donation towards specific tasks.

          Like @GrapheneOS mentioned earlier it would take 2 proper devs about 3 months of work to create a good replacement. Breaking that salary down into a dollar number you could then raise a GoFundMe page where once the goal is reached it could be used to hire devs or outsource it towards this specific use only.

          With an ever increasing userbase and how users would appreciate having complete backups of their phones I think such funding round would be a very easy target to reach.

          4 months later

          Also migrating to a new phone should not be a manual copy / paste per application / settings experience.
          (grapheneOS -> grapheneOS, nothing special just from pixel 4-> pixel 8).

          2 months later

          As I also just switched phone to a Pixel 8 Pro, Seedvault didnt work for me - it would only backup around a quarter of my apps. In the end I installed everything that didnt gave a dedicated backup functionality manually, which took around 6 hours.
          I would love to see some OS functionality that makes it easier, and would also contribute to that financially.

          Another option for me would be to have some sort if descriptive configuration where it would be easy to deploy a defined state to new hardware (pet vs. cattle). E.g. ssomething of the likes of NixOS, CoreOS or Ansible.
          Keep in mind, that i do not know i this would be technically possible on GOS.

          This is ok for me, but i would like to install grapheneos on my parents pixel phones, but backup and restore is atm much simpler and faster with stock google sadly.

          I think intrinsically privacy focused users find a way to make it work, but it would help to broaden the appeal for GOS to less tech savvy users to have an easy backup and restore functionality.

            kruton I think intrinsically privacy focused users find a way to make it work, but it would help to broaden the appeal for GOS to less tech savvy users to have an easy backup and restore functionality.

            I heartily agree.

            And I believe the project leaders see that ( GrapheneOS GrapheneOS ).

            But I suspect the glitches from Google's A14 QPR1 and QPR2 drops, plus the DRAM-zeroing issue, might be slowing this particular thing down.

            a month later

            For everyone here... I have actually had great success with Seedvault on both my previous Pixel 7 Pro and my current Pixel 8 Pro.

            That include storage backups that totalled over 130GB! Lately it has had some issued taking D2D backups, which it has just recently implimentd. It's a switch in "expert settings" if you click on the three dots in the upper right hand corner after going to the Backup screen in System in Settings. There is also an "Ignore App Quota" toggle I recommend toggling on. For me I was unable to take a backup of F-Droid because it was on since it's app data was almost a GB. Now I have multiple apps that are that large, and it backs up some of them (like Google Photos) but others it doesn't (Termux). D2D backups are very new and are marked as an ecperimental feature, so that is fair enough I guess!

            I have done root backups a lot in the past 6 months. Only after talking with @GrapheneOS has he opened my eyes and convinced me that even how I was doing my root, with a locked bootloader and full verified boot working (totally not how all other root solutions work!) it is still a massive security risk, and I've moved away from rooting persistently. Now I sideload a temporary root onto my phone, since I switched to building 2 kernels for each GrapheneOS update, one with root integrated into the kernel (not Magisk) and one with a standard shusky kernel, and when I need to update backups or restore, or block trackers in apps I sideload the root OTA update, do my tasks, and then sideload the other OTA to remove root, all without data loss.

            The current backup and restore of Seedvault is indistinguishable in function to a good root-based backup solution, except it is a but unstable. You may need to run it a few times in D2D backup mode if it says "backup failed." It will finish, and if you have trouble making it finish, exclude some apps! You should exclude apps that won't restore properly anyways, that would be apps that make use of Android's keystore. They will likely crash upon opening after being restored by Seedvault, or any root backup solution that restores the data to them on the /data/data/ partition. Seedvault is just as effective, or shows the same lack as other well regarded backup apps, and I really like using it!

            Oh yeah, you need to look at your notification shade to se the progress and the status of the running backup. It will also usually say backup finished or backup failed there. If it was running and then it is gone, then look at the backup status which is just clicking on backup status under Backup in System in Settings. If Contacts were not backed up, and their are still a lot of apps that show "waiting for backup" it likely failed. Run it again. If Seedvault was running and then it says it crashed, then the backup running notification will just stay there forever, until you restart the phone.

            If you do and it crashes again, you need to just re-initialize the backup USB or external drive. It says older backups will be deleted, but they never have been in my experience. It will just start a new backup line, by that I mean it wont's append to the last backup, it will start a new backup (when you go to restore it will be a separate backup you can restore from). I use a SanDisk external USB drive, the faster and higher quality the USB stick or drive, the better it works with Seedvault! A Samsung BAR USB drive works great, so do the SanDisk series of USB C drives. The Rage Lite series of USB drives aren't that great, but the more expensive Rage series are a bit better, not as good as the Samsung BAR drives though. I ordered a few of those because they work very well, and it's worth it to initialize a few of them at times, then re-initialize your main backup volume to continue the updates. That way you have multiple Seedvault backups in case something happens to one of them!

            In my guide for new users of GraphneneOS there is a section on Backup and Restore that probably is worth a read. It has large headings so you can find it easily! I would recommend the app App Manager from GitHub to backup just the APKs of the apps that you exclude because they won't restore correctly because of Android Keystore. (Proton apps, financial apps) Then after reset you can restore form Seedvault in the setup wizard, get back all your system settings, contacts, SMS and call logs.

            Be aware, contacts are only saved if they are "device contacts", not Google contacts! To check, open the Contacts app the comes with GrapheneOS and on the right hand side you should see Device and Google. If they are Google contacts, just export all of them, and then import the same file as device contacts. From then off they will be backup up and restored by Seedvault as device contacts!

            Oh yeah, two more things... Test out your restore on an empty profile after you made the backup. Once you see a bunch of apps restore correctly you can probably shut your phone down by holding power for >30 seconds, and you know that there isn't data corruption. I got it once and never after that time, might have just been lucky, or it's not that common, who knows. I've had good luck with Seedvault and I like it. I think you just need to have patience and it is a good app! Last thing, when you look at the backups to restore, it only looks like "backup from (your phone) (made X hours/days ago)" Might be hard to distinguish different profiles if you need to back up many.

            Hope this helps, if I missed anything please ask!