TL;DR: it breaks
(this post is extra short because I am lazy)
Installing system apps after first boot
(this section also applies to recovery installs if performed after first boot)
- Default permissions are not assigned -> the installed app does not have any permissions granted
- Restricted permissions are not whitelisted -> you can’t grant SMS or background location permission
- The app can’t access the Internet on many custom ROMs -> LineageOS’ restricted networking feature only whitelists apps if installed while booted or once after first boot
Using Magisk to install system apps
- Magisk Hide hides the .APK file from the app -> it crashes :)
- Magisk DenyList hides the .APK file from the app -> it crashes :)
- Meet KernelSU: it hides the .APK file from the app - by default -> it crashes :)
- Magisk Delta SuList: it hides the .APK file from the app -> it crashes :)
- Universal SafetyNetFix: it hides the .APK file from GmsCore -> it crashes :)
- If you want to workaround above issues by using
pm install
but you are installing GmsCore (microG or Gapps, a common usecase) - tough luck, the Magisk manager will be killed by Android if you try to because it depends on GmsCore for SSL -> Magisk manager appears to crash (but is killed by system) during module install - SuList has another, chicken egg problem with overlays (technically APK files): It hides the overlay from system_server which doesn’t like that, and you can only whitelist after bootup completed -> device bootloop and you can’t fix it :)
- It conflicts with debloaters: depending on your luck, the order of the alphabet and some other things, a debloater can override your APK and make it disappear -> the app is gone :(
- Sometimes, things happen which I don’t understand - multiple users are reporting that microG uninstalls itself when you install an update (but it works if you don’t) -> you have a headache :(