[GUIDE CM11] How to build your own CyanogenMod 11.0 ROM from sources for the Nexus 4 - Nexus 4 General

Make your 'own' KitKat-ROM today!
V1.1 - 20131108 Update 1: Java part added. Error remarks. Local_manifest: branch update.
V1.0 - 20131106 Initial release
Thank you note: Thank you to the whole CM-Team for bringing up-to-date-Android to so many devices.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Overview
I. Preparation
II. Installation of the required packages
III. Installing Java
IV. The sources
V. Building the ROM
VI. Rebuilding with newest sources
I. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all, you need a running up-to-date Ubuntu/Linux system. I am using Ubuntu 13.10 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
II. Installation of the required packages (Ubuntu 13.10 64-bit)
Install packages:
Code:
$ sudo apt-get install bison build-essential curl flex \
g++-multilib gcc-multilib git-core gnupg gperf \
lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev \
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
III. Installing Java
You need a version 6 Java Development Kit for building CM11.0. Usually, the SUN JDK 6 is recommended. But there is another way: you can use the OpenJDK 6. When you installed the required packages as described above, you will just need to configure your Java installation.
Check your Java version:
Code:
$ java -version
Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the right Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
If they are pointing to the wrong versions you have to change that to OpenJDK6.
Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
That's it.
IV. The sources
Install repo:
Repo is a tool that makes it quite easy to download and maintain the sources of Cyanogenmod.
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ cd ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Create the working directory:
Code:
$ mkdir ~/cm11
$ cd ~/cm11
Initialize Repo:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
and enter your credentials.
Download the sources:
Code:
$ repo sync
Wait until it's finished - takes some time to download the hefty 12 GB of source code!
Have a break, have a KitKat!
If the process hangs use Ctrl+C to break out of it and resume the download with another
Code:
$ repo sync
If you are running into a lot of syncing errors the reason might be that the 'repo sync' command is establishing four threads automatically. This might be too much. So try to change the command to run with one thread only by using
Code:
$ repo sync -j1
Initialize the environment
Code:
$ . build/envsetup.sh
Obtain the proprietary files:
First get two missing repositories for the Nexus 4 by running
Code:
$ breakfast mako
Then create a file with the name local_manifest.xml in the local_manifests directory. To see this directory, you have to press Ctrl-H in your file manager.
Use this code
Code:
$ gedit ~/cm11/.repo/local_manifests/local_manifest.xml
Update: Branch revision is now cm-11.0
Paste the following lines to the editor
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_lge.git" path="vendor/lge" remote="github" revision="cm-11.0"/>
</manifest>
Save the file.
Run
Code:
$ repo sync
again to get the files needed.
Download the necessary prebuilts from cyanogenmod by running
Code:
$ cd ~/cm11/vendor/cm
$ . get-prebuilts
$ croot
And you're done!
V. Building the ROM
Now build it:
Code:
$ brunch mako
And the building process starts. Now have patience. Building takes around half an hour on fast systems and a lot more on older and slower machines.
Update 20131108: The errors from 20131106 are gone now. If you made the changes revert them, sync the repo and then brunch again. There is no need to edit the source at the moment.
YOU ONLY NEED THIS PART IF YOU WANT TO REVERT THE CHANGES YOU MADE BEFORE
As of writing, you will run into two errors:
First error you will encounter:
Code:
build/core/java.mk:23: *** frameworks/support/v4:
Invalid LOCAL_SDK_VERSION '19' Choices are: current 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18. Stop.
Go to frameworks/support/v4/Android.mk and edit line 128 (it's at the end of the file):
Look for
Code:
# A helper sub-library that makes direct use of KitKat APIs.
include $(CLEAR_VARS)
LOCAL_MODULE := android-support-v4-kitkat
LOCAL_SDK_VERSION := [COLOR=DarkRed]19[/COLOR]
and change the "19" to "current"
It should look like this
Code:
# A helper sub-library that makes direct use of KitKat APIs.
include $(CLEAR_VARS)
LOCAL_MODULE := android-support-v4-kitkat
LOCAL_SDK_VERSION := [COLOR=DarkRed]current[/COLOR]
Save the file.
Re-run
Code:
$ brunch mako
The second error you will see:
Code:
build/core/java.mk:23: *** packages/apps/Launcher3:
Invalid LOCAL_SDK_VERSION '19' Choices are: current 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18. Stop.
Go to packages/apps/Launcher3/Android.mk and edit line 35 (it's in the middle of the file):
Look for
Code:
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/
LOCAL_SDK_VERSION := [COLOR=DarkRed]19[/COLOR]
LOCAL_PACKAGE_NAME := Launcher3
and change the "19" to "current"
It should look like this
Code:
LOCAL_PROTOC_OPTIMIZE_TYPE := nano
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/
LOCAL_SDK_VERSION := [COLOR=DarkRed]current[/COLOR]
LOCAL_PACKAGE_NAME := Launcher3
Save the file.
Re-run
Code:
$ brunch mako
-END OF THE OLD ERROR CORRECTION-
When everything worked as it should you will find your new ROM-image in ~/cm11/out/target/product/mako
It is called cm-11-DATE-UNOFFICIAL-mako-zip. You can flash it via CWM/TWRP as usual.
VI. Rebuilding with newest sources
Whenever you like to update your sources and build a new version you have to run these four simple commands:
Code:
$ cd ~/cm11
$ repo sync
$ . build/envsetup.sh
$ brunch mako
Compiling takes less time than it took for creating the ROM the first time because it's only building new parts while reusing old parts that haven't changed.
Happy building!

Reserved
Reserved

Nice Tutorial, thank you for the work :good:
Now i have to organize a linux-computer... :/
edited to linux, my brain is out of order today...

Thank you for your post. I knew how to compile but I was lazy to compile for myself any rom until now. I planned to wait until someone will post it, but your post just got me excited and I will compile.
Thank you for your instructions and all. Good luck!

This is what I keep getting...
[email protected]:~/cm11$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
bash: /home/bruce/bin/repo: Permission denied

B4tnam said:
[email protected]:~/cm11$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
bash: /home/bruce/bin/repo: Permission denied
Click to expand...
Click to collapse
try chmod a+x /home/bruce/bin/repo

hansichen123 said:
Nice Tutorial, thank you for the work :good:
Now i have to organize a linux-computer... :/
Gesendet von meinem Transformer Pad mit Tapatalk 4
edited to linux, my brain is out of order today...
Click to expand...
Click to collapse
If you have a quite new PC running Windows, you could use a virtual machine to install Linux ontop of your Windows installation. Have a look at VirtualBox for example. It's free. https://www.virtualbox.org/

@Raum1807 How's cm11? What features have been implemented so far?

B4tnam said:
[email protected]:~/cm11$ repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
bash: /home/bruce/bin/repo: Permission denied
Click to expand...
Click to collapse
Of course, because you didn't hit the thanks button. (joking, but of course, just press it now)
Your problem is with folder permissions. I don't know how you created the folders but somehow you just don't have enough permisions now.
Try to:
chmod a+x /home/bruce/bin/repo

Bah my linux box broke.. @op Can you release the cm11 build you made?
Sent from my AOSP on Mako using Tapatalk

Imperticus said:
@Raum1807 How's cm11? What features have been implemented so far?
Click to expand...
Click to collapse
It's work in progress... :fingers-crossed:
It's actually very nice. A bit rough around the corners at the moment... But since KitKat is just a few days old, the progress right now is already fantastic compared to last year's Android 4.2-Release. I am looking forward to the days after the M2 release of CM10.2 when most of the devs will focus on CM11.0. Everything is mostly in English, but the handling is very smooth and my short test didn't reveal anything as not working.
Oh, and a printing feature has been implemented (not tested), new launcher is coming (Launcher 3), etc.
Looks very promising!

Remember guys if you try this that you can't use the ART compiler with De-Odexed GApps, so you will have to use PA GApps instead.

Raum1807 said:
It's work in progress... :fingers-crossed:
It's actually very nice. A bit rough around the corners at the moment... But since KitKat is just a few days old, the progress right now is already fantastic compared to last year's Android 4.2-Release. I am looking forward to the days after the M2 release of CM10.2 when most of the devs will focus on CM11.0. Everything is mostly in English, but the handling is very smooth and my short test didn't reveal anything as not working.
Oh, and a printing feature has been implemented (not tested), new launcher is coming (Launcher 3), etc.
Looks very promising!
Click to expand...
Click to collapse
looks great. printing is part of 4.4 not CM
can you check if compass is working?

cobhc said:
Remember guys if you try this that you can't use the ART compiler with De-Odexed GApps, so you will have to use PA GApps instead.
Click to expand...
Click to collapse
Right! Thanks. Forgot to post it.
The PA-GAPPS (FULL COMPLETE PACKAGE) from yesterday is what I was using with my test-build.
http://forum.xda-developers.com/showthread.php?t=2397942
Look for Download-Link under
Full Complete Package ~201MB
then for
pa_gapps-full-4.4-20131105b-signed.zip

Imperticus said:
looks great. printing is part of 4.4 not CM
can you check if compass is working?
Click to expand...
Click to collapse
Maps was working; GPS signal was fast and precise. But I must admit that I haven't tested the compass function while in maps...

Dang!! Now I can't wait to get out of work and try this. I've never compiled my own ROM before, but I'm looking forward to trying it with your instructions. I have full backups of my phone right now in case I blow it up. Will need to fire up Virtual Box, as one commenter pointed out. Good idea

Could this work with other phones? Assuming we use the correct device specific calls

Raum1807 said:
Right! Thanks. Forgot to post it.
The PA-GAPPS (FULL COMPLETE PACKAGE) from yesterday is what I was using with my test-build.
http://forum.xda-developers.com/showthread.php?t=2397942
Look for Download-Link under
Full Complete Package ~201MB
then for
pa_gapps-full-4.4-20131105b-signed.zip
Click to expand...
Click to collapse
I said that, then the build I tried from Dev-Host still FC's with the PA GApps you linked and the ART compiler :S

cobhc said:
I said that, then the build I tried from Dev-Host still FC's with the PA GApps you linked and the ART compiler :S
Click to expand...
Click to collapse
pa gapps are deodexed. you need odex gapps to work with ART. Use this - http://d-h.st/8PP

cobhc said:
Remember guys if you try this that you can't use the ART compiler with De-Odexed GApps, so you will have to use PA GApps instead.
Click to expand...
Click to collapse
PA Odexed GApps?
edit: user above answered my question

Related

[KERNEL]Build Galaxy Tab 2 JB kernel from source

Building kernel
1. Download Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux from https://sourcery.mentor.com/GNUToolchain/release1293?lite=arm, direct link https://sourcery.mentor.com/GNUTool...-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 and save it in $HOME/android directory, extract it to /opt/toolchains/
Code:
$ sudo mkdir -p /opt/toolchains/
$ cd /opt/toolchains/
$ sudo tar -xjvf $HOME/android/arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
2. Add /opt/toolchains/arm-2010q1/bin as your search PATH. Logout and back login to your desktop to activate your new search PATH
Code:
$ echo $'\nPATH=\"/opt/toolchains/arm-2010q1/bin:$PATH\"' >> $HOME/.profile
3. Download 3.0.31 kernel source for JB P3110 from http://opensource.samsung.com/ and save it in $HOME/android/espresso directory and extract it
Code:
$ mkdir -p $HOME/android/espresso/kernel
$ cd $HOME/android/espresso/
$ unzip P3110_JB_Opensource.zip Kernel.tar.gz
$ cd kernel
$ tar -xvzf ../Kernel.tar.gz
$ make mrproper
4. Apply all my patch and then load kernel config file
Code:
$ patch -p1 < ../01-configs.patch
$ patch -p1 < ../02-debug-info.patch
$ patch -p1 < ../03-graphics.patch
$ patch -p1 < ../04-governor.patch
$ patch -p1 < ../05-scheduler.patch
$ patch -p1 < ../06-overclock.patch
$ patch -p1 < ../07-exfat.patch
$ make ARCH=arm android_espresso_omap4430_r04_blackhawk_defconfig
5. If you want to change kernel config, download libncurses5-dev
Code:
$ sudo apt-get install libncurses5-dev
$ make ARCH=arm menuconfig
6. Build the kernel
Code:
$ make -j4 ARCH=arm
7. Save kernel and modules
Code:
$ mkdir ../espresso-kernel
$ cp arch/arm/boot/zImage ../espresso-kernel
$ find . -type f -name *.ko -exec cp {} ../espresso-kernel \;
Building PowerVR SGX 540 kernel modules
1. Download the sources
Code:
$ sudo apt-get install git-core
$ git clone git://git.omapzoom.org/repo/graphics/omaplfb.git -b omaplfb-1.9 --depth 1
$ git clone git://git.omapzoom.org/device/ti/proprietary-open.git -b d-jb-mr1-release --depth 1
2. Build pvrsrvkm kernel module
Code:
$ tar -xvzf proprietary-open/omap4/sgx_src/eurasia_km.tgz
$ rm -rf eurasia_km/eurasiacon/binary*
$ export KERNELDIR=$HOME/android/espresso/kernel
$ cd eurasia_km/eurasiacon/build/linux2/omap4430_android/
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- TARGET_PRODUCT="blaze_tablet" BUILD=release TARGET_SGX=540 PLATFORM_VERSION=4.0
$ cp ../../../binary2_540_120_omap4430_android_release/target/pvrsrvkm_sgx540_120.ko ../../../../../espresso-kernel/
3. Build omaplfb kernel module Not needed, omaplfb now integrated into kernel by 03-graphics.patch
Code:
cd ../../../../../omaplfb/omaplfb_linux
export TARGET=omap4460
export PVRKMDIR=$HOME/android/espresso/
make clean
make
cp omaplfb_sgx540_120.ko ../../espresso-kernel/
cd ../../
4. Strip all kernel modules if needed
Code:
$ arm-none-linux-gnueabi-strip --strip-unneeded espresso-kernel/*.ko
Credits:
Linux, Google, Samsung, omapzoom.org, gokhanmoral, codeworkx, cmenard
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Leave this 3.0.8 kernel info just for historical purpose:
I try to build Galaxy Tab 2 kernel from source for stock 4.0.4 firmware but no luck so far.
Source from http://opensource.samsung.com/ without modification, using the latest Sourcery G++ Lite: boot failed!
Souce from Samsung without modification, using Sourcery G++ Lite 2010q1-202: kernel boot but no hardware accelerated video, camera and video not working!
Source from codeworkx without modification: kernel boot but incompatible pvr driver, stuck on Samsung logo!
Source from codeworkx without modification, vendor blob updated: kernel boot but unstable graphics, gallery, camera and video not working!
Source from codeworkx, pvr driver revert back to Samsung source: kernel boot but no hardware accelerated video, camera and video not working!
Source from codeworkx, pvr driver revert back to tuna ICS source, using tuna ICS vendor blob: kernel boot but no hardware accelerated video, camera and video not working! Better 3D graphics performance.
UPDATE:
Soft decoding video player (MoboPlayer) work.
UPDATE 2:
Found the problems! libion.so and libtiutils.so not compatible to the old kernel source. Thanks for codeworkx, tracing his work on CM9 point me out to the proprietary libraries.
Click to expand...
Click to collapse
When you compile a kernel, some drivers should have also been compiled and their locations should have been displayed on the console. You should copy those drivers to a proper location, I copied those .ko files to /lib/modules of the ramdisk when compiling a P3110 kernel.
Sent from my GT-P3110
heihei_ivan said:
When you compile a kernel, some drivers should have also been compiled and their locations should have been displayed on the console. You should copy those drivers to a proper location, I copied those .ko files to /lib/modules of the ramdisk when compiling a P3110 kernel.
Sent from my GT-P3110
Click to expand...
Click to collapse
Yes.
Conclusion:
Using Galaxy Nexus PowerVR kernel driver and blob build [email protected], we got better 3D performance on stock 4.0.4 firmware but lost hardware accelerated video (base on Antutu result: 3D = ~1030, fps 40-50). Video failed to play, camera failed to open. So, the best kernel for user experience (slower 3D but smooth 2D) is 3.0.8 from 4.0.4 firmware for now.
Now I'm sure, Samsung has been making changes in the 3.0.8 kernel for ICS 4.0.4 but have not released it to the public. Please help me to write a petition for Samsung since my English not good enough :crying:
Last night I tried to rebuild the kernel from source (again) and this time set the kernel version exactly same as stock 4.0.4 kernel (3.0.8-583493-user). Using kernel source from Samsung, codeworkx's patch applied except tuna pvr driver patch. Keep the stock kernel 3.0.8-583493-user modules in /lib/modules and then rebuild the boot image. Damn Samsung, hardware accelerated video still does not work! 3D performance slower than tuna ICS pvr driver but 2D experience as smooth as stock 4.0.4 firmware.
/system/vendor/firmware/ducati-m3.bin not loaded properly by the kernel. No rpmsg-omx0 and rpmsg-omx1 inside /dev .
Code:
I/OMXCodec( 2293): [OMX.TI.DUCATI1.VIDEO.DECODER] AVC profile = 100 (High), level = 32
E/OMXCodec( 2293): set buffer size variable to : 1572864
I/OMXCodec( 2293): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 1280 x 720
I/OMXCodec( 2293): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 1280 x 720 @ (0, 0)
I/OMXCodec( 2293): !! Change the I/P buffer size to 1572864 !!
D/DOMX ( 2293): ERROR: userspace cachable mapping of ION buffers returned error
E/OMXNodeInstance( 2293): OMX_AllocateBuffer failed with error -2147479552 (0x80001000)
E/OMXCodec( 2293): allocate_buffer_with_backup failed
D/DOMX ( 2293): ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001011 - Error returned from OMX API in ducati
D/DOMX ( 2293): ERROR: Error From ComponentDeInit..
ketut.kumajaya said:
Now I'm sure, Samsung has been making changes in the 3.0.8 kernel for ICS 4.0.4 but have not released it to the public. Please help me to write a petition for Samsung since my English not good enough :crying:
Click to expand...
Click to collapse
already done yesterday
Samsung response said:
SAMSUNG OSRC COMMENTS DELIVERY NOTIFICATION]
♦ classification : Mobile Phone ♦
♦ model name : GT-P5100 ♦
Dear Customer,
Thank you for your interest in our product.
We are now in the process of reviewing your inquiry.
We will let you know a reply to this issue soon.
Sincerely yours,
----- Original Message -----
Hello Sir/Madam,
You have kindly supplied the kernel/software sources for the P31xx/P51xx series, but with the latest software update to 4.0.4 we cannot use this source to compile kernels for our devices.
Please supply me/us (|reply will, if you give permission therefor, be published on the XDA forums to help other developers with the same issue)| with instructions how to compile for 4.0.4/updated sources.
Thanks in advance for your reply,
John Simons
Samsung Open Source Release Center
http://opensource.samsung.com
Click to expand...
Click to collapse
Solved!
Found the problems! libion.so and libtiutils.so not compatible to the old kernel source. Thanks for codeworkx, tracing his work on CM9 point me out to the proprietary libraries.
ketut.kumajaya said:
Found the problems! libion.so and libtiutils.so not compatible to the old kernel source. Thanks for codeworkx, tracing his work on CM9 point me out to the proprietary libraries.
Click to expand...
Click to collapse
so you gonna release the kernel?
gabriel1997 said:
so you gonna release the kernel?
Click to expand...
Click to collapse
When it's ready. I will share 2 or 3 boot image with different setup.
gabriel1997 said:
so you gonna release the kernel?
Click to expand...
Click to collapse
I've shared my work on http://forum.xda-developers.com/showthread.php?t=1855700 .
4.0.4 sources available at OSRC.
Firts post updated. The sort stories how to build JB 4.1.1 3.0.31 kernel!
Build JB 3.0.31 kernel instructions in the first post updated.
First post updated!
R: [KERNEL]Build Galaxy Tab 2 JB kernel from source
ketut.kumajaya said:
First post updated!
Click to expand...
Click to collapse
You really did an excellent job with TW kernel.
Is it possible for you to compile an updated kernel for CM10.1?
Stock CM10.1 kernel does not support overclock.
cmenard AOKP kernel works well with CM10.1, and it supports both CPU and GPU OC, but it is based on the old source, with 690mb available, compiled for 4.1.2
It would be awesome if you could update one of those 2 kernels.
First page updated, including the patch!
- omaplfb now integrated into kernel
- overclock code updated, lock CPU @ 1.008GHz on boot
Hey guys are there some existing cisf module to mount cifs and nfs partition on the Galaxy Tab 2 3110?
I would like to mount my share (not for copy) but for directly playing movies. I did with some old pads but i don't know if this module are available for the Tab 2
Monfro said:
You really did an excellent job with TW kernel.
Is it possible for you to compile an updated kernel for CM10.1?
Stock CM10.1 kernel does not support overclock.
cmenard AOKP kernel works well with CM10.1, and it supports both CPU and GPU OC, but it is based on the old source, with 690mb available, compiled for 4.1.2
It would be awesome if you could update one of those 2 kernels.
Click to expand...
Click to collapse
May be after my not started yet dual boot system finish
pecana said:
Hey guys are there some existing cisf module to mount cifs and nfs partition on the Galaxy Tab 2 3110?
I would like to mount my share (not for copy) but for directly playing movies. I did with some old pads but i don't know if this module are available for the Tab 2
Click to expand...
Click to collapse
KK-Boot has it.
First page updated, kernel source and patch.

[DEV][PATCH] HALO for CM 10.1

This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
Great I have also tried to figure out the magic...good work :thumbsup:
best regards SnXo
How hard would it be to implement this into existing CM10 nightlies?
we're waiting for a port or even better a flashable zip!
good work guys!
juanacevedo said:
How hard would it be to implement this into existing CM10 nightlies?
Click to expand...
Click to collapse
you can't just implement it into a compiled rom. this is source code only
in MokeeOS its fully functional implemented
thaaaank you, working on a little miui project, this could make it more fun
leris2 said:
we're waiting for a port or even better a flashable zip!
good work guys!
Click to expand...
Click to collapse
There's already one: http://forum.xda-developers.com/showthread.php?t=2253129
you easily cherry-pick both merges by choosing the parent carefully and build
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
Hey! Im just building my CM10.1 from source, but I have not a big idea of patching. Will this give me a working HALO?
Also I would need the HDPI drawables I guess :/ https://github.com/tonyp/android_frameworks_base/commit/d76f23efbc101e14d3423b8dd0645d64f7425555
I dont want to test it blindly, as I don't know how to revert patches.
I'm not using an Optimus 4. Im on Sony Xperia Ray and there is no HALO ROM till now :/
Thanks for your help!
This patch includes that commit. To revert, git reset --hard
arararagi said:
This patch includes that commit. To revert, git reset --hard
Click to expand...
Click to collapse
Thank you!
Sadly the patch did not work for me :/
Code:
target Java: apache-xml (/media/tim/Cyanogenmod/CM10.1/android/system/out/target/common/obj/JAVA_LIBRARIES/apache-xml_intermediates/classes)
frameworks/base/packages/SystemUI/res/layout/halo_bubble.xml:13: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/halo_bg').
frameworks/base/packages/SystemUI/res/layout/halo_number.xml:8: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/halo_number').
frameworks/base/packages/SystemUI/res/layout/halo_speech.xml:17: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/bubble_black_r').
frameworks/base/packages/SystemUI/res/layout/halo_speech.xml:31: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/bubble_black_l').
frameworks/base/packages/SystemUI/res/layout/status_bar_expanded_header.xml:77: error: Error: No resource found that matches the given name (at 'src' with value '@drawable/ic_notify_halo_normal').
make: *** [/media/tim/Cyanogenmod/CM10.1/android/system/out/target/common/obj/APPS/SystemUI_intermediates/src/R.stamp] Fehler 1
make: *** Warte auf noch nicht beendete Prozesse...
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.
Looks like all drawables are missing :/
And was is actually about updates for HALO?
Sadly paranoid androids Gerrit is not working. How can I track their changes? And how can I cherry pick like from the review.cyanogenmod.com?
Thanks for your help
The drawables are definitely in the patch. Did you get any messages when you applied the patch?
arararagi said:
This information is purely for devs wanting to add HALO to their CM 10.1 based ROM so they don't have to deal with the same merge conflicts from ParanoidAndroid that I've taken care of. There's nothing here you can flash, etc.
This isn't specific to the Optimus 4X HD, but I'm just posting it here because it's the only place I know.
Workflow might be something like:
Code:
$ repo sync
$ cd frameworks/base
$ git tag cm-head
$ git checkout f90658c55fbf7b21a80b5f75b1760839484278fd # Merge "framework: Update German translation" into cm-10.1
$ git apply ../../halo-for-cm-framework-base-d76f23efbc101e14d3423b8dd0645d64f7425555-for-f90658c55fbf7b21a80b5f75b1760839484278fd.patch # HALO: new drawables for hdpi and mdpi
$ git commit -m 'Add HALO'
$ git tag halo
$ git checkout cm-head
$ git merge -m 'Merge HALO' halo # There might be trivial merge conflicts here
$ git tag -d cm-head
$ git tag -d halo
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
I have a question
If I want to embed it on another rom as BAKED, is the same procedure? Or there are some differences?
franzyroy said:
I have a question
If I want to embed it on another rom as BAKED, is the same procedure? Or there are some differences?
Click to expand...
Click to collapse
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Red Devil said:
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Click to expand...
Click to collapse
OK Thanks!
arararagi said:
There's also changes to the Settings app, but those are trivial.
Click to expand...
Click to collapse
You say the changes are trivial... but maybe this will be interesting to know them! Because in the Settings app, it's to set your settings, style those of Halo. You don't think?
Red Devil said:
You can cherry pick the commits from paranoid androids github. Just during the merge choose the right parent.
Yes this methods should work on all ROMs .
Sent from my Nexus 7 using Tapatalk 4 Beta
Click to expand...
Click to collapse
Where is the cherry pick please?
there are 2 commits.. one of them in frameworks/base and one in settings..
search for them
they are labelled as " HALO(1/2) and HALO(2/2)
Red Devil said:
there are 2 commits.. one of them in frameworks/base and one in settings..
search for them
they are labelled as " HALO(1/2) and HALO(2/2)
Click to expand...
Click to collapse
I already saw before but I have no experience how to add these commits ... can you explain me how add them?

CM10.2 for the LG Optimus 2x

CM10.2 for the LG Optimus 2x
If you appreciate my work on the LG Optimus 2x you can support me by donating!
I am doing this for free in my leisure time because I like working on Android stuff and helping others out.
You're not required to donate, but I highly appreciate a couple free beers or pizzas as a gratidue for my work.
To quote one of the most famous xda developers:
Chainfire said:
Don't be a leech, buy me a beer (and use the "Thanks" button!). Imagine if every CF-Root user has donated me $1...
Click to expand...
Click to collapse
I am nowhere near his usercount, but just imagine if every happy (and only those) user of one of my ROMs has donated 5€+.
​
After some sleepless nights I am happy to present CM10.2 for the LG P990 :highfive:
The first post contains information for developers, the second one a download and changelog of my personal testbuilds.
My time is rather limited these days. I will maintain the p990 device tree for others to use and post my development test builds.
But I do not plan to support a clean CM10.2 build, as soon as I upgrade to my own fork of CM someone else will have to take over!
Core changelog:
Code:
2131109:
- buildflag optimizations (-Os for arm modules, slightly increases RAM)
- codebase updated to the CM-10.2-M1 snapshot (Android 4.3.1)
20130930:
- fixed camera getting stuck after taking a picture
(this isn't about camera FCs - try the norh kernel for them!)
20130930:
- fixed notifications causing media playback interruption
20130829:
- Hack: Disable Wifi suspend options by default
(this is a bcmdhd option not compatible to our bcm4329 drivers)
- Additional custom hardwarekeys button actions
- Add gesture based lockscreen security
20130824.2:
- option to use the external SD as primary
- using the T2 camera wrapper (which improves ISO, contrast and saturation)
20130824:
- removed all selinux/auditd etc. modules
- enabled timer coalescence/slack kernel functions by default
- fixed CPU speed options at the performance menu (tegra2 incompatibilities)
20130821:
- dalvik/vm: Dalvik startup with a low memory footprint (gives more free ram)
- built from the new consolidated device tree at [url=https://github.com/p990-dev/android_device_lge_p990/commits/cm-10.2]https://github.com/p990-dev/[/url]
20130820:
- Camera fixed
- hardware OMX fix (mp4 videos in the stock player etc.)
- Google TTS non-neon incompatibility fixed
20130812:
- SoftAP (wifi hotspot) fixed (see details below)
20130809:
- initial CM10.2 build
- device tree updated for Android 4.3 including:
fstab updates, RIL updates, CM10.2 source build incompatibilities fixed etc
Information for developers:
I have created a clean and consolidated device tree for cm-10.2 at p990-dev:
https://github.com/p990-dev/android_device_lge_p990/commits/cm-10.2
We do not need the split into p990 and star-common anymore (that has been done initially to support the p999), thus I decided to combine them.
I git merged them together to retain the 2.5 year old commit history (I really hate those "initial commit bringups, which destroy them completely).
It is only for the new bootloader, as we got a converter to support both.
But if someone wants to maintain a dedicated oldbl branch just send me a PM and I'll give you push access.
In order to build CM10.2 for the p990 we need to track frameworks/av to fix compiling and for the OMX stuff which fixes the camera.
I've set up a build manifest which you can use: https://github.com/p990-dev/android
If you want to fix the SoftAP (wifi hotspot) you need to track my modified system/netd package and apply the patch attached to this post to frameworks/base.
The fix isn't included by default because I'd have to maintain the frameworks/base package - and it would require almost daily updates or it gets out of sync with other packages relying on it causing the build to fail.​
Compile your own CM10.2 ROM
For those of you who want to build your own ROM (which I can highly recommend) I've copied the excellent build setup instructions by @Raum1807 here, they should still work for CM10.2:
Raum1807 said:
Make your 'own' ROM today!
0. Preparation
Things you need for building:
A computer
An internet connection
An open mind
Time
Patience
First of all you need a running up-to-date Ubuntu/Linux system. I am using Ubuntu 12.10 64-bit.
Use the terminal to make the steps. A terminal window can be opened by pressing Ctrl+Alt+T. Every single command for the terminal is marked with a $ sign. Just paste every command (without the $ sign) to your terminal window and there shouldn't be any problem.
IMPORTANT: INSTALL EVERYTHING AS A NORMAL USER. DON'T INSTALL AS ROOT!
[INDENTI. Installation of the required packages (Ubuntu 12.10 64-bit)[/SIZE]
Install packages:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip 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 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils schedtool pngcrush xsltproc zlib1g-dev:i386
Set the links:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
II. Installing JAVA
You need a Java Development Kit for building CM10. Recommended is the SUN JDK 6. As of writing the most recent version is SUN JDK 6 Update 38.
1. Download the jdk-6u38-linux-i586.bin from the Oracle/Sun Java Download Area. If you are on 64-bit Ubuntu as I am, you should grab jdk-6u38-linux-x64.bin.
2. Make the bin file executable:
Code:
$ chmod +x jdk-6u38-linux-x64.bin
3. Extract the bin file:
Code:
$ ./jdk-6u38-linux-x64.bin
4. Move the extracted folder to this this location:
Code:
$ sudo mv jdk1.6.0_38 /usr/lib/jvm/./jdk-6u38-linux-x64.bin
5. Install the new Java source in system:
Code:
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javac 1
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/java 1
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javaws 1
$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javadoc 1
$ sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javah 1
$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/javap 1
$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk-6u38-linux-x64.bin/bin/jar 1
6. Select the default Java version for your system:
Code:
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javadoc
$ sudo update-alternatives --config javah
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
7. Check Java version:
Code:
$ java -version
8. Verify the symlinks. Javac, Java, Javaws, Javadoc, Javah, Javap and Jar should all point to the new Java location and version:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
III. The sources
Install repo:
Repo is a tool that makes it quite easy to download and maintain the sources of Cyanogenmod.
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ cd ~/bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo[/QUOTE]
[/hide]
After this is done (one time only of course) you can build your own CM10.2 ROM.
There is no need to handle a local_manifest as I included the required repos into the main mainfest.
I've again used [user=4732829]@Raum1807[/user]'s instructions but updated them to CM10.2
[hide][B][SIZE=3]Get the sources[/SIZE][/B]
Start with creating a new working directory for CM10.2:
[CODE]$ mkdir ~/cm10.2
$ cd ~/cm10.2
Initialize Repo for Android CM10.2 (Android 4.3):
Code:
$ repo init -u git://github.com/p990-dev/android.git -b cm-10.2
and enter your credentials if needed.
Download the sources:
Code:
$ repo sync
Wait until it's finished (takes a lot of time!).
If the process hangs use Ctrl+C to break out of it and resume the download with another
Code:
$ repo sync
Initialize the environment
Code:
$ . build/envsetup.sh
Build the ROM
Code:
$ repo sync
$ breakfast p990
$ mka bacon
and flash it via CWM/TWRP. Make a clean start (if necessary) with format /system, wipe data/factory reset, etc..
Have fun!
Click to expand...
Click to collapse
for users
For users:
A download of my newest newbl testbuild is here:
http://tonyp.basketbuild.com/index.php?dir=main/CM-10.2/
https://meocloud.pt/link/ab96fec3-cac7-4a3f-b652-560ea5efbfa5/tonyp ROMs&Others/ (mirror by @trocopassu, thanks!)
It comes with kk 126 + kowalskimanager, mini gapps for 4.3.
Apart from my fixes to make this old device with ICS(!) blobs and an outdated kernel work it's mostly clean cm10.2 build.
Installation instructions (coming from another ROM than CM10.2):
Do a full wipe. Do another reboot after the first boot. Don't *****.
Installation instructions (updating to a newer CM10.2 build):
Flash the ROM. Reboot. No wipes needed.​
Working:
- Nearly the same features as in CM10.1 (phone, wifi, data, etc).
Not working (oh and pretty please, no "reminders" of what's broken):
- BT is pretty much broken - see here for more details
- camera (yes, it's completely broken)
- wifi hotspot
- all the cm10.1 bugs are still there of course (hdmi etc.)
Changelog:
Code:
[B]cm-10.2-20130824-UNOFFICIAL-p990.zip[/B]
- removed all selinux/auditd etc. modules.
- fixed setting the CPU speed at the performance menu
- enabled timer coalescence/slack kernel functions by default
- lowered the vibration strength
- merged upstream (JWR66Y is merged)
[B]cm-10.2-20130821-UNOFFICIAL-p990.zip[/B]
- dalvik/vm: Dalvik startup with a low memory footprint
- add the possiblity of using external sdcard as application storage for user 0
- added sys.mem.max_hidden_apps=4 to the build.prop
- back to CM10.1 stock GPS files
[B]cm-10.2-20130820-UNOFFICIAL-p990.zip[/B]
- Camera fixed \o/
- hardware OMX fix (mp4 videos in the stock player etc.)
- added my memory management option from CM10.1 (more aggressive task killing)
- long press the clear recents button to clear cache
- enabled development settings for the device owner by default
- enabled camera shutter muting (follows device sound settings)
- re-added Focal
- Google TTS fix
- included mini gapps package updated
- merged upstream
[B]cm-10.2-20130812-UNOFFICIAL-p990.zip[/B]
- SoftAP (wifi hotspot) fixed
- merged upstream
[B]cm-10.2-20130809-UNOFFICIAL-p990.zip[/B]
- initial build
Click to expand...
Click to collapse
Thank you
Sent from my Nexus 4 using xda app-developers app
here it is:
General Discussion here
Thanks for the adherence, compliance and understanding
Old bootloader version
Tonyp's Unofficial JB 4.3 oldBL will be shortly available...
Thanks to @tonyp for the porting methods
Thanks to @Custom40 for the effort of packing/repacking boot.img
please hold on for sometime......maybe available to the testers soon
Thanks guys
Sweet, I got the power to move threads from the dev discussion to this place
As the main issue seems fixed (spoiler alert - see below ) and I doubt there will come too much input from other developers anyways, I think we can continue this here.
Still try to use SREEPRAJAY thread for general input
Sooo... what's the big news.
Thanks to the help of @timduru I managed to find the missing piece which is required for this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
:victory: :victory: :victory:
I will post a new build in the evening :good:
Awesome Tony! You are EPIC man..Hats off
And for 4.3, let me try porting the LG cam!
That is called a good team.... @tonyp @pengus77 @spyrosk....as someone here said...you guys are preventing users from buying a new one....lol
Thanks a lot
And @Jishnu Sur joining for the cam....
And so many others who are behind the screen
BTW should I try porting it to the old bl?
Sent from my LG-P990 using xda premium
tonyp said:
[…]
As the main issue seems fixed (spoiler alert - see below ) […]
Sooo... what's the big news.
Thanks to the help of @timduru I managed to find the missing piece which is required for this:
:victory: :victory: :victory:
I will post a new build in the evening :good:
Click to expand...
Click to collapse
Ermahgerd you're such a genius, man. Thank you so much for your effort. I'm glad you finally found the missing piece required for the plant.
Tony, you're fantastic.
I can't say all my current feelings right now but I'm heating alot (me not my P990, :laugh
It's the first time in my life I hope to be back from hollydays soon to be able to download these new builds.
And any news about Github?
I know we all are grateful, but if hitting the thanks button is not enough, then please use the topic in the general section as tony said. Try to keep the topic right here as clean as it has been so far, no matter how hyped the great devs make us
Sent from my LG-P990 using xda premium
This is cool....
So i can add p990 back CM10.2 tree from PAC Man.... with nightly and mine builds. We have many things updated and added... Settings menu are new, now with OTA officially and many more xD
But i will wait a little bit and will see if all work fine in this Thread with a clean CM10.2.. Lets first fix all bugs
TonyP gratulations, great work
tonyp said:
Sweet
:victory: :victory: :victory:
I will post a new build in the evening :good:
Click to expand...
Click to collapse
:crying::crying::crying:
(tears of Joy..) hope that will be a real download link..
Amazing work! You are getting better & better on this... Halleluiah... ^__^
finally...
edit: sorry for spamming ithought im on Discussion thread.. mod will you please delete this , i can't the delete
Can u people stop spamming thank you's in DEV thread. Thanks.
Although I just bought my gs4 a few days ago, this is great news. Maybe it can increase the resale value of the 2x. Or I can even use it as a backup phone. Good job to all the devs responsible for this. I'll give this a flash as soon as I can.
Sent from my SGH-I337M using xda app-developers app
Youngbloodx said:
Although I just bought my gs4 a few days ago, this is great news. Maybe it can increase the resale value of the 2x.
Sent from my SGH-I337M using xda app-developers app
Click to expand...
Click to collapse
I don't think that is true. But if it is, that extra money should go to tonyp!
Enviado de meu LG-P990 usando Tapatalk 4
Okay, the new build is up
Changelog:
Code:
cm-10.2-20130820-UNOFFICIAL-p990.zip
- Camera fixed \o/
- hardware OMX fix (mp4 videos in the stock player etc.)
- added my memory management option from CM10.1 (more aggressive task killing)
- long press the clear recents button to clear cache
- enabled development settings for the device owner by default
- enabled camera shutter muting (follows device sound settings)
- re-added Focal
- Google TTS fix
- included mini gapps package updated
- merged upstream
It looks like GPS is broken.
Would be great if some of you guys could test it and try out different GPS fixes out there at xda, maybe one or the other will work...
lucfig said:
I don't think that is true. But if it is, that extra money should go to tonyp!
Click to expand...
Click to collapse
Oh I like that :good:
You all know where my donation links are - I'm putting lots of effort into the 2x and appreciate each and every incoming beer.
Imagine the amount of money I'd have made when each (happy) user would have donated just 5€ ...
chp2 said:
Tony, you're fantastic.
Click to expand...
Click to collapse
:highfive:
chp2 said:
And any news about Github?
Click to expand...
Click to collapse
I am almost done:
https://github.com/p990-dev/android_device_lge_p990
It should be complete but is untested, will do my next build from the sources, then I can give the green light.
Ryukenden said:
Can u people stop spamming thank you's in DEV thread. Thanks.
Click to expand...
Click to collapse
Actually: I don't really care that much.
If I would have wanted to keep the thread entirely clean I could have left it in the dev discussion section in the first place.
Almost on my birthday :laugh: Thanks man! Gonna test it's battery life, because on my Nexus 7 it's much better than on android 4.2.
Yay, camera fixed. Concerning GPS there are 2 apps that might help:
1.) FasterFix (might not be needed)
2.) GPS Status - Test & Fix
So I installed FastFix first, selected "Europe" (time server), but still got no GPS signal. I'm not sure if setting the time server is persistent. If it is, this step might be needed. But you can also try to install the 2nd app only: GPS Status - Test & Fix. I started it and suddenly the GPS worked! From then on it also worked in Ingress and Google Maps.
I attached the logcat of both situations: gps_error.txt is before installing any of the apps, gps_fixed.txt is when it works successfully. Both logcats are grepped for "gps_BRCM" and they both start when a GPS signal was not found. Then the screen turns off (GPS also), then screen turns back on (GPS also) and in one case it gets a signal, in the other case it doesn't (although it gets a good number of sattelites in both cases, you see num_svs up to 8).
@tonyp just one question. Is it build with GCC 4.7/4.8?
Asking because for now I am a heavy user of BT headset.
Thanks us advance
Enviado de meu LG-P990 usando Tapatalk 4

[Dev][Krt16m][4.4] unofficial_cyanogenmod-11 [Thread-Closed]

Note : this thread is intended only for dev disscusion , working as i m getting things mixed in my beanstalk thread So, decided to create this thread thanks @DomusX10 and @[NUT] for idea
this is work to make Kitkat working on xperia 2011 devices
Source : github.com/cyanogemod
https://github.com/rebelos/msm7x30-3.4.x-nAa
Test Build 1 link :- http://www.mediafire.com/download/5zkr6d5dxzl7zdr/cm-11-20131110-UNOFFICIAL-anzu.zip
Test Build #2
Link : http://www.mediafire.com/download/ww4p6srrs0d58kd/cm-11-20131118-UNOFFICIAL-anzu.zip
Add this line in build prop before flashing..
Code:
#ADB
ro.debuggable=1
persist.sys.usb.config=adb
thank you!
current status : stuck at bootanim [on build #1] on build #2 needed to be verified
credits : Mikeioannia , legacy xperia , saki3d ,cyanogenmod , fxp ,szezso , munjeni
how to build guide
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
I am running now the 4.4 on my n4 it don't have new kernel but it have some new resources that the devs will take and they optimization the performance.. My n4 flying I hope to see my arc s flying to..
Sent from my Nexus 4 using XDA Premium 4 mobile app
nokiagye said:
I am running now the 4.4 on my n4 it don't have new kernel but it have some new resources that the devs will take and they optimization the performance.. My n4 flying I hope to see my arc s flying to..
Sent from my Nexus 4 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
this evening I read about which sony device reiceve kitkat, and I read that xperia V and T will receive 4.3 officially.
Hope of 4.4 on Arc S never die. Obviously with a cooked ROM from xda...:good:
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
officiallysonyrebel said:
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
Click to expand...
Click to collapse
OK i can test and maybe ask @besttt & @vishal_android freak
which link to download?
cheers
officiallysonyrebel said:
any experienced user here who knows how to do logcat cause i needed few testers for 4.4
Click to expand...
Click to collapse
stuck with me at kernel logo using provided kernel
Cheers
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
elguneid said:
Me too confused about that ...
Sent from my LT18i using xda app-developers app
Click to expand...
Click to collapse
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
[Dev][Krt16m][4.4] unofficial_cyanogenmod-11
officiallysonyrebel said:
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
1. mkdir cm
2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3. mkdir -p ~/cm/.repo/local_manifests
4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml
5. repo sync -j1
6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh
7. chmod a+x updates.sh
8. ./updates.sh
9. cd ~/cm/vendor/cm
10. ./get-prebuilts
11. cd ~/cm
12. . build/envsetup.sh
13. breakfast <device>
14. brunch <device>
guys build it .. try it.. debug it ..
Click to expand...
Click to collapse
I have an ARC, no coding experience though...
Before I try this:
No need to get blobs for 4.4?
officiallysonyrebel said:
i saw u on Z forum u have created XZ dual recovery ...
everything is updated on my github..nothing needed but the problem i m not able to surpass boot screen with no adb shell access according to mikeioanniai busybox is broken ... currently trying to fix up things ... plz if u can try it for fixing these thigns then that will be great
best regards
Officiallysonyrebel
Click to expand...
Click to collapse
XZDualRecovery, yes, that's me
PM me your hangouts email, I'll attempt a build ASAP and we will be able to do some live debugging while you code
officiallysonyrebel said:
fixed....
Code:
[B]How To Make Your Own Cm_11 builds for Anzu , urushi and smultron[/B]
[STRIKE]1. mkdir cm[/STRIKE]
[STRIKE]2. repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0[/STRIKE]
[STRIKE]3. mkdir -p ~/cm/.repo/local_manifests[/STRIKE]
[STRIKE]4. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/semc.xml > ~/cm/.repo/local_manifests/semc.xml[/STRIKE]
[STRIKE]5. repo sync -j1[COLOR="Red"][B]0[/B][/COLOR][/STRIKE]
[STRIKE]6. curl https://raw.github.com/rebelos/local_manifests/cm-11.0/updates.sh > ~/cm/updates.sh[/STRIKE]
[STRIKE]7. chmod a+x updates.sh[/STRIKE]
[STRIKE]12. . build/envsetup.sh[/STRIKE] [COLOR="Green"][B]needed to do here!!![/B][/COLOR]
[STRIKE]8. ./updates.sh[/STRIKE]
[COLOR="Green"][B]Open and comment cherries 53164, 51130, 51224, 52888 and 53495: ALREADY MERGED![/B][/COLOR]
[STRIKE]9. cd ~/cm/vendor/cm[/STRIKE]
[STRIKE]10. ./get-prebuilts[/STRIKE]
[STRIKE]11. cd ~/cm[/STRIKE]
[STRIKE]13. breakfast anzu[/STRIKE]
14. brunch anzu [COLOR="Red"][B]RUNNING[/B][/COLOR]
guys build it .. try it.. debug it ..
Click to expand...
Click to collapse
Doing this now, will strike off everything done sofar to show progress
-- EDIT --
Man, CM is so freaking big, even with my 2 (yes, really) 20Mbit connections it's taking for ever
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
arc_n_krizt said:
How big data source for cm???
Sent from my Xperia Arc S using xda app-developers app
Click to expand...
Click to collapse
22Gb sofar... no idea if it will grow even more...
[NUT] said:
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
22Gb sofar... no idea if it will grow even more...
Click to expand...
Click to collapse
Hi,
see if these works:
First, check if in cm\device folder there is "semc\anzu\..."
if not, local manifest should be changed
if there is anzu folder in cm\device\ then try one of these:
breakfast cm_anzu
breakfast cm_anzu-eng
or alternatively just type lunch and select anzu from the list
[NUT] said:
@officiallysonyrebel
Code:
# breakfast anzu
including vendor/cm/vendorsetup.sh
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
Device anzu not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_semc_anzu
Default revision: cm-11.0
Checking branch info
Default revision cm-11.0 not found in android_device_semc_anzu. Bailing.
Branches found:
cm-9.0.0
gb-release-7.2
gingerbread
gingerbread-release
ics
ics-release
jellybean
jellybean-stable
cm-7.1.0
Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
build/core/product_config.mk:238: *** _nic.PRODUCTS.[[device/semc/anzu/cm.mk]]: "hardware/ti/wlan/mac80211/wl127x-wlan-products.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_anzu'
** Do you have the right repo manifest?
Any idea how to get this fixed? For some reason, repo breakfast is not picking up your repository as a valid one... I can't find why
The path device/semc/anzu is there... breakfast somehow thinks it's not
---------- Post added at 01:31 AM ---------- Previous post was at 01:30 AM ----------
22Gb sofar... no idea if it will grow even more...
Click to expand...
Click to collapse
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
officiallysonyrebel said:
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
Click to expand...
Click to collapse
gosssss.... it more 5 days to finish in my country!!! does anyone have the cd form .... it's like a repository in linux right??
arc_n_krizt said:
gosssss.... it more 5 days to finish in my country!!! does anyone have the cd form .... it's like a repository in linux right??
Click to expand...
Click to collapse
whats u r bandwidth..?
officiallysonyrebel said:
its easy ..
cd ~/cm/hardware/ti/wlan
git fetch http://review.cyanogenmod.org/CyanogenMod/android_hardware_ti_wlan refs/changes/24/51224/7 && git cherry-pick FETCH_HEAD
only if it show some wired thing then
git commit --allow-empty
source is aroung 30 gb's
yup we can use hangouts [email protected] -- if anybody has problem regarding kk then can contact me at hangouts .. thnx
after it u might get librpc error [maybe] the n go in hardware / gps / delete lib rpc .. i m updating sources to upstream changes..
best regards
officiallysonyrebel
Click to expand...
Click to collapse
The git fetch line fixed it indeed :good: I did need to remove the hardware/qcom/gps/librpc folder though, so that was a smart move
officiallysonyrebel said:
whats u r bandwidth..?
Click to expand...
Click to collapse
i cant share in this forum... whether there is a link than github??
Great!
Now it is much easier to discuss progress with kit kat on xperia 2011 lines! :good::good:
Boy, that split was a hassle
Anyway... ROM compile still running... I'm afraid to stop it, but I forgot to add export USE_CCACHE=1 and to have brunch run with a -j3 switch (which will enable it to use multicore systems)...
It's been running since 7:30 AM (GMT+1) ...
-- EDIT --
If you use the -j switch, take the amount of cores and add 1 to determine the number of threads it can handle. For every 4 cores you can add 1 extra thread. So a dual-core CPU can handle 3, a quad-core can handle 5 but an octo-core can handle 10.
Don't mix up HYPERTHREADING (HT) with actual number of cores, if you have a Pentium series CPU with HT, half the number of cores you might see in your /proc/cpuinfo, HT is doubling your core count but while compiling, it will hinder the processing power of your CPU more then it helps
That clearly does not work on lunch,brunch and breakfast ... too bad!
:victory: FINALY it was done ... or so I thought...
Code:
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:10:26: error: extra tokens at end of #ifndef directive [-Werror]
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:11:26: error: missing whitespace after the macro name [-Werror]
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/surface_texture_peer.cc
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:24:20: error: expected initializer before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:26:17: error: expected initializer before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected '{' before '<' token
/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected unqualified-id before '<' token
external/chromium_org/content/common/android/hash_set.cc:30:1: error: expected '}' at end of input
cc1plus: all warnings being treated as errors
make: *** [/storage/home/nut/development/xperia/cyanogen/beanstalk/out/target/product/anzu/obj/STATIC_LIBRARIES/content_content_common_gyp_intermediates/content/common/android/hash_set.o] Error 1
make: *** Waiting for unfinished jobs....
Lets see if I can fix that...
-- EDIT --
I thought it might have been a typo somewhere ... but I'm lost already
Need help

[Guide] A very in depth guide on Compiling from source with useful Tips and F.A.Qs

Okay so there are several guides on XDA on how to compile Roms from source etc. Since the development for this device is growing... I want to encourage other members to contribute to development and teach those who don't know yet about compiling. This is an extremely indepth tutorial intended not only to teach basics...but also to clear up working of some stuff.
THIS IS A 5 PART TUTORIAL COVERED IN 5 POSTS.
So without further ado.......
################
THE BASIC STUFF
################
This will cover all the basics of android development...which is I think common to most other tutorials. This part will teach you how to compile a ROM from source.
First we select an OS. You can use gentoo or mint
But I prefer to use Ubuntu 12.04 64 bit.(OUTDATED)
Note: YOU CANNOT COMPILE ROMS ON 32 BIT ONLY KERNELS.
So let's download Ubuntu 16.04 (Xenial Xereus) image
http://releases.ubuntu.com/16.04/
Now that you have downloaded it.. You can set it up as a virtual machine in virtual box or dual boot it. You may also use it as primary os if you want.
Now let's set up the build environment.
Open up the terminal
Type this in the terminal window:
Code:
bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev
g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-dev lib32z1-dev
For Marshmallow and up replace openjdk7 with 8...
Now you need to install the android SDK
Get it here :http://developer.android.com/sdk/index.html
Extract this in the home directory
Now in the terminal window type this:
Code:
gedit .bashrc
A text editor will pop up. Add these lines at the very end:
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
Now again in terminal window type:
Code:
gedit .profile
Add this:
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
The SDK is now installed!
Now before we install the repo tool
Run this in terminal window
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
and add these lines:
Code:
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"
#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"
#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"
#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"
#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"
#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"
#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"
#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"
#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"
#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"
#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
Save it and run:
Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
What we just did was Adding vendor id's for USB connectivity.
Whew ..... That was quite long.... Now let's be back to business.
Installing the repo tool:
To manage the git repos and to use them for our various needs like initializing them and syncing we use a tool made by Google called the repo tool.
Type this in terminal window:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now you are all geared up for compiling roms !
For demonstration in this tut we will take the device as golfu and our source path as:
/home/user/android/system
So make the source folder by:
Code:
cd ~/
mkdir android
cd android
mkdir system
cd system
Now let's initialize the repo..... Let's decide which one to sync.... I'll use cm11 for this tutorial.
When you are in source folder type in terminal:
Code:
repo init -u *git link to source* -b *branch name*
The repo init link can generally be found in the manifest of the ROM on github.
So for cm 11 it should be like this :
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11
Now you have successfully initialized cm11 source code in your directory!
Now you need to download the sources..... The android source code is very large and it may take a little to a looong time to download depending on your internet speed.
So when you are in your source directory:
Code:
repo sync -j#
# will be the no. Of jobs
A larger number will give better result if your internet is fast but entering an insane number won't help.
I use:
repo sync -j8
Now wait till your source is synced...long process.
After the source is downloaded you need to get the device specific parts.
You need to get the kernel source, device tree and vendor tree.
For this device you need not download the vendor tree
Download device tree as a zip from github
Extract CONTENTS to:
/home/user/android/system/device/htc/golfu
Create folders if not present.
Download the kernel source from github as a zip
Extract CONTENTS to:
/home/user/android/system/kernel/htc/golfu
Create folders if not present.
Now your source code is completely set up for compiling for our device !
Before building get the prebuilts:
Code:
cd /home/user/android/system/vendor/cm
. get-prebuilts.sh
Set up for building:
Type this in terminal
Code:
. build/envsetup.sh
Do this every time before building
And now finally start building!!
Type this in terminal to start building:
Code:
brunch cm_devicename-userdebug -jx+1
Where x is number of cores. My laptop has 4 cores.
So for golfu it should be :
Code:
brunch cm_golfu-userdebug -j5
Wait for it to complete building.
After it is done .... Your build can be found at
/home/user/android/system/out/target/product/golfu.
It will look like : cm-11-YYYYMMDD-UNOFFICIAL.zip
CONGRATULATIONS! You have built your very own ROM
Remember to make clean before every build!
This is the end of part one of series.
Please note, if by any chance there is a problem of java, python, maven, git etc.. not installed:
sudo apt-get install neededthing
Let's get on with part 2 of this series of 5!
########################
THE SOURCE CODE
########################
OKAY so if you followed the tutorial you theoretically speaking have created your own build.
BUUT ... Its not always like that practically.
You are bound to get errors especially if you are using your own device tree. So let's have a study of the source code so that you know what's wrong and what is what.
Let's get started!
So the source code in our folder has 2 parts:
a) Generic source code
b)Device-specific code
The generic source code is the ROM source code which is similar for all devices
The folders you should find there:
Bionic
Build
Bootable
Dalvik
Art
Device
Docs
External
Frameworks
Hardware
Kernel
Ndk
Out
Packages
Prebuilt
Prebuilts
System
Vendor
So let's see what goes in each folder:
Bionic: is the Android mobile-friendly version of libc.Lots of cpu-specific stuff present here. Better not to touch anything here and move along.
Build:The scripts and various files that are used for the actual build process are present here. You can see the various steps for compiling android
Bootable: The source of CWM is here
Dalvik: its the virtual machine that runs java apps.
You might recall in computer classes you were taught that java programs do not depend on the underlying architecture. This is why its so.
Art: art stands for android runtime. Its a replacement for dalvik in android 4.4
Device: it contains the device configurations for a particular device.
Docs: contain the source for Android Open Source website.
External: This is where non-android specific utilities go. Lots of the stuff in here are just regular open source projects that are used by Android.
Frameworks:This refers to the core Android frameworks. It's the stuff that makes Android, Android. The frameworks contain the Android user experience and the abstracted "hooks" that programmers use to build Android apps.
Hardware : specific libraries go in this folder.
The drivers for our WiFi chip ath6kl should be here.
Kernel: the kernel source code can be found here.
Ndk: Tools for allowing cross-platform C code to be included in Android apps.
Out: the output I.e the compiled ROM will be here.
Packages: the android apps are present here.
Prebuilts : contains the tool chains.
System: Lower-level linuxy system stuff such as netd, fastboot support, the shell
Vendor: it contains stuff particular to a vendor build such as CyanogenMod. It's also the place where proprietary blobs are extracted from the device.
That's it for generic sources.
Source: cyanogenmod docs
Now let's talk about the device specific code. You may already have guessed, its the code that contains all the configurations for our device...making the compiled ROM unique for our device.
Now let's have a closer look at it.
The device specific code contains 3 parts:
a)device tree
b)vendor tree
c)kernel source code.
Let's talk about the device tree.
Here is a perfect example of a great device tree.https://github.com/codexblack/golfu
Kidding. That one is for 4.3 and it barely works but it will do for demonstration.
In depth look time!
Files in the device tree *yawn* you guys still with me?
AndroidBoard.mk
AndroidProducts.Mk
BoardConfig
Device.Mk (for us: golfu.Mk)
Cm.Mk(for cyanogenmod. Will vary with different Roms)
Recovery.fstab
System.prop
Vendorsetup.sh
Now what each one does:
AndroidBoard: these files are present in our ramdisk in the kernel. You can decompile the kernel to see these files.
BoardConfig: you set up paths to some files and declare some stuff about architecture.
Device.Mk: define libs to be compiled along with other stuff. Take a look and you should understand
System.prop: build prop configuration
Vendorsetup.sh: self explanatory.
Let's move on to kernel
Its the source code of the kernel for our device.
After compilation it looks something like a boot.IMG..you might have seen in ROM folder . The kernel is very important. But what does it do? When software needs the hardware to do anything, it sends a request to the kernel.
That's it for kernel..... It handles all the instructions to put simply.
Vendor tree.....
It contains the proprietary blobs for our device.
We do not use it in golfu
Whew .... That's it for device specific code!
Move on to part 3.
Part 3 is here! Even if I move on to part 4... It won't mean this is over. I will keep on adding stuff here.
So now...........
###########################
TIPS,TRICKS AND MISC STUFF
###########################
Nightlies:
Okay so you have sources synced for a ROM say cm11.
Its complete and running with a proper device tree and kernel.
You want to do nightly or weekly builds for it.
So what IS a nightly/weekly?
These are build of the ROM done every night or week by pulling the latest source code of the ROM with all the new commits and build it to keep the ROM up to date.
How to do it? Sure compile every night. But that's not conventional eh?
So let's use this script for night lies!(please tell me if it didn't work).
Code:
#!/bin/bash
#navigate to source directory
cd ~/home/user/android/system
#clean out folder before building
make clobber
#sync source. Modyfy script to set -j flags accordingly
repo sync
#Set up for building
source build/envsetup.sh
#Start build process
brunch cm_golfu-userdebug
#rename to nightly
cd ~/home/user/android/system/out/target/product/golfu
mv cm-11*.zip cm-11-$(date +%Y%m%d)-golfu-NIGHTLY.zip
I've explained what the script does along the way.
Make changes accordingly for different Roms,devices and weeklies.
Save it as script.sh
Then navigate to folder of script and type
Code:
./script.sh
If some permission issue arises type
Code:
su chmod 755 script.sh
CCACHE:
Wanna cut down compilation time?? Use CCACHE!
Go to /home and open .baschrc by using gedit .basrc in terminal
Add these lines:
Code:
export USE_CCACHE=1
export CCACHE_DIR=/source-directory/prebuilts/misc/linux-x86/ccache
Navigate to source-directory and type this in terminal:
Code:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
50G = 50gb of cache . Change it accordingly.
Cherry Picking:
Want to apply changes to your device tree by applying commits from github? Instead of manual copy-pasting its better to cherry pick those commits and apply in
your device tree!!
FIrstly, Navigate to your device tree.
Now that thats done:
Code:
git init
git pull [email protected]:username/android_device_htc_golfu.git
Now after that time to fetch the project from which we are cherry picking:
Code:
git fetch git://github.com/user/repo.git
Now time to cherry-pick the commit itself. You might have noticed that the commit has a particular id which looks like a long string.
eg: ab72e4ab36778474593ffce89150aece01d5f9c
so what we do now is:
Code:
git cherry-pick thecommitid
And you are done!!
Local Manifests:
There are many useless files in the source (for us) that we donot need. The vendor, kernel and device trees of official devices may be included. Why should we waste
data by downloading them? Lets remove them from our sync!
Code:
cd source/.repo
gedit local_manifest.xml
example of how to remove a project:
Code:
<remove-project name="CyanogenMod/android_hardware_qcom_fm" />
Using the reference flag:
Now that we have compiled CyanogenMod and want to compile another ROM , should we waste hours syncing again??
NO
We shall use the reference flag instead!!
So now navigate to the new folder created for the new source and then enter:
Code:
repo init --reference=~/rootofdownloadedsource -u git://url.com/ROM.git -b branch
What the reference flag does is it just simply transfers the common projects instead of re-downloading them saving time and data!
I was gonna put a kernel compiling guide here but i saw that there was already a good one.
So i shall link it here: http://forum.xda-developers.com/showthread.php?t=2246833
Now to the last part of the series..... Part 5
Thanks for sticking with me guys!
########################
F.A.Q'S and common build errors
########################
Q. What are ideal configurations for compiling?
:- You need to have at least 4gb ram and a dual core processor. Make sure you have at least 200gb free space.
Oh and have a decent internet of 2mbps+ to compile without headaches.
Q. I have less than 4gb of ram....what should I do?
:- Make a swap partition. Search how to make one.
Q. Help I have bugs in the build!
:- calm down. Take a logcat and study it. You can take logcats from phone itself by using aLogCat or CatLog app.
Q. I want to use this rom on my phone but its not there!
:- Ask someone to build it or even better... Build it yourself using your new knowledge. You will even earn some respect!
Q. Help I'm getting build errors!
:- Read the error statement properly goto the file associated with the error and see if there is a logical mistake like a missing semicolon or bracket. Search for similar errors on Google. No avail? Post it here. I'll try to solve and post the error with solution for everyone to see.
But please try first.
Q. My PC froze burning building.
:- you probably don't have enough ram. Use SWAP.
Q. It says permission denied while building.
:- Either use file explorer and right click the file in question and give it r/w access or cd to the directory and:
chmod 777 filename.extension
Q. How do I fix bugs in ROM?
:- take a log cat. Address the errors listed there.
Q. There is an error saying there is no way to define /xyz/kernel needed by /xyz/boot.img
:- Make sure the kernel source is in correct directory. Check in the boardconfig. Are you using prebuilt kernel? Then make sure its taken care of in the BoardConfig.
Q. Server connection failed with Jack
:- Kill server using jack-admin kill-server then enter:
sudo apt-get install libcurl4-openssl-dev nss-updatedb
Q. Jack froze, giving heap error.
:- Need to increase ram dump. For example try this:-
# Use 7GB RAM for Jack Server -1GB from 8GB
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx7000m"
# Killing...
out/host/linux-x86/bin/jack-admin kill-server
# Starting...
out/host/linux-x86/bin/jack-admin start-server
NOTE: IN LEGACY DEVICES YOU NEED TO ADD DISPLAY LEGACY AND MEDIA LEGACY DRIVERS!
Get it here https://github.com/androidarmv6/android_hardware_qcom_display-legacy/archive/cm-10.1.zip
And always remember...
.experience is the best teacher guys. These should clear basic doubt's. Learn as you go!
Le credits:
The cyanogenmod team
galaxyfreak, with whose tut I learnt to compile.
Fluoxetine , who helped me with some stuff
Same stuff if I'm using linuxmint 16?
Sent from my HTC Desire C using XDA Premium 4 mobile app
rudi_j7 said:
Same stuff if I'm using linuxmint 16?
Sent from my HTC Desire C using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Generally should be
Because I find Linux mint's ui better than Ubuntu
Sent from my HTC Desire C using XDA Premium 4 mobile app
NOTE: YOU CANNOT COMPILE ROMS ON 32BIT ONLY KERNELS
Click to expand...
Click to collapse
noobish confusion but what exactly does that mean?
Bashing away at my HTC Desire C
Antagonist42 said:
noobish confusion but what exactly does that mean?
Bashing away at my HTC Desire C
Click to expand...
Click to collapse
It means u can compile Kernels on 32-Bit OS but ROMs Require 64-Bit OS
Google It
Thanks
Sparky
That makes even less sense!
Not being able to make a 32bit ROM that uses Thumb2 and can use half-word requires you to build it on a 64bit system! :banghead:
Google says it's preferable to use 64bit for builds above Gingerbread, biggest thing it effects is build time using 32bit.
Bashing away at my HTC Desire C
Well I should say cyber you have done a wonderful job in making this guide specifically for golfu...we really appreciate your work for this device you don't even own...
Thanks a lot and I am sure this would help us make roms from source for this cute device...
Thanks once again mate !:good:
Part 2 finished
Part 5 done.
Expect part 3 and 4 today
Dude nnice work..Just visinting this section after some time cauz i dont have this device aymore..
One advice
For kernel link nikhil's kernel guide
It was great and i had compiled my kernel
just for the sake of knowing how to do it .. and is very good just some confusion which on reading whole thread can be solved
DELETED
Before building get the prebuilts:
Code:
cd /home/user/android/system/vendor/cm
. get-prebuilts.sh
It should be
Code:
./get-prebuilts
this gives error(. get-prebuilts.sh) no such directory found...
warrior1208 said:
Getting this by using this device tree...
Code:
Trying dependencies-only mode on a non-existing device tree?
Also, I noticed that this device tree is just 13 mb .zip whereas the kernel tree is itself 118mb
Then, maybe should I use cm10.1/10 device tree??? Anyone plz help asap...
Edit: alright, will today try with cm10/10.1/10.2 device trees...
Click to expand...
Click to collapse
Haha..... Late reply, but that's nothing to worry about. it's normal. Anyway, I'm trying to build too.... so we can try and get stuff fixed together.
rudi_j7 said:
Haha..... Late reply, but that's nothing to worry about. it's normal. Anyway, I'm trying to build too.... so we can try and get stuff fixed together.
Click to expand...
Click to collapse
After 20-25 days! Exams arriving soon!
Thanks
Thanks

Categories

Resources