REPRODUCIBILITY: Always
OS VERSION: 4.5.0.18 (with Android App Support 11)
HARDWARE: X10 II
UI LANGUAGE: English
REGRESSION: Yes
DESCRIPTION:
After debugging for several hours why AntennaPod stopped being able to download any feed updates after the SFOS 4.5 / Android 11 update (also see their issue tracker), I realized that the underlying issue appears to be that all programs inside the Android LXC container (not just apps) are unable to create regular files on external storage – this issue only affects the regular file inode type and only if the files are newly created (opening existing files for writing is file, as is creating directories and named pipes at least).
PRECONDITIONS:
SailfishOS with up-to-date Android App Support on a device with an inserted microSD card.
STEPS TO REPRODUCE:
While it also affects Android apps the Android environment as a whole is affected, so these steps use the terminal:
- Make sure Android App support is installed and running
- Open terminal app
- Run
devel-su appsupport-attach
to enter the Android environment as root - Use
ls /storage
to find the mount directory of the inserted microSD card - Try to create a file there:
touch /storage/<UUID>/somefile.txt
EXPECTED RESULT:
A file is created on the filesystem of the inserted microSD card.
ACTUAL RESULT:
The touch command (and any other system API for that matte) reports a misleading error message:
touch: ‘/storage/<UUID>/somefile.txt’: No such file or directory
MODIFICATIONS:
Some stuff, but none that affect the Android environment.
ADDITIONAL INFORMATION:
Note that doing the exact same thing on internal storage works just file:
touch /storage/emulated/0/somefile.txt
Also creating a directory works without issue:
mkdir /storage/<UUID>/somedir
9/10 it’s some dumb bug in the fuse driver providing the overlay for that mountpoint:
/dev/fuse on /storage/<UUID> type fuse (rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other)