[DEV] To Ubuntu Phone and Beyond - Xperia Arc General

DEVS ONLY THAT EXCLUDES ROM MAKERS / USERS
Previous Info
so most of you must have heard about ubuntu touch. And a preview source of which was released. I got somr requests to build if for the 2011 line, but due to the numerous projects I have already I cant do it yet. Canconial did provide a guide to build which I sent to them, but they said it was too confusing etc. If a dev wants to build it, ill provide a simple enough guide where you have to do almost nothing except wait. If requested. *A user can too build it, but I cant solve everything so remember that.
Thank you for reading now onto the development
~emwno
It begins here.... To Ubuntu And Beyond!​
Currently got Ubuntu Touch Developer Preview on my Note II built. So far Ubuntu touch based on cm-10.1
-- NOTE these git changes are only for IYOKAN and ANZU not for any other 2011 DEVICE. Ill push those changes later
Before you begin make sure you have:
Code:
64 bit build machine (pc/laptop)
64 bit Ubuntu
Brain
Basic knowledge about source code / directories
30 gigs of free space for source code / build
Patience for source code download / build
Now if you have those, we can continue. Firstly set up the build environment
Code:
sudo apt-get install git gnupg flex bison gperf build-essential \ zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool
Then install the tools
Code:
sudo apt-add-repository ppa:phablet-team/tools
sudo apt-get update sudo apt-get install phablet-tools
Time to get the source code. It needs patience (around 15-18 gigs)
Code:
phablet-dev-bootstrap -j 4 ubuntu-touch
Code:
cd ubuntu-touch
Now choose your Device and continue...​
Xperia Pro Specific
Time to grab the device specific repositories. Navigate to .repo/local_manifest.xml and add this.
(CTRL + H at home if not present)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="emwno/android_device_semc_iyokan" path="device/semc/iyokan" remote="github" revision="ubuntu-10.1" />
<project name="emwno/android_device_semc_msm7x30-common" path="device/semc/msm7x30-common" remote="github" revision="ubuntu-10.1" />
<project name="emwno/semc_kernel_msm7x30" path="kernel/semc/msm7x30" remote="github" revision="ubuntu-10.1" />
<project name="emwno/android_device_semc_mogami-common" path="device/semc/mogami-common" remote="github" revision="ubuntu-10.1" />
</manifest>
Code:
repo sync -j4
Now extract the proprietary blobs from your phone. For this you need cm-10.1 flashed on your phone. Connect phone to laptop and run
Code:
cd device/semc/iyokan ./extract-files.sh
And build it
Code:
. build/envsetup.sh
brunch iyokan[/list]
Xperia Arc/S Specific
Time to grab the device specific repositories. Navigate to .repo/local_manifest.xml and add this.
(CTRL + H at home if not present)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="emwno/android_device_semc_anzu" path="device/semc/anzu" remote="github" revision="ubuntu-10.1" />
<project name="emwno/android_device_semc_msm7x30-common" path="device/semc/msm7x30-common" remote="github" revision="ubuntu-10.1" />
<project name="emwno/semc_kernel_msm7x30" path="kernel/semc/msm7x30" remote="github" revision="ubuntu-10.1" />
<project name="emwno/android_device_semc_mogami-common" path="device/semc/mogami-common" remote="github" revision="ubuntu-10.1" />
</manifest>
Code:
repo sync -j4
Now extract the proprietary blobs from your phone. For this you need cm-10.1 flashed on your phone. Connect phone to laptop and run
Code:
cd device/semc/anzu ./extract-files.sh
And build it
Code:
. build/envsetup.sh
brunch anzu[/list]
If successful, your zip will be placed at out/target/product/{device code}. But just by flashing that you wont gain Ubuntu Touch. Additionally you will have to download the quantal-preinstalled-phablet-armhf.zip as well. Its the daily build of Ubuntu Touch directly from Canonical (Currently 12.10)
Instructions to flashing​
Code:
Flash kernel
Reboot in recovery
WIpe EVERYTHING (Data/System/Cache/Dalvik)
Install the zip you gained from [B]out/target/product/{device code}[/B]
Install the [B]quantal-preinstalled-phablet-armhf.zip[/B]
Reboot
------------------------------------If it doesn’t boot up then------------------------------------
Code:
Connect phone to PC and in terminal:
adb root
adb shell (then the following commands)
ubuntu_chroot shell
ubuntu-session
Sources
My Github
Ubuntu Touch

Re: [DEV](Q) Easy guide to Ubuntu touch
I recently got myself a new PC, I'll try it out and see what happens, should be a fun little thingy to do this afternoon
Dympy.
Sent from my Nexus 7 using xda premium

Re: [DEV](Q) Easy guide to Ubuntu touch
Would you still mind to post that guide incase you've some time?
Sent from my Xperia Neo V using xda premium

posted... anzu / iyokan changes pushed

Did you make anything flashable?

replicant101 said:
Did you make anything flashable?
Click to expand...
Click to collapse
please read op. or rather the first line.

emwno said:
please read op. or rather the first line.
Click to expand...
Click to collapse
Whoops, I beg your pardon.
Although, after reading it back.. I still don't get it.
Have you or, have you not, got Ubuntu Touch running on the Anzu?

I cant. i dont have the time nor the space to build it. so i posted this simplified guide. so other devs still existent on the 2011 line can build it.t

emwno said:
other devs still existent on the 2011 line can build it.
Click to expand...
Click to collapse
This made my Arc feel really old.. :/
*thanks for the guide though

replicant101 said:
This made my Arc feel really old.. :/
*thanks for the guide though
Click to expand...
Click to collapse
don't worry dude Ubuntu developers has explained, their market strategy is create roms for old phones which are don't have official android update from their producers.

Okay, finally had the sources synced, so gave it my best shot while still following your guide for Iyokan.
I ran into an error while compiling, just thought I'd share it here:
make: *** No rule to make target `/home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libgenlock_intermediates/export_includes', needed by `/home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libOmxVdec_intermediates/import_includes'. Stop.
make: *** Waiting for unfinished jobs....
[email protected]:~/ubuntu-touch$
Click to expand...
Click to collapse
Dympy.

dympy said:
Okay, finally had the sources synced, so gave it my best shot while still following your guide for Iyokan.
I ran into an error while compiling, just thought I'd share it here:
Dympy.
Click to expand...
Click to collapse
libgenlock_intermediates/export_includes
Click to expand...
Click to collapse
Some needed files are missing here. (Did you run config )

emwno said:
Some needed files are missing here. (Did you run config )
Click to expand...
Click to collapse
You mean retrieving stuff from the phone itself? Because I did that..
Dympy.
Sent from my Nexus 7 using xda premium

dympy said:
You mean retrieving stuff from the phone itself? Because I did that..
Dympy.
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
try 'make clean' and 'make clobber' and try again

emwno said:
try 'make clean' and 'make clobber' and try again
Click to expand...
Click to collapse
Still nothing, going to walk my dog for a while, think out loud, and then retry some stuff..
Sent from my Nexus 7 using xda premium

do this, manually create a 'export_includes' file at the given directory. that should get you past that for sure. (if not work after build, can always use the lib from my cm10.1 build as ubuntu phone is based upon CM stripped off most of android)

emwno said:
do this, manually create a 'export_includes' file at the given directory. that should get you past that for sure. (if not work after build, can always use the lib from my cm10.1 build as ubuntu phone is based upon CM stripped off most of android)
Click to expand...
Click to collapse
I just got an email from my ISP telling me they had major connection loss from our home, apparently my dog gnawed on some of the cables..
I've replaced the cables and am now syncing the sources again, my guess is that I missed some sources..
Dympy.

