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]) .
Related
Hey all -
I've been trying for a couple days to build from the instructions at docs.omnirom.org/Build_for_mako without much success. I am able to sync the repository - it seems to download all the devices though and I'm a little confused at that.
I resync after adding the vendor blobs by adding the following to .repo/local_manifests/ (from the guide):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device,mako" revision="refs/tags/android-4.3_r2.1_" />
</manifest>
Then I receive the following:
Code:
fatal: duplicate project device/lge/mako-kernel in /mnt/ddrive/android/omni/.repo/manifest.xml
This makes sense because the project is already in the .repo/manifest.xml
From there I try to execute the following from my repository.
Code:
. build/envsetup.sh; brunch mako
It runs for about 23 minutes, I don't get any errors, but I also don't get the installable .zip file.
Sorry if this is the wrong place to ask development questions.
caspian154 said:
Hey all -
I've been trying for a couple days to build from the instructions at docs.omnirom.org/Build_for_mako without much success. I am able to sync the repository - it seems to download all the devices though and I'm a little confused at that.
I resync after adding the vendor blobs by adding the following to .repo/local_manifests/ (from the guide):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device,mako" revision="refs/tags/android-4.3_r2.1_" />
</manifest>
Then I receive the following:
Code:
fatal: duplicate project device/lge/mako-kernel in /mnt/ddrive/android/omni/.repo/manifest.xml
This makes sense because the project is already in the .repo/manifest.xml
From there I try to execute the following from my repository.
Code:
. build/envsetup.sh; brunch mako
It runs for about 23 minutes, I don't get any errors, but I also don't get the installable .zip file.
Sorry if this is the wrong place to ask development questions.
Click to expand...
Click to collapse
U just delete the <project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device,mako" revision="refs/tags/android-4.3_r2.1_" /> in the local_manifest.xml
yeah, I've tried that - it comes, but I don't get the zip file. I tried a couple of options in the local_manifests from another thread and actually got a zip!
Sent from my Nexus 4 using xda app-developers app
caspian154 said:
yeah, I've tried that - it comes, but I don't get the zip file. I tried a couple of options in the local_manifests from another thread and actually got a zip!
Sent from my Nexus 4 using xda app-developers app
Click to expand...
Click to collapse
can you post the link about the other thread ?
thanks a lot !!
ilpolpi65 said:
can you post the link about the other thread ?
thanks a lot !!
Click to expand...
Click to collapse
Yep - sorry, I haven't been near a computer until now. I haven't tested out the rom yet, but it definitely generated a zip file ~ 155 mb, which doesn't seem wrong. Anyway, here's the post I stole from: http://forum.xda-developers.com/showpost.php?p=46661249&postcount=5
here's specifically what I have in my .repo/local_manifests/roomservice.xml
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_broadcom.git" path="vendor/broadcom" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_nvidia.git" path="vendor/nvidia" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_elan.git" path="vendor/elan" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_invensense.git" path="vendor/invensense" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_widevine.git" path="vendor/widevine" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_nxp.git" path="vendor/nxp" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_asus.git" path="vendor/asus" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_imgtec.git" path="vendor/imgtec" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_samsung.git" path="vendor/samsung" remote="github" revision="cm-10.2" />
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3" />
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-msm-mako-3.4-jb-mr2" />
<project name="omnirom/android_device_lge_mako" path="device/lge/mako" remote="github" revision="android-4.3" />
<project name="omnirom/android_kernel_lge_mako" path="kernel/lge/mako" remote="github" revision="android-4.3" />
</manifest>
caspian154 said:
Hey all -
I've been trying for a couple days to build from the instructions at docs.omnirom.org/Build_for_mako without much success. I am able to sync the repository - it seems to download all the devices though and I'm a little confused at that.
I resync after adding the vendor blobs by adding the following to .repo/local_manifests/ (from the guide):
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lge/mako-kernel" name="device/lge/mako-kernel" groups="device,mako" revision="refs/tags/android-4.3_r2.1_" />
</manifest>
Then I receive the following:
Code:
fatal: duplicate project device/lge/mako-kernel in /mnt/ddrive/android/omni/.repo/manifest.xml
This makes sense because the project is already in the .repo/manifest.xml
From there I try to execute the following from my repository.
Code:
. build/envsetup.sh; brunch mako
It runs for about 23 minutes, I don't get any errors, but I also don't get the installable .zip file.
Sorry if this is the wrong place to ask development questions.
Click to expand...
Click to collapse
My bad, I'm the one who edited part of the doc there, and i was fearing some confusion, definitely need a bit of rewrite, as i wrote that doc prior to roomservice.xml intergration.
Basically, if you are using an omni.dependencies file in the device folder, you don't need to include mako kernel dependencies in local_manifest.xml, but you will need to lunch breakfast and lunch prior to brunch to actually sync this branch.
If you are not using omni.dependencies, you should ignore the first part of the doc, and only use the second part, with title "deprecated".
You should actually delete roomservice.xml if you're not using it to sync, or else you would have the problem you currently have.
In other terms, keep only that part
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github" fetch="https://github.com/" />
<project name="android_kernel_lge_mako" path="kernel/lge/mako" remote="omnirom" revision="android-4.3"/>
</manifest>
in a local_manifest.xml in your .repo/local_manifests directory, and delete the roomservice.xml file which is useless until you use an omni.dependencies file.
Also delete the changes you made out of local_manifest.xml, rule is only one declaration per branch
The so called blobs ( i didn't write that part) are actually not part of that repo, you could add themuppets repo for mako in your local_manifest.xml, for legal reasons, i couldn't include it in Omni's wiki.
Hope this will solve your problem, will try to edit the doc tomorrow to allow roomservice usage.
thanks a lot! I figured that all made more sense for those that were more experienced ROM developers. I would rather use the also stuff and not rely on cm blobs. I'm building for educational purposes - I'd like to make some tweaks here and there, so I want it as close to what the omni nightlies will be when they arrive.
Thanks for your explanation and documenting all that you do! I've been leaching off ROM developers for years and want to join in and help out.
Sent from my Nexus 4 using xda app-developers app
caspian154 said:
thanks a lot! I figured that all made more sense for those that were more experienced ROM developers. I would rather use the also stuff and not rely on cm blobs. I'm building for educational purposes - I'd like to make some tweaks here and there, so I want it as close to what the omni nightlies will be when they arrive.
Thanks for your explanation and documenting all that you do! I've been leaching off ROM developers for years and want to join in and help out.
Sent from my Nexus 4 using xda app-developers app
Click to expand...
Click to collapse
You're welcome, and you can actually ignore part of my previous post, I just fully edited the doc, now everything is using roomservice.xml and omni.dependencies, so all mako's files get synced when you launch brunch mako, only themuppets repo can be added manually in local_manifest.xml in your .repo/local_manifests directory.
Sorry for the delay in a proper doc, got quite busy, and had little time do write something accurate.
I'm sorry - I am still not getting a zip file when I follow the steps on the wiki.
I sync the repo using the instructions,
Code:
repo sync -j1
It completes, I don't make any changes to the repo. I run the build
Code:
. build/envsetup.sh
brunch mako
It seems to complete without any errors. I do see complaints that I don't have an omni.dependencies file. Do I need to manually create that? I really want the purest rom - nothing special.
I think you have to create it, but I'm not perfectly sure..anyone else?
22anl said:
I think you have to create it, but I'm not perfectly sure..anyone else?
Click to expand...
Click to collapse
No. If you don't get a zip in your out folder, you've got a build error.
OK, that helps, I will comb through the output and see if I can find out what I'm missing. Thanks!
Sent from my Nexus 4 using xda app-developers app
You may need to cherry pick from gerrit to get it to build right
Also, here's what it will look like if your build is successful
Sweet thanks guys! I got it building, I somehow missed that I needed to do breakfast before I did a sync and build.
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.
Maybe this will help someone..
I'll be visiting this thread occasionally in case someone needs help. But I'd be glad if people and future devs also helped each other. :good:
If you compile a running build with these instructions, feel free to share it with people in this thread. Maybe development for these phones is not over yet! :fingers-crossed:
Soo.. Let's start!
What you need:
- Basic coding skills
- A GitHub account and some skills on how to use git.
- A computer with decent specs. (using an i5-4670k and 8gb ram here)
- LOTS of free storage. I recommend at least 100-200GB. The more, the better.
- A linux VM with all neccesary tools to build android. I recommend BBQLinux.
Initial Steps:
1. Grab the CM12.1 source by typing the following in your VM's Terminal:
Code:
mkdir cm12
cd cm12
repo init -u git://github.com/CyanogenMod/android.git -b cm-12.1
repo sync
This will take some hours. Just wait.
2. Create a file called roomservice.xml in /home/yourusername/cm12/.repo/local_manifests directory, containing the following:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="CyanogenMod/android_bootable_recovery" />
<remove-project name="CyanogenMod/android_build" />
<remove-project name="CyanogenMod/android_external_bluetooth_bluedroid" />
<remove-project name="CyanogenMod/android_frameworks_av" />
<remove-project name="CyanogenMod/android_frameworks_base" />
<remove-project name="CyanogenMod/android_hardware_qcom_display" />
<remove-project name="CyanogenMod/android_libcore" />
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" />
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" />
<project name="ArchiDroid/Toolchain" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" remote="github" revision="architoolchain-4.9-arm-linux-gnueabihf-cortex_a9_neon" />
<project name="ArchiDroid/Toolchain" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8" remote="github" revision="sabermod-4.9-arm-linux-androideabi" />
<project name="CyanogenMod/android_device_sony_common" path="device/sony/common" remote="github" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" />
<project name="CyanogenMod/android_hardware_sony_DASH" path="hardware/sony/DASH" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_sony_msm8x60" path="kernel/sony/msm8x60" remote="github" />
<project name="WhiteNeo-/android_bootable_recovery" path="bootable/recovery" remote="github" revision="android-5.1" />
<project name="WhiteNeo-/android_build" path="build" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_external_bluetooth_bluedroid" path="external/bluetooth/bluedroid" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_frameworks_av" path="frameworks/av" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_frameworks_base" path="frameworks/base" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_hardware_qcom_display" path="hardware/qcom/display-caf/msm8960" remote="github" revision="cm-12.1-caf-8960" />
<project name="WhiteNeo-/android_libcore" path="libcore" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_device_sony_blue-common" path="device/sony/blue-common" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_device_sony_mint" path="device/sony/mint" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_device_sony_hayabusa" path="device/sony/hayabusa" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_device_sony_msm8960-common" path="device/sony/msm8960-common" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/android_device_sony_tsubasa" path="device/sony/tsubasa" remote="github" revision="cm-12.1" />
<project name="WhiteNeo-/kernel-msm" path="kernel/sony/msm8960" remote="github" revision="master" />
<project name="WhiteNeo-/proprietary_vendor_sony" path="vendor/sony" remote="github" revision="cm-12.1" />
</manifest>
3. Find all the lines containing "WhiteNeo-", fork those repositories at GitHub and replace "WhiteNeo-" with your GitHub name. (Important!)
Then copy the related repositories to your local drive with the "git clone" command.
4. Some sources are still old and need to be updated before we start to compile. These are:
android_bootable_recovery
android_build
android_external_bluetooth_bluedroid
android_frameworks_av
android_frameworks_base
android_hardware_qcom_display
android_libcore
These sources have to be updated like the example below.
Just remember that not all branches are named cm-12.1, so replace "cm-12.1" with the revision from roomservice.xml (look above)
Code:
cd android_build
git pull https://github.com/CyanogenMod/android_build.git cm-12.1
git push https://github.com/WhiteNeo-/android_build.git cm-12.1
The recovery sources are updated differently:
Code:
cd android_bootable_recovery
git pull https://github.com/omnirom/android_bootable_recovery.git android-5.1
git push https://github.com/WhiteNeo-/android_bootable_recovery.git android-5.1
5. Once more do a repo sync in your cm12 directory, to synchronize our updated repositories with the ones in CM12 directory.
6. Start the build with the following terminal commands:
Code:
cd cm12
. build/envsetup.sh
brunch yourdevicename
(Replace "yourdevicename" with your phone's manufacturer name: tsubasa = Xperia V // mint = Xperia T // hayabusa = Xperia TX)
If there are no issues, you'll find the finished ROM zip in cm12/out/target/product/yourdevicename directory.
Copy the META-INF folder from my latest NEO build over to the new zip and flash. Done.
Future builds:
Just repeat steps 4 to 6.
Troubleshooting:
If you run into toolchain errors, grab the libraries from the following link and install them in your virtual machine.
http://sabermod.com/Prebuilt-libs (DEV ONLY)/ROM-Kernel/
Hey, I need some help with a kernel build. Ive got a zimage and I cant compile it into a boot.img and doomkernerls tutorial is only for jelly bean
Can it be done with ScriBt?
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
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.