How To Compile OmniROM For My Device? - Android Q&A, Help & Troubleshooting

So, after destroying a tremendous amount of data and a whole lot of wait, I finally synced the whole OmniROM 6.0 source code via repo. Now I want to compile it for my device XOLO BLACK (Codename: BLACK) so, can somebody tell me how I can and what am I gonna need (I mean files, like vendor files, kernel etc.)?
Also, how can I extract its device tree? Because it's not available online.

You will need the full kernel source code to even begin and everything I have found says it is not released. Without it you are out of luck.

zelendel said:
You will need the full kernel source code to even begin and everything I have found says it is not released. Without it you are out of luck.
Click to expand...
Click to collapse
No no, kernel is here: https://github.com/hiveinside/xolo_kernel
What do I need now?

NutVolt said:
No no, kernel is here: https://github.com/hiveinside/xolo_kernel
What do I need now?
Click to expand...
Click to collapse
You will need the device tree as well as working on the errors in the kernel as they come up and they will. Also you may have to fix any issues with the source as it only contains the open source parts. Check out some of the building tuts on the site.
It will not be a simple matter of adding the kernel and stuff and then building. It normally takes weeks of bug hunting and fixing to get it to even boot.

zelendel said:
You will need the device tree as well as working on the errors in the kernel as they come up and they will. Also you may have to fix any issues with the source as it only contains the open source parts. Check out some of the building tuts on the site.
It will not be a simple matter of adding the kernel and stuff and then building. It normally takes weeks of bug hunting and fixing to get it to even boot.
Click to expand...
Click to collapse
I know it's gonna take long but if I can't even start then I'll feel very bad, all the hard work I've done to just fetch the source.
Anyway, how can I make a device tree? Can you teach me?

Related

build cm10.1 kernel

anyone know if it's feasible to build the cm10.1 kernel without syncing the entire source?
I've tried googling it numerous times but nothing came up pertaining to it. i did however find how to build the cm9 kernel without syncing the entire source, bit couldn't get it to build...
thanks if anyone can help me five my way
ztotherad said:
anyone know if it's feasible to build the cm10.1 kernel without syncing the entire source?
I've tried googling it numerous times but nothing came up pertaining to it. i did however find how to build the cm9 kernel without syncing the entire source, bit couldn't get it to build...
thanks if anyone can help me five my way
Click to expand...
Click to collapse
See the Aries kernel tree on my github. Its a slightly modified version of the cyanogenmod tree, and includes a build script and initramfs so syncing the entire source tree isn't necessary to build from it.
jt1134 said:
See the Aries kernel tree on my github. Its a slightly modified version of the cyanogenmod tree, and includes a build script and initramfs so syncing the entire source tree isn't necessary to build from it.
Click to expand...
Click to collapse
thanks. i was honestly waiting for you to come in here and tell me it won't work without syncing it all, lol. I'll check it out though. thanks again! you effin' rock!
ztotherad said:
thanks. i was honestly waiting for you to come in here and tell me it won't work without syncing it all, lol. I'll check it out though. thanks again! you effin' rock!
Click to expand...
Click to collapse
NP. Iirc, I originally added the scripts after you asked me about it a few months back
All you should have to do is clone the repo, and then run the build.sh script that's included. It will download the right toolchain for you, build the initramfs archives and then compile the kernel.
I also set it up to create a flashable zip with the new kernel and modules, so the build script should handle all the essential steps automatically.
jt1134 said:
NP. Iirc, I originally added the scripts after you asked me about it a few months back
All you should have to do is clone the repo, and then run the build.sh script that's included. It will download the right toolchain for you, build the initramfs archives and then compile the kernel.
I also set it up to create a flashable zip with the new kernel and modules, so the build script should handle all the essential steps automatically.
Click to expand...
Click to collapse
haha yeah, cause a few months back you said i had to sync the whole source.
it sounds like you've been working your ass off. lol
but that's definitely awesome. it makes it easier on us all.

[DEV][WIP] K900 cm10.1 device tree

