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
I ran into This guide a few days ago and decided to give it a try for fun. however, i am stuck at this step:
Now, Lets add the device specific trees:
Add your own device tree, kernel tree, hardware source tree, & vendor proprietaries tree in the manifest. (BEFORE the manifest closing tags)
For example, I'm using all corresponding trees for Samsung Galaxy S3 i9300 - International
Following is just an example, not what you should copy/paste. SEARCH & USE YOUR OWN DEVICE SPECIFIC TREES.
Code:
<!-- Add i9300 device tree -->
<project name="CyanogenMod/android_device_samsung_i9300" path="device/samsung/i9300" remote="github" revision="jellybean" />
<!-- Add Samsung Kernel SMDK4412 -->
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="jellybean" />
<!-- Add samsung hardware source tree -->
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
<!-- Add Samsung Proprietary Vendor Files -->
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="jellybean" />
Click to expand...
Click to collapse
I found our device tree and Kernel (both from Mevrodel's github) but am having trouble finding the hardware source tree, & vendor proprietaries tree. Can anyone point me in the right direction? thanks
iurnait said:
I ran into This guide a few days ago and decided to give it a try for fun. however, i am stuck at this step:
I found our device tree and Kernel (both from Mevrodel's github) but am having trouble finding the hardware source tree, & vendor proprietaries tree. Can anyone point me in the right direction? thanks
Click to expand...
Click to collapse
Glad you asked! This is my entire local_manifest.xml. If you add it to the main manifest.xml, like that guide says, just copy the 3 long lines.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="Mevordel/android_device_samsung_venturi" path="device/samsung/venturi" remote="github" revision="jellybean" />
<project name="Mevordel/android_kernel_samsung_venturi" path="kernel/samsung/venturi" remote="github" revision="jellybean" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
</manifest>
To make the vendor/proprietaries tree, download the latest CM10 alpha, and after repo syncing, go to device/samsung/venturi and run ./extract-files.sh ~/Downloads/cm-whatever.zip (use the appropriate path). Or, if you have cm10 installed, just run ./extract-files.sh - make sure you do this before running lunch.
Just for reference: all of the XYZ should be venturi, and we are hdpi, not xhdpi. Try skipping the vendor props section. There is no vendor repository; it is created by the script
so should i use your vold or Cyanogenmods?
iurnait said:
so should i use your vold or Cyanogenmods?
Click to expand...
Click to collapse
Until I figure out how to submit a proper patch to the CM team, you have to use mine for internal storage to work. It's the same as theirs except one modification.
Thanks for all your help. I finally got everything set up and am building right now.
Sent from my YP-G70 using xda app-developers app
I need the MT15i's (hallon) specific device trees for building Paranoid Android Jelly Bean from source. Can anyone help me with that in this format?:
Now, Lets add the device specific trees:
Add your own device tree, kernel tree, hardware source tree, & vendor proprietaries tree in the manifest. (BEFORE the manifest closing tags)
For example, I'm using all corresponding trees for Samsung Galaxy S3 i9300 - International
Following is just an example, not what you should copy/paste. SEARCH & USE YOUR OWN DEVICE SPECIFIC TREES.
Code:
<!-- Add i9300 device tree -->
<project name="CyanogenMod/android_device_samsung_i9300" path="device/samsung/i9300" remote="github" revision="jellybean" />
<!-- Add Samsung Kernel SMDK4412 -->
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="jellybean" />
<!-- Add samsung hardware source tree -->
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
<!-- Add Samsung Proprietary Vendor Files -->
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="jellybean" />
Click to expand...
Click to collapse
https://github.com/CyanogenMod/android_device_semc_hallon
I think
Sent from my Xperia Neo using xda app-developers app
yes but i need the kernel and the proprietary~ files too.
Tapatalk 2-vel küldve az én MT15i-ről
hey guy,
i wanna build paranoid rom from source for lg l5 p610... i don t understand the right paths to github ( cyanogenmod ) maybe anyone can check the right paths and can help ...
it must be look like this example ( see on paraniod guide ) but i dont understand the e610 tree
<!-- Add i9300 device tree -->
<project name="CyanogenMod/android_device_samsung_i9300" path="device/samsung/i9300" remote="github" revision="jellybean" />
<!-- Add Samsung Kernel SMDK4412 -->
<project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="jellybean" />
<!-- Add samsung hardware source tree -->
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="jellybean" />
<!-- Add Samsung Proprietary Vendor Files -->
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="jellybean" />
This is the github for the LG-P700 CM Kerrnel : https://github.com/CyanogenMod/lge-kernel-p700
This one is for drivers : https://github.com/CyanogenMod/android_device_lge_msm7x27a-common
Vendor github should be this: https://github.com/CyanogenMod/android_device_lge_p700
what i must write now into the manifest.xml ? pls help :good:
it seems your not yet done on this Sir Flatzki??
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'