emwno said:
do this, manually create a 'export_includes' file at the given directory. that should get you past that for sure. (if not work after build, can always use the lib from my cm10.1 build as ubuntu phone is based upon CM stripped off most of android)
Click to expand...
Click to collapse
Still nothing, same error as before..
Dympy.

dympy said:
Still nothing, same error as before..
Dympy.
Click to expand...
Click to collapse
Resync the iyokan device tree, make clean, copy files from phone again and compile. Made changes to the files pulled from phone, included thst lib to avoid compiling errors

emwno said:
Resync the iyokan device tree, make clean, copy files from phone again and compile. Made changes to the files pulled from phone, included thst lib to avoid compiling errors
Click to expand...
Click to collapse
Well, I still got the error..
The last lines of my terminal:
make: *** No rule to make target `/home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libgenlock_intermediates/export_includes', needed by `/home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libOmxVdec_intermediates/import_includes'. Stop.
make: *** Waiting for unfinished jobs....
Import includes file: /home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libOmxCore_intermediates/import_includes
Export includes file: hardware/qcom/media/mm-core/Android.mk -- /home/dympy/ubuntu-touch/out/target/product/iyokan/obj/SHARED_LIBRARIES/libOmxCore_intermediates/export_includes
[email protected]:~/ubuntu-touch$
Click to expand...
Click to collapse
Shall I try to create the file it's looking for, like you suggested before?
Dympy.

Related

[Q] completely newbie trying to build first rom from source, how to?

