[General Topics] shafi1885:
Firmware & ROM​

Firmware is the skeleton of ROM, kinda tells ROM what to do, when to do, how to do. So, they refer to the firmware of the phone as ROM, because in theory you, as a normal user, can't alter the area where the firmware is (it's in the Read Only Memory). On older phone, this was true, it wasn't easy to alter a phone software without special equipment. In nowadays, the firmware is not stored in real ROM, it's stored in the internal flash memory of the phone, which is not Read Only, so you can flash another firmware. The 2 terms are interchangeable. In general, people refer to modified firmware's as ROMs.

Again the ROM on the phone contains the phone's firmware. By replacing the firmware, the ROM of the phone is useless and if you flash a new firmware, the new firmware has complete control over it, which is why the two terms are seen as synonymous.

DRM & WIDEVINE SECURITY:​

DRM = Digital Rights Management, googles security for paid streaming service, divided into L1,L2,L3 SECURITY LEVEL. If your device has widevine security level L1, you can stream netflix, amazon tv etc in full HD, if L3, you can only in 480p or 540p.

Widevine CDM (content decryption module)

Widevine Media Optimizer (typically when Widevine is both the protection and content player)

if you want to check widevine security of your phone, download DRM INFO APP.

WHERE WIDEVINE SECURITY IS STORED:

PERSIST.IMG contains widevine security information. Once widevine L1 security is lost, there is little possibility of getting it back. You might get it back if you have taken your persist.img backup, that's why, in my MIUI Unlocking Bootloader, Flashing Recovery & Rooting Process thread, I put utter importance taking the persist.img partition backup. Persist also contains your sensor information, like bluetooth, wifi etc.

How do you loose it: By rolling back your android version. Never do it. If you do it, you may break your sensors, in that case, you may fix them by flashing the persist.img of your device, hope you took the backup of it, if you don't , you may flash the persist.img of same device model of other person's device but you will loose your WIDEVINE SECURITY LEVEL L1 forever. My suggestion, never roll back.

TERMINOLOGIES:​

gApps = Google Apps

SuperSU = another rooting app like Magisk. With simpler interface & no root hiding opportunity.

DTO = Device Tree Overlays (DTOs)

OEM = Original Equipment Manufacturer. (such as, MIUI is a OEM skin/ROM)

OEM Skin = like MIUI luncher, notification toggle like this. Custom OEM skin: customizing them using others skin.

Slot Services = it refers to partition related services in recovery mood.

Treble ROM = Treble supported rom supports ota(over the air) (in simple terms : System Updates)

non-Treble ROM = While non treble roms doesnt support ota.

BB = most probably BASEBAND

GMS, API, AOSP & PRE-LOADED APPS:​

GOOGLE MOBILE SERVICES (GMS) is a collection of proprietary applications and APPLICATION PROGRAMMING INTERFACES (APIs) services from Google. GMS is used by manufacturers of Android devices, such as smartphones, tablets, and smart TVs. GMS are the Android Applications developed by Google for manufacturers of Android that often come pre−installed on Android devices. GMS is not a part of the ANDROID OPEN SOURCE PROJECT(AOSP), which means an Android manufacturer needs to obtain a license from Google in order to legally pre−install GMS on an Android device. This license is provided by Google without any license fees. GMS consists of two parts; a popular bundle package and an other bundle package. In order to gain a license for GMS, the popular bundle package needs to be pre−installed by Android device manufactures, which are usually called PRE-LOADED APPS.

What is force encryption?​

Encryption is the process of encoding all user data on an Android device using symmetric encryption keys. Encryption ensures that even if an unauthorized party tries to access the data, they won't be able to read it. Android has two methods for device encryption: file-based encryption and full-disk encryption.

What is Dmverify?​

Android verified boot: As dm-verity is a kernel feature, in order for the integrity protection it provides to be effective, the kernel which the device boots needs to be trusted. On Android, this means verifying the boot partition, which also includes the root file system RAM disk and the verity public key.

What is DM-Verity?​

Android 4.4 and higher supports Verified Boot through the optional DEVICE-MAPPER-VERITY (dm-verity) kernel feature, which provides transparent integrity checking of block devices. dm-verity helps prevent persistent rootkits that can hold onto root privileges and compromise devices.

What is DM-verity and force encryption disabler?​

Many Android ROMs have become more and more secure. Many devices have been equipped with new system security mechanism to protect any advanced modification to the system itself. One of the known mechanism is Device Mapper Verity, also known as dm-verity. This security mechanism is basically developed to help prevent persistent rootkits that can hold onto root privileges and compromise devices. Most of the recent Android devices need to do a verified boot through the optional dm-verity kernel. This is sure can prevent malware to hide from detection programs and otherwise mask themselves. Unfortunately, for advanced Android users, it can be troublesome to a certain extent because it prevents the device to boot properly once custom recovery like TWRP is flashed. Previously, in order to flash TWRP on a device protected with dm-verity feature, you’ll need to first cook your own ROM modifying original ROM to disable dm-verity in its kernel. This could be so arduous for novice users. Luckily, there is a patch-like package allows you to disable dm-verity and forced encryption feature. Download the package from the link below and flash it from TWRP. (Force disabler may not be different for every phone, maybe same) Article Link

