Scoped Storage: Dev Handbook - ankidroid/Anki-Android GitHub Wiki
This document simply contains anything that may be relevant to any person working on the scoped-storage migration. Feel free to add anything that may ever be relevant.
Links
Manual testing
There are many way to test the migration process. Which one you use is a matter of personal preference.
Zipping
- take a device
- zip /sdcard/AnkiDroid
- uninstall current AnkiDroid
- install the 2.15 APK
- unzip my backed up /sdcard/AnkiDroid, make sure it's working,
- install the 2.16 APK
Script version
- Enable allow_unsafe_migration in local.properties, by adding the line
allow_unsafe_migration=true
at the end of this file - install AnkiDroid on an AOSP emulator
- executed
tools/storage/set_scoped_storage.sh full
to re-enable access to /AnkiDroid - Change the AnkiDroid Directory to
/storage/emulated/0/AnkiDroid
ADB version
The following on a non-Play Store emulator* allows us to test the SDK 29 -> 30 jump:
adb shell am compat disable DEFAULT_SCOPED_STORAGE com.ichi2.anki.debug
adb shell am compat disable FORCE_ENABLE_SCOPED_STORAGE com.ichi2.anki.debug
adb shell pm grant com.ichi2.anki.debug android.permission.READ_EXTERNAL_STORAGE
adb shell pm grant com.ichi2.anki.debug android.permission.WRITE_EXTERNAL_STORAGE
- Set
allow_unsafe_migration
inuser.properties
(disables the need for a logged in user before migration) - Setting the AnkiDroid Directory to
~/AnkiDroid
prompts for migration - After a migration, changing the AnkiDroid Directory back to
~/AnkiDroid
allows for another migration
Terminology
- App Specific folder: The new location:
/storage/emulated/0/Android/comi.ichi2.anki[.A/debug]/files/AnkiDroid
- Root folder: The original location:
/stroage/emulated/0/AnkiDroid