Related
I am working on a PC W7,
all the components is installed, Android SDK 1.6 r1, Eclipse Ide for Java Developer, JDK etc, all works well...
I can build without problem the apps from the SDK Sample and some other in Google Code like SMSPopup.
But I took from Cyanogen GitHub the Phone.apk Zip file
http://github.com/cyanogen/android_packages_apps_Phone
with the source and when I build I get a lot of errors in Eclipse, same problem with the Advanced Launcher, Loccy's Better browser...
Clean... and Fix from Eclipse does not change anything
Any suggestion? (apart: use linux, download the entire android source etc...)
xenio2000 said:
I am working on a PC W7,
all the components is installed, Android SDK 1.6 r1, Eclipse Ide for Java Developer, JDK etc, all works well...
I can build without problem the apps from the SDK Sample and some other in Google Code like SMSPopup.
But I took from Cyanogen GitHub the Phone.apk Zip file
http://github.com/cyanogen/android_packages_apps_Phone
with the source and when I build I get a lot of errors in Eclipse, same problem with the Advanced Launcher, Loccy's Better browser...
Any suggestion? (apart: use linux, download the entire android source etc...)
Click to expand...
Click to collapse
You can not only git clone the Phone app, you need checkout a lot many others such as build/framework/core... etc.
And then type "make Phone" to build the app. Of course, you need a cygwin or just use a linux machine...
Yep...
My hope was not to hear that answer... I am too noob for that...
Maybe I try to install a Linux machine with the entire Android source... just for fun...
Thanks.
I did some important progress.
I did it...
I am on W7 64bit Host
with Sun VirtualBox I installed a Guest Ubuntu 9.04
this part from: http://developer.android.com
Android SDK 1.6
JAVA JDK 5
Eclipse with Android Plugins (ADT)
Some add to path for Java/Android SDK in ~/.bashrc file
this from: http://source.android.com/
Installed all the packages as in the Get Source page
Installed Repo
and the get source section...
in my $HOME
$ mkdir mydroid
$ cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git
type your name and email
and now get all the files from source.android
$ repo sync
and build it
$ cd ~/mydroid
$ make
...after some hour
I modified the file I need to in the ~/mydroid/packages/apps/Phone/ directory
and build only the Phone.apk
as read in this thread http://groups.google.com/group/andr...47985716f84f?lnk=gst&q=build#6de347985716f84f
Make sure you're cd'd into the mydroid/ directory
Type ". build/envsetup.sh"
Type "mmm packages/apps/Phone"
if there are no errors the build of Phone.apk is in
~/mydroid/out/target/product/generic/system/app
I know this is easy for you devs, but this took me 3 days to
Now I like to get the Phone.apk source from Cyanogen GIT and try to build in my VM, I have no idea how to do it, and I think it modify the Settings too.
Please help me for this last part...
Thanks
Xenio
This may be easy for some, but I can say you just saved me 3 days of work. Thank you for the follow up post.
how to create apk file
hai everybody
my name is sriram
i am doing MCA
actually i want to create apk file, i dont know event the basics
can you help me
Kind of you
I am having issues with building from cyanogen's github. I have never had a problem with building for my N1 from source. I am currently trying to build for my G1. These are the basic steps I am doing, repo init -u git://github.com/cyanogen/android.git -b eclair-ds and then repo sync, then . build/envsetup.sh, then make -j3 adb, lunch cyanogen_dream_sapphire-en, then cd into vendor/htc/dream_sapphire and ./extract-files.sh, then i go to do make -j3 and it stops because of no proprietary drivers, so I went and took a look inside the proprietary folder and found out what I was missing was Fw1251r1c.bin, and libGLES_qcom.so and have been trying to figure it out for many hour's. I am guessing it has to do with my g1 running a 1.6rom and trying to build from cyanogens source a 2.1 rom or I am missing something altogether . Any help is appreciated
Maybe we can get a group knowledge base going, I'm attempting to build CM6 right now. The idea is to help out with Vibrant porting, but I'm getting stuck and thought you guys might have some hints. If I can get it going, I'll update the wiki or create one somewhere else for Vibrant specific stuff.
So, right now my build system is 64-bit Ubuntu 9.04. I can switch, it looks like it might be better to be on a 32-bit setup, so there's one option.
The basic path to where I am now, following basic directions from here: http://wiki.cyanogenmod.com/index.php?title=Building_from_source
Code:
sudo aptitude install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
sudo aptitude install ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo
export CCOMPILER=${HOME}/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
(Path modified to match my local path)
repo init -u git://github.com/CyanogenMod/android.git -b froyo
repo sync
source build/envsetup.sh
make -j4 adb
This results in a segfault....
Code:
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
true
Install: out/host/linux-x86/bin/adb
make: *** [out/host/linux-x86/bin/adb] Segmentation fault (core dumped)
Using "lunch" and selecting a target, then "make clean" gives me the same error building adb. Attempting to build the ROM also gives me a segfault, so at least I'm consistent. It always seems to be on an "Install" step, if that helps.
If you get it to compile be sure to post, I'd love to start helping I just lack motivation and free time... And knowledge around Android, but I'm working on that piece
ttabbal said:
Maybe we can get a group knowledge base going, I'm attempting to build CM6 right now. The idea is to help out with Vibrant porting, but I'm getting stuck and thought you guys might have some hints. If I can get it going, I'll update the wiki or create one somewhere else for Vibrant specific stuff.
So, right now my build system is 64-bit Ubuntu 9.04. I can switch, it looks like it might be better to be on a 32-bit setup, so there's one option.
The basic path to where I am now, following basic directions from here: http://wiki.cyanogenmod.com/index.php?title=Building_from_source
Code:
sudo aptitude install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
sudo aptitude install ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
curl http://android.git.kernel.org/repo >~/bin/repo
chmod a+x ~/bin/repo
export CCOMPILER=${HOME}/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
(Path modified to match my local path)
repo init -u git://github.com/CyanogenMod/android.git -b froyo
repo sync
source build/envsetup.sh
make -j4 adb
This results in a segfault....
Code:
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
true
Install: out/host/linux-x86/bin/adb
make: *** [out/host/linux-x86/bin/adb] Segmentation fault (core dumped)
Using "lunch" and selecting a target, then "make clean" gives me the same error building adb. Attempting to build the ROM also gives me a segfault, so at least I'm consistent. It always seems to be on an "Install" step, if that helps.
Click to expand...
Click to collapse
This usually meanings that there is a memory management issue but im no dev hope this helps
Now if we had others posting about what they have done.... hint...
OK, I know there aren't a ton of us messing with things at this level. Hopefully someone else has seen this. I'll try to install a 32-bit Ubuntu 10.whatever tonight and see if that helps. It is possible my issues are being caused by the 32-bit compatibility libraries or similar.
ttabbal said:
Now if we had others posting about what they have done.... hint...
OK, I know there aren't a ton of us messing with things at this level. Hopefully someone else has seen this. I'll try to install a 32-bit Ubuntu 10.whatever tonight and see if that helps. It is possible my issues are being caused by the 32-bit compatibility libraries or similar.
Click to expand...
Click to collapse
I just installed ubuntu32, and am going through the repo sync, as soon as that finishes, I'll pack up and head home and finish there, hopefully it compiles on 32bit. I'll post back as soon as i know.
I've considered contacting them that way, I was hoping the community would be interested in getting a few more devs going. I'm downloading the Ubuntu 32-bit ISO now. If you want to send them a message, cool. I'll fool with things a bit more and if I still can't get anywhere, I'll see if I can get in with thouse guys. If I do get it working, I'll try to document everything that's not covered elsewhere. I just hate to take time away from their work to help out a newb.
If you can't build, you can't contribute. The Android build system is somewhat custom and weird, so it can be off-putting to people that would be interested in helping. More people hopefully means we can get more done.
ttabal, seg fault during a "make" usually means it tried to access something that wasn't there. Make sure you have all dependencies installed. Someone said seg fault has to do with memory management ... yeah, only when running an app. When building (aka "make"), there are a lot of things being linked and each thing has a ton of dependencies and that continues recursively ... it's why I hated working with Unix back in the day. You change one thing, you have to change everything and its mother.
Still, I have been frustrated at the lack of progress recently that I am toying with the idea of jumping back in the pool and building things myself. I wish one of the more experienced folks here would offer a primer. I know what they're afraid of though ... every noob coming back with a million questions, like, "what's apt-get?" or "what's a make file?".
Yeah, maybe we should start up an invite-only dev forum and only allow public read-only access to a wiki or something so we can share with everyone. I'd love to be more open, but I do see why the big devs don't do their dev conversations here.
I did install the depandancies they listed on the Cyanogen Wiki, but it is possible they need something new that isn't listed. Hopefully someone can help us out. It's also possible my versions of the libraries need updating as I am on an older build of Ubuntu. I have another machine I can install the newer version on, and I'll try that first. May as well make sure I'm doing everything I can. I just can't install on the other machine as it's a production server for my home system. The wife gets mad if I break the TV server.
I know you are attempting to build the source, and I'm sorry I cannot help you with that. I just wanted to put a link up here for people that are getting inspired by you and are considering contributing to the rom development community.
http://forum.xda-developers.com/showthread.php?t=667298
It's a post by cyanogen about how you should go about getting in to rom development.
I managed to get it to build for Dream/Sapphire by first doing
Code:
#repo init -u git://android.git.kernel.org/platform/manifest.git
THEN
Code:
#repo init -u git://github.com/CyanogenMod/android.git -b froyo
#repo sync
#source build/envsetup.sh
on 64 bit Ubuntu. Did a bit more fidgeting after that to get it working, I'll see if
I can figure it out next time I'm home.
Interesting. I'll try pulling the aosp manifest first. Perhaps that will help. Did you do a repo sync on the aosp or just init?
There was a core dump, so if you have the core.dump file in the same directory where you ran "make" run strings against it, it might tell you what's segfaulted on you.
I got past make adb on Ubuntu 10.04 64-bit. Compile has been going for quite some time now. I haven't tried building a kernel yet.
Will be attempting a build on Monday with my secondary box at work running ubuntu. I have a knack for jury rigging things to work and more than willing to contribute, despite lacking the experience. For reference, you could try to converse with then on irc, freenode.net server, in #cyanogenmod or #sgs_dev, a bit more of a direct line to #teamdouche
Sent from my SGH-T959 using XDA App
ttabbal said:
The G1 was easy to dev for by the time 2.2 came out, and CM was already building on that platform. It's a lot easier to update an existing setup than trying to start on a new platform.
And proof-read, swype isn't perfect.
Click to expand...
Click to collapse
From what I understand (witch is very little) the G1 drivers have all been reverse engineered for some time and building it from source is incredibly easy at this point. While the Galaxy S is incredibly hard to develop for because all the drivers are wrapped up in all the kernel mods Samsung did, even though they open sourced much of it, its hard to unravel the code.
Build completed. Only issues I ran into:
1) repo sync didn't complete at first because I had never talked to android.git.kernel.org. Running "repo init -u git://android.git.kernel.org/platform/manifest.git" as anomalous3 said fixed that.
2) make complained about not being able to find RomManager.apk, so I went into vendor/cyanogen and ran get-rommanager. While I was in there i ran get-google-files and extract-google-files as well, but not sure if that was necessary.
At this point I'm not sure of the kernel requirements for attempting to run this system.img. Until I learn a bit more about the kernel and ramdisk I'm hesitant to do anything with this.
elderberry said:
Build completed. Only issues I ran into:
1) repo sync didn't complete at first because I had never talked to android.git.kernel.org. Running "repo init -u git://android.git.kernel.org/platform/manifest.git" as anomalous3 said fixed that.
2) make complained about not being able to find RomManager.apk, so I went into vendor/cyanogen and ran get-rommanager. While I was in there i ran get-google-files and extract-google-files as well, but not sure if that was necessary.
At this point I'm not sure of the kernel requirements for attempting to run this system.img. Until I learn a bit more about the kernel and ramdisk I'm hesitant to do anything with this.
Click to expand...
Click to collapse
Thanks! I'm running repo sync after the kernel.org init now. I'll see if that gets me building. I don't suggest installing anything you build yet, I want to see if we can get a couple people building before we take that step. Though it looks like we can create some nice update.zips now that flash the kernel and such. Very cool.
Anyone know how to replace parts of a local git with your own repo? I would like to clone my fork of wesgarner's vibrant tree into the main tree so I can do commits and such without messing with anyone else's stuff. git rebase? I'm a little new to git, I've only ever used it for basic stuff that SVN can do.
Looks like the sync is going to take a bit for me. Damn. I'll install the latest Ubuntu in a VM while I'm waiting on it. Who do I have to kill to get FIOS in Utah?
Hmmm... Still no joy for me. Must have done something wrong I guess. Build still segfaults and I don't get a coredump. Weird.
Thanks for the contact info for teamdouche, I'm trying to avoid bothering them until I at least have a working build. This isn't the sort of level one should bother them about IMO.
Looks like you guys are talking to wes and the others
If you guys get it working. I have a build env setup + a build bot. Just let me know
i'm installing the dev support packages right now. i'm worried, though. how much space are we looking at? my linux partition is only 8gb. so i may have to modify some things so it's all on my raid storage.
Hi
I am working on the Kovsky kernel at the moment, but would really like to be able to make changes to the Andoid part of the system as well. Does anyone have build instructions for the XDAndroid system?
I have done cross compiling to various platforms before, so the part I need is:
*What sources to download
*What commands to run
As I didn't get any feedback I have decided to figure it out for myself and publish as I go along:
To get the sources follow the instructions at:
xdandroid.com/wiki/Getting_the_Source
mkdir ~/xdandroid
cd ~/xdandroid
repo init -u git://gitorious.org/xdandroid/manifest.git -b gingerbread
repo sync
Now I have lots of code, and the next step is found at:
xdandroid.com/wiki/Build_Configuration
What I need is a "buildspec.mk" file. If anyone has one that has been used for NAND compiles feel free to share
I have now realized that all the ROMS have been compiled based on CyanogenMod7 source that have separate repositories from xdandroid.
Sp3dev created a repo for some of the kovsky files he used in november last year at: https://github.com/astarasikov/device_kovsky
Next up is integrating them into the cyanogen tree and creating vendor files based on leo/dream
I am starting to piece everything together now. I am still not able to compile it, but I am getting closer:
Here are some steps that have only been tested on an Ubuntu system:
1. Follow the steps here http://wiki.cyanogenmod.com/wiki/HTC_Dream_&_Magic:_Compile_CyanogenMod_(Linux) down to "Install the Repository"
Code:
# 2. Install repository by running (This will take several hours):
cd ~/android/system/
repo init -u git://github.com/CoolRunnerII/android.git -b gb-release-7.2
repo sync
# 3. get the propriatary files from a running phone connected by usb by running. You may need root to do this:
cd ~/android/system/device/htc/kovsky/
./extract-files.sh
# 4. copy vendor file to correct place by running:
cp device/htc/kovsky/cyanogen_kovsky.mk vendor/cyanogen/products
# 5. Get Rom-manager by running
~/android/system/vendor/cyanogen/get-rommanager
# 6. sync repo again by running:
cd ~/android/system/
repo sync
# 7. get ready for compile with:
. build/envsetup.sh
lunch cyanogen_kovsky-eng
# 8. Start compile with:
make
Great news.Hope you can finish it!
Compile now runs to the end
On my system the compile runs to the end when doing the steps above. I have not started packageing it yet, but everything seems to compile correctly.
The other guides recoment running "make bacon" witch are supposed to create a "over the air" OTA package. This crashes when I try it. If anyone has some good information as to how the final packages is supposed to be please share. all the other CM7 roms have folder in the zip fil called META-INF that contain the update script. The .zip-file created by running make does not.
I just added Alex's fork of the gps library from xdandroid to the manifest.
If someone could try the steps above and report to me wether it works on their system or not I would be very thankfull. My goal is to create a streamlined rom build directly from source. That way getting the last issues out of the way should be possible even without guys like Alex working on it.
CoolrunnerII said:
I just added Alex's fork of the gps library from xdandroid to the manifest.
If someone could try the steps above and report to me wether it works on their system or not I would be very thankfull. My goal is to create a streamlined rom build directly from source. That way getting the last issues out of the way should be possible even without guys like Alex working on it.
Click to expand...
Click to collapse
very very nice job!!!!!! currently downloading kovsky repos to check if i can build but it will take hours with slow connection and i've little time cause of exams...
btw: if someone has problems with syncing cause of slow internet repo sync -f is a nice option
EDIT:
in time i'm going to improve cwm recovery (currently porting cwm-touch to another device...)
EDIT2: any chance to add wpa repo to existing working directory?
btw: you could also use a local_manifest.xml for the additional repos... (just if you don't already know ) (would be more official???)
i can't test cause i don't know how to add wpa repo
this should be in android development section... you posted here cause of limited posts right? btw thanks a lot for missed call fix
Yes I posted here due to limited rigths.
I'll start a new thread in the developer section now that I can
Cool runner the rhodium android development forum has a 7.2 build but I don't know how to make work for our device. I pm the maker he said I can use his rom
** Standard Disclaimer: Unlocking your Bootloader will Void your Warranty. I take no responsibility for this or for any bricked devices. These thing should go without saying at this point, but there they are. If you are here, I assume you are familiar with LineageOS, TWRP, and moving from MIUI to AOSP-based ROMs**
**Download Link Updated to build 2020-07-10**
TL;DR:
This is a Clean, Stock LineageOS Build for Xiaomi Mi 9 (cepheus) that does NOT include any GApps, MicroG, or Signature Spoofing.
What you choose to add/modify after installing this ROM is entirely up to you.
All,
I wanted to distance myself from Google as much as possible, so I decided to build LineageOS from the source.
I used the LineageOS source they provide via GitHub, available here.
I also use the Proprietary Blobs for the Cepheus Device Tree from Demon000's GitHub, available here.
To get current version to build, I also needed to add the LineageOS/android_hardware_xiaomi source to my local manifest and use the repopicks Cozzymy13 includes in the OP of his ROM's thread. [Thanks k1l for and Cozzymy13 for pointing out these additions!]
The result is a stock build of LineageOS 17.1 for the Cepheus device. In the spirit of LineageOS, this does not include Signature Spoofing. You will need to use Xposed or some other method if you desire that functionality.
This also does not include MicroG or any other additional applications. This is pure LineageOS, built on 2020-07-10.
NanoDroid patcher works well for anyone who wants to add MicroG support. You will still need to use Xposed or similar if you want Signature Spoofing as NanoDroid does not offer a patch for Android 10 as of this build.
Feel free to provide download mirrors.
What Works:
Pretty much everything from what I can tell
Fingerprint Sensor it working like a champ so far.
DT2W/DT2S
NFC Seems to be working but I don't have a device to test against
Known Issues:
You tell me...
Install:
From TWRP:
1) Wipe Date (standard wipe)
2) Flash lineage-17.1-20200710-UNOFFICIAL-cepheus.zip
3) Format Data (Wipe -> Format Data -> type "yes"
3b) - OPTIONAL - Flash Magisk Zip for Root
4) Reboot to system
Alternate Install Steps for Full MicroG with Signature Spoofing:
From TWRP:
1) Wipe Date (standard wipe)
2) Flash lineage-17.1-20200710-UNOFFICIAL-cepheus.zip
3) Format Data (Wipe -> Format Data -> type "yes"
3b) - OPTIONAL - Flash Magisk Zip for Root
4) Reboot to system (ignore any errors about missing Google Services)
5) Reboot to TWRP
6) Flash NanoDroid Patcher (either the Full package or you can customize per the instructions in the NanoIx link below)
7) Reboot
8) Install the Magisk Module for Xposed Framework and the EDXposed.ZIP as per the instructions in the Xposed link below)
9) Reboot to activate the new Module
10) Within the EDXposed App, Install the FakeGApps Module
11) Reboot to activate the new Module
As everything I really care about is working in this build, I do not plan to devote much, if any, time to "supporting" this release. I just thought I'd share my clean 17.1 LineageOS in case anyone else is interested.
Download:
LineageOS 17.1 Unofficial (Built: 2020-07-10) md5sum: 1c340fc16a6fbc7586d0a856acb9c600
NanoDroid Patcher (optional): NanoIx
Magisk Root (optional): Magisk
XPosed for Android 10 - Magisk Module (optional): Xposed
Just found a new bug:
Wireless Hotspot will not start.
Can anyone confirm if this is an issue with other LineageOS build for this device?
Messed around too much and had to re-flash. Afterwards, I could not get apps to register with MicroG Cloud Messaging, so some notifications were not working.
If anyone runs into this issue, just get a root shell and run this command:
Code:
adb shell
su
am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://2432546 --receiver-include-background
This will register the current user with Cloud Messaging. You can verify this works with the "Push Notification Tester" app in the Aurora Store.
This knowledge comes to you courtesy of lxp over on the MicroG Github
Using for 3 days now, and is working good, i don't use MicroG and no google apps. Nice work
Using it for second day, and everything seems fine, hotspot working too.
Only problem is with Revolut app which say it's incompatible app, are there any workaround?
Btw. Good job, thanks!
Simonell said:
Using it for second day, and everything seems fine, hotspot working too.
Only problem is with Revolut app which say it's incompatible app, are there any workaround?
Btw. Good job, thanks!
Click to expand...
Click to collapse
I'm not familiar with that App. Is it working on other AOSP-based ROMS?
It looks like Mobile Banking app. I don't have an account to really test; nor do I have the energy to try and troubleshoot individual apps.
Are you by chance running it on a rooted install? If you have rooted this ROM, that could be why you are having trouble with that Banking App. I know they tend to not like rooted phones.
I have been happy with this build since I compiled it on the 25th, but I may update and compile from current source. It I do, I can make it available for you to try.
Of course, if it is broken on other LineageOS builds, or if you are rooted, I would expect it to still complain on this build, too.
If you rooted with Magisk, there is a Magisk Hide option in the Magisk Manager app that may let you hide your root from that specific banking app.
photonmedia said:
I'm not familiar with that App. Is it working on other AOSP-based ROMS?
It looks like Mobile Banking app. I don't have an account to really test; nor do I have the energy to try and troubleshoot individual apps.
Are you by chance running it on a rooted install? If you have rooted this ROM, that could be why you are having trouble with that Banking App. I know they tend to not like rooted phones.
I have been happy with this build since I compiled it on the 25th, but I may update and compile from current source. It I do, I can make it available for you to try.
Of course, if it is broken on other LineageOS builds, or if you are rooted, I would expect it to still complain on this build, too.
If you rooted with Magisk, there is a Magisk Hide option in the Magisk Manager app that may let you hide your root from that specific banking app.
Click to expand...
Click to collapse
It's working after root and Hide in Magisk Manager. I was confused because it was showing up as "Incomaptible with device" in google play store, after rooting it's installed. Thanks!
Could you send commands which you used to compile ROM? I have some free space on my home server, maybe I could set up Jenkins with auto building. Is it possible to get auto update working?
Simonell said:
It's working after root and Hide in Magisk Manager. I was confused because it was showing up as "Incomaptible with device" in google play store, after rooting it's installed. Thanks!
Could you send commands which you used to compile ROM? I have some free space on my home server, maybe I could set up Jenkins with auto building. Is it possible to get auto update working?
Click to expand...
Click to collapse
ThePiGuy already has a great overview of building for unsupported/unofficial devices here
You'll need to install all the base requirements on your build distro before you proceed. This includes the adb and fastboot tools, the build packages, and the java versions as mentioned in this LineageOS build guide for one of their other Xiaomi "supported" devices.
What I post here is basically my method of pulling the relevant info from the two build guides above to get a successful build for the Xiaomi Mi 9 (cepheus).
I will say as for the Requirements, it really needs to be 16GB of RAM. I tried building in a VM with 8GB multiple times and it failed due to running out of memory. This could just be because I run on SSDs and do not use SWAP space/files...
When it comes to your Proprietary Blobs, I pulled mine from Demon000's Github Source
You will need these repos, and we will cover these steps further down:
vendor_xiaomi
kernel_xiaomi_sm8150
device_xiaomi_cepheus
device_xiaomi_sm8150_common
When performing the "ccache -M $G" command I used:
Code:
ccache -M 50G
Now let's create your base folder where you want to make all the magic happen. Be sure to have plenty of storage available. In my case, I needed about 200GB.
Code:
mkdir -p ~/android/lineage
cd ~/android/lineage
When performing your repo init commands, reference branch 17.1:
Code:
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
Sync the repo to your current working directory, in this case the lineage folder you created above (which should still be your working directory):
Code:
repo sync
This will pull down 100+GB of files, so this takes quite some time.
Following along, you should be in your folder called "lineage" where you ran your repo init and repo sync commands. In my case this is:
Code:
~/android/lineage/
Attached is my manifest file called "cepheus.xml" that references the Demon000 github source.
Place this cepheus.xml file here:
Code:
~/android/lineage/.repo/local_manifests/cepheus.xml
(creating the local_manifests folder if necessary)
Now you need to complete the build of your device tree.
You will clone each of the four repositories above into their respective locations in the device tree:
vendor_xiaomi -> ~/android/lineage/vendor/xiaomi/
kernel_xiaomi_sm8150 -> ~/android/lineage/kernel/xiaomi/sm8150
device_xiaomi_cepheus -> ~/android/lineage/device/xiaomi/cepheus
device_xiaomi_sm8150_common -> ~/android/lineage/device/sm8150_common
Note: Be sure to check each of those four locations and make sure the contents of the repository are in those folders, not, for example: ~/android/lineage/device/sm8150_common/device_xiaomi_sm8150_common. You don't want the repo contents within that extra subfolder...
In my case, I created the necessary directory structure and changed to that directory, then cloned the repo and moved the contents from the subfolder created by the clone operation into the correct location.
Code:
mkdir -p ~/android/lineage/vendor/xiaomi/
cd ~/android/lineage/vendor/xiaomi
git clone https://github.com/Demon000/vendor_xiaomi.git
mv vendor_xiaomi/* .
rm -r vendor_xiaomi
Code:
mkdir -p ~/android/lineage/kernel/xiaomi/sm8150
cd ~/android/lineage/kernel/xiaomi/sm8150
git clone https://github.com/Demon000/kernel_xiaomi_sm8150.git
mv kernel_xiaomi_sm8150/* .
rm -r kernel_xiaomi_sm8150
Code:
mkdir -p ~/android/lineage/device/xiaomi/cepheus
cd ~/android/lineage/device/xiaomi/cepheus
git clone https://github.com/Demon000/device_xiaomi_cepheus.git
mv device_xiaomi_cepheus/* .
rm -r device_xiaomi_cepheus
Code:
mkdir -p ~/android/lineage/device/xiaomi/sm8150_common
cd ~/android/lineage/device/xiaomi/sm8150_common
git clone https://github.com/Demon000/device_xiaomi_sm8150_common.git
mv device_xiaomi_sm8150_common/* .
rm -r device_xiaomi_sm8150_common
Now return to your base lineage folder:
Code:
cd ~/android/lineage
Now that you have init'd and synced your repo and pulled your proprietary blobs into their respective folders, you are ready to build with the brunch command:
Code:
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
export USE_CCACHE=1
ccache -M 50G
source build/envsetup.sh
brunch lineage_cepheus-userdebug
For me, I have no idea how long this took to complete as I left it running overnight. I would imaging at least 4 hours on my i5 device. Once it's done, you should have a TWRP-flashable zip and an OTA zip in the ~/android/lineage/out folder.
Note: If after compiling for some time, the process fails with errors, it should provide you with information on how to track down the error. In my case, I ended up with it stopping with a failure a couple times, but I just re-ran the above brunch command and it picked up where it left off, eventually completing successfully. YMMV
I'm sure there are cleaner, simpler ways of going about this, but I'm just getting my feet wet with current Android source. I haven't really done any sort of Android "development" since the days of KitKat...
photonmedia said:
ThePiGuy already has a great overview of building for unsupported/unofficial devices here
You'll need to install all the base requirements on your build distro before you proceed. This includes the adb and fastboot tools, the build packages, and the java versions as mentioned in this LineageOS build guide for one of their other Xiaomi "supported" devices.
What I post here is basically my method of pulling the relevant info from the two build guides above to get a successful build for the Xiaomi Mi 9 (cepheus).
I will say as for the Requirements, it really needs to be 16GB of RAM. I tried building in a VM with 8GB multiple times and it failed due to running out of memory. This could just be because I run on SSDs and do not use SWAP space/files...
When it comes to your Proprietary Blobs, I pulled mine from Demon000's Github Source
You will need these repos, and we will cover these steps further down:
vendor_xiaomi
kernel_xiaomi_sm8150
device_xiaomi_cepheus
device_xiaomi_sm8150_common
When performing the "ccache -M $G" command I used:
Code:
ccache -M 50G
Now let's create your base folder where you want to make all the magic happen. Be sure to have plenty of storage available. In my case, I needed about 200GB.
Code:
mkdir -p ~/android/lineage
cd ~/android/lineage
When performing your repo init commands, reference branch 17.1:
Code:
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
Sync the repo to your current working directory, in this case the lineage folder you created above (which should still be your working directory):
Code:
repo sync
This will pull down 100+GB of files, so this takes quite some time.
Following along, you should be in your folder called "lineage" where you ran your repo init and repo sync commands. In my case this is:
Code:
~/android/lineage/
Attached is my manifest file called "cepheus.xml" that references the Demon000 github source.
Place this cepheus.xml file here:
Code:
~/android/lineage/.repo/local_manifests/cepheus.xml
(creating the local_manifests folder if necessary)
Now you need to complete the build of your device tree.
You will clone each of the four repositories above into their respective locations in the device tree:
vendor_xiaomi -> ~/android/lineage/vendor/xiaomi/
kernel_xiaomi_sm8150 -> ~/android/lineage/kernel/xiaomi/sm8150
device_xiaomi_cepheus -> ~/android/lineage/device/xiaomi/cepheus
device_xiaomi_sm8150_common -> ~/android/lineage/device/sm8150_common
Note: Be sure to check each of those four locations and make sure the contents of the repository are in those folders, not, for example: ~/android/lineage/device/sm8150_common/device_xiaomi_sm8150_common. You don't want the repo contents within that extra subfolder...
In my case, I created the necessary directory structure and changed to that directory, then cloned the repo and moved the contents from the subfolder created by the clone operation into the correct location.
Code:
mkdir -p ~/android/lineage/vendor/xiaomi/
cd ~/android/lineage/vendor/xiaomi
git clone https://github.com/Demon000/vendor_xiaomi.git
mv vendor_xiaomi/* .
rm -r vendor_xiaomi
Code:
mkdir -p ~/android/lineage/kernel/xiaomi/sm8150
cd ~/android/lineage/kernel/xiaomi/sm8150
git clone https://github.com/Demon000/kernel_xiaomi_sm8150.git
mv kernel_xiaomi_sm8150/* .
rm -r kernel_xiaomi_sm8150
Code:
mkdir -p ~/android/lineage/device/xiaomi/cepheus
cd ~/android/lineage/device/xiaomi/cepheus
git clone https://github.com/Demon000/device_xiaomi_cepheus.git
mv device_xiaomi_cepheus/* .
rm -r device_xiaomi_cepheus
Code:
mkdir -p ~/android/lineage/device/xiaomi/sm8150_common
cd ~/android/lineage/device/xiaomi/sm8150_common
git clone https://github.com/Demon000/device_xiaomi_sm8150_common.git
mv device_xiaomi_sm8150_common/* .
rm -r device_xiaomi_sm8150_common
Now return to your base lineage folder:
Code:
cd ~/android/lineage
Now that you have init'd and synced your repo and pulled your proprietary blobs into their respective folders, you are ready to build with the brunch command:
Code:
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
export USE_CCACHE=1
ccache -M 50G
source build/envsetup.sh
brunch lineage_cepheus-userdebug
For me, I have no idea how long this took to complete as I left it running overnight. I would imaging at least 4 hours on my i5 device. Once it's done, you should have a TWRP-flashable zip and an OTA zip in the ~/android/lineage/out folder.
Note: If after compiling for some time, the process fails with errors, it should provide you with information on how to track down the error. In my case, I ended up with it stopping with a failure a couple times, but I just re-ran the above brunch command and it picked up where it left off, eventually completing successfully. YMMV
I'm sure there are cleaner, simpler ways of going about this, but I'm just getting my feet wet with current Android source. I haven't really done any sort of Android "development" since the days of KitKat...
Click to expand...
Click to collapse
Thanks! I will try this guide at the weekend, and post results
Simonell said:
Thanks! I will try this guide at the weekend, and post results
Click to expand...
Click to collapse
For what it's worth, I just successfully compiled an updated build today, but it fails to boot after flashing. Had to go back and flash my 2020-01-25 build from the OP.
YMMV
.
stock mi 9 camera works or not on this rom? because i don't raelly like gcam.
ahmadharith said:
stock mi 9 camera works or not on this rom? because i don't raelly like gcam.
Click to expand...
Click to collapse
I was able to install ANXCamera and their ANXCustLibsQ_160.DisloyalInnocentVelvetworm.zip Libraries and it works fine for me. Sometimes Portrait mode freezes, but I never use that anyway...
https://github.com/XEonAX/ANXCamera
us23heep said:
Hello friends!
Sorry my poor english. I am stuck 5 days with this error. Google cant answer. Please can you tell me if what I am doing wrong?
Error always say ... depends on undefined module
Try 1: pastebin.com/33nmpQLU
Try 2: pastebin.com/n3gxTXgY
Try 3: pastebin.com/7Lre4ZiF
Standard manifests:
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
local_manifests:
pastebin.com/kt4ES0d4
Thank you :good:
Click to expand...
Click to collapse
It seems like maybe it is not seeing some or all of the device tree files it needs. You may try manually downloading those device files an putting them in the appropriate folders as I mentioned I did in the steps I posted.
I built this yesterday using the instructions above... thanks a lot for those photonmedia!
Some of the instructions were wrong, ie a _ instead of a - in a dir name, but easy fixed.
After that, the entire build completed with 0 errors.
I didnt end up with a ZIP file though, just a approx 400MB "build-lineage_cepheus.ninja" file?
MWPau said:
I built this yesterday using the instructions above... thanks a lot for those photonmedia!
Some of the instructions were wrong, ie a _ instead of a - in a dir name, but easy fixed.
After that, the entire build completed with 0 errors.
I didnt end up with a ZIP file though, just a approx 400MB "build-lineage_cepheus.ninja" file?
Click to expand...
Click to collapse
did you first
Code:
breakfast cepheus
and then
Code:
brunch cepheus
?
the .zip is actually in the
/out/target/product/cepheus/ folder.
I did *exactly* as was instructed above...
Code:
cd ~/android/lineage
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
export USE_CCACHE=1
ccache -M 50G
source build/envsetup.sh
brunch lineage_cepheus-userdebug
MWPau said:
I did *exactly* as was instructed above...
Code:
cd ~/android/lineage
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"
export USE_CCACHE=1
ccache -M 50G
source build/envsetup.sh
brunch lineage_cepheus-userdebug
Click to expand...
Click to collapse
My understanding is that the breakfast command is not necessary when you are building for unofficial devices and manually populating the necessary device tree files; you skip to the brunch step.
That is per the other guide I referenced in my instructions and how I was able to build this release.
I have not tried to pull and build an updated version as of this time.
k1l said:
the .zip is actually in the
/out/target/product/cepheus/ folder.
Click to expand...
Click to collapse
I missed this at the end of your reply :/
Yup, it's in there. Thanks
Code:
838M -rw-r--r-- 2 root root 838M Feb 25 01:31 lineage-17.1-20200224-UNOFFICIAL-cepheus.zip
photonmedia said:
For what it's worth, I just successfully compiled an updated build today, but it fails to boot after flashing. Had to go back and flash my 2020-01-25 build from the OP.
YMMV
Click to expand...
Click to collapse
Same for me. Have been trying to get it sorted the last few days, i dont know whats going on.
Original OP build works ok.