▲ | ranger_danger 3 days ago | ||||||||||||||||||||||||||||||||||
If you have the UI layer able to grant root access, it has root access itself and is not sandboxed. If the UI layer can grant it, an attacker gaining slight control over it has root access. An accessibility service trivially has root access. A keyboard can probably get root access, and so on. Instead of a tiny little portion of the OS having root access, a massive portion of it does. In the verified boot threat model, an attacker controls persistent state. If you have persistent root access as a possibility then verified boot doesn't work since persistent state is entirely trusted. A userdebug build of AOSP or GrapheneOS has a su binary and an adb root command providing root access via the Android Debug Bridge via physical access using USB. This does still significantly reduce security, particularly since ADB has a network mode that can be enabled. Most of the security model is still intact. This is not what people are referring to when they talk about rooting on Android, they are referring to granting root access to apps via the UI not using it via a shell. | |||||||||||||||||||||||||||||||||||
▲ | cakealert 3 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||
> If you have the UI layer able to grant root access, it has root access itself and is not sandboxed. The same is true even of an operating system such as QubesOS. And it's a minimal risk. Not providing optional root access on GOS makes it only useful if you have a constrained application in mind for the phone. I don't have time to compile GOS with root so I just use LineageOS instead. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
▲ | yjftsjthsd-h 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
EDIT: This is a reply to the 2nd(?) version of your comment before it was silently changed into something different. Yes, I'm sure it is. But I don't consider that a tolerable tradeoff, and I believe we could have a system that has most of the best of both worlds. | |||||||||||||||||||||||||||||||||||
▲ | ysnp 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
>This is not what people are referring to when they talk about rooting on Android Would this have been easier or more possible if Android had a full capability-based security model? | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
▲ | yjftsjthsd-h 3 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||
Quoting inline since parent has been rewritten multiple times now... > If you have the UI layer able to grant root access, it has root access itself and is not sandboxed. If the UI layer can grant it, an attacker gaining slight control over it has root access. An accessibility service trivially has root access. A keyboard can probably get root access, and so on. Instead of a tiny little portion of the OS having root access, a massive portion of it does. Android has an established way to handle permission dialogs that require the user to confirm their approval, including use of fingerprint/PIN/password to authenticate. If it's good enough to unlock and decrypt the device, it's good enough to control root access. Besides which, I think > An accessibility service trivially has root access. is hitting https://xkcd.com/1200/ ; an a11y service already has access to everything inside the sandbox (including all your sensitive data), and the system settings that control permissions and sandboxing. > In the verified boot threat model, an attacker controls persistent state. If you have persistent root access as a possibility then verified boot doesn't work since persistent state is entirely trusted. I'm tentatively willing to agree, but I don't see the point? 1. If an attacker controls persistent state, don't they already control all the other permissions, including what security domains exist and what permissions are given to apps. 2. You don't have to persist it; even just one-off root access is quite useful. > A userdebug build of AOSP or GrapheneOS has a su binary and an adb root command providing root access via the Android Debug Bridge via physical access using USB. This does still significantly reduce security, particularly since ADB has a network mode that can be enabled. Most of the security model is still intact. This is not what people are referring to when they talk about rooting on Android, they are referring to granting root access to apps via the UI not using it via a shell. Agreed, that's not what I want. | |||||||||||||||||||||||||||||||||||
|