Hi! I own the Nexus5X and I am interesting in creating a custom ROM for the device. I have synced the AOSP source tree, gotten everything set up and flashed a build on to my device.
How can I start creating a ROM for the device? What are some general guidelines? How do I start tweaking apps, adding features, etc.
Also, if someone could take a look at these errors I am getting with my AOSP build that would be awesome: https://forum.xda-developers.com/nexus-5x/help/issues-aosp-built-source-bullhead-t3555439
Thanks
NateDev said:
Hi! I own the Nexus5X and I am interesting in creating a custom ROM for the device. I have synced the AOSP source tree, gotten everything set up and flashed a build on to my device.
How can I start creating a ROM for the device? What are some general guidelines? How do I start tweaking apps, adding features, etc.
Also, if someone could take a look at these errors I am getting with my AOSP build that would be awesome: https://forum.xda-developers.com/nexus-5x/help/issues-aosp-built-source-bullhead-t3555439
Thanks
Click to expand...
Click to collapse
Hello,
If you have interest in develop a custom rom, i suggest you start at XDA University to learn a bit of everything about Android.
You have some great guides on Android Software Development (look at stick posts)
I have my own guide which is not finished but I will teach everything you need to know about build a custom ROM from source, how to use github, git, mergetool etc... You can follow my progress HERE
FSadino said:
Hello,
If you have interest in develop a custom rom, i suggest you start at XDA University to learn a bit of everything about Android.
You have some great guides on Android Software Development (look at stick posts)
I have my own guide which is not finished but I will teach everything you need to know about build a custom ROM from source, how to use github, git, mergetool etc... You can follow my progress HERE
Click to expand...
Click to collapse
OK thanks, I will take a look at that. If possible, could you take a look at the errors I am getting with my AOSP build? I posed the link in the original post. Also, do you have to run extract-files.sh or can you simply download the vendor binaries from Google and run the extracting script? (AOSP)
NateDev said:
Also, do you have to run extract-files.sh or can you simply download the vendor binaries from Google and run the extracting script? (AOSP)
Click to expand...
Click to collapse
If you fork/download vendor binaries you don't need to run extracting script
Hi, I am currently building custom rom for my Lenovo a7000-a (aio_row) and I have a few questions regarding the device section of the AOSP build.
1. I have seen that to build the custom ROM for a device, I would need the following .mk files from topic "Android device configuration AOSP" in Stackoverflow.
However, from the device configuration/device-tree(?) from user rohantaneja in Github, I see that I would also need files that look like drivers for the devices based on the files on that github. May I ask how would I obtain these files?
2. Would flashing an arm64 generic build of custom AOSP into any Android device work or not? If so, why?
Seems like the amount of knowledge that I faced off with confused me a lot.
Any help is appreciated.
Thanks in advanced.
Introduction
A spinoff thread from the previously-supported-official thread by Atman.
This thread will contain my unofficial builds for violet. On the 16.0 version, the only real fix (so far...) have been the fingerprint scanner sepolicy denials. I aim to do monthly/bimonthly builds to keep up to date with security patches, as so far I haven't encountered any other issues (let me know).
On the 17.1 version, I have slowly figured out how to make it work, but it is highly experimental.
The 16.0 ROM is stable (I use it as my daily driver).
If you find any bugs, please do take screenshots, give a way for me to replicate it on my device, and send a logcat. If you're super smart, use a logcat and filter for the keyword so I don't have to do even more digging
Please don't tell me to use PE/Mokee commits.
Yet another update. I've got 17.1 builds working without having to resort to cheap tricks and commits (sort of).
Flash instructions
Same as usual:
Reboot to fastboot and flash recovery with fastboot (You have to use the TWRP linked below. Other versions likely won't boot.)
Reboot to recovery TWRP
Wipe to format data, wipe again to wipe system and cache (not necessary if you're updating, only if you're switching ROMs)
Flash firmware (ADB sideload) (this step is dated. The newer builds have a higher target firmware so you should try to flash without the firmware first, then flash the firmware if the ROM doesn't work.)
Flash the ROM (sideload)
Flash GApps, Magisk, etc. as necessary
Done
Downloads (16.0) (STABLE)
Firmware (Dated firwmare)
Recovery (TWRP)
11-Jun-2021 build (with 05-May-2021 security patch), and MD5 Digest
For previous builds see below
Downloads (17.1)
Here's the 17.1 ROM. Here's the md5 hash. It has the March security patch.
It currently does not boot. If you would like to try and help with development, flash the ROM, and then flash the Chinese Q firmware on top of it (this can be downloaded from xiaomifirmwareupdater). Be warned that there is a risk that the newest android keymaster may re-encrypt your device, which in the worst case may require you to format data and/or reflash recovery and/or flash a fastboot MIUI rom. So, it's a bit risky, but likely won't be an issue.
Credits, Sources, etc.
Too many to mention. Atman Shah for getting this device supported earlier last year. ThE_MarD (Marc Bougoin) for other help. Various other names I've seen - Bruno Martins, Weikai Kong, Wang Han... all of the Lineage dev team. I'm sure I'm missing many people who have been involved in the project. I am new, and very much a latecomer to all of this.
Device Tree: https://gitlab.com/mzha/android_device_xiaomi_violet
Kernel Tree: https://gitlab.com/mzha/android_kernel_xiaomi_violet
Other things see my gitlab: https://gitlab.com/mzha
A telegram group to discuss development for 16.0/17.1: t.me/lineageos_violet
Previous builds
07-Nov-2020 (incl. Oct-2020 security patch), with 07-Nov-2020 MD5 Hash
13-Jul-2020 (incl. Jul-2020 security patch), with 13-Jul-2020 MD5 Hash
11-May-2020 (incl. May-2020 security patch), with 11-May-2020 MD5 Hash
Good to see some devs showing interest on this os
will you be adding any customisation? or does it continue as pure lineage os?
e2vinay said:
Good to see some devs showing interest on this os
will you be adding any customisation? or does it continue as pure lineage os?
Click to expand...
Click to collapse
Pure LineageOS. There's more than enough customised ROMs for violet already in my opinion... and I also don't have that much time
hcnulma said:
Pure LineageOS. There's more than enough customised ROMs for violet already in my opinion... and I also don't have that much time
Click to expand...
Click to collapse
That's great
by any chance will you consider adding signature spoofing support? that would be really great. it would help many users go for microG instead of gapps
I completely understand you're starter.
great work. good luck.
Thank you
e2vinay said:
will you consider adding signature spoofing support?
Click to expand...
Click to collapse
No, but there are a few alternatives:
Merge the changes from this RFC and build it
Download the spoofer from https://download.lineage.microg.org/violet/, or get the (ed)Xposed module, or other possibilities...
Will be official Lineage Os?
Can we expect los 17 soon?
himanshu fulmali said:
Can we expect los 17 soon?
Click to expand...
Click to collapse
As per OP: I'm waiting on both Android 10 firmware blobs + kernel to be released by Xiaomi... I'm not sure how the other ROM devs get around this, if it's easy to forward-port or not. But for now, only LOS 16.
Heyyo @hcnulma good to see you got your thread up and going!
As for 17.1? You can work with your current kernel and cherry-pick the fixes that other maintainers of violet are using and same for the device tree and vendor blobs.
As an example, LeEco msm8996 devives are using kernel source code from Marshmallow just rebased on a CAF Q Tag for our kernel since we never got anything newer...
Even once Xiaomi release their kernel source code for Android 10? It would probably take quite a bit of work to shave it down to what you specifically need and then importing it on top of a fresh CAF tag for the kernel or even more work to try and inplement it into uour current kernel.
To get official builds of LOS 16.0 going again for violet you would need to show that you are capable of fixing any major bugs that arise as well.
https://wiki.lineageos.org/submitting_device.html
anywho, hope this information helps bud!
hcnulma said:
As per OP: I'm waiting on both Android 10 firmware blobs + kernel to be released by Xiaomi... I'm not sure how the other ROM devs get around this, if it's easy to forward-port or not. But for now, only LOS 16.
Click to expand...
Click to collapse
I am pretty sure you can use the pixel experience device tree and kernel to compile the ROM just like every other rom
Thank you. If he is stable enough I will use it to build RR PIE
Zjh0094 said:
Thank you. If he is stable enough I will use it to build RR PIE
Click to expand...
Click to collapse
It's definitely stable...
prajwal2001 said:
I am pretty sure you can use the pixel experience device tree and kernel to compile the ROM just like every other rom
Click to expand...
Click to collapse
From what I understand, using their kernel tree will mean I'll have to change a lot of references in my own device tree, and using their device tree on top of that is essentially just building PE, not Lineage.
In any case, I did find the Snapdragon 675 (ie sm6150) kernel trees for Q in several places, https://github.com/sm6150-dev/android_kernel_xiaomi_sm6150 and https://github.com/PixelExperience-Devices/kernel_xiaomi_sm6150. I'll take a closer look into this...
I did find the most recent CAF kernel under sm6150 here, but there seems to be an issue of this not showing up in /quic/la... Something will be resolved. Hopefully.
Request to create group for discussion in Telegram
hcnulma said:
It's definitely stable...
From what I understand, using their kernel tree will mean I'll have to change a lot of references in my own device tree, and using their device tree on top of that is essentially just building PE, not Lineage.
In any case, I did find the Snapdragon 675 (ie sm6150) kernel trees for Q in several places, https://github.com/sm6150-dev/android_kernel_xiaomi_sm6150 and https://github.com/PixelExperience-Devices/kernel_xiaomi_sm6150. I'll take a closer look into this...
I did find the most recent CAF kernel under sm6150 here, but there seems to be an issue of this not showing up in /quic/la... Something will be resolved. Hopefully.
Click to expand...
Click to collapse
you won't have to make any changes in the kernel as far as I know and as for the device tree you just have to make some changes according to the ROM
as every ROM uses the same device tree
and you won't be making pe instead of lineage as the same device tree and kernel are used in every Q ROM except EvoX which uses crimson kernel
hcnulma said:
It's definitely stable...
Click to expand...
Click to collapse
Thanks. I will use it as my benchmark to build RR pie.
---------- Post added 15th February 2020 at 12:03 AM ---------- Previous post was 14th February 2020 at 11:57 PM ----------
hcnulma said:
In any case, I did find the Snapdragon 675 (ie sm6150) kernel trees for Q in several places, https://github.com/sm6150-dev/android_kernel_xiaomi_sm6150 and https://github.com/PixelExperience-Devices/kernel_xiaomi_sm6150. I'll take a closer look into this...
I did find the most recent CAF kernel under sm6150 here, but there seems to be an issue of this not showing up in /quic/la... Something will be resolved. Hopefully.
Click to expand...
Click to collapse
/quick/la/msm-4.14
prajwal2001 said:
you won't have to make any changes in the kernel as far as I know and as for the device tree you just have to make some changes according to the ROM
Click to expand...
Click to collapse
It is precisely the device tree that I'm worried about. From experience, PE has a lot of platform-specific stuff that Lineage doesn't (and the same the other way), and also from trying to figure out the fix to 16.0 I realised there's a lot of context/definition differences between the two device trees. I'd still give it a look, but I suspect it might be easier to just modify the current 16.0 device tree.
RupeshRN said:
Request to create group for discussion in Telegram
Click to expand...
Click to collapse
https://t.me/lineageos_violet.
Zjh0094 said:
/quick/la/msm-4.14
Click to expand...
Click to collapse
Yeah I already figured it was msm-4.14. Have already cloned it but am also considering cherrypicking changes that other devs have done to their kernel trees from 16.0 -> 17.1 as opposed to starting with the CAF kernel. A work in progress.
Sir I'm noob but mokee dev released android 10 and i think mokee and los are pretty same, will he not help you if you contact him?
An update on where I am:
I'm not sure whether to use the PE or Mokee vendor trees. Neither of them have much resemblance to 16.0 tree I have so cherry picking changes will be a nightmare.
The PE vendor tree has a lot of device-tree-specific commits, which will make it a headache to untangle later on. The Mokee vendor tree also has a lot of differing firmware files, though is a bit more similar to the LOS tree.
I'm doing a bit of experimentation to figure out which one will last better in the long run, since I can't seem to get my hands on any MIUI Android Q firmware blobs.
An update on where I am:
I'm not sure whether to use the PE or Mokee vendor trees. Neither of them have much resemblance to 16.0 tree I have so cherry picking changes will be a nightmare.
The PE vendor tree has a lot of device-tree-specific commits, which will make it a headache to untangle later on. The Mokee vendor tree also has a lot of differing firmware files, though is a bit more similar to the LOS tree.
I'm doing a bit of experimentation to figure out which one will last better in the long run, since I can't seem to get my hands on any MIUI Android Q firmware blobs.
Yet another update. I've got 17.1 builds working without having to resort to cheap tricks and commits (sort of).
Here's the 17.1 ROM. Here's the md5 hash. Needless to say, it's very experimental, not stable in the least (expect to get past boot maybe 70% of the time) - I'm getting very mixed results when experimenting myself. Nevertheless, try it out, see what you get. Install it the same way as usual. Keen to get as many eyes on this as possible
I have an One s with S3 processer(villeC2).
Its specs are similar to sensation(with same cpu and screen resolution),but sensation has Android 7.1 ROM and one s only 4.4......
I would like to port a ROM for it from sensation.
Does anyone know how to do that?
Or if it is possible ?
(sorry for my bad english)
(my first post)
Some info !
Hi,
Actually I'm new in building roms and kernels, too. But i can share some info with you.
For starting this tutorial may be helpful: [Guide] Compile 4.2 & 4.3 & 4.4 Roms for villec2
As you can see, you will need "device", "vendor" and "kernel" source to build a rom.
Usually you can find source code of roms and kernels in xda threads and can start from those.
For example for Android 7.1 you can use RROS vendor and VilleC2 device and kernel sources. (Note: i don't know are these examples compatible or not?!)
And for kernel, maybe you has to upstream the kernel source to be compatible with new version of android that you want to build.
Good luck.
-----------------------------------
Edit:
After Compiling for myself, i figured out Vendor files for choosed rom (Lineage, RR, ..) will be included by their manifest files automatically. so for "Vendor" part in "local_manifest.xml" (or newer "local_manifests/roomservice.xml") we need to assign "proprietary_vendor" files related to our devices. "proprietary_vendor" files can be extracted manully if there isn't any online source.
one more useful guide: [GUIDE]Building any ROM from source for HTC One S aka ville!
So I have decided I want to make my own rom. Where are the binaries to use for the ROM? Some randomer I saw had been trying to make a lineage os that works with this phone and he put the firmware in a GitHub file I think. I would like to know where and what binaries are needed.
@sd_shadow it would be great if you could help me.
Residentalien63 said:
So I have decided I want to make my own rom. Where are the binaries to use for the ROM? Some randomer I saw had been trying to make a lineage os that works with this phone and he put the firmware in a GitHub file I think. I would like to know where and what binaries are needed.
@sd_shadow it would be great if you could help me.
Click to expand...
Click to collapse
I will not be much help.
See these threads.
[GUIDE][COMPLETE] Android ROM Development From Source To End
[Guide][Video Tutorial] How to build Custom ROMs and Kernels![10,P,O,N,M,L]
[REFERENCE] How to compile an Android kernel