Development Development of LineageOS 20 for Xiaomi 12 Pro - Xiaomi 12 Pro

Development
I have been working on LineageOS for the Xiaomi 12 and am interested in extending that work to the Xiaomi 12 Pro since the devices have huge parts in common.
My current work for the Xiaomi 12 consists of a bringup for LineageOS including an open source kernel which fixed the issues in xiaomi's release. I wrote the progress and issues with Xiaomi's OSS release down here: https://github.com/xiaomi-sm8450-kernel/manifest and created this XDA-Thread for discussion about it, be it regarding Xiaomi 12 or Xiaomi 12 Pro.
We do have a cleaned kernel for Xiaomi 12 now, based on the latest releases by Qualcomm, ahead of MIUI.
All the kernel repositories can be found here: https://github.com/xiaomi-sm8450-kernel/manifest
Apart from the kernel we also build LineageOS 20 including a custom vendor image with many parts built from source code and an implementation of the under display fingerprint that works even on pure AOSP system images using our vendor. A demo of how the fingerprint scanner works on LineageOS 20 can be found here:
https://imgur.com/a/LegpIX1
I started adapting the work for Xiaomi 12 Pro and pushed the zeus device tree to this repository on GitHub and the changes to the sm8450-common device tree to this branch. I also added support for zeus into the kernel repositories which can be found here.
Picture of Xiaomi 12 Pro running LineageOS 20:
https://imgur.com/a/IZxR05j
If you are interested in building LineageOS for Xiaomi 12 Pro yourself, you can use the following two local_manifests:
Code:
xiaomi_sm8450_kernel.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- xiaomi-sm8450 specific forks -->
<remote name="xiaomi-sm8450-kernel"
fetch="ssh://[email protected]/xiaomi-sm8450-kernel"
revision="lineage-20" />
<project name="android_kernel_platform_build" path="kernel_platform/build" remote="xiaomi-sm8450-kernel"/>
<project name="android_kernel_platform_msm-kernel" path="kernel_platform/msm-kernel" remote="xiaomi-sm8450-kernel" revision="KERNEL.PLATFORM.1.0.r1-15100-kernel.0">
<linkfile dest="kernel_platform/common/build.config.msm.waipio" src="build.config.msm.waipio"/>
<linkfile dest="kernel_platform/common/build.config.msm.waipio.tuivm" src="build.config.msm.waipio.tuivm"/>
<linkfile dest="kernel_platform/common/build.config.msm.lahaina" src="build.config.msm.lahaina"/>
<linkfile dest="kernel_platform/common/build.config.msm.cupid" src="build.config.msm.cupid"/>
<linkfile dest="kernel_platform/common/build.config.msm.cupid.tuivm" src="build.config.msm.cupid.tuivm"/>
<linkfile dest="kernel_platform/common/build.config.msm.zeus" src="build.config.msm.zeus"/>
<linkfile dest="kernel_platform/common/build.config.msm.zeus.tuivm" src="build.config.msm.zeus.tuivm"/>
</project>
<project name="android_vendor_qcom_opensource_audio-kernel" path="vendor/qcom/opensource/audio-kernel" remote="xiaomi-sm8450-kernel" revision="LA.VENDOR.1.0.r1-21800-WAIPIO.QSSI13.0">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/audio_kernel_vendor_board.mk" src="audio_kernel_vendor_board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/audio_kernel_product_board.mk" src="audio_kernel_product_board.mk"/>
</project>
<project name="android_vendor_qcom_opensource_camera-kernel" path="vendor/qcom/opensource/camera-kernel" remote="xiaomi-sm8450-kernel" revision="CAMERA.LA.2.0.r1-10200-WAIPIO.0">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/camera-kernel_board.mk" src="board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/camera-kernel_product.mk" src="product.mk"/>
</project>
<project name="android_vendor_qcom_opensource_display-drivers" path="vendor/qcom/opensource/display-drivers" remote="xiaomi-sm8450-kernel" revision="DISPLAY.LA.2.0.r1-10700-WAIPIO.0">
<linkfile dest="vendor/qcom/defs/product-defs/vendor/display_driver_product.mk" src="display_driver_product.mk"/>
<linkfile dest="vendor/qcom/defs/board-defs/vendor/display_driver_board.mk" src="display_driver_board.mk"/>
</project>
<!-- Proprietary -->
<project name="android_vendor_qcom_proprietary_devicetree" path="vendor/qcom/proprietary/devicetree" remote="xiaomi-sm8450-kernel">
<linkfile dest="kernel_platform/msm-kernel/arch/arm64/boot/dts/vendor" src="." />
</project>
<project name="android_vendor_qcom_proprietary_audio-devicetree" path="vendor/qcom/proprietary/audio-devicetree" remote="xiaomi-sm8450-kernel"/>
<project name="android_vendor_qcom_proprietary_camera-devicetree" path="vendor/qcom/proprietary/camera-devicetree" remote="xiaomi-sm8450-kernel"/>
<project name="android_vendor_qcom_proprietary_cvp-devicetree" path="vendor/qcom/proprietary/cvp-devicetree" remote="xiaomi-sm8450-kernel"/>
<project name="android_vendor_qcom_proprietary_display-devicetree" path="vendor/qcom/proprietary/display-devicetree" remote="xiaomi-sm8450-kernel"/>
<project name="android_vendor_qcom_proprietary_mmrm-devicetree" path="vendor/qcom/proprietary/mmrm-devicetree" remote="xiaomi-sm8450-kernel"/>
<project name="android_vendor_qcom_proprietary_video-devicetree" path="vendor/qcom/proprietary/video-devicetree" remote="xiaomi-sm8450-kernel"/>
<!-- Kernel platform manifest -->
<!-- https://git.codelinaro.org/clo/la/kernelplatform/manifest -->
<remote name="clo_kernel_waipio"
fetch="https://git.codelinaro.org/clo/la"
sync-c="true"
sync-tags="false"
review="codelinaro.org"
revision="refs/tags/KERNEL.PLATFORM.1.0.r1-15100-kernel.0" />
<project groups="qki" name="kernel/common" path="kernel_platform/common" remote="clo_kernel_waipio"/>
<project clone-depth="1" name="kernel/prebuilts/build-tools" path="kernel_platform/prebuilts/kernel-build-tools" remote="clo_kernel_waipio"/>
<project name="kernel_platform/external/dtc" remote="clo_kernel_waipio"/>
<project name="kernel_platform/kernel/prebuilts/mainline/arm64" remote="clo_kernel_waipio"/>
<project clone-depth="1" name="kernel_platform/prebuilts/build-tools" remote="clo_kernel_waipio"/>
<project name="kernel_platform/system/tools/mkbootimg" path="kernel_platform/tools/mkbootimg" remote="clo_kernel_waipio"/>
<project clone-depth="1" name="kernelplatform/prebuilts-master/clang/host/linux-x86" path="kernel_platform/prebuilts-master/clang/host/linux-x86" remote="clo_kernel_waipio"/>
<project clone-depth="1" name="kernelplatform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" path="kernel_platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" remote="clo_kernel_waipio"/>
<!-- Video manifest -->
<!-- https://git.codelinaro.org/clo/la/techpack/video/manifest -->
<remote name="clo_video_waipio"
fetch="https://git.codelinaro.org/clo/la"
sync-c="true"
sync-tags="false"
review="codelinaro.org"
revision="refs/tags/VIDEO.LA.2.0.r1-08300-WAIPIO.0" />
<project groups="cyborg" name="platform/vendor/opensource/mmrm-driver" path="vendor/qcom/opensource/mmrm-driver" remote="clo_video_waipio">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/mmrm_kernel_board.mk" src="mmrm_kernel_board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/mmrm_kernel_product.mk" src="mmrm_kernel_product.mk"/>
</project>
<project groups="cyborg" name="platform/vendor/opensource/mmrm-driver-test" path="vendor/qcom/opensource/mmrm-driver/test" remote="clo_video_waipio"/>
<project groups="cyborg" name="platform/vendor/opensource/video-driver" path="vendor/qcom/opensource/video-driver" remote="clo_video_waipio">
<linkfile dest="vendor/qcom/defs/product-defs/vendor/video_kernel_product.mk" src="video_kernel_product.mk"/>
<linkfile dest="vendor/qcom/defs/board-defs/vendor/video_kernel_board.mk" src="video_kernel_board.mk"/>
</project>
<!-- Vendor manifest -->
<!-- https://git.codelinaro.org/clo/la/la/vendor/manifest -->
<remote name="clo_vendor_waipio"
fetch="https://git.codelinaro.org/clo/la"
sync-c="true"
sync-tags="false"
review="codelinaro.org"
revision="refs/tags/LA.VENDOR.1.0.r1-21800-WAIPIO.QSSI13.0" />
<project name="platform/vendor/opensource/cvp-kernel" path="vendor/qcom/opensource/cvp-kernel" remote="clo_vendor_waipio">
<linkfile dest="vendor/qcom/defs/product-defs/vendor/cvp_kernel_product.mk" src="cvp_kernel_product.mk"/>
<linkfile dest="vendor/qcom/defs/board-defs/vendor/cvp_kernel_board.mk" src="cvp_kernel_board.mk"/>
</project>
<project name="platform/vendor/opensource/dataipa" path="vendor/qcom/opensource/dataipa" remote="clo_vendor_waipio">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/dataipa_dlkm_vendor_board.mk" src="dataipa_dlkm_vendor_board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/dataipa_dlkm_vendor_product.mk" src="dataipa_dlkm_vendor_product.mk"/>
</project>
<project name="platform/vendor/opensource/eva-kernel" path="vendor/qcom/opensource/eva-kernel" remote="clo_vendor_waipio">
<linkfile dest="vendor/qcom/defs/product-defs/vendor/eva_kernel_product.mk" src="eva_kernel_product.mk"/>
<linkfile dest="vendor/qcom/defs/board-defs/vendor/eva_kernel_board.mk" src="eva_kernel_board.mk"/>
</project>
<project name="platform/vendor/opensource/touch-drivers" path="vendor/qcom/opensource/touch-drivers" remote="clo_vendor_waipio"/>
<project name="platform/vendor/qcom-opensource/wlan/fw-api" path="vendor/qcom/opensource/wlan/fw-api" remote="clo_vendor_waipio"/>
<project name="platform/vendor/qcom-opensource/wlan/qca-wifi-host-cmn" path="vendor/qcom/opensource/wlan/qca-wifi-host-cmn" remote="clo_vendor_waipio"/>
<project name="platform/vendor/qcom-opensource/wlan/qcacld-3.0" path="vendor/qcom/opensource/wlan/qcacld-3.0" remote="clo_vendor_waipio"/>
<project name="platform/vendor/qcom/opensource/datarmnet" path="vendor/qcom/opensource/datarmnet" remote="clo_vendor_waipio">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/datarmnet_dlkm_vendor_board.mk" src="datarmnet_dlkm_vendor_board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/datarmnet_dlkm_vendor_product.mk" src="datarmnet_dlkm_vendor_product.mk"/>
</project>
<project name="platform/vendor/qcom/opensource/datarmnet-ext" path="vendor/qcom/opensource/datarmnet-ext" remote="clo_vendor_waipio">
<linkfile dest="vendor/qcom/defs/board-defs/vendor/datarmnet_ext_dlkm_vendor_board.mk" src="datarmnet_ext_dlkm_vendor_board.mk"/>
<linkfile dest="vendor/qcom/defs/product-defs/vendor/datarmnet_ext_dlkm_vendor_product.mk" src="datarmnet_ext_dlkm_vendor_product.mk"/>
</project>
</manifest>
Code:
xiaomi_sm8450.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Device trees -->
<project name="cupid-development/android_device_xiaomi_cupid" path="device/xiaomi/cupid" remote="ssh" />
<project name="cupid-development/android_device_xiaomi_zeus" path="device/xiaomi/zeus" remote="ssh" />
<project name="cupid-development/android_device_xiaomi_sm8450-common" path="device/xiaomi/sm8450-common" remote="ssh" revision="zeus/lineage-20" />
<!-- fwk-detect modules -->
<project name="LineageOS/android_vendor_qcom_opensource_core-utils-sys" path="vendor/qcom/opensource/core-utils-sys" />
<project name="LineageOS/android_vendor_qcom_opensource_core-utils-vendor" path="vendor/qcom/opensource/core-utils-vendor" />
<!-- HALs -->
<project name="cupid-development/android_hardware_qcom_audio-ar" path="hardware/qcom-caf/sm8450/audio" revision="lineage-20.0-caf-sm8450" />
<project name="cupid-development/android_hardware_qcom_display" path="hardware/qcom-caf/sm8450/display" revision="lineage-20.0-caf-sm8450" />
<project name="cupid-development/android_hardware_qcom_media" path="hardware/qcom-caf/sm8450/media" revision="lineage-20.0-caf-sm8450" />
<project name="eqs-development/android_vendor_qcom_opensource_agm" path="vendor/qcom/opensource/agm" />
<project name="eqs-development/android_vendor_qcom_opensource_audio-hal_st-hal-ar" path="vendor/qcom/opensource/audio-hal/st-hal-ar" />
<project name="eqs-development/android_vendor_qcom_opensource_pal" path="vendor/qcom/opensource/pal" />
</manifest>
Additionally to these repositories there are a few patches from gerrit needed, you can run this bash scrip to apply them locally
Code:
repopicks.sh
Code:
#!/bin/bash
set -e
source "build/envsetup.sh";
source "vendor/lineage/build/envsetup.sh";
# frameworks/av
changes=(
351261 # SessionConfigurationUtils: Allow privileged camera apps to create raw streams for raw capable cameras
)
repopick -P frameworks/av ${changes[@]}&
# frameworks/base
changes=(
351262 # Camera: Expose aux camera if packagename is null
)
repopick -P frameworks/base ${changes[@]}&
# frameworks/opt/telephony
changes=(
349338 # Disable proguard for CellularNetworkServiceProvider
349339 # Add provision to override CellularNetworkService
349340 # Make a few members of DSM overridable and accessible
349341 # Reset data activity after traffic status poll stops
349342 # Start using inject framework support
349343 # Skip sending duplicate requests
349344 # Enable vendor Telephony plugin: MSIM Changes
)
repopick -P frameworks/opt/telephony ${changes[@]}&
# hardware/interfaces
changes=(
349303 # frameworks: Update HIDL overrideFormat from HAL
)
repopick -P hardware/interfaces ${changes[@]}&
# hardware/xiaomi
changes=(
352657 # Add dummy sensors sub HAL
352658 # sensors: Make sensor batch function virtual
352659 # sensors: Make sensor run function virtual
352660 # sensors: Make sensor flush function virtual
352661 # sensors: Make sensor set mode operation function virtual
352662 # sensors: Move one shot sensor out of main class
352663 # sensors: Fix locking around setOperationMode and activate
352664 # sensors: Add udfps long press sensor
352665 # sensors: Handle fod_pressed_state without coordinates
356436 # vibrator: Import from LA.VENDOR.13.2.0.r1-15400-KAILUA.QSSI14.0
356437 # vibrator: Rename to avoid conflicts
356438 # vibrator: aidl: Simplify soc check and drop prop dep
356439 # vibrator: Add support for aw8624_haptic input device
356440 # vibrator: Add support for aw8697_haptic input device
356441 # vibrator: Hook USE_EFFECT_STREAM up
356442 # vibrator: effect: Read vibration fifo data from vendor
356482 # vibrator: Don't support compose effects if primitve_duration node does not exist
)
repopick -P hardware/xiaomi ${changes[@]}&
wait
repopick -t 13-kernelplatform
Due to an issue with kernel headers, additionally apply the following patch manually to hardware/xiaomi:
Code:
diff --git a/hidl/biometrics/fingerprint/Android.bp b/hidl/biometrics/fingerprint/Android.bp
index 2cae698..f3c3f03 100644
--- a/hidl/biometrics/fingerprint/Android.bp
+++ b/hidl/biometrics/fingerprint/Android.bp
@@ -41,14 +41,3 @@ cc_library_headers {
header_libs: ["libhardware_headers"],
export_header_lib_headers: ["libhardware_headers"],
}
-
-cc_library_static {
- name: "libudfps_extension.xiaomi",
- srcs: ["UdfpsExtension.cpp"],
- include_dirs: [
- "frameworks/native/services/surfaceflinger/CompositionEngine/include"
- ],
- header_libs: [
- "generated_kernel_headers",
- ],
-}
After applying the necessary patches you will have to extract the vendor, either from stock Xiaomi 12 Pro ROM or, preferably, from my shared LineageOS 20 build which can be found below. Use the extract-files.sh script in device/xiaomi/zeus to do so.
Due to the Generic Kernel Image setup we build the kernel before starting the LineageOS build, to do that execute the following commands to prepare your environment:
Code:
. build/envsetup.sh
breakfast zeus
Now use this bash script to compile the kernel:
Code:
#!/bin/bash
export TARGET_BOARD_PLATFORM="zeus"
export OUT_DIR=${ANDROID_BUILD_TOP}/out/msm-kernel-${TARGET_BOARD_PLATFORM}
export LTO=thin
./kernel_platform/build/android/prepare_vendor.sh ${TARGET_BOARD_PLATFORM} gki
Now you're ready to start the actual build:
Code:
brunch zeus
Downloads and issues
Currently the touchscreen kernel driver is not working, so you won't be able to use the touchscreen.
It's possible to use an USB OTG cable to connect a mouse in order to play with the system, other functionality, like RIL, Audio, WiFi, Bluetooth, Camera are working already.
In order to flash it, you can follow the instructions from my thread for Xiaomi 12, but download all images from the link below.
Make sure you are using firmware from MIUI 14 based on Android 13 before flashing LineageOS!
GitHub release 2023-06-06
Google drive folder 2023-05-18
There are still major issues on the build, namely:
* SELinux is permissive
* UDFPS does not work
* Setting a screen lock does not work
The open source touchscreen driver is unfortunately not working yet, i'm working on reverse engineering the stock driver, more details can be found in post #13
I hope this can help other interested developers to get AOSP for Xiaomi 12 Pro in a better shape!
Donate to support development:
Donate via PayPal to ArianK16a
Donate via PayPal to LineageOS