K900 Device Tree project
hi folks, a couple of months ago i decided it was time to create a working device tree at least to build cwm, since lenovo is very bad at opensource with us, it is nearly impossible to build a working cyanogen. Fortunately cwm doesn't need too much to be build so i grabbed the motorola razr i device tree from @hazou and wrote a new device tree for us. But unfortunately we still need a developer firmware from lenovo to flash recovery.img's. However, cwm builds well and i want to share my work to any interested developer who are willing to help.
Click to expand...
Click to collapse
in this github you will find all needed repos and info --> https://github.com/lenovo-k900
Click to expand...
Click to collapse
Its true, thanks for your effort QuBeX. I hope it works. I will follow.
Great job! I am also interested in hacking my K900 to enable kvm kernel module to run VMs on it.
The issue was always their stupid secure boot process which prevent use to put our kernel or even a kernel module into the system.
You refer to a developer firmware. Did you get chance to have access to one of those?
Does that turns off secure boot or you somhow got the signing key?
Please pm me if you know more details on that.
Thanks a lot.
chinabull said:
Great job! I am also interested in hacking my K900 to enable kvm kernel module to run VMs on it.
The issue was always their stupid secure boot process which prevent use to put our kernel or even a kernel module into the system.
You refer to a developer firmware. Did you get chance to have access to one of those?
Does that turns off secure boot or you somhow got the signing key?
Please pm me if you know more details on that.
Thanks a lot.
Click to expand...
Click to collapse
Lenovo hasn't provided a dev firmware yet. And I don't think they will... Anyway we now have working recovery, and we are finding out how to bypass signature check, but it is really difficult.
Talking about the kernel, have you ever tried kexec? I don't know very much of it but you can find a lot of info and stuff in google
Thanks, man. That is a briliant idea!
I have built the kexec executible and have loaded my custom kernel into the memory.
Of course when it ran the new kernel, I got a black screen for now. But it's a good start. I'll debug it and keep you guys updated with the progress.
chinabull said:
Thanks, man. That is a briliant idea!
I have built the kexec executible and have loaded my custom kernel into the memory.
Of course when it ran the new kernel, I got a black screen for now. But it's a good start. I'll debug it and keep you guys updated with the progress.
Click to expand...
Click to collapse
Just a quick update on progress.
Tried all kinds of tricks including modifying kernel code on the fly.
Still no luck on kexec yet.
But I found a loophole in the JB4.3 kernel which I used to have the kernel module signature check disabled.
Now I can load any kerenl module I built.
If anybody has interest on that tool, please PM me.
Now we have AOSP 4.3 branch in our device tree: https://github.com/lenovo-k900/android_device_lenovo_redhookbay/tree/aosp-4.3
Author: MaXxXanter
Can't wait for this. I wish i could do some support too...
Sent from my Lenovo K900_ROW using XDA Free mobile app
can i use this device tree for build cm12.1 rom?
xxx-man-by said:
Now we have AOSP 4.3 branch in our device tree: https://github.com/lenovo-k900/android_device_lenovo_redhookbay/tree/aosp-4.3
Author: MaXxXanter
Click to expand...
Click to collapse
is possible to build cm11 with that source sir?
xxx-man and qubex and any other who is putting time to get some nice roms for our K900 is greatly appreciated.

[Q] Stuck at Adding device to OmniRom source.

