So, the ways of building Android are…
There are 3 ways (commands) of Setting up the Build Environment
lunch
- Sets the Device Target which is specified by the user
breakfast
- Syncs the Device Dependencies + lunch
brunch
- breakfast
+ Starts the Build
Device Dependencies are synced by looking for a file named [rom_name].dependencies which specifies the same. It’s written in JSON.
brunch
starts the build immediately after Setting the Environment
Usage of each of them
lunch rom_device-buildtype
breakfast device buildtype
brunch device
rom
- ROM’s codename in source
device
- Device’s Codename
buildtype
- Either of these values -> user
, eng
, userdebug
Explanation of Values of buildtype
is done HERE
Build Type | Use |
---|---|
user | limited access; suited for production |
userdebug | like “user” but with root access and debuggability; preferred for debugging |
eng | development configuration with additional debugging tools |
Where userdebug
is the preferably used for a Public Custom ROM Release. Debugging Tools in this Build are enough for normal debugging.
eng
is only used for debugging non-working things, and not to be publicly released.