So here are the results:
- you can copy the RealmDB files from 4.4 to 4.5 BUT
- need to re-create the pipes (fifo files) manually
The RCA of crashing RealmDBs is that Realm creates *.note
and *.cv
pipes used for IPC.
At initialization time of the database files - in a working system like 4.4 - the pipe files are created okay.
Appsupport 4.5 however has an issue creating the pipes and it can be resolved by manually creating them using mkfifo *.note|*.cv
. You have to change pipe permissions afterwards matching your applications folders user and group.
However this trick is sadly not working for Element. After manually fixing the initial fifoās youāre able to launch Elements authentication screen where inside the ./files
folder a new random hexvalue subdir is created dynamically that is containing crypto, disk and auth databases. These folder and the DBs will be created just-in-time so you sadly have no chance of āmkfifo ā¦ā the missing pipes afterwards.
Pipes:
Pipes:
Dynamically created crypto databases (these canāt be fixed as they are created when the authentication against the homeserver is started):
For the kotlin-example from the realm-java github repository this was working fine to get the application running on 4.5 after a fresh APK installation and fixing the missing pipes.
In the end the File or Directory Not Found
message from logcat
means in reality āIām not able to create the pipeā.
UPDATE: You can āseeā this issue when you appsupport-attach
into the Android runtime, change to your Element or any other installed application at /data/data/<package>
and try to create a fifo! The mkfifo
command will not complain with an error but nonetheless the named pipe is not created. On the other hand if you create the fifo file from the host OS devel-su
and cd /home/.android/data/<package>; mkfifo this_is_not_lost.test
it will be created.