I downloaded the OmniROM source but then I a bit confused what to do when it comes to adding a device to the ROM source. Can anyone help me with this.........
thejoker said:
I downloaded the OmniROM source but then I a bit confused what to do when it comes to adding a device to the ROM source. Can anyone help me with this.........
Click to expand...
Click to collapse
Are you trying to add a device already supported by Omni or adding a new device not already supported (In which case you will need to create a new device tree)?
shimp208 said:
Are you trying to add a device already supported by Omni or adding a new device not already supported (In which case you will need to create a new device tree)?
Click to expand...
Click to collapse
I think im adding a new device.BTW im making rom for redmi 1s.So how should I do it
thejoker said:
I think im adding a new device.BTW im making rom for redmi 1s.So how should I do it
Click to expand...
Click to collapse
Since your manufacture doesn't release the kernel source for your device that will make things a little bit different. But I would recommend checking out and following the steps in this guide, and then using this guide to convert the device tree to be Omni ROM compatible. The best way to get experience with creating device tree's is to look at similar device tree's to the device you own (Same SoC, same screen, etc.) and convert that device tree to suite your device. Let me know if you still have questions I'll be happy to answer them for you.
shimp208 said:
Since your manufacture doesn't release the kernel source for your device that will make things a little bit different. But I would recommend checking out and following the steps in this guide, and then using this guide to convert the device tree to be Omni ROM compatible. The best way to get experience with creating device tree's is to look at similar device tree's to the device you own (Same SoC, same screen, etc.) and convert that device tree to suite your device. Let me know if you still have questions I'll be happy to answer them for you.
Click to expand...
Click to collapse
The device tree and vendor tree both are available at github.
https://github.com/armani-dev
thejoker said:
The device tree and vendor tree both are available at github.
https://github.com/armani-dev
Click to expand...
Click to collapse
In that case it will be easier for you to compile Omni, what I would recommend doing is downloading the device tree and vendor tree for your device, and placing them in your Omirom source vendor folder and device folder respectively, and then taking the omni_armani.mk from here and placing it in your device folder that you downloaded above and using that to start compiling Omnirom.
shimp208 said:
In that case it will be easier for you to compile Omni, what I would recommend doing is downloading the device tree and vendor tree for your device, and placing them in your Omirom source vendor folder and device folder respectively, and then taking the omni_armani.mk from here and placing it in your device folder that you downloaded above and using that to start compiling Omnirom.
Click to expand...
Click to collapse
I downloaded both and placed the folders in their respective folders.But do I need to edit some .mk files for auccessfull compilation??Because everytime I lunch,I get errors.
thejoker said:
I downloaded both and placed the folders in their respective folders.But do I need to edit some .mk files for auccessfull compilation??Because everytime I lunch,I get errors.
Click to expand...
Click to collapse
Make sure your folder structure matches the device and vendor tree names for example it should be: "device/xiaomi/armani" you can see in full_armani.mk the developer has it set as "device/xiaomi/armani/" which means you should do the same. A couple of years ago I was compiling something for the Droid 1 and was using a device and vendor tree I had downloaded and I was getting an error about lunch could't find the device turns out I had my folders as device/moto/sholes when the developer had it in their tree as device/motorola/sholes which solved the lunch problem. Let me know if you still have questions.
Make sure your folder structure matches the device and vendor tree names for example it should be: "device/xiaomi/armani" you can see in full_armani.mk the developer has it set as "device/xiaomi/armani/" which means you should do the same. A couple of years ago I was compiling something for the Droid 1 and was using a device and vendor tree I had downloaded and I was getting an error about lunch could't find the device turns out I had my folders as device/moto/sholes when the developer had it in their tree as device/motorola/sholes which solved the lunch problem. Let me know if you still have questions.
Click to expand...
Click to collapse
Do I have to edit the Android.mk file in the device tree of my device????
thejoker said:
Do I have to edit the Android.mk file in the device tree of my device????
Click to expand...
Click to collapse
It's easier to just have your folder structure in your OmniROM source match the structure indicated by the device tree.
@shimp208 @thejoker anyone free to guide me? i am also trying to build omni rom for my device.
have snyced the repo and even have most of the stuff thats needed figured out. but can't figure out what goes where?
this is the device tree that i am using, i added it to local manifest.
Now the files which i need to edit mentioned on this page http://docs.omnirom.org/Porting_Omni_To_Your_Device
are now here to be found in the device folder? where are they??
i found them at on other person device tree of my device which i edited just to figure out stuff. but now where to place them?? also i can't seem to figure out the json file mentied on this webpage .
any sort of help will be appreciated.
Kapiljhajhria said:
@[email protected] anyone free to guide me? i am also trying to build omni rom for my device.
have snyced the repo and even have most of the stuff thats needed figured out. but can't figure out what goes where?
this is the device tree that i am using, i added it to local manifest.
Now the files which i need to edit mentioned on this page http://docs.omnirom.org/Porting_Omni_To_Your_Device
are now here to be found in the device folder? where are they??
i found them at on other person device tree of my device which i edited just to figure out stuff. but now where to place them?? also i can't seem to figure out the json file mentied on this webpage .
any sort of help will be appreciated.
Click to expand...
Click to collapse
Which specific files are you not sure where to place? A good starting point is to look where they are placed on a similar device tree and place them there. If you can provide some more details it will be very helpful. Also I am in the process of moving back to school when I get my stuff setup over the next day or so I'll try and take a closer look for you .
shimp208 said:
Which specific files are you not sure where to place? A good starting point is to look where they are placed on a similar device tree and place them there. If you can provide some more details it will be very helpful. Also I am in the process of moving back to school when I get my stuff setup over the next day or so I'll try and take a closer look for you .
Click to expand...
Click to collapse
here is the thread which i created. i have explained my sitaution in details.
http://forum.xda-developers.com/chef-central/android/advice-help-porting-omni-rom-op2-t3284334

Want To Compile OmniROM