What does Vbmeta do?

The vbmeta image is cryptographically signed and contains verification data (e.g. cryptographic digests) for verifying boot. The vbmeta image can also contain references to other partitions where verification data is stored as well as a public key indicating who should sign the verification data. Also Check this link you are interested.

Dirty flashing v/s clean flashing | What's the difference, also what is OTA Update: (CLEAN FLASH AFTER ERROR)​

Almost every android geek has heard about "flashing" a custom ROM on their device. And digging a bit deeper reveals that flashing also has two types. "clean" flashing and "dirty flashing" But what's the difference and which one should you choose? To find out, read ahead.

The difference

A clean flash is what you do when, you install a ROM after wiping all your device partitions (System, data, ART/Davlik, and cache)

A dirty flash is done when you flash a ROM over an existing one, without erasing the system partition. (at times, only the ART partition is erased). A dirty flash keeps system data from the previous ROM. If the ROMs are not compatible with each other, you'll run into problems. A flash of rom over existing rom without wipe is known as dirty flash, generally followed for nightly or daily builds. You also need a set of gapps with backup script to survive dirty flash.

Dirty Flash = Flashing over current ROM

Clean Flash = Wiping EVERYTHING to make way for a new ROM.

Dirty flash - wipe cache and dalvik, flash ROM and gapps

Clean flash - wipe cache, dalvik, data and system, flash ROM and gapps

What should you choose?

It isn't quite difficult to choose. It depends on the similarity between the ROM you have and the ROM you want to install. If you're installing a completely different one than the one you have (like Touchwiz to Cyanogenmod or Lineage to AOSP) you better go for a clean flash.If you're updating your ROM (from the source provided by the developer of the original ROM), a dirty flash would work, although you should check what the developers says about changing and updating.

Risks

Although flashing comes with it's own risks, going dirty is a lot more unsafe than doing a clean flash. A clean flash removes everything giving the ROM enough room to be installed, minimizing chances of bricking. Whereas, a dirty flash is a lot more likely to brick your device, and if it gets hard bricked.. you don't have any option other than going to the nearest authorized service center and getting your phone fixed. Basically, if you do a clean flash where you can go dirty, nothing will go wrong. But if you go dirty where you're supposed to do a clean flash, you'll end up with a non functional device.

OTA UPDATE:

OTA = OVER THE AIR UPDATE. For example, you are updating from eu rom 12.5 to 12.6. It may not require clean flash, you just dirty flash the rom because it's basically a version update of the same ROM. Your phones auto update or MIUI update is an OTA update. An over-the-air (OTA) update is the wireless delivery of new software, firmware, or other data to mobile devices. Wireless carriers and original equipment manufacturers (OEMs) typically use over-the-air updates to deploy firmware and configure phones for use on their networks over Wi-Fi or mobile broadband. The initialization of a newly purchased phone, for example, requires an over-the-air update. With the rise of smartphones, tablets and internet of things (IoT) devices, carriers and manufacturers have turned to different over-the-air update architecture methods for deploying new operating systems (OSes) to these devices.

Clean Flash : if your device has problem, is not booting, rom is not opening, passward is asking but after entering password, it's not working, all this problem has this clean flash solution. Go to wipe, do a "Fomat Data". advance wipe of system & others is not necessary. Then , flash your new rom. (may use backup rom of your previous working/stable rom).

Disk Quota:​

A disk quota is a limit set by a system administrator that restricts certain aspects of file system usage on modern operating systems. The function of using disk quotas is to allocate limited disk space in a reasonable way. "This quota feature also improves system stability by preventing any single app from using more than 90% of disk space or 50% of inodes."

fstab:​

In Android 9 and lower, devices can specify fstab entries for early mounted partitions using device tree overlays (DTOs). In Android 10 and higher, devices must specify fstab entries for early mounted partitions using an fstab file in the first stage ramdisk. logical indicates that this is a dynamic partition.

STILL THIRSTY? WANT TO KNOW MORE ? READ THIS THREAD IN XDA​

My Other Threads according to "how should you read them" serial:

1. MIUI 12.5 Chinese ROM Google PlayStore Stopped Working

2. MIUI Unlocking Bootloader, Flashing Recovery & Rooting Process

3. Android Terminology You Must Know Before Toying with Your Android (This Thread)

4. ROM Naming & CUSTOM ROM, AOSP ROM, TREBLE ROM, GSI ROM, PORTED ROM