Divested-Mobile / DivestOS-Build

Everything needed to build DivestOS, a more private and more secure aftermarket mobile operating system.
https://divestos.org/index.php?page=build
Other
226 stars 31 forks source link

MicroG isolation between user profiles #319

Closed florekem closed 3 months ago

florekem commented 4 months ago

Just a quick report of observation, that probably microg sandbox is not isolated enough? (knowing its not supported etc.)

I've got whatsapp installed in the owner profile, decided to try microg on the 'test' one. GMaps and banking app started working there, but surprisingly, when switched back to the owner profile, whatsapp kept crashing that it is not possible to open the app (reinstalling didn't help). Interestingly when I'm fully offline, the app opens again and seems ok.

Log surrounding 'whatsapp' keyword:

07-09 21:15:18.399  1923  2217 E OpenGLRenderer: Unable to match the desired swap behavior.
07-09 21:15:18.420 30521 30521 E com.whatsapp: Not starting debugger since process cannot load the jdwp agent.
07-09 21:15:18.528  1025 30426 E sensors-hal: handle_sns_std_sensor_event:283, wise_light: lux 6 ,period 0 ms, data c 0
07-09 21:15:18.638 30521 30521 E com.whatsapp: Unable to find pattern file or unable to map it for am
07-09 21:15:18.728  1025 30426 E sensors-hal: handle_sns_std_sensor_event:283, wise_light: lux 7 ,period 0 ms, data c 0
07-09 21:15:18.833 30521 30572 E AndroidRuntime: FATAL EXCEPTION: firebase-iid-executor
07-09 21:15:18.833 30521 30572 E AndroidRuntime: Process: com.whatsapp, PID: 30521
07-09 21:15:18.833 30521 30572 E AndroidRuntime: java.lang.IllegalArgumentException: com.whatsapp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
07-09 21:15:18.833 30521 30572 E AndroidRuntime: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at android.app.PendingIntent.checkFlags(PendingIntent.java:401)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:671)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at android.app.PendingIntent.getBroadcast(PendingIntent.java:658)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at X.0m0.A00(:81)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at X.1l9.run(:1275)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
07-09 21:15:18.833 30521 30572 E AndroidRuntime:    at java.lang.Thread.run(Thread.java:1012)
SkewedZeppelin commented 3 months ago

What was the solution?

florekem commented 3 months ago

I'm not sure, it just started working. Divest update or app fix, not sure. Now it just works on profiles with or without microg. If you need further logs or info, I'm here. Do you have any reason to believe that this could have been caused by incomplete microg isolation?

Thank you for your commitment, Best, Maciej