Hello everyone, I'm a complete noob at compiling. I'm thinking about compiling OmniROM 6.0 for XOLO BLACK. So, I wanted to ask how big is the download size of its source code and do we have a need of Kernel while compiling? Although my device does have an open source kernel. Could be found here: https://github.com/hiveinside/xolo_kernel
I'll be grateful if someone could help me with my questions 
You will need about 50-100gb for all the source. Yes you will also need the kernel source as well as the device trees. Then it will just be a matter of fixing the bugs that come up. You didn't think it would just work did you?
zelendel said:
You will need about 50-100gb for all the source. Yes you will also need the kernel source as well as the device trees. Then it will just be a matter of fixing the bugs that come up. You didn't think it would just work did you?
Click to expand...
Click to collapse
No no, I meant what would be the download size? You know after doing the "repo sync" command. Also, I think it'll extract the kernel automatically from my device and what is "device tree?" Vendor files?
Well, I know that I have to face bugs but I think awesome people like you will help me fix 'em.
Wish me luck!

OmniRom Oreo 8.1 unofficial

So I have successfully built OmniRom 8.1 Oreo for Shamu the zip file is a little over 500mb. The package flashes correctly but fails to boot. I have already tried to change the BoardConfig.mk file to be SeLinux=Permissive but it still fails to boot. My device is decrypted as well. What could be a source of the non boot issue other than what I have mentioned. This project is taking quite some time to complete.
HELP!!!!!
Does omnirom even have a 8.1 branch for shamu? I can't see it.
Elektroschmock said:
Does omnirom even have a 8.1 branch for shamu? I can't see it.
Click to expand...
Click to collapse
No it doesn't I am trying to bring it up, I know they don't officially support it for Oreo. They don't have a device maintainer for Shamu anymore. I have been using other device trees and filling in the required files for building Omni. Like I said I can get a successful build but in won't boot.
Rondeau79 said:
No it doesn't I am trying to bring it up, I know they don't officially support it for Oreo. They don't have a device maintainer for Shamu anymore. I have been using other device trees and filling in the required files for building Omni. Like I said I can get a successful build but in won't boot.
Click to expand...
Click to collapse
Well thats not how a bringup works. You need a ****load oft kernel and device commits for shamu to Boot Oreo.
The easiest way would be forking a working device and kernel repository...e.g. LineageOS. Next step would be adapting some makefiles and overlays.
Not much to do, as we have already done the Oreo bringup months ago.
Elektroschmock said:
Does omnirom even have a 8.1 branch for shamu? I can't see it.
Click to expand...
Click to collapse
Elektroschmock said:
Well thats not how a bringup works. You need a ****load oft kernel and device commits for shamu to Boot Oreo.
The easiest way would be forking a working device and kernel repository...e.g. LineageOS. Next step would be adapting some makefiles and overlays.
Not much to do, as we have already done the Oreo bringup months ago.
Click to expand...
Click to collapse
Yeah that's what I did. When the build first starts something in the vendor folder isn't being globed. It's only 99% of that folder that is accounted for. The build is successful but it just won't boot. I don't have much coding experience so this is really hard.
Rondeau79 said:
Yeah that's what I did. When the build first starts something in the vendor folder isn't being globed. It's only 99% of that folder that is accounted for. The build is successful but it just won't boot. I don't have much coding experience so this is really hard.
Click to expand...
Click to collapse
Do an -eng build and read logcat and dmesg via ADB. Usually you see whats wrong.
Rondeau79 said:
Yeah that's what I did. When the build first starts something in the vendor folder isn't being globed. It's only 99% of that folder that is accounted for. The build is successful but it just won't boot. I don't have much coding experience so this is really hard.
Click to expand...
Click to collapse
Hey how's it going? I know you've been trying hard to get an 8.1 Omni build running. FYI, @bthorne79 put out an Omni 8.1 build for Shamu back in December of last year. I tried it at the time and it was a nice build but if I remember correctly, the theming didn't work. I tried changing to a dark theme but it just stayed on default light theme. I always use a dark or black theme on Shamu and I'd rather not have to use substratum. Other than that, the rom ran very well.
Maybe give him a shout, after all you both have 79 in your name. Good luck, I definitely wouldn't mind seeing an Omni 8.1 build.
Mike T
webdroidmt said:
Hey how's it going? I know you've been trying hard to get an 8.1 Omni build running. FYI, @bthorne79 put out an Omni 8.1 build for Shamu back in December of last year. I tried it at the time and it was a nice build but if I remember correctly, the theming didn't work. I tried changing to a dark theme but it just stayed on default light theme. I always use a dark or black theme on Shamu and I'd rather not have to use substratum. Other than that, the rom ran very well.
Maybe give him a shout, after all you both have 79 in your name. Good luck, I definitely wouldn't mind seeing an Omni 8.1 build.
Mike T
Click to expand...
Click to collapse
Yeah this project has been a real headache! Nothing like before were most of the files and programming has been done. I am not done yet, I don't give up too easy. This has been quite an undertaking.
Follow this thread: https://forum.xda-developers.com/showpost.php?p=54118631&postcount=4
That'll give you an idea about what all things to consider while building for a device :fingers-crossed:
Nitin
Rondeau79 said:
Yeah this project has been a real headache! Nothing like before were most of the files and programming has been done. I am not done yet, I don't give up too easy. This has been quite an undertaking.
Click to expand...
Click to collapse
If you push your sources somewhere where we can see it, it should be easier for us to help you.
nitin.chobhe said:
Follow this thread: https://forum.xda-developers.com/showpost.php?p=54118631&postcount=4
That'll give you an idea about what all things to consider while building for a device :fingers-crossed:
Nitin
Click to expand...
Click to collapse
Yeah that guide is so outdated! I followed that kind of stuff years ago when I couldn't build from source. I have done many builds that boot for 3 devices. This is a different problem.
Elektroschmock said:
If you push your sources somewhere where we can see it, it should be easier for us to help you.
Click to expand...
Click to collapse
Yeah I am using Omni ROM source with device trees and kernel source from Lineage Oreo. I have modified files and make sources. I have all up to date vendor blobs cloned. There is no build errors just an issue with the system not booting. Pushing my source upstream would be to my personal GitHub account which I have never had to do. Usually I repo/clone source build and upload to Android File Host for working zips. I have never pushed anything up from my laptop!
Rondeau79 said:
Yeah that guide is so outdated! I followed that kind of stuff years ago when I couldn't build from source. I have done many builds that boot for 3 devices. This is a different problem.
Click to expand...
Click to collapse
Even though it is outdated it is still very much applicable. I linked that thread because you mentioned this.
Good that you know the problem. All the best!
Nitin
Rondeau79 said:
Yeah I am using Omni ROM source with device trees and kernel source from Lineage Oreo. I have modified files and make sources. I have all up to date vendor blobs cloned. There is no build errors just an issue with the system not booting. Pushing my source upstream would be to my personal GitHub account which I have never had to do. Usually I repo/clone source build and upload to Android File Host for working zips. I have never pushed anything up from my laptop!
Click to expand...
Click to collapse
It's not that you need to push it somewhere to get working zips, it's just for us to see your modifications.
Otherwise it is just guessing what you did.
Making it compile is one thing...making it work is a whole different story. When I did the Lineage Oreo bringup I had many things to fix untill it bootet properly.
Lineage's device tree for shamu depends on several other Lineage repositories. For example:
android_hardware_lineage_interfaces
android_hardware_qcom_gps
android_vendor_lineage
android_device_lineage_sepolicy
So just cloning the device repo without examining the reason for your 'bootloop' will get you nowhere.
I'd suggest you to do an engineering build which is easier to debug. Altought I would make this build permissive as selinux denials are a common reason for a bootloop.
How about trying a known working kernel such as popcorn? If the kernel works, you might be able to get some logs. And if you know whether your kernel is the problem, you are one step closer.
runekock said:
How about trying a known working kernel such as popcorn? If the kernel works, you might be able to get some logs. And if you know whether your kernel is the problem, you are one step closer.
Click to expand...
Click to collapse
If he is based of lineage's device tree, then Lineage's kernel is the best choice.
You should always be able to grab a log, no matter which kernel you are using.
Yeah willing to help out put your stuff up on git and give links
My webhost is down right meow but I can post my Oreo build I had of Omni here I didn't use Los trees i used aosp trees from camcory , joryb and mine cleanos
---------- Post added at 08:47 PM ---------- Previous post was at 08:28 PM ----------
i found my build i had it on afh if you want it to try this was early oreo so some things not fully functional i think gps was iffy https://www.androidfilehost.com/?fid=889964283620775520 i am syncing up omni oreo again for sure will help out if you want please pm
---------- Post added at 08:47 PM ---------- Previous post was at 08:47 PM ----------
nougat builds in that root folder also
bthorne79 said:
Yeah willing to help out put your stuff up on git and give links
Click to expand...
Click to collapse
My device and kernel tree GitHub link.
https://github.com/Rondeau79
Rondeau79 said:
My device and kernel tree GitHub link.
https://github.com/Rondeau79
Click to expand...
Click to collapse
Your probably going to want to fork the toolchains over that was used with cleanaosp
<!-- Prebuilts --> <project path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.9" name="joryb/arm-eabi-7.x" clone-depth="1" remote="bb" revision="master"/> <project path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" name="joryb/arm-linux-androideabi-7.x" clone-depth="1" remote="bb" revision="master"/>

Categories

Resources