From 0c1370b5f1b3e8abc934ea913a4377f05f32e4a9 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 7 Aug 2017 22:05:24 +0300 Subject: Initial static build --- .../index.html | 129 +++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 docs/wiki/How-to-find-device-specific-information/index.html (limited to 'docs/wiki/How-to-find-device-specific-information') diff --git a/docs/wiki/How-to-find-device-specific-information/index.html b/docs/wiki/How-to-find-device-specific-information/index.html new file mode 100644 index 0000000..8ffb7cf --- /dev/null +++ b/docs/wiki/How-to-find-device-specific-information/index.html @@ -0,0 +1,129 @@ + + + + + + postmarketOS + + + + + + + + + + + + + + + +
+
+ +

+ + postmarketOS +

+
+ + +

How to find device specific information

+

Android

+

Generic device 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. +1. Find the download link for a full image on https://download.lineageos.org/ +2. Run the following commands (replace the download link accordingly)

+
pmbootstrap build unpackbootimg
+pmbootstrap chroot
+apk add unpackbootimg
+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
+ + +
    +
  1. Example output:
  2. +
+
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_KERNEL_BASE -> deviceinfo_flash_offset_kernel + BOARD_RAMDISK_OFFSET -> deviceinfo_flash_offset_ramdisk + BOARD_SECOND_OFFSET -> deviceinfo_flash_offset_second + BOARD_TAGS_OFFSET -> deviceinfo_flash_offset_tags + BOARD_PAGE_SIZE -> deviceinfo_flash_pagesize + BOARD_SECOND_SIZE -> deviceinfo_flash_offset_second +* (contents of the extracted boot.img-base file) -> deviceinfo_flash_offset_base (defaults to 0x10000000)

+
+

NOTE: Some useful info can be pulled via fastboot too (in case you have the device at hand) by executing fastboot getvar all

+

Kernel version

+ +

Device Architecture

+ +

Device code name

+ +

LineageOS kernel source repository

+ +

Other locations for kernel repositories

+ +

Kernel defconfig (default config)

+ +

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

+

Firmware files

+

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 proprietary_components.txt or proprietary-files.txt, 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

+ +
+
+ + \ No newline at end of file -- cgit v1.3.1