General [info] Xiaomi 13 (fuxi) Open Source Kernel and Lineage Device Tree - Xiaomi 13

Hi all,
For those of you, like me, who are interested in learning more about developing for custom ROMs, the following links will be helpful for finding .
First is the inclusive list of open source kernel releases by Xiaomi: https://github.com/MiCode/Xiaomi_Kernel_OpenSource
At the bottom of said list is the Xiaomi 13 (fuxi).
Second is the device tree (based on Lineage OS and said to be WIP) by YuKongA: https://github.com/YuKongA/device_xiaomi_fuxi

What is the primary difference between official xiaomi 13's device tree https://github.com/MiCode/kernel_devicetree/tree/fuxi-t-oss and https://github.com/YuKongA/device_xiaomi_fuxi ?

YuKongA's contribution is for Lineage OS, or instead of MIUI it's AOSP. I think.

To give additional information, the Lineage-derived device tree likely originates from: https://github.com/imasaru/android_device_tree_template

Also, the kernel includes a lot of stuff for the hardware and is accompanied by a kernel device tree, which is a kind of 'table of contents' (unless I'm mistaken about the analogy).
"The 'Open Firmware Device Tree', or simply Devicetree (DT), is a data structure and language for describing hardware."
Linux and the Devicetree — The Linux Kernel documentation
I imagine a lot of compatibility issues are lining up the system image and the kernel+device tree.
...
(At this point, I'm really just spouting off some things as I'm learning, so feel free to correct or ignore me as I'm going along!)

Aquariuslt said:
What is the primary difference between official xiaomi 13's device tree https://github.com/MiCode/kernel_devicetree and https://github.com/YuKongA/device_xiaomi_fuxi ?
Click to expand...
Click to collapse
1/Xiaomi Kernel OpenSource
2/Xiaomi fuxi prebuilt

Veiranx said:
To give additional information, the Lineage-derived device tree likely originates from: https://github.com/imasaru/android_device_tree_template
Click to expand...
Click to collapse
You can find older ones.

Related

Essential prerequisites for X2 Android development [Crowdsourcing]

There is 3 packages needed for any device for an original Android development:
Android source tree, preferably the original as with OEM devices but CyanogenMod or independent ports are enough too. Aka device
Kernel sources for the device. Aka kernel
Vendor proprietary drivers, which make the GPU and various sensors work. If not explicitly available for download they need to be extracted from a running device. Aka vendor
If these three packages are all available, making new roms will be easy for developers. Please co-operate to gather all of them here to be a resource for android developers.
If we could achieve this goal, I would port the Ubuntu OS for Nokia X2 and share it here with you
====
Progress:
Android source tree
No known instant or effort.
Can anyone contact to Microsoft mobile and get the Android source tree for Nokia X2 and upload it to Github?
Kernel sources
here is kernel source code for Nokia RM-1013 2.0.0.11: https://github.com/danialbehzadi/Nokia-RM-1013-2.0.0.11
Due to Microsoft mobile statement, there is no difference in kernel between 2.0.0.11 and 2.1.0.13.
DONE! :good:
Proprietary drivers
Thanks to T4ufik_Hidayat, Here is vendor packages: https://github.com/cm-nokia-x2/proprietary_vendor_nokia_ara
DONE! :good:
Nice effort
You are our only hope
As we have no real devs for this device and the device wasn't released globally, u r our only hope. I request u to build the kernel with device tree that we need so much to port any real android rom like AOSP , please. Frozentears was working on that, You can contact him as well.
Again, I request you, please make us a custom kernel so that we noobs can start porting KitKat/Lollipop for our beloved X2DS, u r our only hope because we see no other developer here for this device.
danialbehzadi said:
There is 3 packages needed for any device for an original Android development:
Android source tree, preferably the original as with OEM devices but CyanogenMod or independent ports are enough too
Kernel sources for the device
Vendor proprietary drivers, which make the GPU and various sensors work. If not explicitly available for download they need to be extracted from a running device.
If these three packages are all available, making new roms will be easy for developers. Please co-operate to gather all of them here to be a resource for android developers.
If we could achieve this goal, I would port the Ubuntu OS for Nokia X2 and share it here with you
====
Progress:
Android source tree
No known instant or effort.
Can anyone contact to Microsoft mobile and get the Android source tree for Nokia X2 and upload it to Github?
Kernel sources
here is kernel source code for Nokia RM-1013 2.0.0.11: https://github.com/danialbehzadi/Nokia-RM-1013-2.0.0.11
Due to Microsoft mobile statement, there is no difference in kernel between 2.0.0.11 and 2.1.0.13.
DONE! :good:
Proprietary drivers
No known instant or effort.
Does anyone know how to extract it? Can anyone contact to Microsoft mobile and get them and upload it to Github?
Click to expand...
Click to collapse
Here is for proprietary https://github.com/cm-nokia-x2/proprietary_vendor_nokia_ara
for Android source tree, try to use CyanogenMod.
maybe you can help people to make the complete rebuild of CyanogenMod with full fixed from bugs
danialbehzadi said:
There is 3 packages needed for any device for an original Android development:
Android source tree, preferably the original as with OEM devices but CyanogenMod or independent ports are enough too. Aka device
Kernel sources for the device. Aka kernel
Vendor proprietary drivers, which make the GPU and various sensors work. If not explicitly available for download they need to be extracted from a running device. Aka vendor
If these three packages are all available, making new roms will be easy for developers. Please co-operate to gather all of them here to be a resource for android developers.
If we could achieve this goal, I would port the Ubuntu OS for Nokia X2 and share it here with you
====
Progress:
Android source tree
No known instant or effort.
Can anyone contact to Microsoft mobile and get the Android source tree for Nokia X2 and upload it to Github?
Kernel sources
here is kernel source code for Nokia RM-1013 2.0.0.11: https://github.com/danialbehzadi/Nokia-RM-1013-2.0.0.11
Due to Microsoft mobile statement, there is no difference in kernel between 2.0.0.11 and 2.1.0.13.
DONE! :good:
Proprietary drivers
Thanks to T4ufik_Hidayat, Here is vendor packages: https://github.com/cm-nokia-x2/proprietary_vendor_nokia_ara
DONE! :good:
Click to expand...
Click to collapse
https://github.com/cm-nokia-x2/
android_kernel_nokia_msm8610-kernel source
proprietary_vendor_nokia_ara-vendor
android_device_nokia_ara- device(boardconfig.mk, other configs)
And here is the manifest
https://github.com/cm-nokia-x2/android_local_manifest

Use CM device tree to compile Omni

Hello,
I recently compiled CyanogenMod 14.1 for my Android device using the official sources and want to compile Omni 7.1 for the same device and use the device tree and kernel from the official CM sources because there's no device tree for Omni. Is there a way to "convert" the CM device tree to work with the Omni sources? My exact problem is the compiler doesn't know my device so I can't run something like "brunch [device]" or "make [device]", although I already downloaded all device-specific repositories to the same subdirectory as I'd do it on CM.
Thanks in advance,
Oebbler
Oebbler1 said:
Hello,
I recently compiled CyanogenMod 14.1 for my Android device using the official sources and want to compile Omni 7.1 for the same device and use the device tree and kernel from the official CM sources because there's no device tree for Omni. Is there a way to "convert" the CM device tree to work with the Omni sources? My exact problem is the compiler doesn't know my device so I can't run something like "brunch [device]" or "make [device]", although I already downloaded all device-specific repositories to the same subdirectory as I'd do it on CM.
Thanks in advance,
Oebbler
Click to expand...
Click to collapse
You have to go to your android_device_manufacturer_yourphonecodename repo and rename cm.mk to omni_codename.mk, open it and change cm_codename to omni_codename.
You have also to rename cm.dependencies to omni.dependencies, but the repos included in that file may not be in omnirom source, so you would need to manually sync those repos in your android sorce tree.
You might have to make other minor changes, take a look at the rest of code in that repo.
For further info: https://docs.omnirom.org/Porting_Omni_To_Your_Device
Thank you, but I think I won't succeed in building Omni for my device because I always get strange errors.
Probs will get annoyed, cmsdk, cmhw, and cm encryption are significantly annoying. Also they moved their build dir, generally include useless common subtrees, and named dtbtool with CM suffix. Their build tree might be the most significant hindrance to unified building on Android, not only for the many unnecessary additions and dependencies they have for devices, but also they generally lack a community presence to answer or respond to users, so a lot of us get stuck with cleaning up their mess.
Notice how TWRP has a community presence here and are helpful. I'm not hating on cm, they have been doing this longer than most of us, but for ease id recommend using your rom choices tree.
Also the immensely significant annoyance of having to track devicesettings and the unwillingnes to nuke cmactions, combine it with cmsdk, or at least remove it's dependency in most trees is almost certainly going to cause you errors.
Sent from my One using XDA-Developers Legacy app

Poco F1, android r (11), running a GKI kernel (linux kernel 5.4)

I found this on youtube not sure if its real or not
https://www.youtube.com/watch?v=-SRqxkMpeMc
Poco F1, running a GKI kernel, and device specific modules loaded separately.
Video by Sumit Semwal
Additional Details:
* Xiaomi Pocof1 (beryllium) device config is hosted at:
https://github.com/pundiramit/device-...
* GKI (android-5.4.17) Image.gz and kernel modules are copied from
device/linaro/dragonboard-kernel project, built as part of the Android
CI.
* Kernel source for prebuilt vendor kernel modules (panel, labibb
regulator) and DTB is hosted at:
https://github.com/pundiramit/linux/t...
* Adreno firmware binaries are copied from stock PocoF1 images.
Yes, it's real. Don't be fooled by the Android R in About Phone - that's just what it says when you're running an AOSP master build. That's not what's important. What's more important is what they've done with the kernel.
https://www.google.com/amp/s/arstec...inline-linux-kernel-support-in-android/?amp=1
Tom Gall, the director of the Linaro Consumer Group, showed off a Xiaomi Poco F1 actually running the mainline Linux kernel under the usual Android OS. Gall told the audience, "There are major, major props to be given to the Google Kernel Team in particular for getting their code upstream so that we can boot devices with a mainline kernel
---------- Post added at 09:20 AM ---------- Previous post was at 09:19 AM ----------
good job brother for for trying to bring it to masses.
Repo's are gone :'(
Anybody get a clone of the second repo at least? PM or post, please!
This is well documented now on AOSP but the work done here would save a lot of time.
CosmicDan said:
Repo's are gone :'(
Anybody get a clone of the second repo at least? PM or post, please!
This is well documented now on AOSP but the work done here would save a lot of time.
Click to expand...
Click to collapse
GitHub - pundiramit/linux
Contribute to pundiramit/linux development by creating an account on GitHub.
github.com
D1stRU3T0R said:
GitHub - pundiramit/linux
Contribute to pundiramit/linux development by creating an account on GitHub.
github.com
Click to expand...
Click to collapse
Ah thank you, there was only an extra t on the second URL - typo.
This is awesome. Hopefully more 845 devices get the GKI treatment so we can experiment with different modules from other devices that get more love/attention from OEM's

[UNOFFICIAL][ROM][10.0/9.0] LineageOS 17.1/16.0 [violet][Q/PIE]

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

How big is the BlissROMs source code file for building unofficial build for ARM devices? Also help about building from the source code.

I want to build my unofficial build for my phone, HTC Desire 816. But I have a limited data plan, and I worried I will running out of my data by downloading a huge source code with unnecessary files for other architectures, phones etc. And I'm just need the ARM and important files.
Also I got these repos from Tarkzim's forum at LineageOS unofficial for HTC Desire 816:
Device tree
Kernel
Vendor
Well, I didn't have any experience at Android development. So maybe can someone give me a guide too?
I'm just know the preparations on the documentation and it's ready, but the steps are confusing for me.
Or maybe if peoples are have their time maybe can someone make the official build?
Maybe it such out of BlissROMs, but I really want to Blissify my phone. Because LineageOS are too plain, no good features like smart charging etc. It just looks a normal Android build from AOSP source.

Categories

Resources