fix(learn): nothing of Learn's goes to Android's backup or to another phone (ADR 0019, D9)
Some checks failed
CI / check (push) Has been cancelled
CI / deploy (push) Has been cancelled

The device keeps private studysets open in its database, which Android's
backup (Google's, or Seedvault where turned on) and a transfer to a new
phone took open. allowBackup and fullBackupContent are off, and from
Android 12 on the data extraction rules exclude every folder from the
transfer too, which allowBackup alone no longer stops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-30 16:21:52 +01:00
commit 0ec15d2fb2
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
2 changed files with 116 additions and 3 deletions

View file

@ -1,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- The app syncs with its server: release builds need this too (Flutter's
template grants it to debug and profile builds only). -->
<uses-permission android:name="android.permission.INTERNET"/>
@ -15,10 +16,18 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<!-- Nothing of Learn's goes to Android's backup or to another phone (ADR 0019,
D9): the device keeps private studysets open in its database. allowBackup
and fullBackupContent stop both through Android 11; from 12 on the backup
alone, and the rules stop the transfer. -->
<application
android:label="Halkyon Learn"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:fullBackupContent="false"
android:dataExtractionRules="@xml/data_extraction_rules"
tools:targetApi="s">
<activity
android:name=".MainActivity"
android:exported="true"

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Nothing of Learn's goes to a backup or to another phone, from Android 12
on (ADR 0019, D9): allowBackup="false" stops the backup, and only these
rules stop the transfer. What Learn keeps open stays on this phone;
what is sealed comes back from the instance on the next. -->
<data-extraction-rules>
<cloud-backup>
<exclude domain="root" path="."/>
<exclude domain="file" path="."/>
<exclude domain="database" path="."/>
<exclude domain="sharedpref" path="."/>
<exclude domain="external" path="."/>
<exclude domain="device_root" path="."/>
<exclude domain="device_file" path="."/>
<exclude domain="device_database" path="."/>
<exclude domain="device_sharedpref" path="."/>
</cloud-backup>
<device-transfer>
<exclude domain="root" path="."/>
<exclude domain="file" path="."/>
<exclude domain="database" path="."/>
<exclude domain="sharedpref" path="."/>
<exclude domain="external" path="."/>
<exclude domain="device_root" path="."/>
<exclude domain="device_file" path="."/>
<exclude domain="device_database" path="."/>
<exclude domain="device_sharedpref" path="."/>
</device-transfer>
</data-extraction-rules>