3 ms·
It's both. Why does Android have undeletable apps anyway?
by untog 8y ago
It's both. Why does Android have undeletable apps anyway?
- vetinari 8y ago> Why does Android have undeletable apps anyway? It was explained only zillion times, but I will try one more: In android, you have storage in two partitions: /system and /data. /system is read-only, this is where anything that is shipped with phone is stored. Outside of system updates, it is not being touched. /data is, where user data, installed applications, configuration, etc. is stored. To factory reset the phone, you just wipe the /data. No separate partition for factory reset is necessary, because /system due to its immutability doubles as one. Anything you configure/change/etc is stored on /data. If you disable any bundled app, whether through gui or adb, the info that you disabled it is written into /data. Once you want to sell your phone on craiglist, you wipe /data and the buyer gets exactly the same software you originally got. There is also secondary use of the immutability: android system is distributed as partition image, not as a file archive. That means, that the physical fs layout is same for all devices of the same SKU, can be signed (dm-verity), and then verified at boot, whether the filesystem was modified or not. This is being used for ensuring secure boot, and unsealing secrets in trusted environment.
- untog 8y agoWhat you're saying is that Android has undeletable apps because Android was created in such a way that it allows undeletable apps. Which is circular logic. And the issue here is pretty clearly that users have to resort to adb to disable these apps. Why does Android force this? There is no reason, it could easily be built into the Android GUI.
- dragonwriter 8y ago> And the issue here is pretty clearly that users have to resort to adb to disable these apps No, you can disable (not delete or uninstall) nondeletable (system) apps on Android without adb. adb also lets you “uninstall” them for a given user (but not from the device), which makes them less visible to the user than disabled apps, but it's not clear to me that it does anything substantively different, since neither disabled nor uninstalled-for-current-user apps run. > Why does Android force this? There is no reason, it could easily be built into the Android GUI. The only difference I am aware of between disabling through the GUI and uninstalling for a particular user with adb is that the former allows you to reenable through the UI if you later choose to, whereas the latter removes it from the All Apps list in Settings, making it invisible from the UI and impossible to enable. Requiring the latter to require the user to use the same tool necessary to reverse the process makes it less likely that users will accidentally do something that the same user can't reverse if they change their mind.
- Rebelgecko 8y agoI'm assuming it's to avoid a situation where Grandma accidentally deletes her web browser and the Play Store and doesn't know how to unbrick her phone.
- vetinari 8y agoIf you are so much bothered by Android design, adjust your POV slightly: consider /system to be recovery partition (you cannot delete anything from any recovery partion of any system, so Android is no exception here) that shares data blocks with main system, created at boot in RAM. Because that it effectively is. You don't have to resort to ADB to disable these apps for the most part; You can do it in Settings. For some apps you cannot do that in GUI - for Settings itself, for example, so the users don't shoot themselves in the foot. Unfortunately, some manufacturers abuse this and mark as undisable-able apps, that they shouldn't. Over ADB, they can't disable it, so it works for any app, including Settings.
- int_19h 8y agoIt doesn't have undeletable apps, since adb lets you delete anything (although the exact semantics of "delete" will be different for apps that are installed on the system partition - but not in a way that matters to end users). It has apps that cannot be installed from the phone UI. Which kinda makes sense, since you don't want people randomly uninstalling, say, the app store, and then complaining that their phone is bricked. OTOH, someone who knows how to do this via adb can be presumed to know what they're doing.