[Android Apps and Games] gps3dx:
Well I get errors about IO issue in logcat:

02-13 23:26:39.586 2380 20646 W HbDialer: oh0: fail start for AMR_NB
02-13 23:26:39.586 2380 20646 W HbDialer: java.lang.RuntimeException: java.io.FileNotFoundException: /storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012 Main) 2021-02-13_232639_out.amr: open failed: EPERM (Operation not permitted)
02-13 23:26:39.586 2380 20646 W HbDialer: at bd0.h(src:84)
02-13 23:26:39.586 2380 20646 W HbDialer: at oh0.j(src:26)
02-13 23:26:39.586 2380 20646 W HbDialer: at lh0.run(Unknown Source:2)
02-13 23:26:39.586 2380 20646 W HbDialer: at android.os.Handler.handleCallback(Handler.java:938)
02-13 23:26:39.586 2380 20646 W HbDialer: at android.os.Handler.dispatchMessage(Handler.java:99)
02-13 23:26:39.586 2380 20646 W HbDialer: at yx1.dispatchMessage(src:5)
02-13 23:26:39.586 2380 20646 W HbDialer: at android.os.Looper.loop(Looper.java:223)
02-13 23:26:39.586 2380 20646 W HbDialer: at android.os.HandlerThread.run(HandlerThread.java:67)
02-13 23:26:39.586 2380 20646 W HbDialer: Caused by: java.io.FileNotFoundException: /storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012 Main) 2021-02-13_232639_out.amr: open failed: EPERM (Operation not permitted)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.IoBridge.open(IoBridge.java:492)
02-13 23:26:39.586 2380 20646 W HbDialer: at java.io.FileOutputStream.<init>(FileOutputStream.java:236)
02-13 23:26:39.586 2380 20646 W HbDialer: at java.io.FileOutputStream.<init>(FileOutputStream.java:125)
02-13 23:26:39.586 2380 20646 W HbDialer: at bd0.h(src:57)
02-13 23:26:39.586 2380 20646 W HbDialer: ... 7 more
02-13 23:26:39.586 2380 20646 W HbDialer: Caused by: android.system.ErrnoException: open failed: EPERM (Operation not permitted)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.Linux.open(Native Method)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:254)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.ForwardingOs.open(ForwardingOs.java:166)
02-13 23:26:39.586 2380 20646 W HbDialer: at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:7547)
02-13 23:26:39.586 2380 20646 W HbDialer: at libcore.io.IoBridge.open(IoBridge.java:478)
02-13 23:26:39.586 2380 20646 W HbDialer: ... 10 more

The folder does exist:

raphael:/ $ ls -lsR /storage/emulated/0/data/
ls -lsR /storage/emulated/0/data/
/storage/emulated/0/data/:
total 3
3 drwxrwx--- 2 root everybody 3488 2021-02-13 15:49 CallRecords-TP

/storage/emulated/0/data/CallRecords-TP:
total 0

I see that manifest already have 'android:requestLegacyExternalStorage="true"' - so that's not that.

I get this error after cleaning app cache -> Then I only enable call recording... nothing more.

Then I call some number... and once I get connected I click on the call recording button... but the issue of IO happens.

Please advise.

Update:

A. it seems the issue is happening only for when I call a specific number - so it is working for other numbers.

I SUSPECT THIS IS CAUSED BY CALLING A NUMBER THAT CONTAINS AN ASTERIX (e.g. "*991" ).

I fear this is a bug on app side.

Analysis:

The following do NOT work:

raphael:/ # touch /storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr
ords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr <
/system/bin/sh: syntax error: unexpected '('

HOWEVER, once the path+filename is double quoted - it works:

raphael:/ # touch "/storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr"
cords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr" <

raphael:/ # ls -ls "/storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr"
ecords-TP/012 Mobile (*6012 Main) 2021-02-13_234616_out.amr" <ls -ls "/storage/emulated/0/data/CallRecords-TP/012 Mobile (*6012
0 -rw-rw---- 1 root everybody 0 2021-02-13 23:56 /storage/emulated/0/data/CallRecords-TP/012\ Mobile\ (*6012\ Main)\ 2021-02-13_234616_out.amr

B. I suggest DEV to change the ownership of the call recordings files created by the app to be of a regular user instead of 'root' user.

the folder might need user ownership change as well

C. I suggest allowing the user to set/change the output folder for the call recordings ( '... /data/CallRecords-TP' is just odd IMHO).