How to find device specific information
Generic device information
- LineageOS devices database (hardware specs: architecture, screen resolution, ... and key combinations for flash/recovery mode)
- Use the "cat /proc/cpuinfo" in terminal to get some CPU information.
Fastboot (boot.img) flash offsets
If you can't find a full ROM image for your device, consider extracting the boot.img file directly from your device with adb.
- Find the download link for a full image on https://download.lineageos.org/
Run the following commands (replace the download link accordingly)
pmbootstrap build mkbootimg-osm0sis pmbootstrap chroot apk add mkbootimg-osm0sis su - user mkdir /tmp/bootimg_info cd /tmp/bootimg_info wget "https://mirrorbits.lineageos.org/full/hammerhead/20170530/lineage-14.1-20170530-nightly-hammerhead-signed.zip" unzip *.zip unpackbootimg -i boot.img
Android magic found at: 0 BOARD_KERNEL_CMDLINE console=ttyHSL0,115200,n8 androidboot.hardware=hammerhead user_debug=31 maxcpus=2 msm_watchdog_v2.enable=1 androidboot.bootdevice=msm_sdcc.1 buildvariant=userdebug BOARD_KERNEL_BASE 00008000 BOARD_RAMDISK_OFFSET 02900000 BOARD_SECOND_OFFSET 00f00000 BOARD_TAGS_OFFSET 02700000 BOARD_PAGE_SIZE 2048 BOARD_SECOND_SIZE 0 BOARD_DT_SIZE 0
Translate the variables as follows into your deviceinfo:
BOARD_DT_SIZEcan both be ignored
- (contents of the extracted
NOTE: Some useful info can be pulled via fastboot too (in case you have the device at hand) by executing
fastboot getvar all
- You can find the architecture while the device is running another kernel (e.g. original Android or TWRP). Run
adb shellto gain access to the console on the device, and type
- pmOS supports the
aarch64architectures. If the output is
armv7l, for example, you should use
armhfas your device architecture.
Device code name
- LineageOS List
- List for Samsung Galaxy Devices
- List of codenames from the AndroidDeviceNames library
LineageOS kernel source repository
- Find out the code name of your device (see above)
- Usually, you can find the kernel source repository by typing in the code name of your device into the LineageOS GitHub page
- If you can't find it, but you found a repository starting with
android_device_, open that repository and look into the
lineage.dependenciesfile. It lists other LineageOS repositories there - open these repositories, until you finally find the repository with "kernel" in the name. Example: First, Second, Third: Kernel repo!
Other locations for kernel repositories
- CyanogenMod (same instructions as for LinageOS)
- legacyxperia project
- Samsung Opensource Release Center
- Download a working recovery OS (TWRP/CWM), and extract the Linux version string from the kernel, then search for that kernel on GitHub / on the web
Kernel defconfig (default config)
DEFCONFIG=line inside the
build.configinside the kernel repository (if available) (example)
- Official listing
- If you found the
android_device_repository (as shown in LineageOS kernel source repository above), look for a
TARGET_KERNEL_CONFIGline in the BoardConfig.mk.
In the case where you have located the kernel source for your device but there is no
build.config, have a look at the
arch/arm/configs/ directory. E.g. for Moto G 2014 "titan" that uses android_kernel_motorola_msm8226 you have a titan_defconfig file there.
Misc info from BoardConfig.mk
Example, contains the following information:
- kernel commandline
- ramdisk offset, tags offset, pagesize, base
- boot partition size
Find the LineageOS repository for your device by using the repository filter function here and typing in your device's code name. You need the repository starting with
android_device_. Inside that repository, there should be a
, which has among lots of files, that we do not need, the paths to the firmware files - starting with
/vendor/firmware. Combined with some additional research, you should be able to find the files needed for the hardware, that you want to get running (e.g. wifi). Now you have the names of the firmware files. First look if they are provided by
linux-firmware, and if not, find them elsewhere and package them yourself (as in samsung-i9070).
See also: Wifi