Hi, i was thinking about trying to build very first rom from source ever.i have followed this -> http://docs.omnirom.org/Setting_Up_A_Compile_Environment, and now syncing sources.(hopefully no errors now since its been syncing for like 2h now) how long syncing usually takes?(~1,5mb/s DL speed)
so whats the next move i should take after syncing to get ready for compiling?
what was i really wondering is how can i get correct drivers(vendor blobs?) for nexus 7 2013(FLO) when i try compile? also how long compiling usually takes on highend rig?
and then i have question about cherry picks, is it easy as opening terminal to corresponding folder of cherrypick and fetching it there?(http://forum.xda-developers.com/showpost.php?p=37053013&postcount=7)
thx for everyone whos willing to help me, i know questions above probably are really noobish, but its my first time and i dont really have any linux knowledge so just by getting sync going im pretty satisfied.
Do you have Java6 installed? If not, then
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java6-installer
You also need to create a /omni(or whatever is your working directory called)/.repo/local_manifest floder, and in it an .xml file that can be named anything except roomservice.
That .xml should contain flo-specific omni and themuppets projects. Themuppets contains your asus blobs. It should look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2" />
</manifest>
Click to expand...
Click to collapse
This .xml file can contain many lines like themuppets one.
After that you have to do another repo sync so the projects listed in your .xml can be pulled to your local repo.
After that, you can start the build.
This is my first build, too. I seem to have goofed somewhere, as its not booting. I'll have to try again, as I think your XML file there might be what I need to do. I'm building for Manta.
chasmodo said:
Do you have Java6 installed? If not, then
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java6-installer
You also need to create a /omni(or whatever is your working directory called)/.repo/local_manifest floder, and in it an .xml file that can be named anything except roomservice.
That .xml should contain flo-specific omni and themuppets projects. Themuppets contains your asus blobs. It should look something like this:
This .xml file can contain many lines like themuppets one.
After that you have to do another repo sync so the projects listed in your .xml can be pulled to your local repo.
After that, you can start the build.
Click to expand...
Click to collapse
got vendor blobs from themuppets now, which command should i use to start building? (. build/envsetup.sh; brunch flo?)
makkeonmies said:
got vendor blobs from themuppets now, which command should i use to build to start building? (. build/envsetup.sh; brunch flo?)
Click to expand...
Click to collapse
That's what worked for me this morning (except I didn't have my vendor blobs!)
well no luck this time, maybe i have forgot to do something?
make: *** No rule to make target `/home/joni/android/omni/out/target/product/flo/obj/KERNEL_OBJ/usr', needed by `/home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libqservice_intermediates/QService.o'. Stop.
make: *** Waiting for unfinished jobs....
host SharedLib: libSR_Recognizer (/home/joni/android/omni/out/host/linux-x86/obj/lib/libSR_Recognizer.so)
Click to expand...
Click to collapse
compiling stop with lines above..
makkeonmies said:
well no luck this time, maybe i have forgot to do something?
compiling stop with lines above..
Click to expand...
Click to collapse
That was the same error I was getting, renaming local_manifest to roomservice got the build rolling.
CMNein said:
That was the same error I was getting, renaming local_manifest to roomservice got the build rolling.
Click to expand...
Click to collapse
seems to go further now, but stopped for error like this now ->
frameworks/base/core/res/res/values/public.xml:646: warning: No comment for public symbol android:style/Widget.ScrollView
frameworks/base/core/res/res/values/public.xml:633: warning: No comment for public symbol android:style/Widget.SeekBar
frameworks/base/core/res/res/values/public.xml:641: warning: No comment for public symbol android:style/Widget.Spinner
frameworks/base/core/res/res/values/public.xml:1529: warning: No comment for public symbol android:style/Widget.Spinner.DropDown
frameworks/base/core/res/res/values/public.xml:653: warning: No comment for public symbol android:style/Widget.TabWidget
frameworks/base/core/res/res/values/public.xml:635: warning: No comment for public symbol android:style/Widget.TextView
frameworks/base/core/res/res/values/public.xml:642: warning: No comment for public symbol android:style/Widget.TextView.PopupMenu
frameworks/base/core/res/res/values/public.xml:643: warning: No comment for public symbol android:style/Widget.TextView.SpinnerItem
frameworks/base/core/res/res/values/public.xml:652: warning: No comment for public symbol android:style/Widget.WebView
+ theres like 1000 more of these but would be too long copy paste.
okey, cleaned output dir to try from clean table and tried again and for some reason it now stops ->
needed by `/home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libqservice_intermediates/QService.o'. Stop.
make: *** Waiting for unfinished jobs....
Import includes file: /home/joni/android/omni/out/target/product/flo/obj/SHARED_LIBRARIES/libdivxdrmdecrypt_intermediates/import_includes
makkeonmies said:
seems to go further now, but stopped for error like this now .
Click to expand...
Click to collapse
These are warnings, not errors. You'll be getting thousands of these in each build, that's nothing to worry about.
However, you have to search for the terminal line(s) saying 'error' when the build stops. Then you copy/paste those in http://pastebin.com/ and give us the link. We can't help you when you post just the warnings, there's nothing to be seen there.
chasmodo said:
These are warnings, not errors. You'll be getting thousands of these in each build, that's nothing to worry about.
However, you have to search for the terminal line(s) saying 'error' when the build stops. Then you copy/paste those in http://pastebin.com/ and give us the link. We can't help you when you post just the warnings, there's nothing to be seen there.
Click to expand...
Click to collapse
heres the lines before it stops -> http://pastebin.com/X4wkZvex
also just by trying compile again its giving me these in addition to earliers, why it didnt give these first time?
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
makkeonmies said:
heres the lines before it stops -> http://pastebin.com/X4wkZvex
Click to expand...
Click to collapse
Looks like the kernel error. Which device are you compiling for?
makkeonmies said:
also just by trying compile again its giving me these in addition to earliers, why it didnt give these first time?
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Click to expand...
Click to collapse
This is normal, no cause for alarm.
for nexus 7(2013, FLO)
okey, i had to reboot computer to get nvidia drivers installed, now its not even trying to compile again ->
** Don't have a product spec for: 'custom_flo'
** Do you have the right repo manifest?
and im using very same command which i did earlier.
makkeonmies said:
for nexus 7(2013, FLO)
Click to expand...
Click to collapse
You have https://github.com/omnirom/android_kernel_google_msm in your roomservice/manifest?
error i have after repo sync
Fetching projects: 100% (375/375), done.
Traceback (most recent call last):
File "/home/desalesouche/.repo/repo/main.py", line 418, in <module>
_Main(sys.argv[1:])
File "/home/desalesouche/.repo/repo/main.py", line 394, in _Main
result = repo._Run(argv) or 0
File "/home/desalesouche/.repo/repo/main.py", line 142, in _Run
result = cmd.Execute(copts, cargs)
File "/home/desalesouche/.repo/repo/subcmds/sync.py", line 657, in Execute
project.Sync_LocalHalf(syncbuf)
File "/home/desalesouche/.repo/repo/project.py", line 1106, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File "/home/desalesouche/.repo/repo/project.py", line 2074, in _revlist
return self.work_git.rev_list(*a, **kw)
File "/home/desalesouche/.repo/repo/project.py", line 2227, in rev_list
p.stderr))
error.GitError: android rev-list (u'^68adae319917cbb1873f3492b67b3f5f80bbc8f5', 'HEAD', '--'): fatal: bad object HEAD
some help/advice please?
CMNein said:
You have https://github.com/omnirom/android_kernel_google_msm in your roomservice/manifest?
Click to expand...
Click to collapse
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
makkeonmies said:
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
Click to expand...
Click to collapse
Code:
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-msm-flo-3.4-jb-mr2" />
makkeonmies said:
no i dont think so i had this, how do i add it? im assuming not only the link works. is it something like "<project name="omnirom/android_kernel_google_msm" + something else? or am i completely lost with this.
also whole manifest file disappeared on reboot -.-
Click to expand...
Click to collapse
Within omni/.repo create a local_manifests folder.
Create a file called roomservice.xml and add the following:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-msm-flo-3.4-jb-mr2"/>
</manifest>
repo sync again.
You could put TheMuppets in a separate manifest called local_manifest.xml, but the above should get you rolling <fingers crossed>
CMNein said:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-4.3"/>
</manifest>
Click to expand...
Click to collapse
Your kernel revision is not correct.
chasmodo said:
Your kernel revision is not correct.
Click to expand...
Click to collapse
herp derp, had edited my mako manifest.
revision is: android-msm-flo-3.4-jb-mr2
CMNein said:
Within omni/.repo create a local_manifests folder.
Create a file called roomservice.xml and add the following:
Code:
<manifest>
<project name="TheMuppets/proprietary_vendor_asus" path="vendor/asus" remote="github" revision="cm-10.2"/>
<project name="omnirom/android_device_asus_flo" path="device/asus/flo" remote="github" revision="android-4.3"/>
<project name="omnirom/android_kernel_google_msm" path="kernel/google/msm" remote="github" revision="android-4.3"/>
</manifest>
repo sync again.
You could put TheMuppets in a separate manifest called local_manifest.xml, but the above should get you rolling <fingers crossed>
Click to expand...
Click to collapse
yeah i allready made the file again there, thx anyways guess it was about i was missing the "omnirom/android_kernel_google_msm" on first time i tried
btw did i understand this thing rigth, revision=branch when im adding things to manifest? remote="website" and i can forgot omnirom/android from path since im syncing from that location(on terminal) allready?

[GUIDE][CM12] Compiling CM12 for Moto G and cherry picking features.

Here's a little something for the guys (and flashaholics) who don't like to wait for devs to release new CM12 builds.
AFAIK ROMS CAN'T BE COMPILED ON 32 BIT SYSTEMS. ONLY 64 BIT.
YOU CAN USE ANY DISTRO YOU WANT. I USE UBUNTU 14.10 DUAL BOOTED, BUT THAT'S JUST A PERSONAL PREFERENCE.
We start with setting up the build environment:
First, start with installing this:
Code:
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Once that is done, we go about installing JDK-7 since that's the one that works for lollipop
Code:
sudo apt-get install openjdk-7-jdk
Then we install the Android SDK for some useful stuff:
Code:
sudo apt-get install android androidsdk-uiautomatorviewer android-copyright android-src-vendor android-emulator android-tools-adb android-headers android-tools-adbd androidsdk-ddms android-tools-fastboot androidsdk-hierarchyviewer android-tools-fsutils androidsdk-traceview
Once all that is dealt with, we can move on to the repo tool. That's what will get your CM repos syncing:
Code:
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
and then, reboot to apply the changes.
Now for the interesting part
Not really, actually.
Time to yank the CM source code.
Create a working directory where you're going to sync all the sources and do the dirty stuff.
For this guide, we'll call the working directory "cm12"
Create the directory by running
Code:
mkdir cm12
enter your working directory by typing
Code:
cd cm12
Inititialize the repo by throwing in:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
Wait for all the activity in the terminal to cease. And then type in:
Code:
repo sync
while the stuff is downloading, grab a ginger ale, or a cup of coffee and admire your handiwork. If you're the impatient type, find a generous dose of your favourite sedative, and knock yourself out for a few hours. When you're up again, you'll be faced with one of two things. Either your repos have synced successfully (yay!), or you get some nasty fetch errors. If it's the latter, then, Voila! You've just faced your first ever compiling frustration. Take some time out and break a few things, drive the neighbours crazy and then return to the PC and knock in:
Code:
repo sync -j1
This should (hopefully) work perfectly as long as you have an internet connection worth paying for. If not, then compiling probably isn't for you anyway.
Once all that stuff's over, create a folder called
Code:
local_manifests
in the .repo folder, and then make a new file in that folder called
Code:
roomservice.xml
open roomservice.xml using gedit, and add the following:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_motorola_falcon" path="device/motorola/falcon" remote="github" revision="cm-12.0"/>
<project name="CyanogenMod/android_device_motorola_msm8226-common" path="device/motorola/msm8226-common" remote="github" revision="cm-12.0"/>
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-12.0"/>
<project name="CyanogenMod/android_kernel_motorola_msm8226" path="kernel/motorola/msm8226" remote="github" revision="cm-12.0"/>
<project name="TheMuppets/proprietary_vendor_motorola" path="vendor/motorola" remote="github" revision="cm-12.0"/>
<project name="CyanogenMod/android_hardware_qcom_fm" path="hardware/qcom/fm" remote="github" />
</manifest>
Then cd back to your working directory
Code:
cd ~/cm12
YOU'RE READY TO ROLL!
Finally, to build, type in:
Code:
. build/envsetup.sh && brunch falcon
If you have a really powerful PC, then use:
Code:
. build/envsetup.sh && brunch cm_falcon-userdebug -j8
And if you have a really really powerful PC, then use:
Code:
. build/envsetup.sh && brunch cm_falcon-userdebug -j16
Wait for the build to compile. Usually takes about 2-3 hours on an okay PC. You'll find your completed build in cm12/out/target/product/falcon.
The next time you want to build, run:
Code:
make clean
repo sync
. build/envsetup.sh
brunch falcon
.. and so on.
Happy Building!
What're you looking at? This is mine!
One more. Just in case.
Thought I'd add to this
Instead of breakfast and editing room service
U can manually create a folder in .repo folder name it local_manifests make a file say falcon.xml
Add contents required Im on phone now will share the code in a while
Oh and brunch falcon is enough no need adding cm_falcon-userdebug part
Thank you for the guide! (I am limited to 8 thanks per day so ill hit the thanls button tomorrow xD ) You might want to add a few more details on why we use linux distros as our compiling OSes and what toolchains, etc. are. After all those 2 reserved posts do need to be put to use.
bharat_goku said:
Thought I'd add to this
Instead of breakfast and editing room service
U can manually create a folder in .repo folder name it local_manifests make a file say falcon.xml
Add contents required Im on phone now will share the code in a while
Oh and brunch falcon is enough no need adding cm_falcon-userdebug part
Click to expand...
Click to collapse
I know. But for the time being, brunch falcon -j8 doesn't work. It requires cm_falcon..... And, yeah. I was going to add that when I logged on to Ubuntu next.
Where is cherrypicking?
fabus said:
Where is cherrypicking?
Click to expand...
Click to collapse
I'll be typing out a guide for that once my hands get over this long post.
rudi_j7 said:
I know. But for the time being, brunch falcon -j8 doesn't work. It requires cm_falcon..... And, yeah. I was going to add that when I logged on to Ubuntu next.
Click to expand...
Click to collapse
I don't normally use -j8 so not sure
Add the ccache step for users I get my build ready within about 50minutes roughly by assigning 25gb find it more efficient this way,gimme a bit I'm making a new build I'll test the -j8 part then
bharat_goku said:
I don't normally use -j8 so not sure
Add the ccache step for users I get my build ready within about 50minutes roughly by assigning 25gb find it more efficient this way,gimme a bit I'm making a new build I'll test the -j8 part then
Click to expand...
Click to collapse
I use -j8 and -j16 when I'm in a hurry... and it does work. And, right now i was just focusing on adding the most basic stuff. It takes some time and effort to type out so much.
First of all,thanks for the tutorial.
But i have a question,wich distro you use? Linux? Ubuntu? And wich number? And do you use dualboot or native? Or you have an Virtual Machine? Please,i want to know wich should i use
DeHuMaNiZeD said:
First of all,thanks for the tutorial.
But i have a question,wich distro you use? Linux? Ubuntu? And wich number? And do you use dualboot or native? Or you have an Virtual Machine? Please,i want to know wich should i use
Click to expand...
Click to collapse
Personally, I dualboot Ubuntu 14.10 on a 1TB HDD and 128 GB SSD. Virtual machines are usually much much slower, but more convenient. It all depends on whether you want to take the trouble to set up a dual boot or not.
rudi_j7 said:
Personally, I dualboot Ubuntu 14.10 on a 1TB HDD and 128 GB SSD. Virtual machines are usually much much slower, but more convenient. It all depends on whether you want to take the trouble to set up a dual boot or not.
Click to expand...
Click to collapse
Well,i'll try to configure it,but i did this a long time ago and i'm not shure do i remember. Thanks man
I built this for a friend of mine, but he says CDMA doesn't work. Any fix?
topias123 said:
I built this for a friend of mine, but he says CDMA doesn't work. Any fix?
Click to expand...
Click to collapse
So far CDMA isn't working on CM12, but there's another thread in the general section where I think CDMA works.
Sent from my OnePlus One using XDA Premium 4 mobile app
Nice tutorial,and will it be same for if we compile paranoid 5.0 ? and i learned somewhere that there are patches also to fix some basic things ?
Bhavy123 said:
Nice tutorial,and will it be same for if we compile paranoid 5.0 ? and i learned somewhere that there are patches also to fix some basic things ?
Click to expand...
Click to collapse
Generally I suppose it would be the same except for the local_manifest entries. Dunno about the patches. I haven't gone about building PA 5.0.
Sent from my OnePlus One using XDA Premium 4 mobile app
You r such a big developer and even wrote such a wonderful guide but plz write for porting latest multirom for Falcon also ,I didnt understood tassador's guide as i am a newbie,sorry if i went offtopic
Bhavy123 said:
You r such a big developer and even wrote such a wonderful guide but plz write for porting latest multirom for Falcon also ,I didnt understood tassador's guide as i am a newbie,sorry if i went offtopic
Click to expand...
Click to collapse
I'm no big dev. Always learning. About multiROM, my friend is already porting it. If he's stopped work, I'll PM you a guide.
Sent from my OnePlus One using XDA Premium 4 mobile app
Thaaank you man for that guide!
It absolutely worked for me, awesome! So glad to know how to compile my own rom now

[GUIDE] How to compile SlimLP (for d802)

Hello,
as the title says I want to help people who want to compile SlimLP Beta 0.6 for d802 themselves. I am myself a newbie to this, but found somehow out to get it working and want to share my findings. This will likely work for most d8xx versions. I make special notes where I guess you need to do a change for your d8xx version if it's not a d802.
Requirements
you need to know how to use a terminal
64-bit Linux
8GB of memory (swap counts)
at least 100GB of free disk space
recommended is also the lp bootstack and Cloudyfa's Modem
I used a VirtualBox VM with 4GB of memory with 4GB of Swap and 3 CPU Cores. I use Ubuntu 14.04 LTS (x64). If you use a different system, you might want to read the sources of these instructions.
Side Note: If you use a VM,please use "fixed size" hard disk, because dynamic allocation may lead to segmentation faults later, that are hard to track. For exchange of data you can use a shared folder or Airdroid or the likes.
100GB is adviced for compiling a single device source. 150GB is for single device with CCache. 200GB+ is for CCache and multiple devices I'd say. CCache will not be explained here, but is explained in the initializing source. Just you know it exists and it accelerates rebuilds.
Setup tools
ctrl+alt+t (on Ubuntu) to open the terminal and type in:
Code:
$sudo apt-get update
$sudo apt-get install openjdk-7-jdk
$sudo apt-get install phablet-tools
$sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
(the last command might be different on different OS versions see Source)
Setup and acquire the source
Code:
$mkdir ~/SlimLP
$cd ~/SlimLP
$repo init -u git://github.com/SlimRoms/platform_manifest.git -b lp5.1
Open or create a file in ~/SlimLP/.repo/local_manifests/slim_manifest.xml (.repo is hidden)
And insert the following text:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheLoonyBin/proprietary_vendor_lge" path="vendor/lge" remote="github" revision="lp5.1"/>
<project name="SlimRoms/device_lge_d802" path="device/lge/d802" remote="github" revision="lp5.1" />
<project name="SlimRoms/device_lge_g2-common" path="device/lge/g2-common" remote="github" revision="lp5.1" />
<project name="SlimRoms/kernel_lge_msm8974" path="kernel/lge/msm8974" remote="github" revision="lp5.1" />
</manifest>
Now download source and blobs. This takes some time, so get you a beer and wait
Code:
$cd ~/SlimLP
$repo sync
(Source)
Note: You can ignore the error from repo init.
Note2: It downloads ~30GB (compressed, so actual size is way lower) and this process takes some time mostly depending on the download rate.
Note: If you want to compile for another manufacturer's device you might want to check TheLoonyBin. An alternative might be TheMuppets, that is used by CM afaik.
Prepare make
Code:
$cd ~/SlimLP
$. build/envsetup.sh
$lunch slim_d802-userdebug
Note: When you just use $lunch you see all available options
go to ~/SlimLP/kernel/lge/msm8974/arch/arm/configs
copy the name of the file (it's "slim_d802_defconfig" for d802)
open ~/SlimLP/device/lge/d802/BoardConfig.mk with a texteditor
replace "cyanogenmod_d802_defconfig" with "slim_d802_defconfig"
As of 13.09. it is no longer necessary to edit the BoardConfig.mk (see)
Make your own build with blackjack and hookers.
Code:
$cd ~/SlimLP
$make -j4 bacon
Note: -j specifies how many threads are used in the compiling process.
After a few hours depending on the memory, disk speed and CPU power you have your fresh SlimLP build. Have fun.
Credits:
Google
SlimROMs
TheLoonyBin
Josue Rivera (he explained the procedure for SlimKat to someone here)
Kind Regards
NetDwarf
PS: Subsequent (updated) compiles are realized by:
Code:
$cd ~/SlimLP
$make clean
$repo sync
$. build/envsetup.sh
$lunch slim_d802-userdebug
$make -j4 bacon
Don't omit the point in the fourth line and this is the save way to do it, but you can usually omit make clean
Nice, thanks
Nice tutorial, thanks for sharing your hard work.
NetDwarf said:
replace "cyanogenmod_d802_defconfig" with "g2-open_com-perf_defconfig"
Click to expand...
Click to collapse
Simply change to slim_d802_defconfig
https://review.slimroms.eu/#/c/5818/1/BoardConfig.mk
Still not merged lol..
Tapatalk-kal küldve az én LG-D802-el
TaRsY said:
Simply change to slim_d802_defconfig
https://review.slimroms.eu/#/c/5818/1/BoardConfig.mk
Still not merged lol..
Tapatalk-kal küldve az én LG-D802-el
Click to expand...
Click to collapse
Thank you TaRsY, I will change my guide this way. I did not sync for 2 days and they already changed it Just in case you should follow the steps in the hide/spoiler. But it makes way more sense now with the naming.
NetDwarf said:
Thank you TaRsY, I will change my guide this way. I did not sync for 2 days and they already changed it Just in case you should follow the steps in the hide/spoiler. But it makes way more sense now with the naming.
Click to expand...
Click to collapse
As I can say last days arcardinal and gmillz are working on updating the G2 repos. You sould also check the review site: https://review.slimroms.eu/ and do a repo sync.
@arcardinal @gmillz Why are these commits not merged yet to fix kernel defconfig?
for example d802
https://review.slimroms.eu/#/c/4598/
https://review.slimroms.eu/#/c/5818/
TaRsY said:
As I can say last days arcardinal and gmillz are working on updating the G2 repos. You sould also check the review site: https://review.slimroms.eu/ and do a repo sync.
Click to expand...
Click to collapse
Good to hear. I will check reviews and repos and will update the guide accordingly.
One question, why do we do
Code:
make -j4 bacon
instead of
Code:
make -j4 d802
Shouldn't it be the second way?
errikosd said:
One question, why do we do
Code:
make -j4 bacon
instead of
Code:
make -j4 d802
Shouldn't it be the second way?
Click to expand...
Click to collapse
Sry for the late answer. I don't exactly know what "bacon" means in this context, but it's not referring to the OnePlus One. Might be referring to BaCon (Basic Converter), but I'm really only guessing.
Nice guide. But I do have one recommendation. Add the vendor repo to the local_manifest so it is automatically updated when you repo sync to fetch latest sources. Also I'll get those 2 commits merged.
Sent from my LG-D800 using Tapatalk
Thank you for the addition @gmillz. I added it to the guide

[GUIDE][HOW-TO][T819]Build your own LineageOS 15.1 for T819

Hello and welcome to my first try to write an HOW-TO, don't kill me for my epic skillz in that ^^
After a nice chat with @LuK1337 that weekend I was able to build my own LineageOS ROM for our beloved Tablet. It works very nice and thus I think it should be fine to pass my information over to you, but first:
If your tablet eats your cat after that, you are on YOUR OWN! It is NOT my fault and even less the fault of @LuK1337!!
What works:
- Everything the T813 LineageOS can do + working Vibration + LTE
What does not work:
- Phone audio
So, let's start:
First you have this nice howto for the T813: https://wiki.lineageos.org/devices/gts210vewifi/build which you follow down to and including the "Download the source code" step with two lil modifications:
Install the build packages -> I had to "apt-get install python-minimal", too to make it work on Ubuntu 17.10.
Initialize the LineageOS source repository -> Well, we don't want LOS 14.1, so the command we use here is:
Code:
repo init -u https://github.com/LineageOS/android.git -b staging/lineage-15.1
After you finished the repo sync, which takes AGES on slower internet connections, you really should follow two optional steps below:
https://wiki.lineageos.org/devices/gts210vewifi/build#turn-on-caching-to-speed-up-build
https://wiki.lineageos.org/devices/gts210vewifi/build#configure-jack (Especially needed if you have not that much RAM. I did not wanna listen to @LuK1337 telling me that the build EATS RAM for breakfast, but it's true! You NEED more than 12 GB of RAM even with that setting!!)
Next one is the following lines:
Code:
mkdir -p ./.repo/local_manifests
wget https://www.dropbox.com/s/72cb5jix08y9jkv/envsetup.sh?dl=1 -O ./picks
wget https://www.dropbox.com/s/0fknl8w7zl6buz2/roomservice.xml?dl=1 -O ./.repo/local_manifests/roomservice.xml
chmod +x ./picks
repo sync
This loads the device specific stuff you will need now and prepares a step we need later.
Some useful and badly needed pickings from @LuK1337 are added when you next run this command:
Code:
./picks
Now once you are done:
Code:
. build/envsetup.sh
ALLOW_MISSING_DEPENDENCIES=true brunch gts210velte
In theory we now can go to bed and check for a result in $OUT after it finished build after about 6-10 hours. There waits a nice install ZIP for TWRP in there.
Flash on a T819 with FORMATTED and thus useable /data partition. This can and HAS TO be done in TWRP, too. If the file laments about a wrong bootloader, you should update your tablet to most recent official 7.0 firmware first!
Maybe this is a first start for ppl trying to tinker with T819 and add even more things to it, like Phone audio. At least is was a nice odyssey and the result I got was perfect. Have fun with your track down to the crazy self builders ^^
P.S. If you want GAPPS, load em here: https://sourceforge.net/projects/unofficial-opengapps-8-1/
Wanna update? SURE ^^ But be sure your picks are the most recent above.
Code:
repo forall -c 'git am --abort ; git cherry-pick --abort ; git merge --abort ; git clean -fdx ; git reset --hard' ; repo sync -j30 --force-sync -f
./picks
Code:
. build/envsetup.sh
rm -rf out ; ALLOW_MISSING_DEPENDENCIES=true brunch gts210velte
Hello, new version ^^
Updates will be added here:
15.01.18:
If you have funny build problems indicating compiler suite problems... Update the platform tools. Fixes some funny problems with newer LOS builds.
And always be sure you have the most recent picks and roomservice.xml
14.01.18:
Still wanna tinker with your own build? I updated the manual making it waay smaller thx to recent changes.
08.01.18:
https://forum.xda-developers.com/tab-s2/orig-development/rom-lineageos-15-1-t3732074
https://forum.xda-developers.com/tab-s2/orig-development/rom-lineageos-15-1-t3732070
Have fun, did go on LuK1337 and others nerves and this is the result. Don't expect a full featured ROM though. Calling is a bit silent when you don't hear ppl and they don't you ^^
25.12.17:
Updated the link to LuK1337's picks to a new one disabling stuff not working on new checkouts anymore. Source is LuK1337 again ^^
Completely removed the after build zip editing by modifying another file and keeping the line uncommented-out in BoardConfig.mk. This way the whole file correctly checks for the CORRECT bootloaders. This way the build.prop file in /system on the device is correct, too.
Added link to unofficial GAPPS for ppl who don't want to tinker inside GAPPS zip files.
Started some tinkering with RIL. Results up to now: ZIP file +30 MB aka LOS has all stuff built needed for telephony. Working? Naaah ^^
and where is the link to test the build
ronald_w. said:
and where is the link to test the build
Click to expand...
Click to collapse
There is none. This is a manual how to make it yourself. If I ever manage to get RIL working... MAYBE I will upload one or two builds.
emuandco said:
There is none. This is a manual how to make it yourself. If I ever manage to get RIL working... MAYBE I will upload one or two builds.
Click to expand...
Click to collapse
this is also my problem
ronald_w. said:
this is also my problem
Click to expand...
Click to collapse
So you made your own build already? Working fine (except RIL)?
emuandco said:
So you made your own build already? Working fine (except RIL)?
Click to expand...
Click to collapse
for now not working, build process without errors but the kernel will not boot the device (lineage 15.0 with other build tree) , new build is 8%
No need to build it at all. It is enough to just edit installer script. Change gts210wifi to gts20lte and delete assert for BL. It works perfect, I tried, I use it. And of courese to use newset twrp 3.2.
ivanox1972 said:
No need to build it at all. It is enough to just edit installer script. Change gts210wifi to gts20lte and delete assert for BL. It works perfect, I tried, I use it. And of courese to use newset twrp 3.2.
Click to expand...
Click to collapse
You know that we are talking about the NON Exynos devices, so you? so it is gts210VEwifi.
And even if it does, lucky you. I don't like the idea to use defconfigs for another device on my tablet.
EDIT: Current status regarding RIL... After hours with LuK1337 and his skills and code source juggling... Daemon runs, SIM detected, IMEI detected, network sorta... runs? This means SMS receiving runs and not much more for now. Still investigating.
Of courese, I forget ve to write, my lapsus. Otherwise it works perfect. They use same board.
But, if you make RIL there, it diffferent story. Every credit to you, if you need someone to test those builds I am here
ivanox1972 said:
Of courese, I forget ve to write, my lapsus. Otherwise it works perfect. They use same board.
But, if you make RIL there, it diffferent story. Every credit to you, if you need someone to test those builds I am here
Click to expand...
Click to collapse
Well, I would prefer someone knowing more of that stuff helping me to fix the remaining bugs. I even went down the pipe to try to disassemble the original libril.so but no big results from that... Right now you have all phone stuff included and thus for example can install WhatsApp again + GAPPS install the DialerFramework and Google Dialer. You get IMEI information, Baseband Information, SIM Phone Number Information and you can receive SMS, but no calling, no SMS sending and no data network works for now.
Current logcat: https://hastebin.com/iguvaxagas.xml
Thanks for hard work, I'll be very happy to have full oreo Los on tab s2!
Well I've been fiddling all day to get it to work, ubuntu 17.* have been removed from the main ubuntu site, and using the the cdimage.ubuntu locations gave me the install iso's but ended in not properly working install repos of the needed apps.
So went for 16.04 after several attempts, every installs fine, setted everything up according the tutorials in the OP and checking my old info for setting up ubuntu VM (or full pc's) what i did in the past, those where the same since my last succesfull setting up build machines.
but in the end I had to use a "repo sync -f --force-sync" instead of repo sync before ./picks, otherwise it ended up with a ton of errors in running ./picks.
After that that being running good, and finally comming to build I end up after 50 to 60 seconds in
Code:
[44/44] bootstrap /home/ragebuilder/android/lineage/out/soong/.minibootstrap/build.ninja.in
[4/4] /home/ragebuilder/android/lineage/out/soong/.bootstrap/bin/minibp /home/ragebuilder/android/lineage/out/soong/.bootstrap/build.ninja
[862/863] glob vendor/qcom/opensource/interfaces/display/config/1.0/Android.bp
[56/56] /home/ragebuilder/android/lineage/out/soong/.bootstrap/bin/soong_build /home/ragebuilder/android/lineage/out/soong/build.ninja
/home/ragebuilder/android/lineage/out/build-lineage_gts210vewifi.ninja is missing, regenerating...
[527/1117] including ./hardware/qcom/media-caf/msm8952/Android.mk ...
./hardware/qcom/media-caf/msm8952/Android.mk:4: warning: target list is : msm8952
[1117/1117] including ./vendor/samsung/zerofltexx/Android.mk ...
build/core/Makefile:34: warning: overriding commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libgps.utils.so'
build/core/base_rules.mk:391: warning: ignoring old commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libgps.utils.so'
build/core/Makefile:34: warning: overriding commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libloc_core.so'
build/core/base_rules.mk:391: warning: ignoring old commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libloc_core.so'
build/core/Makefile:34: warning: overriding commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libloc_eng.so'
build/core/base_rules.mk:391: warning: ignoring old commands for target `/home/ragebuilder/android/lineage/out/target/product/gts210vewifi/system/lib64/libloc_eng.so'
[ 99% 1585/1586] glob vendor/qcom/opensource/interfaces/*/Android.bp
ninja: error: '/home/ragebuilder/android/lineage/out/target/common/obj/JAVA_LIBRARIES/org.cyanogenmod.platform.internal_intermediates/classes.jack', needed by '/home/ragebuilder/android/lineage/out/target/common/obj/APPS/AdvancedDisplay_intermediates/with-local/classes.dex', missing and no known rule to make it
18:57:35 ninja failed with: exit status 1
#### failed to build some targets (54 seconds) ####
Tried resetting up the build VM now 6 times to find anything I could've done wrong, but cant find any, just end up at the same manner with this error.
Also made sure that Jack is setup properly ( https://forum.xda-developers.com/android/software/aosp-cm-los-how-to-fix-jack-server-t3575179 ) and jack starts and stops, shouldn't that also solve the ninja problem? Soz my last home build was nearly 2 years ago and a lot could have been changed, but normally google is my friend to fix it, not this time..
Has anyone some advice what to look at?
I have removed in hardware/samsung/AdvancedDisplay/Android.mk the line org.cyanogenmod.platform.internal and the directory /hardware/samsung/AdvancedDisplay/src/com/cyanogenmod/. (LineageOS 15.0)
Build is complete,
[100% 84744/84744] build bacon
Package Complete: /home/ronald/android/system/out/target/product/gts210velte/lineage-15.0-20180106_214317-UNOFFICIAL-gts210velte.zip
make: Verzeichnis „/home/ronald/android/system“ wird verlassen
#### make completed successfully (03:05:39 (hh:mm:ss)) ####
Click to expand...
Click to collapse
but for me this rom doesn't work properly --> boot stuck with sim card not detected
ronald_w. said:
I have removed in hardware/samsung/AdvancedDisplay/Android.mk the line org.cyanogenmod.platform.internal and the directory /hardware/samsung/AdvancedDisplay/src/com/cyanogenmod/. (LineageOS 15.0)
Build is complete,
but for me this rom doesn't work properly --> boot stuck with sim card not detected
Click to expand...
Click to collapse
That got me just a step furter
14:07:50 Build configuration changed: "" -> "lineage_gts210vewifi-userdebug", forcing installclean
ninja: warning: bad deps log signature or version; starting over
Click to expand...
Click to collapse
now it is waiting time agian....
But thanx for the tip!!!
RagingHarry said:
That got me just a step furter
now it is waiting time agian....
But thanx for the tip!!!
Click to expand...
Click to collapse
I have no clue what you did wrong or why you tinker with LOS 15 with a manual for 15.1, but... check post #2 and load your ROM from there.
emuandco said:
I have no clue what you did wrong or why you tinker with LOS 15 with a manual for 15.1, but... check post #2 and load your ROM from there.
Click to expand...
Click to collapse
That 15.0 was the person I quoted but that step was a test to see if it would hold further, but also then it ended up in errors and a crash of the build.
I did everything with copy pasting from the guide in OP and the linked pages, why it went wrong for me I still don't understand, have been making homebuilds since my Galaxy S2 and always got it to work.
But now you made the new LOS threads I will stick to that for now, and maybe try later again.
Thnx for your efforts and now the Unofficial support start for the T819!
RagingHarry said:
That 15.0 was the person I quoted but that step was a test to see if it would hold further, but also then it ended up in errors and a crash of the build.
I did everything with copy pasting from the guide in OP and the linked pages, why it went wrong for me I still don't understand, have been making homebuilds since my Galaxy S2 and always got it to work.
But now you made the new LOS threads I will stick to that for now, and maybe try later again.
Thnx for your efforts and now the Unofficial support start for the T819!
Click to expand...
Click to collapse
Sure, but beware, we have now device repos for gts210velte and gts28velte ^^
So roomservicexml more should look like this now:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="gts210vewifi-dev/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="lineage-15.1" />
<project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="staging/lineage-15.1" />
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="staging/lineage-15.1" />
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" revision="lineage-15.0" />
<project name="gts210vewifi-dev/android_device_samsung_msm8976-common" path="device/samsung/msm8976-common" remote="github" revision="lineage-15.1" />
<project name="gts210vewifi-dev/android_device_samsung_gts210velte" path="device/samsung/gts210velte" remote="github" revision="lineage-15.1" />
<project name="gts210vewifi-dev/android_device_samsung_gts28velte" path="device/samsung/gts28velte" remote="github" revision="lineage-15.1" />
<project name="gts210vewifi-dev/android_kernel_samsung_msm8976" path="kernel/samsung/msm8976" remote="github" revision="lineage-15.1" />
<project name="LineageOS/android_packages_apps_Updater" path="packages/apps/Updater" remote="github" />
</manifest>
And brunch has to be started with that hw id, too:
Code:
ALLOW_MISSING_DEPENDENCIES=true brunch gts210velte
Code:
ALLOW_MISSING_DEPENDENCIES=true brunch gts28velte
Feel free to try it, if it works, tell me. Not much time these days.
Thnx!
Gonna give it a try in a few days when I have some free time.
Feel free to try it, if it works, tell me. Not much time these days.
Click to expand...
Click to collapse
[ 90% 83198/92320] Building with Jack: /home/ronald/android/syst...mmon/obj/JAVA_LIBRARIES/services.core_intermediates/classes.jack
FAILED: /home/ronald/android/system/out/target/common/obj/JAVA_LIBRARIES/services.core_intermediates/classes.jack
ERROR: /home/ronald/android/system/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java:260.8: The import org.lineageos.internal.util.ActionUtils cannot be resolved
ERROR: /home/ronald/android/system/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java:2017.17: ActionUtils cannot be resolved
[ 91% 84356/92348] Building with Jack: /home/ronald/android/syst...get/common/obj/APPS/Updater_intermediates/with-local/classes.dex
ninja: build stopped: subcommand failed.
19:24:06 ninja failed with: exit status 1
#### failed to build some targets (02:35:28 (hh:mm:ss)) ####

[GUIDE/HOW-TO] Building LineageOS for an Unsupported Device

Foreword:
This is my own notes I created to build LOS for my device (SM-T713 or gts28vewifi). After reading this, I encourage you to create your own notes as it will help you better understand the build process.
I followed the official guide here with additional reading here since we are building this for a device no longer officially supported by LOS.
Requirements:
A fast CPU. How fast? All depends on how long you can wait for the build.
At least 16Gb RAM is a must.
Around 300Gb 50Gb disk space since at least 100Gb of it will be devoted to "ccache".
*nix system, mine is on Ubuntu so the commands below are Debian-based.
Step 1: Setup the environment.
sudo apt install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5 libncurses5-dev libsdl1.2-dev libssl-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev python-is-python3
mkdir -p ~/bin
mkdir -p ~/android/lineage
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
Step 2: Get the device manifest file.
local_manifests/gts28vewifi.xml at lineage-17.1 · team-infusion-developers/local_manifests
Contribute to team-infusion-developers/local_manifests development by creating an account on GitHub.
github.com
...and save to ~/android/lineage/.repo/local_manifests/gts28vewifi.xml
Then do:
repo sync
Step 3: Turn on caching to speed up build. Note that I used 300Gb instead of 100Gb (just personal preference).
mkdir ~/ccache
export CCACHE_DIR=~/ccache
export USE_CCACHE=1
export CCACHE_EXEC=/usr/bin/ccache
ccache -M 300G 50G
Step 4: Select Build.
source build/envsetup.sh
lunch
select lineageos_gts28vewifi-userdebug (whatever number it's identified under)
Step 5: Prepare the output:
make clean-apache-xml
make clean
make apache-xml
make ims-common
Step 6: Build it!
brunch gts28vewifi
Now go have a few coffees and come back later.
Epilogue:
I'm sure there are many different ways to build this but this method works for me. Just want to get the knowledge out so you can find a way that works for you.
@thisisludachris, I have been building roms for about 18 months now and can share that ccache is typically less than 10G per rom.
You can check by doing
ccache -s
Here is output from my machine building one rom.
Bash:
$ ccache -s
Summary:
Hits: 758742 / 837008 (90.65 %)
Direct: 693243 / 845272 (82.01 %)
Preprocessed: 65499 / 143805 (45.55 %)
Misses: 78266
Direct: 152029
Preprocessed: 78306
Uncacheable: 293976
Primary storage:
Hits: 1499615 / 1682320 (89.14 %)
Misses: 182705
Cache size (GB): 7.89 / 20.00 (39.45 %)
Also, it is possible to build a rom with less than 16GB DRAM if you apply these patches below. Obviously, the more the better, but I have use the patches below to build when I had less than 16GB DRAM.
https://forum.xda-developers.com/t/guide-how-to-build-android-11-with-low-ram.4298483/
Thanks for the info
thisisludachris said:
Step 2: Get the device manifest file.
local_manifests/gts28vewifi.xml at lineage-17.1 · team-infusion-developers/local_manifests
Contribute to team-infusion-developers/local_manifests development by creating an account on GitHub.
github.com
...and save to ~/android/lineage/.repo/local_manifests/gts28vewifi.xml
Then do:
repo sync
Click to expand...
Click to collapse
Sorry but for me this step fails. The repo command doesn't seem to find the files from team infusion:
team-infusion-developers/android_device_samsung_team-infusion-developers:
remote: Repository not found.
fatal: Repository »https://github.com/team-infusion-developers/android_device_samsung_team-infusion-developers/« nicht gefunden
error: Cannot fetch team-infusion-developers/android_device_samsung_team-infusion-developers from https://github.com/team-infusion-developers/android_device_samsung_team-infusion-developers
Does the procedure still work for you?
Paradroid
paradroid28 said:
Sorry but for me this step fails. The repo command doesn't seem to find the files from team infusion:
team-infusion-developers/android_device_samsung_team-infusion-developers:
remote: Repository not found.
fatal: Repository »https://github.com/team-infusion-developers/android_device_samsung_team-infusion-developers/« nicht gefunden
error: Cannot fetch team-infusion-developers/android_device_samsung_team-infusion-developers from https://github.com/team-infusion-developers/android_device_samsung_team-infusion-developers
Click to expand...
Click to collapse
It looks like whomever put up the manifest screwed up with cut and paste. It should probably be
Code:
<project name="team-infusion-developers/android_device_samsung_msm8976-common" path="device/samsung/msm8976-common" remote="github" revision="lineage-17.1" />
otherwise all the common code won't get compiled and integrated into the rom.
Yes @retiredtab is correct, there is an incorrect entry in the manifest file from team-infusion-developers. Please update the correct line as pointed out. Thanks.
@paradroid28 I just went over to my build folder and pulled out my manifest file as per below if you want to copy & paste them:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="LineageOS/android_hardware_samsung" path="hardware/samsung" remote="github" revision="lineage-17.1" />
<project name="LineageOS/android_hardware_sony_timekeep" path="hardware/sony/timekeep" remote="github" revision="lineage-17.1" />
<project name="team-infusion-developers/android_device_samsung_gts28vewifi" path="device/samsung/gts28vewifi" remote="github" revision="lineage-17.1" />
<project name="team-infusion-developers/android_device_samsung_msm8976-common" path="device/samsung/msm8976-common" remote="github" revision="lineage-17.1" />
<project name="team-infusion-developers/android_kernel_samsung_msm8976" path="kernel/samsung/msm8976" remote="github" revision="lineage-17.1" />
<project name="team-infusion-developers/proprietary_vendor_samsung_msm8976" path="vendor/samsung" remote="github" revision="lineage-17.1" />
</manifest>
​@thisisludachris
@retiredtab
Thank you for your efforts. I compared your manifest against the one I downloaded -> they are identical. So I probably have made a different error. ATM i don't know where to look, but i admit, i do not speak "git" fluently. Last time i built an Android ROM successfully was probably 2016-ish , therefore i was very happy about your notes thisisludachris.
If you have another idea where i can have messed up, please let me know.
paradroid28 said:
Thank you for your efforts. I compared your manifest against the one I downloaded -> they are identical.
Click to expand...
Click to collapse
If you followed post #1 exactly, namely
Code:
mkdir -p ~/android/lineage
# save manifest to
~/android/lineage/.repo/local_manifests/gts28vewifi.xml
check to make sure ~/android/lineage/.repo/local_manifests/gts28vewifi.xml is the correct file.
There should only be one .xml file in that directory otherwise the build system will try and parse it.
Another thing you can do is
Code:
cd ~/android/lineage/.repo
grep -iRl "android_device_samsung_team-infusion-developers"
to see where that statement is hiding from you.
paradroid28 said:
​@thisisludachris
@retiredtab
Thank you for your efforts. I compared your manifest against the one I downloaded -> they are identical. So I probably have made a different error. ATM i don't know where to look, but i admit, i do not speak "git" fluently. Last time i built an Android ROM successfully was probably 2016-ish , therefore i was very happy about your notes thisisludachris.
If you have another idea where i can have messed up, please let me know.
Click to expand...
Click to collapse
Perhaps start with which step from above that you are stuck on. Also, if you want to post a screenshot of your error, perhaps I can try to help troubleshoot. Bear in mind though I have limited knowledge in codes and compiling but will try nonetheless.
For those on Windows OS, you can install Ubuntu via WSL2 with the following command run in PowerShell:
Code:
wsl.exe --install
More info here if you require more details on running Ubuntu in Windows.
I'd be interested to see how you go with compiling on Ubuntu via WSL2 in Windows OS
thisisludachris said:
Perhaps start with which step from above that you are stuck on. Also, if you want to post a screenshot of your error, perhaps I can try to help troubleshoot. Bear in mind though I have limited knowledge in codes and compiling but will try nonetheless.
Click to expand...
Click to collapse
The step that fails is 'repo sync'. I Now deleted line 6 in the local manifest (which is generating the error because a certain repository is not found by my computer) and the sync command finished successfully .
Now i will try building it and see, if i am missing something vital.
Maybe you have a very smart computer which finds more repos than mine.
Good work @paradroid28, hope it went well.
@thisisludachris
@retiredtab
Well, i have to thank you again and to apologize, because at first i misread post #5. There lies the solution. So every file of the local manifests from team infusion is faulty atm and refers to a repo that does not exist.
With the corrected manifest i was able to successfully build a ROM for my gts28velte. It remains to be tested on the device.
You might update post #1 to give people following it, a hint, that there is a problem with the manifest and how it can be fixed.
Paradroid
@thisisludachris, @paradroid28, the next step for the 2 of you is to actually fix some the problems. I started just like you guys compiling what was given, but after a while, I learned how to fix the bugs and then take the next step and actually make the next Android version. I don't write code, but I copy working code from other repos (giving credit to original authors of course).
If you want guidance on how to do this, let me know.
retiredtab said:
@thisisludachris, @paradroid28, the next step for the 2 of you is to actually fix some the problems. I started just like you guys compiling what was given, but after a while, I learned how to fix the bugs and then take the next step and actually make the next Android version. I don't write code, but I copy working code from other repos (giving credit to original authors of course).
If you want guidance on how to do this, let me know.
Click to expand...
Click to collapse
yes please!
just bought a new POCO m4 pro 5g
never done that before but what the hell, might as well
any bit of guidance would be very much appreciated
retiredtab said:
@thisisludachris, @paradroid28, the next step for the 2 of you is to actually fix some the problems. I started just like you guys compiling what was given, but after a while, I learned how to fix the bugs and then take the next step and actually make the next Android version. I don't write code, but I copy working code from other repos (giving credit to original authors of course).
If you want guidance on how to do this, let me know.
Click to expand...
Click to collapse
that would be nice - would be good to try and get 18.1 on my Galaxy Tab TM-813 (gts210vewifi)
been a long time since built android, but would be fun to try and get back into it
On curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo, it gets stuck on this:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 45277 100 45277 0 0 278k 0 --:--:-- --:--:-- --:--:-- 279k
When I enter the link, (https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo) in a browser, it comes out with an error:
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to the Google Cloud Storage object.
</Details>
</Error>
Ok few questions, what if your device is unofficial? what about the manifest? Also the guide differs if i want to build lineage 19.1?
Skorpion96 said:
what if your device is unofficial?
Click to expand...
Click to collapse
It's the same steps whether it's official or unofficial.
Skorpion96 said:
what about the manifest?
Click to expand...
Click to collapse
That's something you need to build or use an existing one. If you're new to building, I suggest building a rom that is offiical for a device you have. That way, you will see the entire process start to end.
Skorpion96 said:
Also the guide differs if i want to build lineage 19.1?
Click to expand...
Click to collapse
No. It's basically the same.

Categories

Resources