Hi,
I have been trying to build CM11 from source. I've basicly been following the build on the CM WIKI (http://wiki.cyanogenmod.org/w/Build_for_i9300)
I got as far as running "Brunch i9300" but it fails quickly with the follwoing error:
Code:
make: *** No rule to make target `vendor/samsung/smdk4412-common/proprietary/system/lib/libTVOut.so', needed by `/home/mark/cm11/out/target/product/i9300/obj/lib/libTVOut.so'. Stop.
I've googled a lot for a solution - but not made much progress!
1.. As far as I can work out libTVOut.so is a file proprietary file that I am supposed to extract from the my phone using the "extract-files.sh" script. I have run this an it does appear to complete sucessfully (i.e. it does pull a whole bunch of files) but libTVOut.so is notone of the files extracted.
2. It seems the alternative to running extract-files is to download the blobs from https://github.com/TheMuppets. However libTVOut.so is also not present there for the CM11 branch. (although does appear to be present for older branches (e.g. CM10.2).
Can anyone point in the right direction as I'm just about out of ideas?
Not to worry. I don't know the extract files method of getting the vendor blobs did not work, but I worked round the problem by delting the files in the vendor directory and adding a local manifest file.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="https://github.com/TheMuppets/" name="TheMuppets" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" revision="cm-11.0" />
</manifest>
It's all working now!
mtdoughty said:
Not to worry. I don't know the extract files method of getting the vendor blobs did not work, but I worked round the problem by delting the files in the vendor directory and adding a local manifest file.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="https://github.com/TheMuppets/" name="TheMuppets" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" revision="cm-11.0" />
</manifest>
It's all working now!
Click to expand...
Click to collapse
I have the same issue too, so hopefully this info will help me out to finally build CM 11 for the first time.
Could you be more specific on this fix? Is this a new xml file that I create? What's it called and where do I put it?
Thanks in advance
Hi,
Yes it is a new xml file you need to create with above contents. I don't think the file name matters (so long as it ends with ".xml". It needs to go into the local_manifests folder inside your .repo directory.
There is more of an explanation here:
http://wiki.cyanogenmod.org/w/Doc:_Using_manifests
Good luck
Related
Hello,
Please forgive the n00bness of this post.
I thought with my shiny white SGS 3 arriving in the post today I would move into playing around with compiling and tweaking my own bulid for it.
I have been trawing the internet and XDA looking for tutorials about compiling ICS, of which I have found loads. I have the basic bulid environment setup and the main CM9 source code downloaded. There however is one thing I can't quite work out.
I am trying to bulid from the TEAMHACKSUNG sources (http://forum.xda-developers.com/showthread.php?t=1714354) I know the two device specific github repos need downloading. From looking around they can be put in the local_manifiest.xml file to make repo sync them with the rest of the source. However I can not work out the exact syntax to put into the xml file or where is the already downloaded source code tree the files need to go.
I am presuming the device repo needs to go under <source tree root>/device/samsung/..something..
which would give a XML line like:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="teamhacksung"
fetch="git://github.com/teamhacksung/" />
<project name="android_device_samsung_i9300.git" path="device/samsung/????" remote="teamhacksung"/>
The kernel I am even less sure of, the basic structure should be something liek this I think:
Code:
<project name="android_kernel_samsung_smdk4412.git" path="kernel/samsung/???" remote="teamhacksung" />
So, if anyone could tell me if I am going in the right direction, and if the device specific names are important in the source tree etc. I would be veryu grateful!
Thanks
I think something of the form should work:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="teamhacksung/buildscripts" path="buildscripts" remote="github" revision="ics">
<copyfile dest="build.sh" src="samsung/build.sh" />
</project>
<project name="teamhacksung/android_device_samsung_i9300" path="device/samsung/galaxys3" remote="github" />
<project name="teamhacksung/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" />
</manifest>
SGS3 has just been merged into official CM source: http://review.cyanogenmod.com/#/c/17824/ . So just do a brunch and choose your device
Hi there, since lots of you asked me how to build and how to solve errors, i decided to make this guide to help you.
I use Ubuntu 14.04 x64 since it's best for Lollipop (at least Google say this ).
Now we set the environment (you can copy and paste).
1) First of all install java, it must be openjdk-7 or the building environment will give you error.
In terminal type:
Code:
sudo apt-get update
sudo apt-get install openjdk-7-jdk
After that we must install the essential things
Code:
sudo apt-get install bison g++-multilib git gperf libxml2-utils
You can optionally tell the build to use the ccache compilation tool. Ccache acts as a compiler cache that can be used to speed-up rebuilds. This works very well if you do "make clean" often, or if you frequently switch between different build products.
Put the following in your .bashrc or equivalent.
Code:
export USE_CCACHE=1
In terminal (be sure to be in your home folder typing "cd") type:
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
Enter the following to download the "repo" binary and make it executable (runnable):
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2) Now we can download the cyanogenmod sources
In terminal type:
Code:
cd ~/android/system/
repo init -u https://github.com/CyanogenMod/android.git -b cm-12.0
Once you are ready to download lots of Gigabytes of data type
Code:
repo sync
Note: use the --jN option to run multiple downloads (default is 4) example: repo sync -j8 to run 8 parallel downloads.
you can use repo sync everytime you want to sync with latest cyanogenmod changes.
3) Once you have downloaded all the sources available just download our device repos (thanks @sooti):
Create a folder called local_manifests under the .repo directory (hidden directory inside system folder), then create an XML file (text file with .xml extension) inside that directory. You can call the XML file anything you like, as long as it ends in .xml and rerun repo sync after you have created the relatives folders.
Put this inside the local_manifest.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/lge/g3-common" name="sooti/android_device_lge_g3-common" remote="github" revision="cm-12.0" />
<project path="device/lge/d855" name="sooti/android_device_lge_d855" remote="github" revision="cm-12.0" />
<project path="kernel/lge/g3" name="sooti/android_kernel_lge_g3" remote="github" revision="cm-12.0" />
<project path="vendor/lge" name="sooti/proprietary_vendor_lge" remote="github" revision="cm-12.0" />
<project path="device/qcom_common" name="cyanogenmod/android_device_qcom_common" remote="github" revision="cm-12.0" />
</manifest>
4) Now we are ready to rock
do theese steps evertime you want to build
First build will take some time so while building you can relax doing other stuff like watch a movie or listen music
Open terminal and type:
Code:
cd android/system
. build/envsetup.sh
brunch d855
and wait for build to finish
now you are ready to flash it with the gapps and the superSU Enjoy your personal Cyanogenmod 12
P.S: everytime you build a new update, before brunch use this command "make clobber" to clean your old compiled sources and to avoid errors while building the new updates
---------------------------------------------
If you liked my guide and found that is useful ^^ make me a little gift here with a donation ^^ :angel:
Update: you don't need to delete the inside of the zip, just flash it as it is and it will go
Excellent! Will start to repo sync source now and I am looking forward to build:fingers-crossed:
Don't try others do your job! Go back to the kitchen! Lol
Thanks
ahahaahah i will keep updating the other thread for everyone who can't or don't want to do it by theirselves
Thanks for this!!!
Just a question, if I put this in my local_manifest.xml after I've created the relatives folders
Code:
<manifest>
<project path="device/lge/g3-common" name="sooti/android_device_lge_g3-common" remote="github" revision="cm-12.0" />
<project path="device/lge/d855" name="sooti/android_device_lge_d855" remote="github" revision="cm-12.0" />
<project path="kernel/lge/g3" name="sooti/android_kernel_lge_g3" remote="github" revision="cm-12.0" />
</manifest>
Isn't it the same?
Why do I get this http://pastebin.com/tCgWuS2B
Thanks
TheMorpheus said:
Thanks for this!!!
Just a question, if I put this in my local_manifest.xml after I've created the relatives folders
Code:
<manifest>
<project path="device/lge/g3-common" name="sooti/android_device_lge_g3-common" remote="github" revision="cm-12.0" />
<project path="device/lge/d855" name="sooti/android_device_lge_d855" remote="github" revision="cm-12.0" />
<project path="kernel/lge/g3" name="sooti/android_kernel_lge_g3" remote="github" revision="cm-12.0" />
</manifest>
Isn't it the same?
Why do I get this http://pastebin.com/tCgWuS2B
Thanks
Click to expand...
Click to collapse
add to the local manifest cyanogenmod/android_device_qcom_common it contains the dtbtoolCM you need ^^ i have edited the OP thank you very much
Thank you very much for the guide.
Took several days trying without luck. With the information you have given me by private message I have made some progress but still not end well.
Tomorrow I follow these steps from 0 to see if I can make it work once and for all.
Thank you.
Thanks il check this out!
I added a commit to build 'caf' by default, no need for the caf adding to BoardCommon part of the tutorial.
sooti said:
I added a commit to build 'caf' by default, no need for the caf adding to BoardCommon part of the tutorial.
Click to expand...
Click to collapse
thank youuuuuuuu
manups4e said:
thank youuuuuuuu
Click to expand...
Click to collapse
BTW, any benefit to this addition? I thought it always builds using caf, otherwise it doesn't work on our phone, no?
nope afaik if in the board config is not specified it builds with legacy qcom sources while if we specify caf-new it looks for the folder with "caf-new" in its name
Thans for you sooti for the sources. :victory::victory:
manups4e said:
nope afaik if in the board config is not specified it builds with legacy qcom sources while if we specify caf-new it looks for the folder with "caf-new" in its name
Click to expand...
Click to collapse
hmmm.... then how could we not build in cm-11 if we didn't have caf-new? i think it just uses caf-msm8974 now by default, which are the new repos, thats why we don't need caf-new anymore.
you are right caf-msm8974 it's newer and it's for display only can you change it into the boardconfigcommon.mk?
manups4e said:
you are right caf-msm8974 it's newer and it's for display only can you change it into the boardconfigcommon.mk?
Click to expand...
Click to collapse
I can but this commit might be pointless lol, it uses them by default :/
without committing it if you build normally and you do mmm -B you'll see different warning messages ^^ i think it's not building it by default if you don't point it ^^ i hope to be wrong
sooti said:
I can but this commit might be pointless lol, it uses them by default :/
Click to expand...
Click to collapse
it's already in display-caf this is the default manifest.xml
so we only have to point the boardconfig to display-caf and it will build already with newest cafs
project path="hardware/qcom/display-caf/msm8960" name="CyanogenMod/android_hardware_qcom_display" groups="qcom,qcom_display" revision="cm-12.0-caf-8960" />
<project path="hardware/qcom/display-caf/msm8226" name="CyanogenMod/android_hardware_qcom_display" groups="qcom,qcom_display" revision="cm-12.0-caf-8226" />
<project path="hardware/qcom/display-caf/msm8974" name="CyanogenMod/android_hardware_qcom_display" groups="qcom,qcom_display" revision="cm-12.0-caf-8974" />
I've succesfuly compile the rom (thanks to you @manups4e) but it won't boot (stuck on the LG screen)
I've noticed some difference with your build.
http://goo.gl/idzzQ1
Look the screenshot, is this supposed to be corrected?
Good morning to everybody (spanish time)
I am almost new in building from source and I am having a really really weird issue when building cm13 for zuk z1, which is officially supported.
A dev, @MrColdbird, has been improving a lot zuk's device tree, and I have been building CM13 using his local_manifest.xml:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="MrColdbird/proprietary_vendor_zuk" path="vendor/zuk" remote="github" revision="cm-13.0" />
<project name="MrColdbird/android_device_zuk_ham" path="device/zuk/ham" remote="github" revision="cm-13.0" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-13.0" />
<project name="ChromaKernel/cKernel" path="kernel/cyanogen/msm8974" remote="github" revision="cm-13.0" />
</manifest>
One day, I wanted to compile CM13 using official device tree so I deleted ham.xml in .repo/local_manifests and did:
Code:
source build/envsetup.sh
breakfast ham
Then I extracted proprietary blobs through adb using
Code:
cd ~/android/system/device/zuk/ham
./extract-files.sh
I did a cleaning (make clean) and a repo sync just in case and tried again:
Code:
brunch ham
The problem - 1 After several minutes, the terminal stopped saying:
Code:
make: *** No rule for building target «vendor/zuk/ham/proprietary/bin/btnvtool», necesario para «/home/luis/android/system/out/target/product/ham/system/bin/btnvtool». Stop.
make: *** Waiting for other processes to finish...
make: exiting directory «/home/luis/android/system»
#### make failed to build some targets (02:37 (mm:ss)) ####
(I translated it so maybe it's not the same message literally. It was in spanish)
The problem - 2 I did a research and found I hadn't get prebuilt apps (vendor/cm/) so my surprise comes when I do
Code:
cd ~/android/system/vendor/cm
./get-prebuilts
and it returns
Code:
bash: ./get-prebuilts: No such file or directory
I have founded loads of threads in internet about this but I haven't been able to understand I don't have that file in vendor/cm my local files. It is not a writting error or something like that, I checked a thousand times and the spelling is correct (and the file is not in that directory). Could anyone guide me in any direction? Why didn't I need that step when compiling using a different local_manifest.xml?
Any help will be highly appreciated.
Thanks in advance.
EDIT - 1 I have noticed there is not such file in vendor/zuk/ham/proprietary/bin so I created a local_manifest called ham.xml with the same content of the default roomservice.xml and adding a line:
Code:
<manifest>
<project name="CyanogenMod/android_device_zuk_ham" path="device/zuk/ham" remote="github"/>
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github"/>
<project name="CyanogenMod/android_kernel_cyanogen_msm8974" path="kernel/cyanogen/msm8974" remote="github"/>
[B]<project name="TheMuppets/proprietary_vendor_zuk" path="vendor/zuk" revision="cm-13.0" remote="github"/>[/B]
</manifest>
Maybe this cannot be done, but I'm kinda desperate, so let's see...
Anybody??
Okay, so I've been looking into porting cyanogenmod for unsupported devices, and the tutorial on the cyanogenmod wiki says to have at least built cyanogenmod before, so that is what I'm trying to do with my LG G3 (vs985). So I've freshly installed Ubuntu 14.04 and followed the setting up of the build environment tutorial the best that I can, but for some reason, I always get errors like "no rule to make target." It also has a buttload of warnings as it's going along, but I just assumed that was normal for an unofficial nightly build. If anyone is willing to help me out, I'll be glad to give more details and such so that we can narrow down my issues. Thanks.
The exact error log will help. Also, if the vs985 is unsupported you will need to include your own device trees, kernel trees etc etc in your local manifest. There is a whole really good guide on building ROM from source here
As @limjh16 has mentioned since its an unofficial build of cm 13 you need to make a local manifest which specifies the kernel source, hardware sources etc so terminal knows where to look for to build for that device.
Example local manifest looks like this
<?xml version="1.0" encoding="UTF-8"?>
<!--Please do not manually edit this file-->
<manifest>
<project name="android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="omnirom" revision="android-4.4" />
<project name="android_device_samsung_aries-common" path="device/samsung/aries-common" remote="omnirom" revision="android-4.4" />
<project name="android_kernel_samsung_aries" path="kernel/samsung/aries" remote="omnirom" revision="android-4.4" />
<project name="android_hardware_samsung" path="hardware/samsung" remote="omnirom" revision="android-4.4" />
<project name="android_device_samsung_vibrantmtd" path="device/samsung/vibrantmtd" remote="omnirom" revision="android-6.0" />
</manifest>
I have had similar problems regarding building as well. I am still new to building roms so hope i helped you
The LG vs985 is a supported device. I will try to find my errors shortly and post them when I can.
*Bump*
Okay, I've finally gotten around to trying to build it again, and this is what I get:
Code:
make: *** No rule to make target `vendor/lge/vs985/proprietary/bin/rfs_access', needed by `/home/spenceboy98/android/system/out/target/product/vs985/system/bin/rfs_access'. Stop.
make: *** Waiting for unfinished jobs....
It doesn't seem like it's getting as far as it used to (I did a fresh install of Ubuntu 14.04).
Any suggestions?
spenceboy98 said:
*Bump*
Okay, I've finally gotten around to trying to build it again, and this is what I get:
Code:
make: *** No rule to make target `vendor/lge/vs985/proprietary/bin/rfs_access', needed by `/home/spenceboy98/android/system/out/target/product/vs985/system/bin/rfs_access'. Stop.
make: *** Waiting for unfinished jobs....
It doesn't seem like it's getting as far as it used to (I did a fresh install of Ubuntu 14.04).
Any suggestions?
Click to expand...
Click to collapse
Your missing your proprietary files which should be located in your vendor folder.
You can get them from here
https://github.com/TheMuppets/proprietary_vendor_lge. Just add it to your manifest.
Edit: Was looking at your devices trees on CM github and seems it isn't part of the dependencies to add the vendor folder. So just make a local_manifest.xml in .repo/local_manifest and then add this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" revision="cm-13.0" />
</manifest>
Also, next time please include whole log. The error may be found only above. In this case it was found in last 3 lines but next time copy whole terminal output to hastebin.com or pastebin.com and post here
WildfireDEV said:
Your missing your proprietary files which should be located in your vendor folder.
You can get them from here
https://github.com/TheMuppets/proprietary_vendor_lge. Just add it to your manifest.
Edit: Was looking at your devices trees on CM github and seems it isn't part of the dependencies to add the vendor folder. So just make a local_manifest.xml in .repo/local_manifest and then add this
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge" path="vendor/lge" revision="cm-13.0" />
</manifest>
Click to expand...
Click to collapse
Thanks. I've done that and tried again.
My current build log can be found in this text file (it exceeds pastebin and hastebin's limit): http://bit.ly/1rawolw
spenceboy98 said:
Thanks. I've done that and tried again.
My current build log can be found in this text file (it exceeds pastebin and hastebin's limit): http://bit.ly/1rawolw
Click to expand...
Click to collapse
It's the same error because you didn't repo sync. Sorry I failed to mention that.
WildfireDEV said:
It's the same error because you didn't repo sync. Sorry I failed to mention that.
Click to expand...
Click to collapse
I did repo sync though? Hm, I'll have to take a look at it when I get home.
Okay, I can confirm that the files were downloaded. Here's the new build log: http://bit.ly/1rawolw
Thanks for your help so far.
Edit: Sorry for the double post. I just feel like people won't see my post if I just edit.
*Bump*
Can anyone help with this?
I'm trying to port Halium 7.1 to Asus Zenfone 2 Laser (ZE500KL/Z00ED) to port Ubuntu Touch. But, I'm stuck on the
Code:
breakfast [codename]
command.
This device is android_device_asus_msm8916-common on GitHub. But, when I try to execute
Code:
breakfast msm8916-common
it returns this error:
Code:
** Invalid variant: 'common'
** Must be one of user userdebug eng
build/core/product_config.mk:249: *** Can not locate config makefile for product "msm8916". Stop.
Device msm8916 not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS).
Repository for msm8916 not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:249: *** Can not locate config makefile for product "msm8916". Stop.
build/core/product_config.mk:249: *** Can not locate config makefile for product "msm8916". Stop.
** Don't have a product spec for: 'msm8916'
** Do you have the right repo manifest?
Is there a way to bypass this "feature" of breakfast? I tried to execute the command with 'msm8916-common' and "msm8916-common" but it returns the same error. I think that the hyphen/dash is a reserved character, but I can't change it in LineageOS repositories.
0
Seppppx said:
The device tree name is not the device codename. The codename used to start a build us in the vendorsetup.sh file. For example in the https://github.com/2003Frost/android_device_asus_Z01M/blob/android-7.1/vendorsetup.sh
there are these lunch combos
add_lunch_combo lineage_Z01M-userdebug
add_lunch_combo lineage_Z01M-user
add_lunch_combo lineage_Z01M-eng.
So that means you can do "lunch lineage_Z01M-user" or the other combos.
Also breakfast is useless. A more info about Android "meals" is there https://www.trcompu.com/MySmartPhone/AndroidKitchen/Breakfast-Brunch-Lunch.html use lunch for building unofficial ROMs.
Click to expand...
Click to collapse
Thank you... I'm following this documentation of Halium. I want to port Ubuntu Touch to this device after that.
Seppppx said:
The device tree name is not the device codename. The codename used to start a build us in the vendorsetup.sh file. For example in the https://github.com/2003Frost/android_device_asus_Z01M/blob/android-7.1/vendorsetup.sh
there are these lunch combos
add_lunch_combo lineage_Z01M-userdebug
add_lunch_combo lineage_Z01M-user
add_lunch_combo lineage_Z01M-eng.
So that means you can do "lunch lineage_Z01M-user" or the other combos.
Also breakfast is useless. A more info about Android "meals" is there https://www.trcompu.com/MySmartPhone/AndroidKitchen/Breakfast-Brunch-Lunch.html use lunch for building unofficial ROMs.
Click to expand...
Click to collapse
Also, I only found msm8916-common, not Z00ED. I know this device has published source code because there are lots of unofficial ROMs for it. If you know what "msm8916-common" means, could you explain it? I know it's the device's chipset but what do they mean by "common"?
0
Seppppx said:
msm8916-common is the common tree for the msm8916. The msm is the SoC (system on chip) that it has the hardware to support every component and is a lot of components.
The SoC is the
CPU
GPU
Modem
Cellular (4G, 3G, 2G)
Wifi
Bluetooth
GPS
Camera
Etc.
This stuff that the SoC features needs its own configuration. So to separate the SoC config with the device configs they made the "common tree". The common tree won't work if you build with it. It's intended that there is the device-specific tree that calls the common SoC tree.
The " developers" that make custom ROMs for your phone are losers, which keep the device sources for themselves so they are the only people that make ROMs. And that's disgusting.
After pretty long searching I found a device tree for your phone. It uses the common tree, so have that too.
https://github.com/audahadi/android_device_asus_Z00ED
If you need any help with this, you can ask anything.
Click to expand...
Click to collapse
Ok, thank you. I'll try to start from the beginning. Could you look at the Halium documentation and tell me what am I doing wrong? I'm completely new to ROM porting. This is my device manifest that I made using the instructions: https://github.com/adazem009/halium-devices/blob/halium-7.1/manifests/asus_Z00ED.xml
The vendor blobs that I found are here: https://github.com/TheMuppets/proprietary_vendor_asus/tree/lineage-17.1/msm8916-common
Is it OK to use them? Also, how can I use the audahadi's device tree in breakfast? It says something that I need to add it to local_manifests/roomservice.xml. Does it mean ~/halium/.repo/local_manifests/roomservice.xml? How do I setup this file?
Seppppx said:
msm8916-common is the common tree for the msm8916. The msm is the SoC (system on chip) that it has the hardware to support every component and is a lot of components.
The SoC is the
CPU
GPU
Modem
Cellular (4G, 3G, 2G)
Wifi
Bluetooth
GPS
Camera
Etc.
This stuff that the SoC features needs its own configuration. So to separate the SoC config with the device configs they made the "common tree". The common tree won't work if you build with it. It's intended that there is the device-specific tree that calls the common SoC tree.
The " developers" that make custom ROMs for your phone are losers, which keep the device sources for themselves so they are the only people that make ROMs. And that's disgusting.
After pretty long searching I found a device tree for your phone. It uses the common tree, so have that too.
https://github.com/audahadi/android_device_asus_Z00ED
If you need any help with this, you can ask anything.
Click to expand...
Click to collapse
Also, I found another device tree for LineageOS 16: https://github.com/Asus-MSM8916/android_device_asus_Z00ED
How do these device trees differ? According to Halium documentation, Halium is based on LineageOS 14.1. Does that mean I must use LineageOS 14.1 device tree for it? I was also thinking that I could build LineageOS 17 for this device. But what if we don't have LineageOS 17 device tree? Is it possible to build it?
0
Seppppx said:
The documentation looks good.
The sources are required to be android 5.1 (cm12.1) or android 7.1 (cm14.) so you want the latest, which is android 7.1 (cm14.1) you can't use android 10 sources because they are too different. You can extract the vendor blobs from your phone with the device tree script. (extract-files.sh)
The manifest you have has the Z00ED device tree missing. And the common tree missing. And doesn't have a remote. The documentation explained this. And also doesn't have the repo location. Keep in mind that a manifest just downloads stuff (most of the times). You don't need it.
This is the right manifest.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github"
fetch="http://github.com" />
<project path="audahadi/android_device_asus_Z00ED" name=device_asus" remote="github" target_path": "device/asus/Z00ED" />
<project path="LineageOS /
android_device_asus_msm8916-common" name=msm8916_asus-common" remote="github" target_path": "device/asus/msm8916-common" />
<project path="kernel-hut/android_kernel_asus_msm8916" name=msm8916_asus-kernel" remote="github" target_path": "kernel/asus/msm8916-common" />
</manifest>
You don't use breakfast while building unofficial ROMs. Just simply ignore the step. You don't need to put anything to the roomservice. It's the same as the local manifest.
Look at AlaskaLinuxUser on YouTube he has great guides on building, device trees, kernels, etc. This is not self promotion. This is not my channel.
---------- Post added at 12:47 PM ---------- Previous post was at 12:44 PM ----------
They really differ, mostly because of project treble. You need to use cm14.1 device tree for halium.
You can also make the Los17 device tree yourself. It's not that hard and I can help you.
Click to expand...
Click to collapse
Ok, thanks for your help. I'll try to use your manifest and tell you if it works. I watched a Halium live porting video and followed them to create the manifest. What does the "path" attribute mean and how is it used?
Seppppx said:
The documentation looks good.
The sources are required to be android 5.1 (cm12.1) or android 7.1 (cm14.) so you want the latest, which is android 7.1 (cm14.1) you can't use android 10 sources because they are too different. You can extract the vendor blobs from your phone with the device tree script. (extract-files.sh)
The manifest you have has the Z00ED device tree missing. And the common tree missing. And doesn't have a remote. The documentation explained this. And also doesn't have the repo location. Keep in mind that a manifest just downloads stuff (most of the times). You don't need it.
This is the right manifest.
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="github"
fetch="http://github.com" />
<project path="audahadi/android_device_asus_Z00ED" name=device_asus" remote="github" target_path": "device/asus/Z00ED" />
<project path="LineageOS /
android_device_asus_msm8916-common" name=msm8916_asus-common" remote="github" target_path": "device/asus/msm8916-common" />
<project path="kernel-hut/android_kernel_asus_msm8916" name=msm8916_asus-kernel" remote="github" target_path": "kernel/asus/msm8916-common" />
</manifest>
You don't use breakfast while building unofficial ROMs. Just simply ignore the step. You don't need to put anything to the roomservice. It's the same as the local manifest.
Look at AlaskaLinuxUser on YouTube he has great guides on building, device trees, kernels, etc. This is not self promotion. This is not my channel.
---------- Post added at 12:47 PM ---------- Previous post was at 12:44 PM ----------
They really differ, mostly because of project treble. You need to use cm14.1 device tree for halium.
You can also make the Los17 device tree yourself. It's not that hard and I can help you.
Click to expand...
Click to collapse
Also, I think you need to include vendor blobs in the manifest. But I'm having trouble adding it there. Look at this repository. I want to use the Z00xD directory but I think the build system will think my device is Z00ED and it'll try to find it. What's the correct syntax for this? Do I need to fork this repo and rename this directory?
0
Seppppx said:
"Path" indicates the destination folder. Or simply where the downloaded stuff should be put to.
For all repo manifest commands you can look at https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md
---------- Post added at 02:25 PM ---------- Previous post was at 02:18 PM ----------
OK I'll edit the manifest post and add the vendor blobs there.
You don't need to rename the blobs. If you look at the device tree it wants these blobs. It calls the vendor files with the name of Z00xD which is the exact same repo as you linked.
Click to expand...
Click to collapse
Oh ok. I'll try to create a manifest on my own, and if it doesn't work, I'll try the one that you created. There are some manifests for other devices in the Halium source, so I'm creating using them.
0
Seppppx said:
I've edited the manifest added vendor blobs and fixed some errors. If you download with the manifest and run the build you should have a successful build.
Click to expand...
Click to collapse
Ok. I've created my manifest and the output of bulding seems fine... here it is:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="adh"
fetch="https://github.com/audahadi"
revision="N" />
<remote name="krh"
fetch="https://github.com/kernel-hut"
revision="N" />
<project path="device/asus/Z00ED" name="android_device_asus_Z00ED" remote="adh" />
<project path="kernel/asus/msm8916" name="android_kernel_asus_msm8916" remote="krh" />
<project path="vendor/asus" name="android_vendor_asus" remote="adh" />
</manifest>
I made it using Fairphone 2's manifest:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/fairphone/FP2" name="Halium/android_device_fairphone_fp2" remote="hal" />
<project path="kernel/fairphone/msm8974" name="Halium/android_kernel_fairphone_msm8974" remote="hal" />
<project path="vendor/fairphone" name="proprietary_vendor_fairphone" remote="them" />
</manifest>
0
Seppppx said:
The manifest works. I wouldn't like it because it has multiple remotes when only one is needed like in my manifest.
This doesn't make it bad, but it could be better at least in my opinion.
Also you are forgetting the common tree.
Click to expand...
Click to collapse
Oh yeah, that's right. I'm getting this error:
Code:
./setup-makefiles.sh: line 25: ./../../asus/msm8916-common/setup-makefiles.sh: No such file or directory
I'll try your manifest now.
Seppppx said:
The manifest works. I wouldn't like it because it has multiple remotes when only one is needed like in my manifest.
This doesn't make it bad, but it could be better at least in my opinion.
Also you are forgetting the common tree.
Click to expand...
Click to collapse
You have some formatting errors near the "name" attributes. Now, I get this error:
Code:
fatal: error parsing manifest ~/halium/virt-parts/mounts/halium/.repo/local_manifests/device.xml: duplicate attribute: line 5, column 100
Why did you add path 2 times?
Seppppx said:
The manifest works. I wouldn't like it because it has multiple remotes when only one is needed like in my manifest.
This doesn't make it bad, but it could be better at least in my opinion.
Also you are forgetting the common tree.
Click to expand...
Click to collapse
I've modified your manifest. Is everything OK here?
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="audahadi"
fetch="https://github.com/audahadi"
revision="N" />
<remote name="kernelhut"
fetch="https://github.com/kernel-hut"
revision="N" />
<project path="device/asus/Z00ED" name="android_device_asus_Z00ED" remote="audahadi" />
<project path="device/asus/msm8916-common" name="android_device_asus_msm8916-common" remote="los" revision="cm-14.1" />
<project path="kernel/asus/msm8916-common" name="android_kernel_asus_msm8916" remote="kernelhut" />
<project path="vendor/asus/Z00xD" name="android_vendor_asus" remote="audahadi" />
</manifest>
It's now setting up the device and I didn't get any error so far.
0
Seppppx said:
I think I know the error. Try this file
Click to expand...
Click to collapse
The link to that file is invalid (404 Not Found). I tried to use my manifest and I "think" the build was successful. I'm now stuck here. It's failing when I execute
Code:
mka hybris-boot
I get this error:
Code:
ninja: Entering directory `.'
ninja: error: '~/halium/out/target/product/Z00ED/kernel', needed by '/media/Disk2/virt-parts/mounts/halium/out/target/product/Z00ED/obj/ROOT/hybris-boot_intermediates/hybris-boot.img', missing and no known rule to make it
make: *** [build/core/ninja.mk:152: ninja_wrapper] Error 1
make: Leaving directory '~/halium'