Hello and thank you for your interest in our precious xiaomi 12 pro. I would gladly test your rom when it will be relatively stable!! Congratulations for the work already done!

Amazing! Thank you very much for sharing it here. I lack the technical knowledge to start this off but like @Maxou6440 above me here says, I also will be available for beta testing if needed.
If LineageOS goes unto my 12 Pro I think I will stick with it forever

Waiting for your ROM.Great!

Doing gods (xiaomi's) work for us all!

Are there plans to completely finish this project or is it as-is? Anyway thank you so much for putting in the groundwork for ROM development for our phones. Can't wait to see where this all goes!

Ghesun said:
Are there plans to completely finish this project or is it as-is? Anyway thank you so much for putting in the groundwork for ROM development for our phones. Can't wait to see where this all goes!
Click to expand...
Click to collapse
Yes, I will buy the device soon. There's is a crowdfunding running to support it, which is mentioned at the bottom of the first post.
I intend to get both, Xiaomi 12 and 12 pro, official at lineage in future. Once I get the device I should be able to get it working soon on an unofficial version
Official might take a while.

NeoArian said:
Yes, I will buy the device soon. There's is a crowdfunding running to support it, which is mentioned at the bottom of the first post.
I intend to get both, Xiaomi 12 and 12 pro, official at lineage in future. Once I get the device I should be able to get it working soon on an unofficial version
Official might take a while.
Click to expand...
Click to collapse
Getting official will always take a while right? Needs to get into some process, core of the LineageOS must already be of high standard, etc. I've seen the development with other devices.
I donated to your PayPal, hope it works out with the 12 Pro. Thanks again for picking this up

l’m very excited about the Xiaomi 12 Pro LineageOS development news.
I have a quick question: Is it possible to achieve a maximum of 480Hz in touch sampling?
Is the cn version the model you buy and develop?
If it is possible, I will definitely purchase this device.

i love neo!~

Waiting

OMG cant wait for this! Im super happy to become your alpha tester for this ROM

Hello everyone!
I have received my Xiaomi 12 Pro yesterday and am currently waiting until i can unlock the bootloader.
In the meantime i have tried some more things regarding the issue with the touchscreen - with success!
There are still major issues on the build, namely:
* SELinux is permissive
* UDFPS does not work
* Setting a screen lock does not work
However, if you are still intersted in playing with lineage on zeus already; you can download it here and follow the instructions from my Xiaomi 12 thread (linked at the first post in this thread): https://github.com/arian-ota/ota/releases/tag/20.0-zeus-1c07013d
There might not be many updates from me within the next week.
Have a nice day everyone!
Arian

Hello friends, is it possible, like Generic System Image (GSI), some extra settings. As shown...

NeoArian said:
Hello everyone!
I have received my Xiaomi 12 Pro yesterday and am currently waiting until i can unlock the bootloader.
In the meantime i have tried some more things regarding the issue with the touchscreen - with success!
There are still major issues on the build, namely:
* SELinux is permissive
* UDFPS does not work
* Setting a screen lock does not work
However, if you are still intersted in playing with lineage on zeus already; you can download it here and follow the instructions from my Xiaomi 12 thread (linked at the first post in this thread): https://github.com/arian-ota/ota/releases/tag/20.0-zeus-1c07013d
There might not be many updates from me within the next week.
Have a nice day everyone!
Arian
Click to expand...
Click to collapse
Awesome, great news. After the mandatory waiting game I wish you a lot of fun with the puzzle And of there is an usable ROM I will be available for beta testing. I use it as a daily device so need a little bit of stability, okay with bugs and stuff to discover. Thank you again!

Waiting for fixing udfps.
Very happy because of developing the AOSP Rom. Thanks developer.

hi. you use fw. version ? and gapps ? tell me please.

Waowww... Thank you so much Developers....
Now the Game Begin...
Xiaomi 12 pro have a good hardware phone.. Thnx to developer for making them. Amazing....

Thanks♪(・ω・)ノ

Hi ,NeoArian
I installed the rom successfully but the touchscreen does not work so I get stuck on the LOS welcome screen.
Maybe my mistake to have installed NikGapps-core-arm64-13-20230531 since the recommended one is A12.
Even after a complete formatting and reinstallation without gapps no touch.

Related

[CLOSED] Porting to the Nexus 7 2013 (Flo)

NOT ENOUGH HELP, CAN'T PORT THIS WITH MY CURRENT SCHEDULE. THREAD CLOSED.
Ubuntu Touch Porting Efforts to the Nexus 7 2013 (Flo)
Status: WIP
Why is this going to be so hard and take so long?
The biggest issue is that Ubuntu Touch is still based on CM10.1 (Android 4.2) and not CM10.2 (Android 4.3).
Not to mention that Android 4.3 images and binaries for this device have only recently been released.
Ubuntu Touch isn't yet (as of September 21st, 2013) compatible with an Android 4.3 base.
Lend a Hand
Ubuntu Touch Porting Wiki (Needs a HUGE Update): https://wiki.ubuntu.com/Touch/Porting
Ubuntu Touch Porting Wiki 2.0 (WIP): https://wiki.ubuntu.com/Touch/PortingFlippedInProgress
CM Device Source: https://github.com/CyanogenMod/android_device_asus_flo
CM MSM Google Kernel Source: https://github.com/CyanogenMod/android_kernel_google_msm
AOSP Kernel: https://android.googlesource.com/device/asus/flo-kernel/
AOSP Kernel Source: https://android.googlesource.com/kernel/msm/+/android-msm-flo-3.4-jb-mr2
AOSP Kernel Tree for Qualcomm Chipsets: https://android.googlesource.com/kernel/msm/
~/working_directory/.repo/local_manifests/roomservice.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_asus_flo" path="device/asus/flo" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="cm-10.2" />
</manifest>
How to Initialize the CM-10.2 Branch (credit to @stbgs in Post #4)
Code:
export ROOMSERVICE_BRANCHES=cm-10.2 && brunch flo
Reserved.
Where to go from here...
Code:
[HIDE][email protected]:~/utouch$ . build/envsetup.sh && brunch flo
including device/asus/flo/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/goldfish/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/ti/panda/vendorsetup.sh
including vendor/cm/vendorsetup.sh
pull-lp-source: Downloading libhybris version 0.1.0+git20130606+c5d897a-0ubuntu16
pull-lp-source: Downloading libhybris_0.1.0+git20130606+c5d897a.orig.tar.gz from archive.ubuntu.com (0.483 MiB)
pull-lp-source: Downloading libhybris_0.1.0+git20130606+c5d897a-0ubuntu16.debian.tar.gz from archive.ubuntu.com (0.082 MiB)
gpgv: Signature made Fri 09 Aug 2013 10:56:57 AM EDT using RSA key ID B16223A3
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./libhybris_0.1.0+git20130606+c5d897a-0ubuntu16.dsc
dpkg-source: info: extracting libhybris in libhybris-0.1.0+git20130606+c5d897a
dpkg-source: info: unpacking libhybris_0.1.0+git20130606+c5d897a.orig.tar.gz
dpkg-source: info: unpacking libhybris_0.1.0+git20130606+c5d897a-0ubuntu16.debian.tar.gz
dpkg-source: info: applying 0001-Media-adding-initial-compat-files-for-media.patch
dpkg-source: info: applying 0002-Media-Recorder-adding-initial-support-for-media-reco.patch
dpkg-source: info: applying 0003-hybris-common-jb-Making-libhybris-buildable-x86-64.patch
dpkg-source: info: applying 0004-platforms-Makefile.am-temporarily-disabling-fbdev-to.patch
dpkg-source: info: applying 0005-common-hooks.c-adding-NVIDIA-HACK-needed-by-Nexus-7.patch
dpkg-source: info: applying 0006-jb-linker.c-allow-debug-of-the-linker-and-hooked-sym.patch
dpkg-source: info: applying 0007-jb-linker.c-ubuntu-touch-uses-dev-alog-instead-of-de.patch
dpkg-source: info: applying 0008-hooks-shm-fixing-logic-with-cond-is-negative-error.patch
dpkg-source: info: applying 0009-jb-linker.c-reduce-debugging-output-for-prelinked-li.patch
dpkg-source: info: applying 0010-hardware-include-adding-audio-hal-related-headers-fr.patch
dpkg-source: info: applying 0011-hooks.c-no-need-to-map-strcasestr.patch
dpkg-source: info: applying 0012-hooks.c-handle-invalid-mutex-in-pthread_mutex_destro.patch
dpkg-source: info: applying 0013-implement-getset-property-via-property-service.patch
dpkg-source: info: applying 0014-input_compatibility_layer.cpp-avoid-blocking-on-exit.patch
dpkg-source: info: applying 0015-camera_compatibility_layer.cpp-don-t-explicitly-rele.patch
dpkg-source: info: applying 0016-media-adding-files-for-media-codec-support-with-stag.patch
dpkg-source: info: applying 0017-common-hooks.c-handle-null-attr-in-pthread_rwlock_in.patch
dpkg-source: info: applying 0018-properties.c-better-handling-for-name-and-value-size.patch
dpkg-source: info: applying 0019-Fix-last-argument-to-pthread_cond_timedwait.patch
including vendor/cm/bash_completion/git.bash
including vendor/cm/bash_completion/repo.bash
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
Device flo not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Traceback (most recent call last):
File "build/tools/roomservice.py", line 82, in <module>
result = json.loads(urllib.request.urlopen(githubreq).read().decode())
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 448, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_flo'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'[/HIDE]
Hey there
I am also in the process of trying to build ubuntu touch for flo
I realized the branch name are missing from build/tools/roomservice.py, however you can add the branch by setting up the ROOMSERVICE_BRANHCES env variable like so:
export ROOMSERVICE_BRANCHES=cm-10.2 && brunch flo
I am still having issues with the build though..
stbgz said:
Hey there
I am also in the process of trying to build ubuntu touch for flo
I realized the branch name are missing from build/tools/roomservice.py, however you can add the branch by setting up the ROOMSERVICE_BRANHCES env variable like so:
export ROOMSERVICE_BRANCHES=cm-10.2 && brunch flo
I am still having issues with the build though..
Click to expand...
Click to collapse
Thanks mate! Post your terminal outputs here after failed builds so we can help each other out .
Sent from my Nexus 7 (2013).
Also, how did you add the extra configs for the kernel? android/kernel doesn't exist. Also, device/asus/flo/aosp_base.mk doesn't exist.
Sent from my Nexus 7 (2013).
MikeyCriggz said:
Thanks mate! Post your terminal outputs here after failed builds so we can help each other out .
Sent from my Nexus 7 (2013).
Click to expand...
Click to collapse
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
Device flo not found. Attempting to retrieve device repository from CyanogenMod Github
Found repository: android_device_asus_flo
Default revision: phablet-10.1
Checking branch info
Searching for repository on phablet.ubuntu.com
Repository not found on phablet.ubuntu.com
This may likely be an unsupported build target
Using fallback branch: cm-10.2
CyanogenMod/android_device_asus_flo already exists
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_flo'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
Didn't add any modifications to the kernel. and yes the file aosp_base.mk is being included from device/asus/flo/aosp_flo.mk, but my source tree doesn't have such file not sure why
stbgz said:
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
Device flo not found. Attempting to retrieve device repository from CyanogenMod Github
Found repository: android_device_asus_flo
Default revision: phablet-10.1
Checking branch info
Searching for repository on phablet.ubuntu.com
Repository not found on phablet.ubuntu.com
This may likely be an unsupported build target
Using fallback branch: cm-10.2
CyanogenMod/android_device_asus_flo already exists
Syncing repository to retrieve project.
Repository synced!
Looking for dependencies
Done
build/core/product_config.mk:239: *** _nic.PRODUCTS.[[device/asus/flo/cm.mk]]: "build/target/product/aosp_base.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_flo'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
Didn't add any modifications to the kernel. and yes the file aosp_base.mk is being included from device/asus/flo/aosp_flo.mk, but my source tree doesn't have such file not sure why
Click to expand...
Click to collapse
Can you post your repository to Git-Hub? It'll make the team effort much easier .
Sent from my Nexus 7 (2013).
Will do, as soon as I have something to add, so far I have only realized that ubuntu repos don't have the cm10.2 branch? (hence the missing files), we have to find a way to have the ubuntu toold build with the cm10.2 branch(which includes aosp 4.3 changes I think)
stbgz said:
Will do, as soon as I have something to add, so far I have only realized that ubuntu repos don't have the cm10.2 branch? (hence the missing files), we have to find a way to have the ubuntu toold build with the cm10.2 branch(which includes aosp 4.3 changes I think)
Click to expand...
Click to collapse
Yeah, this is going to take some makeshift hacks.
Sent from my Nexus 7 (2013).
I'm going to try and mod an aosp_base.mk file from another device (perhaps Mako, since it has a very similar chipset). I'll let you know how it goes.
Sent from my Nexus 7 (2013).
Got it to start compiling stuck at this:
Code:
Export includes file: system/su/Android.mk -- /home/criggs/utouch/out/target/product/flo/obj/EXECUTABLES/su_intermediates/export_includes
Notice file: system/su/NOTICE -- /home/criggs/utouch/out/target/product/flo/obj/NOTICE_FILES/src//system/xbin/su.txt
make: *** No rule to make target `frameworks/native/data/etc/android.hardware.bluetooth_le.xml', needed by `/home/criggs/utouch/out/target/product/flo/system/etc/permissions/android.hardware.bluetooth_le.xml'. Stop.
make: *** Waiting for unfinished jobs....
This line needs to be removed from 'device/asus/flo/aosp_flo.mk' in order to bypass the first error:
Code:
# Inherit from the common Open Source product configuration
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
Edit: Don't worry, the original 'aosp_flo.mk' will be backed up automatically as 'aosp_flo.mk~'.
MikeyCriggz said:
This line needs to be removed from 'device/asus/flo/aosp_flo.mk' in order to bypass the first error:
Code:
# Inherit from the common Open Source product configuration
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
Edit: Don't worry, the original 'aosp_flo.mk' will be backed up automatically as 'aosp_flo.mk~'.
Click to expand...
Click to collapse
Hey there I got it somwhat compiling, most of the changes are in the file:
.repo/manifest/defualt.xml
(the - lines are lines that go the removed the + are the opposite)
basically
added a few repos straight from cyanogen and the kernel straight from google.
I'm building we'll see if it finishes and then if it works
build like so
TARGET_PREBUILT_KERNEL=kernel/flo-kernel/kernel brunch flo
here are the changes I did
diff --git a/default.xml b/default.xml
index 48b4917..d6714b7 100644
--- a/default.xml
+++ b/default.xml
@@ -7,6 +7,9 @@
<remote name="github"
fetch="git://github.com" />
+ <remote name="google"
+ fetch="https://android.googlesource.com" />
+
<default revision="refs/heads/phablet-10.1"
remote="phablet"
sync-c="true"
@@ -53,6 +56,7 @@
<project path="external/icu4c" name="CyanogenMod/android_external_icu4c" />
<project path="external/jhead" name="CyanogenMod/android_external_jhead" />
<project path="external/jpeg" name="CyanogenMod/android_external_jpeg" />
+ <project path="kernel/flo-kernel" name="device/asus/flo-kernel" remote="google" revision="master" />
<project path="external/kernel-headers" name="CyanogenMod/android_external_kernel-headers" />
<project path="external/liblzf" name="CyanogenMod/android_external_liblzf" />
<project path="external/libncurses" name="CyanogenMod/android_external_libncurses" />
@@ -82,8 +86,8 @@
<project path="external/zlib" name="CyanogenMod/android_external_zlib" />
<project path="frameworks/av" name="CyanogenMod/android_frameworks_av" />
- <project path="frameworks/base" name="CyanogenMod/android_frameworks_base" />
- <project path="frameworks/native" name="CyanogenMod/android_frameworks_native" />
+ <project path="frameworks/base" name="CyanogenMod/android_frameworks_base" remote="github" revision="cm-10.2"/>
+ <project path="frameworks/native" name="CyanogenMod/android_frameworks_native" remote="github" revision="cm-10.2" />
<project path="frameworks/opt/emoji" name="CyanogenMod/android_frameworks_opt_emoji" />
<project path="hardware/broadcom/wlan" name="CyanogenMod/android_hardware_broadcom_wlan" />
@@ -101,7 +105,7 @@
<project path="hardware/qcom/gps" name="CyanogenMod/android_hardware_qcom_gps" />
<project path="hardware/qcom/keymaster" name="CyanogenMod/android_hardware_qcom_keymaster" />
<project path="hardware/qcom/media" name="CyanogenMod/android_hardware_qcom_media" />
- <project path="hardware/qcom/msm8960" name="CyanogenMod/android_hardware_qcom_msm8960" />
+ <project path="hardware/qcom/msm8960" name="CyanogenMod/android_hardware_qcom_msm8960" remote="github" revision="cm-10.2"/>
<project path="hardware/qcom/power" name="CyanogenMod/android_hardware_qcom_power" />
<project path="hardware/qcom/sensors" name="CyanogenMod/android_hardware_qcom_sensors" />
<project path="hardware/qcom/wlan" name="CyanogenMod/android_hardware_qcom_wlan" />
stbgz said:
Hey there I got it somwhat compiling, most of the changes are in the file:
.repo/manifest/defualt.xml
(the - lines are lines that go the removed the + are the opposite)
basically
added a few repos straight from cyanogen and the kernel straight from google.
I'm building we'll see if it finishes and then if it works
build like so
TARGET_PREBUILT_KERNEL=kernel/flo-kernel/kernel brunch flo
here are the changes I did
diff --git a/default.xml b/default.xml
index 48b4917..d6714b7 100644
--- a/default.xml
+++ b/default.xml
@@ -7,6 +7,9 @@
<remote name="github"
fetch="git://github.com" />
+ <remote name="google"
+ fetch="https://android.googlesource.com" />
+
<default revision="refs/heads/phablet-10.1"
remote="phablet"
sync-c="true"
@@ -53,6 +56,7 @@
<project path="external/icu4c" name="CyanogenMod/android_external_icu4c" />
<project path="external/jhead" name="CyanogenMod/android_external_jhead" />
<project path="external/jpeg" name="CyanogenMod/android_external_jpeg" />
+ <project path="kernel/flo-kernel" name="device/asus/flo-kernel" remote="google" revision="master" />
<project path="external/kernel-headers" name="CyanogenMod/android_external_kernel-headers" />
<project path="external/liblzf" name="CyanogenMod/android_external_liblzf" />
<project path="external/libncurses" name="CyanogenMod/android_external_libncurses" />
@@ -82,8 +86,8 @@
<project path="external/zlib" name="CyanogenMod/android_external_zlib" />
<project path="frameworks/av" name="CyanogenMod/android_frameworks_av" />
- <project path="frameworks/base" name="CyanogenMod/android_frameworks_base" />
- <project path="frameworks/native" name="CyanogenMod/android_frameworks_native" />
+ <project path="frameworks/base" name="CyanogenMod/android_frameworks_base" remote="github" revision="cm-10.2"/>
+ <project path="frameworks/native" name="CyanogenMod/android_frameworks_native" remote="github" revision="cm-10.2" />
<project path="frameworks/opt/emoji" name="CyanogenMod/android_frameworks_opt_emoji" />
<project path="hardware/broadcom/wlan" name="CyanogenMod/android_hardware_broadcom_wlan" />
@@ -101,7 +105,7 @@
<project path="hardware/qcom/gps" name="CyanogenMod/android_hardware_qcom_gps" />
<project path="hardware/qcom/keymaster" name="CyanogenMod/android_hardware_qcom_keymaster" />
<project path="hardware/qcom/media" name="CyanogenMod/android_hardware_qcom_media" />
- <project path="hardware/qcom/msm8960" name="CyanogenMod/android_hardware_qcom_msm8960" />
+ <project path="hardware/qcom/msm8960" name="CyanogenMod/android_hardware_qcom_msm8960" remote="github" revision="cm-10.2"/>
<project path="hardware/qcom/power" name="CyanogenMod/android_hardware_qcom_power" />
<project path="hardware/qcom/sensors" name="CyanogenMod/android_hardware_qcom_sensors" />
<project path="hardware/qcom/wlan" name="CyanogenMod/android_hardware_qcom_wlan" />
Click to expand...
Click to collapse
You're the man! I'll see if I can get any further later tonight. I have to compile PA for a few devices and do some things first.
Things are going pretty well for this port so far. Will push all of my work thus far to a GitHub repository as soon as I can.
Sent from my Nexus 4 using XDA Premium 4 mobile app
Not having Ubuntu Touch available on the N7(2013) model has kept me from saving to buy one.
I've used Ubuntu Touch for at least 2 months now as a daily driver on my Original N7 and really love it. especially being able to hack unity8
Sent from my LG-LS970 using xda app-developers app
blmvxer said:
Not having Ubuntu Touch available on the N7(2013) model has kept me from saving to buy one.
I've used Ubuntu Touch for at least 2 months now as a daily driver on my Original N7 and really love it. especially being able to hack unity8
Sent from my LG-LS970 using xda app-developers app
Click to expand...
Click to collapse
Hey buddy, long time no see .
Hey man, I've been around if you haven't already seen them, I have some apps in the apps/games folder.
You know modifying unity8 and such.
Oh I have a question for you, How much do you know about the infographic circle on the greeter screen?
I want to modify it to capture the weather and maybe updates from friends.
Sent from my LG-LS970 using xda app-developers app
blmvxer said:
Hey man, I've been around if you haven't already seen them, I have some apps in the apps/games folder.
You know modifying unity8 and such.
Oh I have a question for you, How much do you know about the infographic circle on the greeter screen?
I want to modify it to capture the weather and maybe updates from friends.
Sent from my LG-LS970 using xda app-developers app
Click to expand...
Click to collapse
I don't know much about the new welcome screen. I haven't been around the Ubuntu Touch scene for a bit. Let's not digress here, though. Send me a PM or ping me on Google Hangouts ([email protected]) .

[ROM] Unofficial CyanogenMod 12.1 after droping nightlies

Hi folks,
i want to share with my selfcompiled CM 12.1 nighlies after cm switch peregrine to CM13.
Some people like me dont update so quick but also want the last android security patches for CM 12.1
This is my first selfcompiled rom, it is works for me, i can give no support, i am no programmer, i am only put some sripts on my computer
So, if you brake your phone or something else it is your fault.
It is compiled with help docker container from michael_ch, release 0.30
http://forum.xda-developers.com/showpost.php?p=59811186&postcount=1734
git clone https://github.com/stucki/docker-cyanogenmod.git
cd docker-cyanogenmod
./run.sh
# Inside the container, run these commands:
repo init -u git://github.com/CyanogenMod/android.git -b cm-12.1
touch .repo/local_manifests/motorola-msm8226.xml
# Edit the file and paste contents from below
# Repeat the following commands whenever you want to make a new build:
repo sync -j 16
source build/envsetup.sh
make clean
brunch peregrine
Click to expand...
Click to collapse
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_motorola_peregrine" path="device/motorola/peregrine" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_motorola_msm8226-common" path="device/motorola/msm8226-common" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_motorola_msm8226" path="kernel/motorola/msm8226" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="CyanogenMod/android_hardware_qcom_fm" path="hardware/qcom/fm" remote="github" />
</manifest>
Click to expand...
Click to collapse
No changes, original CM12.1 repos, nothing optimized
Download:
http://www.mediafire.com/download/mbfakd5nl96t88b/cm-12.1-20151209-UNOFFICIAL-peregrine.zip
MD5: 735db013275a356c08639f3f105eddb0 cm-12.1-20151209-UNOFFICIAL-peregrine.zip
Reposync 20151209, all december security patches
I will post updates if something important change in CM12.1 or new security patches will released and i am still on CM12.1
Special thanks to all the the people here on xda to make this possible for me!
Indeed it was excellent of you bro, there are some of us that are not supported by the cm13 and this is a wonderful option.
Nice. Pls can you post results from Stagefright Detector (https://play.google.com/store/apps/details?id=com.zimperium.stagefrightdetector) and VTS for Android (http://www.appbrain.com/app/vts-for-android/com.nowsecure.android.vts)?
jccz said:
Nice. Pls can you post results from Stagefright Detector (https://play.google.com/store/apps/details?id=com.zimperium.stagefrightdetector) and VTS for Android (http://www.appbrain.com/app/vts-for-android/com.nowsecure.android.vts)?
Click to expand...
Click to collapse
Sorry i do not install dubios testing software on my working telephone
Bastlwastl2010 said:
Sorry i do not install dubios testing software on my working telephone
Click to expand...
Click to collapse
OK. Maybe some other will be able to test it.

[GUIDE] Build LineageOS 14.1

Hi there!
I'm receiving some pm about users that want to learn how to build LineageOS for the Galaxy Note 4 (snapdragon), so here is a quick guide:
Only supported device for now are trltexx/trltedt (N910F/N910G) and trltetmo/trltecan (N910T/N910W8)
I suggest to use a LTS version of ubuntu, in this guide I'll be using Ubuntu 16.04
Let's start with a bit of cleaning:
Code:
sudo apt-get remove openjdk-* icedtea-* icedtea6-*
Install java8:
Code:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update && sudo apt-get install openjdk-8-jdk
Install build tools:
Code:
sudo apt-get install git ccache automake lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven
Install repo:
Code:
mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo
Edit ~/.bashrc (in this exaple I'm using gedit to do it):
Code:
gedit ~/.bashrc
Add those 2 lines at the bottom of the file (we are going to add also ccache to speed up our build time):
Code:
export PATH=~/bin:$PATH
export USE_CCACHE=1
Save it, close gedit and run:
Code:
source ~/.bashrc
Let's create some folders where we'll be doing the magic:
Code:
mkdir ~/android && cd ~/android
mkdir lineageos && cd lineageos
Initialize the local repo and download the source:
Code:
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
repo sync --force-sync
It'll take quite some time, depends on your internet connection.
Once it's done downloading and checking out the files:
Code:
cd .repo
mkdir local_manifests && cd local_manifests
Now create a new file in this folder, name it "roomservice.xml" and add this into it:
For trltexx/trltedt:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="underscoremone/android_kernel_samsung_trlte" path="kernel/samsung/trlte" remote="github" revision="cm-14.1" />
<project name="underscoremone/android_device_samsung_trlte-common" path="device/samsung/trlte-common" remote="github" revision="cm-14.1" />
<project name="underscoremone/android_device_samsung_trltexx" path="device/samsung/trltexx" remote="github" revision="cm-14.1" />
<project name="underscoremone/proprietary_vendor_samsung_trlte" path="vendor/samsung" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-14.1" />
</manifest>
For trltetmo/trltecan:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="underscoremone/android_kernel_samsung_trlte" path="kernel/samsung/trlte" remote="github" revision="cm-14.1" />
<project name="underscoremone/android_device_samsung_trlte-common" path="device/samsung/trlte-common" remote="github" revision="cm-14.1" />
<project name="fat-tire/android_device_samsung_trltetmo" path="device/samsung/trltetmo" remote="github" revision="cm-14.1" />
<project name="underscoremone/proprietary_vendor_samsung_trlte" path="vendor/samsung" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-14.1" />
</manifest>
Now go back to the root of the source ("lineageos" folder) and repo sync again
Code:
cd ../..
repo sync
It'll now download the specific repositories for your device.
Then run
for trltexx/trltedt
Code:
. build/envsetup.sh && brunch trltexx
or for trltetmo/trltecan
Code:
. build/envsetup.sh && brunch trltetmo
And your build will start.
Once done you'll find your flashable rom.zip file in out/target/product/trlte**/
Congratulations you've successfully compiled LineageOS 14.1 for your device.
Remember to "make clean" every now and then.
------
Sometimes you'll get some errors, try to google the error and if you can not find a solution ask for help here at xda.
------
Hopefully I didn't forget anything.. if you have any trouble following this guide reply to this thread; myself or someone else will try to help you as soon as possible.
If you like to have the keyboard with the extra numbers row add this (before "</manifest>") to your roomservice.xml:
Code:
<remove-project name="LineageOS/android_packages_inputmethods_LatinIME" />
<project name="underscoremone/android_packages_inputmethods_LatinIME" path="packages/inputmethods/LatinIME" remote="github" revision="_cm-14.1" />
-----------------------------------------------------------------------------------------
If you want to include su to your builds you have to run
Code:
export WITH_SU=true
before starting the build.
If you want to always include it you can add the same line to your .bashrc (remember to run "source ~/.bashrc" after you modify .bashrc)
Hello,
First of all thank you for sharing this guide.
I haven't yet compiled with success but so far one of the errors I've encountered is that i need to include the following in my local manifest:
Code:
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-14.1" />
or else I'm getting an error about missing macloader.h
Running a compile now so i will return once that finished
Diload said:
Hello,
First of all thank you for sharing this guide.
I haven't yet compiled with success but so far one of the errors I've encountered is that i need to include the following in my local manifest:
Code:
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-14.1" />
or else I'm getting an error about missing macloader.h
Running a compile now so i will return once that finished
Click to expand...
Click to collapse
Yep, you're right; I've missed it. I've updated the op.
Edit:
Actually I thought it was going to be downloaded automatically because it is included in the dependencies of "android_device_samsung_qcom-common".. maybe I'm wrong. Anyway I've added it to the guide's trltexx.xml, you may want to be aware that we still need "android_packages_resources_devicesettings" "android_packages_apps_FlipFlap" and "android_hardware_sony_timekeep", they should be automatically added to your roomservice.xml (because they are included in our lineage.dependencies) but if it doesn't happen you probably want to add it to your trltexx.xml.
How are things different if I want to build for TMO? How much disk space you need?
Sent from my SM-N910T using Tapatalk
rob_z11 said:
How are things different if I want to build for TMO? How much disk space you need?
Sent from my SM-N910T using Tapatalk
Click to expand...
Click to collapse
I've updated the op with the changes needed for trltetmo/trltecan.
You need approximately 60gb, but I would go with more if you can.
hi can you show me how to build for the n910w8 ?
outstanding
Sent from my SM-N9300 using Tapatalk
Okay so i finally got a working build compiled, got a lot of issues with java compiler and javadoc using too much memory,
if anyone is interested it is fixed by setting
Code:
$ export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
Just edit the 4G in the end to the amount of ram you would allow the java compiler to run, be aware that you would still need about an additional of 4,5 gigs of ram available other than what you specify here, at least that was the case for me, since the java compiler doesn't clear out when other stuff is processed during the compile (like c, c++ and javadoc compilation)
_mone said:
Yep, you're right; I've missed it. I've updated the op.
Edit:
Actually I thought it was going to be downloaded automatically because it is included in the dependencies of "android_device_samsung_qcom-common".. maybe I'm wrong. Anyway I've added it to the guide's trltexx.xml, you may want to be aware that we still need "android_packages_resources_devicesettings" "android_packages_apps_FlipFlap" and "android_hardware_sony_timekeep", they should be automatically added to your roomservice.xml (because they are included in our lineage.dependencies) but if it doesn't happen you probably want to add it to your trltexx.xml.
Click to expand...
Click to collapse
I don't know, when I run brunch it doesn't create the roomservice.xml file, i think that it gets done with the breakfast command, but that would create instances in my roomservice.xml that conflicted with the trltexx repos pulled from another source from the other local manifest.
So i ended up with this local manifest (i.e. trltexx.xml)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/samsung/trlte-common" name="Diload/android_device_samsung_trlte-common" remote="github" revision="cm-14.1" />
<project path="kernel/samsung/trlte" name="Diload/android_kernel_samsung_trlte" remote="github" revision="cm-14.1" />
<project path="device/samsung/trltexx" name="Diload/android_device_samsung_trltexx" remote="github" revision="cm-14.1" />
<project path="vendor/samsung" name="Diload/proprietary_vendor_samsung_trlte" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_packages_apps_FlipFlap" path="packages/apps/FlipFlap" remote="github" revision="cm-14.1" />
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" revision="cm-14.1" />
</manifest>
And it is now running on my phone
Well done @Diload :good:
elitedz said:
hi can you show me how to build for the n910w8 ?
Click to expand...
Click to collapse
If you want build for trltecan (N910W8) follow this guide and make the changes described for trltetmo. trltetmo and trltecan, like trltexx and trltedt can share the same ROM.
_mone said:
If you want build for trltecan (N910W8) follow this guide and make the changes described for trltetmo. trltetmo and trltecan, like trltexx and trltedt can share the same ROM.
Click to expand...
Click to collapse
thank you
how about some love for the N910V ???
hi! I how about NOTE 4 DUOS N9100 which has two sim? Now only one sim works,wifi and another sim donot work. how solve it?Thanks!
Nice clear info!
Thanks!
Especially the part about local manifest, other guides I've read in past never touch on that part. Thank you.
N910V never gets any love
ok so what would I have to do to make one strictly for the N910V ? id just change it to trltevzw ?
happy2472 said:
N910V never gets any love
ok so what would I have to do to make one strictly for the N910V ? id just change it to trltevzw ?
Click to expand...
Click to collapse
For trltevzw you may want to have a look at the verzion forum and ask the recognized developers that are building LineageOS to share their source. Good luck with that!
_mone said:
For trltevzw you may want to have a look at the verzion forum and ask the recognized developers that are building LineageOS to share their source. Good luck with that!
Click to expand...
Click to collapse
Im guessing thats like gold??
What's the point installing lineageos on note4?
Not trolling... Just curious.
I bet we will lose everything this phone is great about (s pen menu etc.).
Thanks!
bat0nas said:
What's the point installing lineageos on note4?.
Click to expand...
Click to collapse
This is probably not the right place for such a discussion as this is about building LineageOS yourself, based on the the guide that _mone has very kindly provided. I suggest opening a new thread yourself inviting discussion/advice, or maybe look around the various LineageOS dev threads to see what people are saying. The known issues / missing functionality is pretty well documented, but I'm sure people will be happy let you know in a thread where it is appropriate

LiquidRemix Pie ROM - Test build for flash-a-holics - not a daily - no further builds

THIS IS A ONE-OFF TEST BUILD
I built this ROM as a way to check the features of a Pie LiquidRemix ROM. It is very closely related (feature wise) to Havoc-OS.
Flash at your own risk etc etc.
To get an idea of what it is like before flashing see YouTube: https://www.youtube.com/results?search_query=liquidremix
SOME of the People to thank:
LiquidRemix and all their devs
@kyasu for unwittingly providing the kernel and the orig source for the device tree
@khalvat for unwittingly supplying the device tree
Lineage and all the other ROMS that LiquidRemix sources its features from
ROM Source: https://github.com/LiquidRemix
Roomservice/device sources:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="lineage-16.0" />
<project name="LineageOS/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="lineage-16.0" />
<project name="LineageOS/android_device_samsung_msm8974-common" path="device/samsung/msm8974-common" remote="github" revision="lineage-16.0" />
<project name="Khalvat-M/android_device_samsung_ks01ltexx" path="device/samsung/ks01ltexx" remote="github" revision="pie" />
<project name="kyasu/android_kernel_samsung_msm8974" path="kernel/samsung/msm8974" remote="github" revision="lineage-16.0" />
<project name="kyasu/android_vendor_samsung_ks01ltexx" path="vendor/samsung/ks01ltexx" remote="github" revision="lineage-16.0" />
</manifest>
Download: liquid_remix-10.0.9-20190703-UNOFFICIAL-ks01ltexx.zip
MD5: 8c7bb3b0bc7fe5a36872619127057f3f
Some more info:
Its SELinux permissive
Flash 9.0 opengapps (I did Micro)
Root using latest Magisk
The ROM is Odexed
Its highly featured, but pretty bare. eg no audio FX
Do not expect another build, it was just me checking to see / compare to Pie Havoc-OS. And to prove to myself I could build it
Enjoy!
I will test and report bug, thanks u work.
Android Q Can the future run on S4?
nhihoppro said:
I will test and report bug
Click to expand...
Click to collapse
I only had a short time to play with it, and the main purpose of building the ROM was to compare the features with Havoc-OS. What would like to see is a comparison of features between Havoc-OS and this one. I guess if you find a feature in LiquidRemix that is not in Havoc would be the most interesting.:good: I thought I saw some, but I just flashed Havoc-OS and they were also there, if not taken further.
I watched some YouTu be clips which seemed to suggest LiquidRemix was ever so slightly faster, however, the difference was so minor that correct configuration would more than make up the diff. Anyway, on my personal builds, I add a big list of CPU Govs and IO Schedulers, plus I also run a whole heap of boot scripts. see the following thread for the list of the govs and schedulers https://forum.xda-developers.com/galaxy-s4/i9506-develop/rom-havoc-os-diamondjohndroid-t3884067
nhihoppro said:
Android Q Can the future run on S4?
Click to expand...
Click to collapse
Android P is still being developed. And I would expect the brilliant hard work of @kyasu to drive / determine if or when we get Q

Trying to compile LineageOS 18.1 for discontinued SM-T713

I've been following the instrucsions from here:
[GUIDE/HOW-TO] Building LineageOS for an Unsupported Device
Foreword: This is my own notes I created to build LOS for my device (SM-T713 or gts28vewifi). After reading this, I encourage you to create your own notes as it will help you better understand the build process. I followed the official guide...
forum.xda-developers.com
To try and compile LOS 18.1, and I am using this manifest:
local_manifests/gts28vewifi.xml at lineage-17.1 · team-infusion-developers/local_manifests
Contribute to team-infusion-developers/local_manifests development by creating an account on GitHub.
github.com
And i am getting this error. Wondering if anyone has any insight into how to get past this. Thanks in advance:
[100% 182/182] out/soong/.bootstrap/bin/soong_build out/soong/build.
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android
.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile ou
t/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Androi
d.bp
error: hardware/samsung/hidl/power-libperfmgr/Android.bp:22:1: "andr
[email protected]" depends on undefi
ned module "libperfmgr"
Module "[email protected]" is de
fined in namespace "." which can read these 1 namespaces: ["."]
Module "libperfmgr" can be found in these namespaces: ["hardware/goo
gle/pixel"]
17:31:32 soong bootstrap failed with: exit status 1
@thefanum,
While it's nice to follow the provided instructions, one of the main problems with them is that they get out of date if not updated periodically.
Specifically these commits made March 14, 2023.
https://review.lineageos.org/q/git-lfs
require that git-lfs be installed on the host computer now otherwise the compiler will stop and webview.apk won't get installed properly in the rom.
So if you are running a Debian style distro, then you need
Bash:
# install git-lfs
sudo apt install git-lfs
# cd into LineageOS code directory
cd ~/18.1
# tell build system we have git-lfs
repo init --git-lfs
# get rid of old webview
rm -rf external/chromium-webview/prebuilt/*
rm -rf .repo/projects/external/chromium-webview/prebuilt/*.git
rm -rf .repo/project-objects/LineageOS/android_external_chromium-webview_prebuilt_*.git
# sync everything
repo sync --force-sync
Compiling the next version of Android always requires some code changes. That is, using 17.1 code and trying to build 18.1 will never work.
I've already done 99.9% of the work for T713 because the T813 and T713 share the same common code trees. Since there were no code changes from 17.1 to 18.1 for the device specific tree
https://github.com/retiredtab/android_device_samsung_gts210vewifi
and assuming none are needed for the gts28vewifi tree, then you can use the 17.1 existing tree with MY manifest from
https://github.com/retiredtab/LineageOS-build-manifests/tree/main/18.1
That is, your version of my 181-gts210vewifi.xml should look like
XML:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Samsung Device Trees -->
<project name="team-infusion-developers/android_device_samsung_gts28vewifi" path="device/samsung/gts28vewifi" remote="github" revision="lineage-17.1" />
<project name="retiredtab/android_device_samsung_gts210vewifi" path="device/samsung/gts210vewifi" remote="github" revision="lineage-18.1" />
<project name="retiredtab/android_device_samsung_msm8976-common" path="device/samsung/msm8976-common" remote="github" revision="lineage-18.1" />
<!-- Samsung MSM8976 Kernel -->
<project name="syphyr/android_kernel_samsung_msm8976" path="kernel/samsung/msm8976" remote="github" revision="lineage-16.0" />
<!-- Vendor Trees (for all devices) -->
<project name="retiredtab/proprietary_vendor_samsung_msm8976" path="vendor/samsung" remote="github" revision="lineage-18.1" />
<!-- Samsung Hardware Repo -->
<project path="hardware/samsung" name="LineageOS/android_hardware_samsung" remote="github" revision="lineage-18.1"/>
<!-- Dependencies -->
<project path="external/sony/boringssl-compat" name="LineageOS/android_external_sony_boringssl-compat" remote="github" revision="lineage-18.1"/>
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" revision="lineage-18.1" />
</manifest>
In theory, this should yield an equivalent 18.1 T713 build with the same functionality as my 18.1 T813 build.
I suggest you follow my 18.1 build specific instructions at
https://github.com/retiredtab/Linea...ob/main/18.1/181-gts210vewifi-build-guide.txt
One person on xda has followed them and created their own 18.1 T813 private builds.
I'll also make 3 suggestions during your build phase.
1. Make an "eng" build so that adb logcat starts right away so you can see log messages on your console. Once everything works, you can then build the "userdebug".
Bash:
# j4 means 4 threads. If you have 6 core, 12 thread CPU, then change this to 12.
TARGET_BUILD_TYPE=debug TARGET_BUILD_VARIANT=eng make -j4 bacon
2. My publicly released 18.1 T813 is selinux enforcing. There's no guarantee that the rules I wrote will work 100% with the T713 so you should revert/undo this commit
https://github.com/retiredtab/andro...mmit/687691a81e028d002919f9f1d069b5b0c9d72512
so that the build is permissive. Once everything works, then you can enforce the build.
3. You will need at least 16GB DRAM to make this 18.1 64 bit build. The more the better.
thefanum said:
Code:
[100% 182/182] out/soong/.bootstrap/bin/soong_build out/soong/build.
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android
.bp.list -b out/soong -n out -d out/soong/build.ninja.d -globFile ou
t/soong/.bootstrap/build-globs.ninja -o out/soong/build.ninja Androi
d.bp
error: hardware/samsung/hidl/power-libperfmgr/Android.bp:22:1: "andr
[email protected]" depends on undefi
ned module "libperfmgr"
Module "[email protected]" is de
fined in namespace "." which can read these 1 namespaces: ["."]
Module "libperfmgr" can be found in these namespaces: ["hardware/goo
gle/pixel"]
17:31:32 soong bootstrap failed with: exit status 1
Click to expand...
Click to collapse
The above error is because you are trying to use the 17.1 tree and compiling 18.1 and you are not picking up the 18.1 tree at
https://github.com/LineageOS/android_hardware_samsung/commits/lineage-18.1
If you look at the March 18, 20 and 21, 2021 changes, that's where they added libperfmgr.
retiredtab said:
@thefanum,
While it's nice to follow the provided instructions, one of the main problems with them is that they get out of date if not updated periodically.
Specifically these commits made March 14, 2023.
https://review.lineageos.org/q/git-lfs
require that git-lfs be installed on the host computer now otherwise the compiler will stop and webview.apk won't get installed properly in the rom.
So if you are running a Debian style distro, then you need
Bash:
# install git-lfs
sudo apt install git-lfs
# cd into LineageOS code directory
cd ~/18.1
# tell build system we have git-lfs
repo init --git-lfs
# get rid of old webview
rm -rf external/chromium-webview/prebuilt/*
rm -rf .repo/projects/external/chromium-webview/prebuilt/*.git
rm -rf .repo/project-objects/LineageOS/android_external_chromium-webview_prebuilt_*.git
# sync everything
repo sync --force-sync
Compiling the next version of Android always requires some code changes. That is, using 17.1 code and trying to build 18.1 will never work.
I've already done 99.9% of the work for T713 because the T813 and T713 share the same common code trees. Since there were no code changes from 17.1 to 18.1 for the device specific tree
https://github.com/retiredtab/android_device_samsung_gts210vewifi
and assuming none are needed for the gts28vewifi tree, then you can use the 17.1 existing tree with MY manifest from
https://github.com/retiredtab/LineageOS-build-manifests/tree/main/18.1
That is, your version of my 181-gts210vewifi.xml should look like
XML:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- Samsung Device Trees -->
<project name="team-infusion-developers/android_device_samsung_gts28vewifi" path="device/samsung/gts28vewifi" remote="github" revision="lineage-17.1" />
<project name="retiredtab/android_device_samsung_gts210vewifi" path="device/samsung/gts210vewifi" remote="github" revision="lineage-18.1" />
<project name="retiredtab/android_device_samsung_msm8976-common" path="device/samsung/msm8976-common" remote="github" revision="lineage-18.1" />
<!-- Samsung MSM8976 Kernel -->
<project name="syphyr/android_kernel_samsung_msm8976" path="kernel/samsung/msm8976" remote="github" revision="lineage-16.0" />
<!-- Vendor Trees (for all devices) -->
<project name="retiredtab/proprietary_vendor_samsung_msm8976" path="vendor/samsung" remote="github" revision="lineage-18.1" />
<!-- Samsung Hardware Repo -->
<project path="hardware/samsung" name="LineageOS/android_hardware_samsung" remote="github" revision="lineage-18.1"/>
<!-- Dependencies -->
<project path="external/sony/boringssl-compat" name="LineageOS/android_external_sony_boringssl-compat" remote="github" revision="lineage-18.1"/>
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" revision="lineage-18.1" />
</manifest>
In theory, this should yield an equivalent 18.1 T713 build with the same functionality as my 18.1 T813 build.
I suggest you follow my 18.1 build specific instructions at
https://github.com/retiredtab/Linea...ob/main/18.1/181-gts210vewifi-build-guide.txt
One person on xda has followed them and created their own 18.1 T813 private builds.
I'll also make 3 suggestions during your build phase.
1. Make an "eng" build so that adb logcat starts right away so you can see log messages on your console. Once everything works, you can then build the "userdebug".
Bash:
# j4 means 4 threads. If you have 6 core, 12 thread CPU, then change this to 12.
TARGET_BUILD_TYPE=debug TARGET_BUILD_VARIANT=eng make -j4 bacon
2. My publicly released 18.1 T813 is selinux enforcing. There's no guarantee that the rules I wrote will work 100% with the T713 so you should revert/undo this commit
https://github.com/retiredtab/andro...mmit/687691a81e028d002919f9f1d069b5b0c9d72512
so that the build is permissive. Once everything works, then you can enforce the build.
3. You will need at least 16GB DRAM to make this 18.1 64 bit build. The more the better.
Click to expand...
Click to collapse
You're the man! Thanks so much for your help here.
I'm on it!

Categories

Resources