-
Notifications
You must be signed in to change notification settings - Fork 174
Glossary
Here is a list of terms, words, names, jargon, etc... that you might find across this repo, or anything Android-related.
These are just summaries. If you want more details, use a search-engine or ask a professional.
The loader of the boot sequence. When the user turns-on the device, the BL is the component responsible for "priming" an operating-system to start running.
For Android devices, the BL is also responsible for validating read-only storage-partitions (equivalent to UEFI Secure-Boot). Unlocking the BL (not to be confused with "OEM unlock" dev setting) allows you to rewrite the storage-drive as much as you want (edit files, re-format file-systems, flash "ROM" images, etc...), without an OEM key to sign the changes.
Warning
Unlocking the BL (see also) will disable Factory-Reset Protection. This makes it trivial to re-sell (good for thieves)
An unlocked BL makes your lock-screen useless, as thieves can read all of your data
See also:
Databases that provide centralized (shared between apps) management of data: https://developer.android.com/guide/topics/providers/content-providers . These packages typically don't have executable code of their own; Instead, other apps query their interface to fetch data.
The most well-known example is "Media Storage" (com.google.android.providers.media.module
)
It stands for Input Method. Typically a keyboard, but can also be a:
- speech-to-text app (such as Google Speech Services)
- hand-writing panel
- gesture typing (GBoard slide-to-type)
An IME is more than just forwarding raw-data, as it can also interpret especial sequences of keys (for emojis, symbols, or control-codes), recognize dictation (such as "period" becoming "." instead of literally "period"), and more.
An IME is essential for every human user, especially for accessibility reasons. Therefore, if you remove an IME, you must ensure there is another IME to replace it.
In some cases, the OEM password/PIN lock-screen depends on an IME being installed. You won't be able to unlock your device if you remove all IMEs.
If you've restored an IME after removing everything, you might have to run this command:
adb shell ime reset
It stands for original equipment manufacturer, AKA "the people and machines that built your phone and its system".
OEMs don't work alone. They might have contracts with other corporations (which may be OEMs themselves) which force them to do stuff such as:
- Install Facebook on your phone
- Pre-install McAfee, or any other anti-malware app
- Provide GIFs and stickers on the keyboard app (from Tenor, Bitmoji, etc...)
- Collect and share your data with China (or any other 3rd-party)
This is why you should read the Terms&Conditions and privacy-policy. Yes, those are long, but it doesn't have to be that way. If contracts were "linkable" and standardized (e.g. software-libraries and open-source licenses), then this wouldn't be such a big problem.
Multiple meanings:
- A GUI element that an app draws over other apps (there is a permission of the same name). The other permission is Picture-in-Picture.
- A "skin"/theme that styles the appearance and animations of an app activity. The overlay is almost always an OEM package, while the overlayed app is typically part of AOSP. Overlays are a cheap way of modding Android.
The kernel Super-User, AKA "God Mode", whose UID is 0
. If you get access to it, you'll get maximum runtime privileges.
Caution
Rewriting arbitrary memory (especially RAM) is more than just "flipping bits". Do so responsibly, and be well informed before you do anything, otherwise you'll regret it.
For most use-cases, you don't need root
, as fastboot
mode (with unlocked BL) gives you the same privileges when the OS is not running. root
is just "convenient" in some sense.
BTW, the term "rooting a device" is misleading, as root
is a concept that only exists if there's an OS. You don't root the hardware, you root the software.
It could mean "Unique Identifier", but we'll define the more nuanced User Identifier", as it's more helpful to understand.
Android's Security Model heavily relies on the Linux permission system. On Unix-like kernels, processes run in behalf of a user. That is, a running program has the same level of access as the user (human or not) that invoked it.
Note
Remember "Run as admin" from Windows? Yes, WindowsNT works like that, too. iOS and MacOS also do that internally.
For easier sandboxing, each Android package is assigned to a (numeric) Unix user. Even adb shell
has its own combo associated to it: pack=com.android.shell
, UID=2000
, username=shell
.
Some system packs share UIDs with other system apps, which makes them behave somewhat as if they were one package.
The most commonly-shared UID is 1000
(named system
).
This is one of many reasons why removing a system package can have side-effects on a totally-unrelated package!