Build your own Android kernel for Venue? - Dell Venue

Hi all,
You know your device configuration!
You can get the source code for Android 2.3.3 from Google: http://source.android.com/source/initializing.html
You have the manuals out there: http://forums.androidcentral.com/ht...how-build-your-own-kernel-package-source.html, http://linuxclues.blogspot.com/2010/05/build-compile-linux-kernel-android.html, and so on...
So, I wonder why there were never been a person here who think about building his own Android 2.3.3 kernel?
With some knowledge about using Linux development tools, I think it's quite feasible for us to do that! Why can't we do that?

Noone's been interested enough to bother, the venue kernel source has been out as long as the device itself

TheManii: thank you for your information. Now with the rooted 4.06 provided by liuhui for backing up(another thread here), I think I am well-encouraged to have a try building a kernel myself.
What might be missed in my build, I think, will be the firmware updates (that are better provided in a formal update.pkg). Am I right?

Hi men,
I read this guide from Dell's guide to build the source:
-------------------------------------------------------------------------------
kernel
1) download source tree of android froyo from Qualcomm.
2) replace kernel
3) build kernel by
. build/envsetup.sh
choosecombo
Does anyone know how to do step 1: "1) download source tree of android froyo from Qualcomm."?

If you dont understand that how to do that I doubt you'd be able to build it sucessfully.
The qualcomm tree is located at code aurora forum's site, I believe the text file also has the specific build fingerprint of the exact version they used at the moment

I found it here, TheManii: https://www.codeaurora.org/xwiki/bin/QAEP/.
Although it might be a tough task, I think it's worth a try. At least I hope I can check whether things on Dell's guide to build Venue works!

I found it here, TheManii: https://www.codeaurora.org/xwiki/bin/QAEP/.
Although it might be a tough task, I think it's worth a try. At least I hope I can check whether things on Dell's guide to build Venue works!

[GUIDE] To build dell venue kernel (& ROM) from source
I faced hard ware problem in my PC when execute make command, the RAM is screaming and PC died before the build complete look like my RAM have big problem. I do best to write a brief guide by expecting someone willing to try to build kernel for this device and probably complete rom. More people involve will create opportunity to have customs kernel and rom for dell venue
Brief Guide to Build DELL VENUE kernel Noob Proof
I. Preparing development Tools
A PC (Desktop or Laptop) with 2 GB Ram (4 GMB or more Ram is preferred), Pentium 4 class Processor or Higher. 40 GB Hard Disk Space. Internet Connection
II. Linux Ubuntu 10.04 i386 (32 bit Platform) is suggested, but other linux distribution and/or amd64 (64 bit Platform) also welcome. Other operating system is not covered by this guide.
III. Reference / links
http://source.android.com/source/initializing.html To set up build environment.
https://www.codeaurora.org/xwiki/bin/QAEP/ everything about build process
http://opensource.dell.com/releases/venue/v4.06/ available source for dell venue.
http://forum.xda-developers.com/forumdisplay.php?f=1013 for discussion forum
Special Preparation on the PC with Ubuntu 10.04 i386 installed.
A.1. Dell venue available kernel source have to be build with Froyo Source Tree (Instructed by build instruction) sun-java5-jdk is mandatory requirement.
Install sun-java5-jdk :
Modified file sources.list repository > open gnome terminal >
$ sudo gedit /etc/apt/sources.list > a text editor (gedit) will opened, add the following line on the file
deb http://archive.ubuntu.com/ ubuntu/ hardy main multiverse
deb http://archive.ubuntu.com/ ubuntu/ hardy-updates main muiltiverse
save and close the text editor.
standard ubuntu repository
Code:
###Repository /etc/apt/sources.list This file
deb http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse
### Sources Repository
deb-src http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse
## Canonical Partner
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
##Security
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
ubuntu 10.04 repository with enbale to install sun-java5-jdk
Code:
###Repository /etc/apt/sources.list This file
deb http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse
### Sources Repository
deb-src http://kambing.ui.ac.id/ubuntu/ lucid main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://kambing.ui.ac.id/ubuntu/ lucid-backports main restricted universe multiverse
## Canonical Partner
deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
##Security
deb http://security.ubuntu.com/ubuntu lucid-security main restricted
deb-src http://security.ubuntu.com/ubuntu lucid-security main restricted
deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
## To Get Java 1.5 on ubuntu 10.04
deb http://archive.ubuntu.com/ubuntu hardy main multiverse
deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse
undertanding of ubuntu repository, please read THIS GUIDE
On gnome terminal > execute command
$ sudo apt-get update and wait then >
$ sudo apt-get install sun-java5-jdk > and wait.
if you have other java version installed (I.e sun-java6-jdk) > remove sun-java6-jdk by executing command on terminal >
$ sudo apt-get remove sun-java6-jdk
Note – this action is NOT necessary if you know how to handle multiple java version.
A.2. Install additional development tools in your ubuntu :
open gnome terminal
execute a command >
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils xsltproc
execute >
$ sudo apt-get install file-roller p7zip-full p7zip-rar
A.3. Install appropriate Android USB Driver.
You need to do either automatic way or manual way (No need to do both)
I) “Automatic” way Android USD Driver installation > in this situation you will get also adb (android development bridge). This is a suggested and easiest way.
A xda forum member create a script to install ADB and Android USD Driver almost all today available brands.
Download Knives & Forks installation scripts in this links > http://www.bsus.co.id/android/knives-and-forks-12.01.25.zip
[Note : I uploaded knives-and-fork file due to I can not find original download links]
Instruction to set up Android USD Driver along with ADB and fastboot is in the file, just unpack somewhere in your home folder,. Read instruction.txt file
II)Manual way Android USD Driver installation : open gnome terminal > execute command on terminal >
$ sudo gedit /etc/udev/rules.d/99-android-rules >
a BLANK gedit text editor will be opened > copy paste the following items on the blank text editor :
Code:
# ACER
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666", USER=x, GROUP=x
# ASUS
SUBSYSTEM=="usb", SYSFS{idVendor}=="0b05", MODE="0666", USER=x, GROUP=x
# DELL
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666", USER=x, GROUP=x
# FOXCONN
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666", USER=x, GROUP=x
# GARMIN-ASUS
SUBSYSTEM=="usb", SYSFS{idVendor}=="091e", MODE="0666", USER=x, GROUP=x
# Google
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666", USER=x, GROUP=x
# Hisense
SUBSYSTEM=="usb", SYSFS{idVendor}=="109b", MODE="0666", USER=x, GROUP=x
# HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666", USER=x, GROUP=x
# HUAWEI
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666", USER=x, GROUP=x
# K-TOUCH
SUBSYSTEM=="usb", SYSFS{idVendor}=="24e3", MODE="0666", USER=x, GROUP=x
# KT Tech
SUBSYSTEM=="usb", SYSFS{idVendor}=="2116", MODE="0666", USER=x, GROUP=x
# KYOCERA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0482", MODE="0666", USER=x, GROUP=x
# LENEVO
SUBSYSTEM=="usb", SYSFS{idVendor}=="17ef", MODE="0666", USER=x, GROUP=x
# LG
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666", USER=x, GROUP=x
# MOTOROLA
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666", USER=x, GROUP=x
# NEC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0409", MODE="0666", USER=x, GROUP=x
# NOOK
SUBSYSTEM=="usb", SYSFS{idVendor}=="2080", MODE="0666", USER=x, GROUP=x
# NVIDIA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0955", MODE="0666", USER=x, GROUP=x
# OTGV
SUBSYSTEM=="usb", SYSFS{idVendor}=="2257", MODE="0666", USER=x, GROUP=x
# PANTECH
SUBSYSTEM=="usb", SYSFS{idVendor}=="10a9", MODE="0666", USER=x, GROUP=x
# PEGATRON
SUBSYSTEM=="usb", SYSFS{idVendor}=="1d4d", MODE="0666", USER=x, GROUP=x
# PHILIPS
SUBSYSTEM=="usb", SYSFS{idVendor}=="0471", MODE="0666", USER=x, GROUP=x
# PMC-SIERRA
SUBSYSTEM=="usb", SYSFS{idVendor}=="04da", MODE="0666", USER=x, GROUP=x
# QUALCOMM
SUBSYSTEM=="usb", SYSFS{idVendor}=="05c6", MODE="0666", USER=x, GROUP=x
# SK TELESYS
SUBSYSTEM=="usb", SYSFS{idVendor}=="1f53", MODE="0666", USER=x, GROUP=x
# SAMSUNG
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666", USER=x, GROUP=x
# SHARP
SUBSYSTEM=="usb", SYSFS{idVendor}=="04dd", MODE="0666", USER=x, GROUP=x
# SONY ERICSSON
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666", USER=x, GROUP=x
# TOSHIBA
SUBSYSTEM=="usb", SYSFS{idVendor}=="0930", MODE="0666", USER=x, GROUP=x
# ZTE
SUBSYSTEM=="usb", SYSFS{idVendor}=="19d2", MODE="0666", USER=x, GROUP=x
Note : Please make change to USER=x to USER=Your UserName in ubuntu and GROUP=x with GROUP=Your UserName in ubuntu.
save the file and close.
In this state, since you install Android USB Driver Manually, you need an adb which can be found easily by googling. Or you can download the file from this links >
http://www.bsus.co.id/android/adb+fastboot.zip
Unpack adb+fastboot.zip you will have a folder named adb+fastboot with 2 file inside adb and fastboot > open gnome terminal > go into adb+fastboot folder $ cd adb+fastboot.
At gnome terminal [in folder adb+fastboot] execute command >
$ sudo cp adb /usr/bin
$ sudo chmod 755 /usr/bin/adb
$ sudo cp fastboot /usr/bin/
$ sudo chmod 755 /usr/bin/fastboot
by executing above commands adb and fastboot will be available globally in your ubuntu system.
Now you have a PC ready to use as development tools to build dell-venue android kernel. Let's build “special environment” for Dell Venue development :
Downloading Source : Please visit and read : http://source.android.com/source/downloading.html since this guide is refers to the site.
open gnome terminal
in your home/user folder execute command >
$ mkdir dell-venue > create a folder named dell-venue
$ mkdir bin > create a folder named bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
after completing all download > execute command >
$ chmod a+x ~/bin/repo
$ PATH=~/bin:$PATH > to make application in folder /home/user/bin available globally.
To avoid every time you want to work with repo command have to execute in terminal > $PATH=~/bin:$PATH will be better to put repo file in ~/bin to available globally by modifying a file named .bashrc [DOTbashrc] in your home/user/ folder. If you dont have the file just copying from /etc folder > in gnome terminal execute command >
$ cp /etc/bash.bashrc /home/user/.bashrc > then execute >
$ gedit .bashrc > a gedit text editor will appear > in the line after last line at opened gedit text editor > type export PATH=~/bin:$PATH
.bashrc file before modified
Code:
...
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
.bashrc file with modification
Code:
...
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
export PATH=~/bin:$PATH
Now you have executable application named repo appoint to googlesource git repository.
We need to download all source code special for dell venue with froyo platform from codeaurora website. In the gnome terminal execute command >
$cd ~/dell-venue
$repo init -u git://codeaurora.org/platform/manifest.git -b froyo_almond -m M76XXTSNCJNLYA60401001.xml –repo-url=git://codeaurora.org/tools/repo.git
wait until the downloading complete > and execute command >
$repo sync
wait until the synchronization with server complete. It's depending on your internet connection speed with take about 2-5 hours … LOL
Once the sync completing, your development environment for building dell venue kernel and rom is ready.
Download dell venue source code from links >
http://opensource.dell.com/releases/venue/v4.06/
download all file and save in your dell-venue folder [Just for easy remembering].
open gnome terminal > go to dell-venue folder >
$cd ~/dell-venue
there is a folder named kernel, you can delete this folder or rename the folder due to we will replace this folder with source from dell website. In terminal execute asf :
if you want to delete forever folder named kernel, execute >
$ rm -rf kernel
if you want to rename kernel folder with other name to keep the file available [just in case], execute >
$ mv kernel kernel-old.
Extract dell venue kernel you downloaded in the dell-venue folder
in this stage we have ready environment to build dell venue kernel, the next is to follow build instruction :
1) download source tree of android froyo from Qualcomm (done)
2) replace kernel (done)
3) build kernel by > Please execute
$ . build/envsetup.sh or
$ source build/envstup.sh
$ choosecombo 1 1 msm7201a_surf eng
$ make -j4
-j4 is optional you can try with -j3 if you have 2 processor in the PC (i.e dual core), the clue is processor +1 > core 2 duo = 4 processor thus can use make -j5 and so on..
Code:
ONCE THE BUILD SUCESS in folder working forlder in this example ~/dell-venue/out/target/product/msm7201a_surf will available :
* system.img
* userdata.img
* boot.img
* recovery.img
* ramdisk.img
AND
* update.zip
Flash above file via fastboot with command
$ sudo fastboot -i 0x413c flashall -w OR [flash one by one]
$ sudo fastboot -i 0x413c flash system system.img
$ sudo fastboot -i 0x413c flash userdata userdata.img
$ sudo fastboot -i 0x413c flash boot boot.img
optional
$ sudo fastboot -i 0x413c flash recovery recovery.img
build instruction for other module is in the kernel-build_readme.txt from this link > http://opensource.dell.com/releases/venue/v4.06/ as we see the instruction need to download various "source tree"
kernel > as above
-------------------------------------------------------------------------------
wpa_supplicant
1) download source tree of android froyo from Google.
2) build android by
. build/envsetup.sh
choosecombo (all default option, Product choices are: 2. generic)
make -j4
3) replace external/wpa_supplicant_6
4) mmm external/wpa_supplicant_6/wpa_supplicant
-------------------------------------------------------------------------------
jpeg
1) download source tree of android donut from Google.
2) build android by
. build/envsetup.sh
choosecombo (all default option, Product choices are: 2. generic)
make -j4
3) replace external/jpeg
4) mmm external/jpeg
-------------------------------------------------------------------------------
e2fsprogs
1) download source tree of android donut from Google.
2) build android by
. build/envsetup.sh
choosecombo (all default option, Product choices are: 2. generic)
make -j4
3) replace external/e2fsprogs
4) mmm external/e2fsprogs
-------------------------------------------------------------------------------
webkit
1) download source tree of android donut from Google.
2) build android by
. build/envsetup.sh
choosecombo (all default option, Product choices are: 2. generic)
make -j4
3) replace external/webkit
4) mmm external/webkit
-------------------------------------------------------------------------------
bluez
1) download source tree of android gingerbread from Google.
2) build android by
. build/envsetup.sh
choosecombo (all default option, Product choices are: 2. generic)
make -j4
3) replace external/bluez, and 'export BOARD_HAVE_BLUETOOTH=true'
4) mmm external/bluetooth/glib
mmm external/bluetooth/bluez
-------------------------------------------------------------------------------
Note : to build from gingerbread source tree, we need sun-java6-jdk or higher, then we need to manage the available java in our PC.
my suggestion we build what required sun-java5-jdk first [donut and froyo] after everything running well then install sun-java6-jdk > download source tree for gingerbread and build.
wpa_supplicant > to enable wifi well function to connect access point
bluez > to enable bluetooth well function
jpeg > related to image
webkit > for browser and other component need webkit library
suggestion [for time saving in experiment] build kernel first and test if the kernel alive in the device, then we build other module (wpa_supplicant, bluez, jpeg, webkit for full functionality of device)
I personally need to check my PC with New RAM and will post the build result.
LET'S HAVE FUN

Hey ! Do you have yahoo !///// Can you help me to build kernel step by step "?
MINE IS :
trainhaque_dideple_dayemphe_7593

nguyen_vh said:
Hey ! Do you have yahoo !///// Can you help me to build kernel step by step "?
MINE IS :
trainhaque_dideple_dayemphe_7593
Click to expand...
Click to collapse
my Yahoo : [email protected] but I'm not always online.
I'm New on android kernel compiling matters and also learning how to build rom from source. above guid is step by step. Just follow the step and little googling, you will have complete build. I did, but my pc screaming 4-5 minutes after execute make ... due to RAM damage. I success in building system and have ramdisk.img system.img and userdata.img file. But I need to upload into a server and post here to have help from other user who interesting.

Do you know other ways to build android kernel using android toolchain????
Your guide is possible for me to do because of my slow network speed.

nguyen_vh said:
Do you know other ways to build android kernel using android toolchain????
Your guide is possible for me to do because of my slow network speed.
Click to expand...
Click to collapse
If you wanna to build kernel only and need toolchain for arm-eabi download this ARM EABI TOOLCHAIN extract and install, thus you can use this toolchain to build android kernel or other embeded on arm architecture.

x1123 said:
If you wanna to build kernel only and need toolchain for arm-eabi download this ARM EABI TOOLCHAIN extract and install, thus you can use this toolchain to build android kernel or other embeded on arm architecture.
Click to expand...
Click to collapse
Can you guide me once again?:d

nguyen_vh said:
Can you guide me once again?:d
Click to expand...
Click to collapse
To build kernel only and easy way to get toolchain, better use google prebuilt toolchain which is more reliabe :
download prebuilt > presumed using PC with ubuntu/linux installed. Open terminal and excute :
Code:
- $ git clone https://android.googlesource.com/platform/prebuilt AND press enter
...
after downloading complete. You will have a folder named prebuilt with arm toolchain inside.
- To check the availability of toolchain > on terminal navigate at your home folder (presumed you donwload the prebuilt file at /home/user/prebuilt). toolchain folder located at /home/user/prebuilt/linux-x86/
Code:
$ ls ~/prebuilt/linux-x86/
output is
ccache emulator flex icu-4.4 icu-4.6 sdl swt toolchain
Your toolchain is there
Note :
My suggestion is create a file named armmake at /usr/bin/ to make armmake applicable globally
Code:
$ sudo gedit /usr/bin/armmake
an empty window text editor gedit will come up
copy paste following text to the empty space of text editor
Code:
###
#!/bin/bash
PATH=$PATH:~/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
make ARCH=arm SUBARCH=arm CROSS_COMPILE=arm-eabi- $1
##
##
save and closed
still on terminal > execute the following command
Code:
$ sudo chmod a+x /usr/bin/armmake
$ sudo chown YOUR-USERNAME /usr/bin/armmake
$ sudo chmod 755 /usr/bin/armmake
anytime anywhere you wish to build arm arch kernel just execute >
Code:
$ armmake menuconfig
$ armmake -j5
$ armmake distclean
... and much more
have nice compiling ...

Hi x1123,
I tried to build Venue kernel from v4.06 source (from Dell OpenSource). What I did was:
Unpack the kernel source code, of course, and Initialize properly a build environment
Grab config.gz from /proc/config.gz (on Olleh 408, to make sure it is a valid .config file)
Build
However, I met the following problem:
Code:
drivers/misc/reset/reset.c:4:71: error: ../../../../../android/kernel/arch/arm/mach-msm/proc_comm.h: No such file or directory
drivers/misc/reset/reset.c: In function 'reset_init':
drivers/misc/reset/reset.c:12: error: implicit declaration of function 'msm_proc_comm'
drivers/misc/reset/reset.c:12: error: 'PCOM_RESET_CHIP' undeclared (first use in this function)
drivers/misc/reset/reset.c:12: error: (Each undeclared identifier is reported only once
drivers/misc/reset/reset.c:12: error: for each function it appears in.)
Okay, it seems that there is something wrong with this file of code. I edited it and correct reset.c with this line:
Code:
#include "../../../arch/arm/mach-msm/proc_comm.h"
Now, the build worked like a charm. I created an update.zip with dhd.ko for /system/lib/modules and boot.img, flashed that file to Venue using TheManii's ported CWM recovery, then reboot with the hope everything will be OK
However, when booting the Dell logo is there, and off, and on just like the phone is continuously reboot. I have no chance to know what is actually happening, and just restored my backed up kernel.
Could you please check whether I missed some point there? Here are the code for splitting ramdisk from Olleh 408:
Code:
# ----- unpack_bootimg.sh
#!/bin/bash
perl ./split_bootimg.pl input/boot.img
# move the two extracted files back to ./input/
mv boot.img-kernel input/boot.img-kernel
mv boot.img-ramdisk.gz input/boot.img-ramdisk.gz
# extract RAM disk and everything to this folder
add-ons/7z x -y input/boot.img-ramdisk.gz -o"input/"
add-ons/7z x -y input/boot.img-ramdisk -o"input/boot.img-ramdisk-details/"
# ----- repack_bootimg.sh
#!/bin/bash
add-ons/mkbootfs input/boot.img-ramdisk-details/ | add-ons/gzip > input/boot.img-ramdisk-new.gz
add-ons/mkbootimg --pagesize 2048 --board venue --cmdline "no_console_suspend=1 console=null androidboot.hardware=venue" --kernel input/zImage --ramdisk input/boot.img-ramdisk-new.gz --base 0x20000000 -o output/boot.img
Regards,
Chacona

chacona said:
Hi x1123,
# move the two extracted files back to ./input/
mv boot.img-kernel input/boot.img-kernel
mv boot.img-ramdisk.gz input/boot.img-ramdisk.gz
# extract RAM disk and everything to this folder
add-ons/7z x -y input/boot.img-ramdisk.gz -o"input/"
add-ons/7z x -y input/boot.img-ramdisk -o"input/boot.img-ramdisk-details/"
# ----- repack_bootimg.sh
#!/bin/bash
add-ons/mkbootfs input/boot.img-ramdisk-details/ | add-ons/gzip > input/boot.img-ramdisk-new.gz
add-ons/mkbootimg --pagesize 2048 --board venue --cmdline "no_console_suspend=1 console=null androidboot.hardware=venue" --kernel input/zImage --ramdisk input/boot.img-ramdisk-new.gz --base 0x20000000 -o output/boot.img
[/CODE]
Regards,
Chacona
Click to expand...
Click to collapse
I have been long time did not log in into XDA. I documented kernel compilation for Venue HERE

Related

Question about android rom development

I read that Linux 64bit is needed to make custom GB roms, is it possible to download and run Ubuntu 64bit (being installed to a flashdrive) and it still run on a PC that has vista 32bit? Or would it be more practical to stick to the Ubuntu 32bit and Droid 2.2 roms?
Sent from my ADR6300 using XDA Premium App
hey try installing the 32 bit version then open linux go through setup etc and do all updates download the java sun packages in linux and go to theunlockr.com for how to setup the android rom kitchen also install adb and tools and such from android dev page google it i develop roms but i use a virtual machine of linux ubuntu to do it
6stringandy said:
I read that Linux 64bit is needed to make custom GB roms, is it possible to download and run Ubuntu 64bit (being installed to a flashdrive) and it still run on a PC that has vista 32bit? Or would it be more practical to stick to the Ubuntu 32bit and Droid 2.2 roms?
Sent from my ADR6300 using XDA Premium App
Click to expand...
Click to collapse
I actually have Ubuntu 10.10 32 bit installed and have done a work around to make the computer compile Gingerbread without a 62 bit Linux. I can't look up the files right now cause it's 1:34 am here and I'm on my phone. When I get on a computer I'll tell you how I did it manually. If you Google it you're going to run into things about patch files and whatnot. My way is more time consuming but you actually control what is happening.
Sent from my HTC Hero CDMA using XDA Premium App
If anyone is willing to type me out a step by step, I guess either post it here or pm me.
That would be awesome!!!
killing in the name of...
You can build the GingerBread source on your 32bit system using 32bit Ubuntu image as long as your
processor implements/support 64bit operations. To determine that use the below command:
"grep --color=always -iw lm /proc/cpuinfo"
and as long as the output shows "lm" which is abbreviation for Long Mode in some color (its is red on
my distribution), you are good to build. I would have enlisted the steps of actual building but that doesn't
seem to be your question. Meanwhile, below is the distribution I use to build the GingerBread kernel source:
bash# lsb_release -irc
Distributor ID: Ubuntu
Release: 10.10
Codename: maverick
Hope that helps.
How to compile Gingerbread on a 32 bit environment on Ubuntu 10.10
Ok for setting up Ubuntu 10.10 to compile Gingerbread on a 32 bit environment I'm going to first give you steps to set up your computer to get this thing rolling.
*These instructions are compiled by me from different sources such as source.android.com, Cyanogen Wiki, this blog for the work around.*
This may or may not work for you, but this has worked for me. Enjoy!
1) You need the following:
-Python 2.4 -- 2.7, which you can download from python.org. Or:
Code:
$ sudo add-apt-repository ppa:fkrull/deadsnakes
$ sudo apt-get update
$ sudo apt-get install python2.5
-JDK 6 if you wish to build Gingerbread or newer; JDK 5 for Froyo or older. You can download both from java.sun.com. Or:
Code:
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
-Git 1.5.4 or newer. You can find it at git-scm.com. Or:
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git-core
-(optional) Valgrind, a tool that will help you find memory leaks, stack corruption, array bounds overflows, etc. Download from valgrind.org. Or:
Code:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install valgrind
2) Install required packages.
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
3) Configure your USB.
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
Inside of this blank text file insert:
For all HTC Models:
Code:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
For Nexus One:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e11", MODE="0666", OWNER="<your user name>" #Normal nexus one
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e12", MODE="0666", OWNER="<your user name>" #Debug & Recovery nexus one
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0fff", MODE="0666", OWNER="<your user name>" #Fastboot nexus
For Nexus S:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e21", MODE="0666", OWNER="<your user name>" #Normal nexus s
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e22", MODE="0666", OWNER="<your user name>" #Debug & Recovery nexus s
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4e20", MODE="0666", OWNER="<your user name>" #Fastboot nexus s
For MyTouch 4G:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0ff9", MODE="0666", OWNER="<your user name>" #Normal g2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c96", MODE="0666", OWNER="<your user name>" #Debug & Recovery g2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0fff", MODE="0666", OWNER="<your user name>" #Fastboot g2
For Motorola Droid:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="41db", MODE="0666", OWNER="<your user name>" #Normal, Debug & Recovery droid
4) Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
5) Download the repo:
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
6) Initialize the repo:
Code:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
For master branch:
Code:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
For specific branch [In the (insert branch here) you would put in gingerbread without the parenthesizes:
Code:
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b (insert branch here)
7) When prompted, please configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions.
8) Gather the files:
Code:
$ repo sync
9) Verify and insert public key block:
Code:
$ gpg --import
Code:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----
10) After copying and pasting the public key block press Crtl+D to end the input.
*Now for the work around*
11) In your file manager navigate to:
Code:
WORKING_DIRECTORY/build/core/main.mk
12) On line 75 you will find this:
Code:
ifneq (64,$(findstring 64,$(build_arch)))
Change it to:
Code:
ifneq (i686,$(findstring i686,$(build_arch)))
13) Next navigate to:
Code:
WORKING_DIRECTORY/external/clearsilver
14) Find the cgi folder and locate the Android.mk file. In this file you will find:
Code:
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
Change it to:
Code:
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
15) Repeat step 14 for the Android.mk files in folders cs, java-jni, and util.
16) Compiling:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
17) Issue:
Code:
$ lunch
18) Pick your poison.
19) Now issue:
Code:
$ make
20) Now just cross your fingers and hope it all works out!
21) Issue this command to create a flashable zip:
Code:
$ make otapackage
Or if you want to test on an emulator:
Code:
$ emulator
22) If all went well you can either run your build on an emulator or flash it on a device.
Code:
Please note that you have already selected your build target with lunch, and it is unlikely at best to run on a different target than it was built for.
dastin you are the man!!!!!
thats alot of info dude, but thanks, i really appreciate it!
so heres to long nights LOL
6stringandy said:
dastin you are the man!!!!!
thats alot of info dude, but thanks, i really appreciate it!
so heres to long nights LOL
Click to expand...
Click to collapse
You are very welcome! Glad I could help! Hopefully I didn't make any mistakes! Haha.
Sent from my HTC Hero CDMA using XDA Premium App
Ok so check this out, on my pc I already have the hard drive partitioned, the partitioned part being through recovery for my Windows, which I don't use because I back everything up on dvds once a month. Would I be able to install ubuntu to that partition and use that partition solely for ubuntu and it still not mess with Windows OS. And if so, should I reformat the partition to fat32 or keep it like it is and just wipe the Windows stuff off that partition.
killing in the name of...
6stringandy said:
Ok so check this out, on my pc I already have the hard drive partitioned, the partitioned part being through recovery for my Windows, which I don't use because I back everything up on dvds once a month. Would I be able to install ubuntu to that partition and use that partition solely for ubuntu and it still not mess with Windows OS. And if so, should I reformat the partition to fat32 or keep it like it is and just wipe the Windows stuff off that partition.
killing in the name of...
Click to expand...
Click to collapse
I currently dual boot Windows 7 and Ubuntu 10.10, but I have two hard drives and each hard drive holds the different operating systems. So for your setup I do not know, but I know you can install Ubuntu along with Windows without messing up Windows. I'm gonna have to look that up.
Sent from my HTC Hero CDMA using XDA Premium App
Since I have only a laptop, I can only run one OS at a time. The only way I can put ubuntu on the partition is if I can boot from that partition, and it will only let me boot from the main part of the hd. So, I'm stuck with keeping ubuntu on a 4gb flash drive.
killing in the name of...
6stringandy said:
Since I have only a laptop, I can only run one OS at a time. The only way I can put ubuntu on the partition is if I can boot from that partition, and it will only let me boot from the main part of the hd. So, I'm stuck with keeping ubuntu on a 4gb flash drive.
killing in the name of...
Click to expand...
Click to collapse
Every time you boot off of the USB, your settings do not get saved when you shut down. I would recommend that you buy an external hard drive and install Ubuntu on that, that way you don't lose your settings every time.
Sent from my HTC Hero CDMA using XDA Premium App
Installing to the flash drive pretty much turned it into a mini ext. hd. All my settings do save, surprisingly, I just need WAY more space to work with if I'm gonna dev. roms.
killing in the name of...
And I really can't afford an ext. hd right now. I can barely keep food on the table as it is.
killing in the name of...
Oh yea, and 1 more thing, for some reason my computer wouldn't let me install it to anything but that flash drive, and before I installed to the flash drive I wiped everything in the hard drive partition that I wanted to use, moved all the necessary files over to that partition hard drive and it still wouldn't let me install it to that but it would do just fine for the flash drive.
killing in the name of...
Why not use a Virtual Box?
I tried googling virtual box yesterday to download it, but got a lot of talk about a virtual box. If you have a direct link handy, I'd appreciate it
And maybe some directions on how to use it because I've never used one before.
killing in the name of...
6stringandy said:
Installing to the flash drive pretty much turned it into a mini ext. hd. All my settings do save, surprisingly, I just need WAY more space to work with if I'm gonna dev. roms.
killing in the name of...
Click to expand...
Click to collapse
That's good to hear. When I installed to USB it didn't save. Oh well. Yeah you're gonna need quite a lot of room. The repo is a couple gigs if my memory serves.
Holy crap I can't believe I made it work the way I wanted it to!!!!!
I got it on the partition by going through all kinds if loops!
First, I rewiped the partition (which is 14.6 gig). And in "my computer" its labeled D:\.
Then, I downloaded virtualbox and changed the path to install to D:\.
Then I wiped the flashdrive and put the downloaded package for ubuntu 10.10, and followed all the directions to install it to virtualbox!
Presto! Instant secondary OS from the partition of a hard drive!
Damn I'm good!
killing in the name of...
Virtual box was a great idea vetvito!
And I was about to give up on all this.
Now this thread should be stickied! It's got a lot of very useful info!!!
killing in the name of...

[Tutorial] Compile JB on Ubuntu

NOTICE: I'm beginning to see this tutorial on numerous other sites. I'm fine with it being posted on other sites, as long as I am given credit and have your thread point back to here for the pieces that I have specifically written. I do not condone near verbatim or verbatim copy and pasting of my work or others work without credit. Please give credit where credit is due. Thank you.
07-17-12: I have not, nor shall I ever claim copyright.
To compile Jellybean on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.
You MUST be running a 64 bit version of Ubuntu, 32 bit is not supported.
This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.
READ the entire OP and make sure to properly follow instructions. Don't forget to search the thread as your question may have already been answered.
Please use Pastebin for all errors you run into. Posting a link is much easier than a long list of errors in the thread. Thank you.
You will need 25GB (or more) free to complete a single build, and up to 80GB (or more) for a full set of builds.
1) You need the following:
-JDK 6 if you wish to build Jellybean.
Code:
$ sudo apt-get install openjdk-6-jdk
-Python, which you can download from python.org. Or:
Code:
$ sudo apt-get install python
-Git, which you can find it at git-scm.com. Or:
Code:
$ sudo apt-get install git-core
-Android SDK:
Download the SDK here: http://developer.android.com/sdk/index.html
Extract the SDK and place it in your home directory.
I renamed my SDK to android-sdk to make it easier to navigate to.
Go to your home folder, press Ctrl+H to show hidden files, and open up your .bashrc file.
Add these lines at the bottom of the file:
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
Find your .profile file and add this at the bottom of the file:
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
You have now successfully installed the Android SDK.
To check for updates issue this into your terminal:
Code:
$ android
2) Install required packages.
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
On Ubuntu 10.10:
Code:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
On Ubuntu 11.10:
Code:
$ sudo apt-get install libx11-dev:i386
Building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master.
Code:
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-glx \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
3) Configure your USB.
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
Inside of this blank text file insert:
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"
4) Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
5) Install the repo:
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
6) Initialize the repo:
Code:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
6a) For AOSP:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
For CM:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
6.1) For people who have already done a repo init:
Code:
$ cd WORKING_DIRECTORY
AOSP:
Code:
$ repo init -b android-4.3_r2
$ repo sync
CM:
Code:
$ repo init -b cm-10.1
$ repo sync
7) When prompted, enter your real name and email address.
8) Gather the files:
Code:
$ repo sync
9) Continue onto adding a device
~How To Add A Device To The List~
1) Find the github for your device you wish to add. (For me it is the Samsung Epic 4G Touch [codename d710])
2) Now navigate to the location you are going clone the device tree to:
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir samsung
3) Clone the github device tree from remote to local: (The name after the branch would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [passion], Nexus S [crespo], Motorola Droid [sholes], HTC Incredible [inc], etc.)
Code:
$ git clone git://github.com/CyanogenMod/android_device_samsung_d710.git -b cm-10.1 d710
4) Now navigate into the folder:
Code:
$ cd d710
5) Connect phone to computer and make sure USB debugging is enabled and you have adb set up.
6) Extract Device Proprietary Files:
Code:
$ ./extract-files.sh
Or:
Code:
./proprietary-files.sh
Or: See if other repos have your device's proprietary blobs already (like d710):
Code:
$ ~/WORKING_DIRECTORY
$ mkdir vendor
$ git clone https://github.com/TheMuppets/proprietary_vendor_samsung -b cm-10.2 samsung
6.1) Some devices have other dependencies like a common device repo. The d710 utilizes a galaxys2-common repo for the galaxys2 family of devices. Clone that repo. From inside the d710 folder:
Code:
$ cd ..
$ git clone git://github.com/CyanogenMod/android_device_samsung_galaxys2-common.git -b cm-10.1 galaxys2-common
7) Navigate back to your home directory for building:
Code:
$ cd ~/WORKING_DIRECTORY
8) Prepare To Compile:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
9) Get your list of devices:
Code:
$ lunch
10) Pick your poison.
11) Now compile ('#' being the number of cores in your processor +1):
Code:
$ make -j#
12) Speed up builds using ccache (optional, but highly recommended):
Edit your .bashrc and add this line at the bottom:
Code:
export USE_CCACHE=1
Then issue these commands:
Code:
$ export USE_CCACHE=1
$ export CCACHE_DIR=~/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
The suggested cache size is 50-100G. (This is size in GB)
Or for a flashable zip:
Code:
$ make -j# otapackage
~FIXES~
If you are running into issues such as:
Code:
Which would you like? [full-eng] 5
build/core/product_config.mk:209: *** No matches for product "full_d710". Stop.
Device d710 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for d710 not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:209: *** No matches for product "full_d710". Stop.
** Don't have a product spec for: 'full_d710'
** Do you have the right repo manifest?
What you need to do is to edit your blob to match the PRODUCT_NAME to the file name. For example with mine I have full_d710.mk therefore in this file I need to have PRODUCT_NAME to match it. Whatever error it is looking for you just need to change the PRODUCT_NAME line to match what the error shows.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If you run into issues with Java being the incorrect version here is the fix:
Make sure Java 6 JDK is installed by typing in:
Code:
$ java -version
Open the file main.mk in build/core and delete this line from the java error code section:
Code:
$(error stop)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Change all references in your device repo from frameworks/base to frameworks/native
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Apply this patch for guava: https://github.com/CyanogenMod/andr...mmit/c8b97210aa31c9b80b5fd136d8617ebe4e731e09
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Android 4.1+ needs an insecure kernel to use adb: http://forum.xda-developers.com/showthread.php?t=1687590
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This tutorial is based off this one: http://source.android.com/index.html
Most excellent! Thank you for the quick post after the source drop!
p011uX said:
Most excellent! Thank you for the quick post after the source drop!
Click to expand...
Click to collapse
You're quite welcome!
O.O This is new? I'm at the right time and at the right place...
And what if we don't already have a working device tree? I want to try to get SOMETHING running on my T-Mo GS3, just to see how this all works and maybe contribute to the community.
brfield said:
And what if we don't already have a working device tree? I want to try to get SOMETHING running on my T-Mo GS3, just to see how this all works and maybe contribute to the community.
Click to expand...
Click to collapse
You have a device tree: https://github.com/CyanogenMod/android_device_samsung_i9300
dastin1015 said:
You have a device tree: https://github.com/CyanogenMod/android_device_samsung_i9300
Click to expand...
Click to collapse
That's for the international, I am on the T-Mo version, aka the U.S.A variant.
brfield said:
That's for the international, I am on the T-Mo version, aka the U.S.A variant.
Click to expand...
Click to collapse
It would essentially be modifications of the international version with changed files to be for T-Mobile, but I don't know the specifics because I don't create device repos from scratch.
dastin1015 said:
It would essentially be modifications of the international version with changed files to be for T-Mobile, but I don't know the specifics because I don't create device repos from scratch.
Click to expand...
Click to collapse
Thanks for the help. I'll look into it later.
Can we use the ICS device tree for our device? If this is a stupid question feel free to tell me as I know very little about device trees
Sent by my Robot Butler
Supermaster34 said:
Can we use the ICS device tree for our device? If this is a stupid question feel free to tell me as I know very little about device trees
Sent by my Robot Butler
Click to expand...
Click to collapse
Initially yes, but things will have to be modified to make things work.
私のEVO 3Dから送信される。
Na, the US versions got a S4, and the international s3 has an exynos.
Totally different.
Also, might wanna move some stuff to spoliers, just to make scrolling easier.
And, using android-4.1.1_r1 branch for the init would be better than using jb-dev.
2nd page.. I take it.
E=MC420
cdesai said:
[snip]
And, using android-4.1.1_r1 branch for the init would be better than using jb-dev.
Click to expand...
Click to collapse
JBQ actually recommends building from the tag as opposed to the branch.
Code:
repo init -u https://android.googlesource.com/platform/manifest -b refs/tags/android-4.1.1_r1
repo sync
For people who have already done a repo init:
Code:
cd /path/to/AndroidTree
repo init -b refs/tags/android-4.1.1_r1
repo sync
What Ubuntu Version are you working with?
I heard 10.04 should bring the best results, so I installed that one..
but before I had 12.04 and the experience there is a lot better.. Anyone compiling on 12.04 without problems?
is there anything wrong when just building from master?
I don't believe master is synced with JB...but I very well could be wrong on that.
thanks a lot for this.
wich ubuntu is the best for this?
make otapackage help
So I've tried before to get an AOSP Rom working for my phone (the HTC One XL) but I kept getting this error when I try to do a make otapackage:
make: *** No rule to make target `otapackage'. Stop.
I'm getting that again for JB.
Any help?
---------- Post added at 09:58 AM ---------- Previous post was at 09:57 AM ----------
pnda said:
thanks a lot for this.
wich ubuntu is the best for this?
Click to expand...
Click to collapse
10.04 is still what Google uses in-house so its probably the best.
That's most likely because you did not do:
Code:
source build/envsetup.sh

[HOW-TO]Android source compiling on Ubuntu All variants - Build from Source

First of all, let me clear myself what I am describing here is a simplified version is what Google provided in their Building Android from Source, So I am not taking any copyright issue or anything you are going to do with this guide. U can use this guide and make a ROM. And if you think it's worthwhile to give credit to this thread, give link to this thread. I don't mind if you don't give credit to this thread, atleast you are making better android development.
What is this thread for?​
- This is the thread which will guide you about how to setup environment for building an android from source. Feel free to ask question regarding it. You also can copy paste your error (if it’s short) or attach log cat (weather in .text file or from pastebin). I will try to solve any many errors as I can, but come on I CANNOT solve every errors you ran into.
Requirement​
- Though this thread is noob friendly, for sure you require basic computer knowledge especially regarding Ubuntu setup and basic command prompt.
- You should have install Ubuntu 64-bit version (32-bit version is not supported) to your computer either in virtual machine or as separate Operating System.
- For Ubuntu you require minimum 80 GB of space to compile a single build from source.
- I think I made myself clear about requirements.
- This might not build fully working ROM and you may have to do some changes according to it.
Disclaimers​
I am not responsible for any broken PCs or damaged hard drive or anything unexpected and unfortunate happen to your computer or to your device. You are doing everything by knowing all the risks, so don’t blame on me about anything.
INDEX of Topics I am describing here ​
Post – 1: Setting up build environment
Post – 2: Install and Initialise repo
Post – 3: Setup device for specific build
Post – 4: Device specific vendor changes
Post - 5: Repo optimization and speed up build environment
Post – 6: reserve for future use
Post – 7: reserve for future use.
Now, Let’s start with real stuff …..
{
"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"
}
1A. Install JDK 6​
Code:
sudo apt-get install openjdk-6-jdk
1B. Install python​
Code:
sudo apt-get install python
1C. Install git-core​
Code:
sudo apt-get install git-core
1D. Install android SDK​- Download it: http://developer.android.com/sdk/index.html
- Extract it to your home directory and rename it to android-sdk
- At home press ctrl+h to see hidden files and folder
- Open .bashrc file with text editor
- Add following lines at the end of it
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
- Go to your home folder and open .profile file with text editor
- Add following lines at the bottom of that page
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
- Now you have successfully install android-SDK
- To check its installed correctly, open a new Terminal and type
Code:
android
- It will open a window with android-sdk
1E: Install required packages​- For all Ubuntu
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc
- On Ubuntu 10.10
Code:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
- On Ubuntu 11.10
Code:
sudo apt-get install libx11-dev:i386
- On Ubuntu 12.04 & 12.10
Code:
sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev x11proto-core-dev \
libx11-dev libreadline6-dev libgl1-mesa-glx \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
- On Ubuntu 13.04
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
1F: Configure USB ​- create 51-android.rules
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
- It will open up an empty file names 51-android.rules, copy paste all of following in that file, save it and close
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"
- After that issue following command to make it executable when it is necessary
Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
This is done for the part of setting up building environment.
Now go to next post​
Repository Fetching
2A: Setup repo​
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo
chmod a+x ~/bin/repo
2B: Initialize the repo:​
Code:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
2C: Source specific repo command:​
For AOSP 4.2.2:
Code:
repo init -u [url]https://android.googlesource.com/platform/manifest[/url] -b android-4.2.2_r1.2
For CM Select either cm-10.1/10.2)
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1/cm-10.2
For PAC-man: (Select either cm-10.1/10.2)
Code:
repo init -u git://github.com/PAC-man/android.git -b cm-10.2/cm-10.1
For AOKP: (Select either jb-mr1/jb-mr2)
Code:
repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr2/jb-mr1
For PA: 4.3
Code:
repo init -u [email protected]:ParanoidAndroid/manifest.git -b jb43
For slimroms: 4.2
Code:
repo init -u git://github.com/SlimRoms/platform_manifest.git -b jb4.2
For MoKee OpenSource: 4.2
Code:
repo init -u https://github.com/MoKee/android.git -b jb-mr1_mkt
2D: When prompted, enter your real name and email address.​
2E: Sync Repo from remote to local​
Code:
repo sync
This will take times as it will download all source from github to your computer it depend on your internet connection that how long it will take from anywhere around 30 minutes(If you have 4 mbps download speed) to 30 days(If you have 30kbps download speed).
2F: Continue next to device specific section​​
Xperia X10 specific device tree modifications
So, now you will have to add device tree and dependencies to local repo...
For that you have to copy sources from github to local directory and also device's repository
Let's start with it... (I am describing here how to setup device tree for cm10.1 from CMX10 repositories)
3A: Add Device tree and dependency for cm10.1​
- Go to your working directory and press ctrl+h - You will see .repo directory
- Open .repo and there make a folder named local_manifests
- In .repo/local_manifests right click and make a new document and name it to roomservice.xml and type this :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
#Add hardware from Evervolv sources
<project path="hardware/qcom/display-legacy" name="Evervolv/android_hardware_qcom_display-legacy" revision="jellybean" />
<project path="hardware/qcom/gps-legacy" name="Evervolv/android_hardware_qcom_gps-legacy" revision="jellybean" />
#Add sources from CMX10 repo
<project path="hardware/atheros/wifi/libs" name="CMX10/android_hardware_atheros_wifi_libs" revision="cm-10.1" />
<project path="hardware/sony/DASH" name="CyanogenMod/android_hardware_sony_DASH" revision="cm-10.1" />
<project name="CMX10/android_device_semc_es209ra" path="device/semc/es209ra" revision="cm10.1" />
<project name="CMX10/proprietary_es209ra" path="vendor/semc/es209ra" revision="jellybean" />
<project name="CMX10/android_kernel_semc_es209ra" path="kernel/semc/es209ra" revision="master" />
</manifest>
- After copying this sources you have to sync repo
Code:
cd WORKING_DIRECTORY
repo sync
- You will not need any vendor specific changes for cm10.1 you can directly go to the step 3F for next instruction...
3B: Editing source for slimroms​
- Finish steps of 3A than we have to edit some details in device/semc/es209ra in local directory
- go to device/semc/es209ra and rename cm.mk file to slim.mk
- now open slim.mk file with text editor select all and copy paste following details:
Code:
## Specify phone tech before including full_phone
$(call inherit-product, vendor/slim/config/gsm.mk)
# Inherit some common slimrom stuff.
$(call inherit-product, vendor/slim/config/common_full_phone.mk)
# Inherit device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)
# Boot Animation
TARGET_SCREEN_HEIGHT := 854
TARGET_SCREEN_WIDTH := 480
# Release name
PRODUCT_RELEASE_NAME := X10i
## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := es209ra
PRODUCT_NAME := slim_es209ra
#Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"
- You also have to edit dependency file for slimrom
- Rename cm.dependencies to slim.dependencies, open it with text editor, select all and copy paste following details
Code:
[
{
"repository": "SlimRoms/hardware_libhardware_legacy",
"target_path": "hardware/libhardware_legacy",
"branch": "jellybean" [COLOR="Red"]<<< change branch according to your android version[/COLOR]
}
]
- Now go to the next post for editing vendor source....
3C: Editing source for aokp​
- Find of championswimmer's aokp source tree for aokp manifestations
- He has all working tree for x10..
- If you need any further help for aokp, ask here...
3D: Editing source for MoKee OpenSource​
- Finish steps of 3A than we have to edit some details in device/semc/es209ra in local directory
- go to device/semc/es209ra and rename cm.mk file to mokee.mk
- now open mokee.mk file with text editor select all and copy paste following details:
Code:
## Specify phone tech before including full_phone
$(call inherit-product, vendor/mk/config/gsm.mk)
# Inherit some common MoKee stuff.
$(call inherit-product, vendor/mk/config/common_full_phone.mk)
# Inherit device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)
# Boot Animation
TARGET_SCREEN_HEIGHT := 854
TARGET_SCREEN_WIDTH := 480
# Release name
PRODUCT_RELEASE_NAME := X10i
## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := es209ra
PRODUCT_NAME := mk_es209ra
#Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"
- Not done yet, Now go to next post for vendor specific changes
3E: Editing source for Paranoid Android and PAC-man​
- For Paranoid android you will need some extensive changes in vendor files, just finish step 3A and go to next step for vendor specific changes.
- No any device tree changes needed for PA and PAC-man
- If you want any other custom rom device tree, post github source code here and I will try to edit source for you and add it here
3F: Compilation of Rom​
- Now actual compilation start - Let's start
Code:
cd WORKING_DIRECTORY
. build/envsetup.sh
lunch
- Select your combo for cm it should be cm_es209ra-userdebug write appropriate number and than press Enter
- Than start building
Code:
make -j4
make otapackage -j4
- Here the number after -j indicates core of your PC+1 if you have 3 core pc you can use -j4
- Once you finish all the process you will find flashable zip in your out directory
​
Vendor tree modification for Xperia X10
- All vendor setup will be made to the local directory in your WORKING_DIRECTORY/Vendor
4A: Slimroms Vendor Setup​
- Go to vendor/slim to your local directory
- Here you only need to edit one file and that file is vendorsetup.sh
- Open vendorsetup.sh with text editor and just add this line to the end of the file
Code:
add_lunch_combo slim_es209ra-userdebug
- Save file and you are ready to go with Step 3F
4B: Vendor Setup for MoKee OpenSource​
- Go to vendor/mk to your local directory
- Here you have to edit 1 file and that file is mokee-build-targets
- Open mokee-build-targets with text editor and just add this line to the end of the file
Code:
mk_es209ra-userdebug
- Save file and you are ready to go with Step 3F
4C: Vendor Setup For Paranoid Android​
- Go to vendor/pa to your local directory
- Here you need to edit files in packages, Products, vendorprops and vendorsetup.sh
Step-1
So, First we are going to add file in vendor/pa/packages, so go to vendor/pa/packages
- Here we are adding torch to our package
- Right click and create a blank document and name it as es209ra.mk and copy paste this content.
Code:
# Extra packages
PRODUCT_PACKAGES += \
Torch
Step 2
Now go to vendor/pa/products
- Here we have to add product file for our device
- Open AndroidProducts.mk file with text editor and following lines at the end
Code:
ifeq (pa_es209ra,$(TARGET_PRODUCT))
PRODUCT_MAKEFILES += $(LOCAL_DIR)/pa_es209ra.mk
endif
- Right click and create a blank document and name it as pa_es209ra.mk
- Copy Paste following details in that file
Code:
# Copyright (C) 2012 ParanoidAndroid Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Check for target product
ifeq (pa_es209ra,$(TARGET_PRODUCT))
# Define PA bootanimation size
PARANOID_BOOTANIMATION_NAME := HDPI
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi
# Build paprefs from sources
PREFS_FROM_SOURCE ?= false
# Include ParanoidAndroid common configuration
include vendor/pa/config/pa_common.mk
# Inherit AOSP device configuration
$(call inherit-product, device/semc/es209ra/full_es209ra.mk)
# Product Package Extras
-include vendor/pa/packages/es209ra.mk
# Override AOSP build properties
PRODUCT_NAME := pa_es209ra
PRODUCT_BRAND := semc
PRODUCT_MODEL := es209ra
PRODUCT_MANUFACTURER := Sony Ericsson
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=LT18i BUILD_FINGERPRINT="SEMC/LT18i_1254-2184/LT18i:4.0.4/4.1.B.0.431/UL5_3w:user/release-keys" PRIVATE_BUILD_DESC="LT18i-user 4.0.4 4.1.B.0.431 UL5_3w test-keys"
# Update local_manifest.xml
GET_VENDOR_PROPS := $(shell vendor/pa/tools/getvendorprops.py $(PRODUCT_NAME))
GET_PROJECT_RMS := $(shell vendor/pa/tools/removeprojects.py $(PRODUCT_NAME))
GET_PROJECT_ADDS := $(shell vendor/pa/tools/addprojects.py $(PRODUCT_NAME))
endif
Step 3
- Edit vendosetup.sh file
- Go to vendor/pa and vendorsetup.sh with text editor
- Copy Paste followinfg lines at the end of that file
Code:
add_lunch_combo pa_es209ra-userdebug
- Now you are ready to go with step 3F
4D: Vendor Setup For PAC-Man​
- Here we have to edit files in vendor/pac
- We have to edit files of products and vendorsetup.sh
Step 1
- Go to vendor/pac/products
- Right click and create blank document and name it as pac_es209ra.mk
- Copy paste following content to that file
Code:
# Check for target product
ifeq (pac_es209ra,$(TARGET_PRODUCT))
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_hdpi
# PAC device overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/pac/overlay/pac/hdpi_480x800
$(shell cp -f vendor/pac/prebuilt/common/bootanimation_framework/android-logo-mask_sony-hdpi.png frameworks/base/core/res/assets/images/android-logo-mask.png)
# PAC boot logo
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/common/bootlogo/pac_logo_480x800.rle:root/logo.rle
# Copy bootanimation
PRODUCT_COPY_FILES += \
vendor/pac/prebuilt/hdpi/bootanimation.zip:system/media/bootanimation.zip
# include PAC common configuration
include vendor/pac/config/pac_common.mk
# Inherit CM device configuration
$(call inherit-product, device/semc/es209ra/cm.mk)
PRODUCT_NAME := pac_es209ra
# Update local_manifest.xml
GET_PROJECT_RMS := $(shell vendor/pac/tools/removeprojects.py $(PRODUCT_NAME))
GET_PROJECT_ADDS := $(shell vendor/pac/tools/addprojects.py $(PRODUCT_NAME))
Step 2
- Edit vendosetup.sh file
- Go to vendor/pa and vendorsetup.sh with text editor
- Copy Paste followinfg lines at the end of that file
Code:
# Xperia 2010
add_lunch_combo pac_es209ra-userdebug
- Now you are ready to go with step 3F​
Build optimization for all device
Speed up builds using ccache (optional, but highly recommended)​
- Edit your .bashrc and add this line at the bottom:
Code:
export USE_CCACHE=1
- Then issue these commands from terminal
Code:
$ export USE_CCACHE=1
$ export CCACHE_DIR=~/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
- The suggested cache size is 50-100G. (This is size in GB)
- This will decrease time of compiling and improve speed.​
post - 6 i am in need of this buddy dont post
Post 7 - this one is mine too u can have your post now
This is awesome!!!
sent from a SHOCKINGLY buttery smooth TOUCHWIZ rom.
z28tovette said:
This is awesome!!!
sent from a SHOCKINGLY buttery smooth TOUCHWIZ rom.
Click to expand...
Click to collapse
just helping out for development here
Thanks my friend
Envoyé depuis mon Xperia X10
thanks for this wonderful tut
and will u release any awesome rom like what u've done before?:victory:
great guide thank you very much and maybe u can make a kernel making guide too
Leo said:
thanks for this wonderful tut
and will u release any awesome rom like what u've done before?:victory:
Click to expand...
Click to collapse
I wish, But as i don't have device, I don't want to make any blind build which might brick some tester's device...
If I get device, sure I will release one...
Buda1996 said:
great guide thank you very much and maybe u can make a kernel making guide too
Click to expand...
Click to collapse
I have to collect some tools for x10 kernel making like ftf tools and stuff and on top of it, I don't have device
So I will see how it goes
Such a nice share/work ...and very useful THANKS a lot for that bro =)
I had error "Cannot fetch galaxyfreak/android_frameworks_native"
Init curl commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

[Tutorial] Compile Kit-Kat on Ubuntu

NOTICE: I'm fine with this tutorial being posted on other sites, as long as I am given credit and have your thread point back to here for the pieces that I have specifically written. I do not condone near verbatim or verbatim copy and pasting of my work or others work without credit. Please give credit where credit is due. Thank you.
07-17-12: I have not, nor shall I ever claim copyright.
To compile Kit-Kat on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.
You MUST be running a 64 bit version of Ubuntu, 32 bit is not supported.
This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.
READ the entire OP and make sure to properly follow instructions. Don't forget to search the thread as your question may have already been answered.
Please use Pastebin for all errors you run into. Posting a link is much easier than a long list of errors in the thread. Thank you.
You will need 25GB (or more) free to complete a single build, and up to 80GB (or more) for a full set of builds.
1) You need the following:
-JDK 6 if you wish to build Kit-Kat.
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update && sudo apt-get install oracle-java6-installer
-Python, which you can download from python.org. Or:
Code:
$ sudo apt-get install python
-Git, which you can find it at git-scm.com. Or:
Code:
$ sudo apt-get install git-core
-Android SDK:
Download the SDK here: http://developer.android.com/sdk/index.html
Extract the SDK and place it in your home directory.
I renamed my SDK to android-sdk to make it easier to navigate to.
Go to your home folder, press Ctrl+H to show hidden files, and open up your .bashrc file.
Add these lines at the bottom of the file:
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
Find your .profile file and add this at the bottom of the file:
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
You have now successfully installed the Android SDK.
To check for updates issue this into your terminal:
Code:
$ android
2) Installing required packages (Ubuntu 13.04+)
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev lib32z1 \
lib32ncurses5 lib32bz2-1.0 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
lib32z1-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 \
lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev \
libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev \
lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python lzop
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Installing required packages (Ubuntu 12.04)
Code:
$ sudo apt-get install git 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 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Installing required packages (Ubuntu 10.04 -- 11.10)
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
On Ubuntu 10.10:
Code:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
On Ubuntu 11.10:
Code:
$ sudo apt-get install libx11-dev:i386
3) Configure your USB.
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
Inside of this blank text file insert:
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"
4) Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
4a) [OPTIONAL] Setting up ccache
You can optionally tell the build to use the ccache compilation tool. Ccache acts as a compiler cache that can be used to speed-up rebuilds. This works very well if you do "make clean" often, or if you frequently switch between different build products.
Put the following in your .bashrc or equivalent.
Code:
export USE_CCACHE=1
By default the cache will be stored in ~/.ccache. If your home directory is on NFS or some other non-local filesystem, you will want to specify the directory in your .bashrc as well.
Code:
export CCACHE_DIR=<path-to-your-cache-directory>
The suggested cache size is 50-100GB. You will need to run the following command once you have downloaded the source code:
Code:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
This setting is stored in the CCACHE_DIR and is persistent.
5) Install the repo:
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
6) Initialize the repo:
Code:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
6a) For AOSP:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r2
6.1) For people who have already done a repo init:
Code:
$ cd WORKING_DIRECTORY
AOSP:
Code:
$ repo init -b android-4.4.4_r2
$ repo sync
7) When prompted, enter your real name and email address.
8) Gather the files:
Code:
$ repo sync
9) Continue onto adding a device
~How To Add A Device To The List~
1) Find the github for your device you wish to add. (For me it is the Asus Nexus 7 (2013) [codename: flo]
2) Now navigate to the location you are going clone the device tree to:
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir asus
3) Clone the github device tree from remote to local: (The name after the branch would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [passion], Nexus S [crespo], Motorola Droid [sholes], HTC Incredible [inc], etc.)
Code:
$ git clone https://android.googlesource.com/device/asus/flo -b kitkat-dev flo
4) Now navigate into the folder:
Code:
$ cd flo
5) Connect phone to computer and make sure USB debugging is enabled and you have adb set up.
6) Extract Device Proprietary Files (if extract script is present):
Code:
$ ./extract-files.sh
Or:
Code:
./proprietary-files.sh
Or: See use your device's provided proprietary blobs (like flo): Download the binaries from: https://developers.google.com/android/nexus/drivers
Extract the blobs and place them in the directory from the root of your working directory (ex. vendor/asus/flo): vendor/MANUFACTUROR/CODENAME
7) Navigate back to your home directory for building:
Code:
$ cd ~/WORKING_DIRECTORY
8) Prepare To Compile:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
9) Get your list of devices:
Code:
$ lunch
10) Pick your poison.
11) Now compile ('#' being the number of cores in your processor +1):
Code:
$ make -j#
Or for a flashable zip:
Code:
$ make -j# otapackage
~FIXES~
If you are running into issues such as:
Code:
Which would you like? [full-eng] 5
build/core/product_config.mk:209: *** No matches for product "full_d710". Stop.
Device d710 not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for d710 not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
build/core/product_config.mk:209: *** No matches for product "full_d710". Stop.
** Don't have a product spec for: 'full_d710'
** Do you have the right repo manifest?
What you need to do is to edit your blob to match the PRODUCT_NAME to the file name. For example with mine I have full_d710.mk therefore in this file I need to have PRODUCT_NAME to match it. Whatever error it is looking for you just need to change the PRODUCT_NAME line to match what the error shows.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
If you run into issues with Java being the incorrect version here is the fix:
Make sure Java 6 JDK is installed by typing in:
Code:
$ java -version
Open the file main.mk in build/core and delete this line from the java error code section:
Code:
$(error stop)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Android 4.1+ needs an insecure kernel to use adb: http://forum.xda-developers.com/showthread.php?t=1687590
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This tutorial is based off this one: http://source.android.com/index.html
First
Great tut bro...thanks
And it returns
Team Nocturnal Developer
Nice d, well written for sure
Sent from my EVO using Tapatalk
You help me so much with this completly guide, did you think that work good with Zorin OS? I wanna try this distro based on Ubuntu.
So I'm a straight up beginner here, so bear with me...
I followed your guide to get everything setup, and I've learned so much already! I've gotten to the point of running the make command for my device, but I'm getting stuck on an error. I've tried to search this up as best as I could before posting here, but I'm at a loss lol.
make: *** No rule to make target `out/target/product/vs980/kernel', needed by `out/target/product/vs980/boot.img'. Stop.
make: *** Waiting for unfinished jobs....
Click to expand...
Click to collapse
Obviously this has to do with the kernel, but I believe I have all my files in the correct place. Maybe someone can point me in the right direction?
WARNING!!! I am about to ask 2 stupid and nooby questions:
1.This tutorial is for building a KIt Kat ROM right?
2.After repo sync I am stuck. I have an HTC Flyer and it's pretty much abandoned by HTC. Very few devs are working on it. So my question is are these the right files i need to clone?
https://github.com/FlyerICS/android_device_htc_flyer
Thank you for your time? And sorry if these are stupid question but I am still learning
I'm syncing 4.4-r1(kitkat) sources from aosp after the sync tree is 100% complete i got this error.
Syncing work tree: 100% (407/407), done.
error: device/google/accessory/demokit/: device/google/accessory/demokit checkout f414529d6ff582a1d3f739710fb668587dfb4461
[email protected]:~/WORKING_DIRECTORY$
Click to expand...
Click to collapse
any idea what should i do ??
And for Mako use proprietary binaries from your mako extract and in lunch menu select 8 it will build for KitKat for mako.
all features working and initial screen captures @ plus.google.com/u/0/109701627813546607713/posts
---------- Post added at 09:43 AM ---------- Previous post was at 09:39 AM ----------
aviz1911 said:
I'm syncing 4.4-r1(kitkat) sources from aosp after the sync tree is 100% complete i got this error.
any idea what should i do ??
Click to expand...
Click to collapse
i was also getting some error, now able to recall, but i suggest go ahead and build. that will be ultimate test.
Also instead of just "repo sync " to save time use "repo sync -c -d"
~Amit
hello.i have a ubuntu 13.10,but your guide is only for ubuntu 12 and below,so what is the command to install required package?
try this :
http://www.scottsroms.com/showthrea...vices-Build-AOSP-from-Scratch-on-Ubuntu-13-10
hisname said:
hello.i have a ubuntu 13.10,but your guide is only for ubuntu 12 and below,so what is the command to install required package?
Click to expand...
Click to collapse
Thanks. Nice guide..
Hi everybody!!
A question for all developpers:
Why since android 4.1, i cannot compile correctly executable files (like adb, adbd etc etc)? (4.0.4 no problem)
I have found that executable.mk in build/core folder is in cause:
Code:
ifeq ($(LOCAL_FORCE_STATIC_EXECUTABLE),true)
$(linked_module): $(my_target_crtbegin_static_o) $(all_objects) $(all_libraries) $(my_target_crtend_o)
$(transform-o-to-static-executable)
else
$(linked_module): $(my_target_crtbegin_dynamic_o) $(all_objects) $(all_libraries) $(my_target_crtend_o)
$(transform-o-to-executable)
endif
When LOCAL_FORCE_STATIC_EXECUTABLE is include in Android.mk of executable, the file in correct in output, but if the option is not present, my files are compiled like Share Lib.......?
What's the cause of this problem?
-toolchain?
-version of ubuntu (10.04 updated)?
-version of gcc/gxx from my computer (don't know if it uses any part of it)?
-if y try to compile it with another toolchain, will my files be correct in output?
Maybe Dastin can help me?
Many thanks for your help.
Bizcuite
Hello, I made a build for mako today... Bootloop...
I think these lines of the log are the issue
Code:
F/libEGL ( 804): couldn't find an OpenGL ES implementation
F/libc ( 804): Fatal signal 6 (SIGABRT) at 0x00000324 (code=-6), thread 804
I haven't touched the original code. Built as is
Full logcat has been attached.
Thank you for your help.
EDIIT: Lol, I was missing binary files it turns out.
hi, can someone help me with this error
Code:
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/device_telephony_info.cc
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/hash_set.cc
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:10:26: error: extra tokens at end of #ifndef directive [-Werror]
/root/sagaCM/cm11/target/product/saga/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:
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:24:20: error: expected initializer before '<' token
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:26:17: error: expected initializer before '<' token
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected '{' before '<' token
/root/sagaCM/cm11/target/product/saga/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: *** [/root/sagaCM/cm11/target/product/saga/obj/STATIC_LIBRARIES/content_content_common_gyp_intermediates/content/common/android/hash_set.o] Error 1
thanks
kylon said:
hi, can someone help me with this error
Code:
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/device_telephony_info.cc
target thumb C++: content_content_common_gyp <= external/chromium_org/content/common/android/hash_set.cc
In file included from external/chromium_org/content/common/android/hash_set.cc:5:0:
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:10:26: error: extra tokens at end of #ifndef directive [-Werror]
/root/sagaCM/cm11/target/product/saga/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:
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:24:20: error: expected initializer before '<' token
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:26:17: error: expected initializer before '<' token
/root/sagaCM/cm11/target/product/saga/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h:29:22: error: expected '{' before '<' token
/root/sagaCM/cm11/target/product/saga/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: *** [/root/sagaCM/cm11/target/product/saga/obj/STATIC_LIBRARIES/content_content_common_gyp_intermediates/content/common/android/hash_set.o] Error 1
thanks
Click to expand...
Click to collapse
You're using jdk 7, switch to 6
I m using oracle j7 and it s working with cm10x.
Why cm11 would need an older version
Inviato dal mio Desire S utilizzando Tapatalk
kylon said:
I m using oracle j7 and it s working with cm10x.
Why cm11 would need an older version
Inviato dal mio Desire S utilizzando Tapatalk
Click to expand...
Click to collapse
Because the jni header files, based on generic java classes, are messed with jdk 7, you for sure can alter the python file instead which generates them, but most roms use aosp of chromium and no fork, so there isn't really anything you can push this change to (except you do your own fork).
Also at every rom jdk 6 is recommended, jdk 7 fixes are just included as nice to have, when the whole thing got stable enough.
dastin1015 said:
6a) For AOSP:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1
Click to expand...
Click to collapse
When doing this step I get this error:
Code:
[B]fatal: unable to auto-detect email address (got '[email protected](none)')[/B]
How to fix?
You need to use the git config command to set your name and email. Look up the syntax, I'm not at home just now.
Sent from my SAMSUNG-SGH-I717 using XDA Premium 4 mobile app

[Tutorial] Compile Lollipop on Ubuntu

NOTICE: I'm fine with this tutorial being posted on other sites, as long as I am given credit and have your thread point back to here for the pieces that I have specifically written. I do not condone near verbatim or verbatim copy and pasting of my work or others work without credit. Please give credit where credit is due. Thank you.
07-17-12: I have not, nor shall I ever claim copyright.
To compile Lollipop on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.
You MUST be running a 64 bit version of Ubuntu, 32 bit is not supported.
This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.
READ the entire OP and make sure to properly follow instructions. Don't forget to search the thread as your question may have already been answered.
Please use Pastebin for all errors you run into. Posting a link is much easier than a long list of errors in the thread. Thank you.
Source is roughly 8.5GB in size and you will need over 30GB (or more) free to complete a single build, and up to 100GB (or more) for a full set of builds.
1) You need the following:
-JDK 7 if you wish to build Lollipop.
Code:
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk
Optionally, update the default Java version by running:
Code:
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
If you encounter version errors for Java, then it could be:
Failing to install the correct JDK
Another JDK previously installed appearing in your path. Prepend the correct JDK to the beginning of your PATH or remove the problematic JDK
-Python, which you can download from python.org. Or:
Code:
$ sudo apt-get install python
-Git, which you can find it at git-scm.com. Or:
Code:
$ sudo apt-get install git-core
-Android SDK:
Download the SDK here: http://developer.android.com/sdk/index.html
Extract the SDK and place it in your home directory.
I renamed my SDK to android-sdk to make it easier to navigate to.
Go to your home folder, press Ctrl+H to show hidden files, and open up your .bashrc file.
Add these lines at the bottom of the file:
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
Find your .profile file and add this at the bottom of the file:
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
You have now successfully installed the Android SDK.
To check for updates issue this into your terminal:
Code:
$ android
2) Installing required packages (Ubuntu 13.04+)
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev lib32z1 \
lib32ncurses5 lib32bz2-1.0 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
lib32z1-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 \
lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev \
libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev \
lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python lzop
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Installing required packages (Ubuntu 12.04)
Code:
$ sudo apt-get install git 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 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Installing required packages (Ubuntu 10.04 -- 11.10)
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc
On Ubuntu 10.10:
Code:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
On Ubuntu 11.10:
Code:
$ sudo apt-get install libx11-dev:i386
3) Configure your USB.
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
Inside of this blank text file insert:
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"
4) Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
4a) [OPTIONAL] Setting up ccache
You can optionally tell the build to use the ccache compilation tool. Ccache acts as a compiler cache that can be used to speed-up rebuilds. This works very well if you do "make clean" often, or if you frequently switch between different build products.
Put the following in your .bashrc or equivalent.
Code:
export USE_CCACHE=1
By default the cache will be stored in ~/.ccache. If your home directory is on NFS or some other non-local filesystem, you will want to specify the directory in your .bashrc as well.
Code:
export CCACHE_DIR=<path-to-your-cache-directory>
The suggested cache size is 50-100GB. You will need to run the following command once you have downloaded the source code:
Code:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
This setting is stored in the CCACHE_DIR and is persistent.
5) Install the repo:
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
6) Initialize the repo:
Code:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
6a) For AOSP:
Code:
$ repo init -u https://android.googlesource.com/platform/manifest.git -b android-5.1.1_r13
6.1) For people who have already done a repo init:
Code:
$ cd WORKING_DIRECTORY
AOSP:
Code:
$ repo init -b android-5.1.1_r13
$ repo sync
7) When prompted, enter your real name and email address.
8) Gather the files:
Code:
$ repo sync
9) Continue onto adding a device
~How To Add A Device To The List~
1) Find the github for your device you wish to add. (For me it is the Asus Nexus 7 (2013) [codename: flo]
2) Now navigate to the location you are going clone the device tree to:
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir asus
3) Clone the github device tree from remote to local: (The name after the branch would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [passion], Nexus S [crespo], Motorola Droid [sholes], HTC Incredible [inc], etc.)
Code:
$ git clone https://android.googlesource.com/device/asus/flo.git -b lollipop-dev flo
4) Now navigate into the folder:
Code:
$ cd flo
5) Connect phone to computer and make sure USB debugging is enabled and you have adb set up.
6) Extract Device Proprietary Files (if extract script is present):
Code:
$ ./extract-files.sh
Or:
Code:
./proprietary-files.sh
Or: See use your device's provided proprietary blobs (like flo): Download the binaries from: https://developers.google.com/android/nexus/drivers
Extract the blobs and place them in the directory from the root of your working directory (ex. vendor/asus/flo): vendor/MANUFACTUROR/CODENAME
7) Navigate back to your home directory for building:
Code:
$ cd ~/WORKING_DIRECTORY
8) Prepare To Compile:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
9) Get your list of devices:
Code:
$ lunch
10) Pick your poison.
11) Now compile ('#' being the number of cores in your processor +1):
Code:
$ make -j#
Or for a flashable zip:
Code:
$ make -j# otapackage
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
This tutorial is based off this one: http://source.android.com/source/initializing.html
Is this tutorial only for officially supported devices that are/will be running 'lollipop'? Will I be able to build lollipop on other device from this source? The thing is that I need to encode the device so it is compatible with 'lollipop'. I'm not really sure how it's done but if it's possible can you explain how or direct me in the right direction? Thanks.
Very nice guide.
Please I need serious help
I am trying to build lollipop for oneplus one.
I have followed multiple guides to get this correct.
However I am stuck at [email protected]:~/bin/WORKING_DIRECTORY$ make -j16
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0
TARGET_PRODUCT=aosp_bacon
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.16.0-25-generic-x86_64-with-Ubuntu-14.10-utopic
HOST_BUILD_TYPE=release
BUILD_ID=LRX21M
OUT_DIR=out
============================================
Checking build tools versions...
build/core/dex_preopt.mk:47: *** target pattern contains no '%'. Stop.
However if i use "sudo make -j 16"
I get this
Which would you like? [aosp_arm-eng] 15
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0
TARGET_PRODUCT=aosp_bacon
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.16.0-25-generic-x86_64-with-Ubuntu-14.10-utopic
HOST_BUILD_TYPE=release
BUILD_ID=LRX21M
OUT_DIR=out
============================================
[email protected]:~/bin/WORKING_DIRECTORY$ sudo make -j16
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.16.0-25-generic-x86_64-with-Ubuntu-14.10-utopic
HOST_BUILD_TYPE=release
BUILD_ID=LRX21M
OUT_DIR=out
============================================
Checking build tools versions...
What happens is the target product and everything changes so the output is a generic build.
Please help
Thanks
navendugoyal said:
Very nice guide.
Please I need serious help
I am trying to build lollipop for oneplus one.
Click to expand...
Click to collapse
You have to have a device tree for your product. You must then select that device and build type using 'lunch'.
Device tree is there
GROGG88 said:
You have to have a device tree for your product. You must then select that device and build type using 'lunch'.
Click to expand...
Click to collapse
Thanks for replying buddy, highly appreciate it.
Device tree is present.
Infact I have tried multiple device tree setups - but get the same error everytime
I have tried
CM
Oneplusaosp
TheUnas
but the same error
Also why after the sudo make command it should be changing the target product to a generic ?
screenshots - device tree
here is the device tree screenshot
navendugoyal said:
Thanks for replying buddy, highly appreciate it.
Device tree is present.
Infact I have tried multiple device tree setups - but get the same error everytime
I have tried
CM
Oneplusaosp
TheUnas
but the same error
Also why after the sudo make command it should be changing the target product to a generic ?
Click to expand...
Click to collapse
I do not have a solid answer regarding why 'sudo' would change your target. That truly is odd, but at the same time there is no reason why you should need sudo since your build did not fail due to permissions.
I'm curious... Where exactly did you fetch your device tree from? I do not see it in googlesource.com. Seeing as you're building for the OnePlusOne, I must ask if you're attempting to build AOSP or CM?
GROGG88 said:
I do not have a solid answer regarding why 'sudo' would change your target. That truly is odd, but at the same time there is no reason why you should need sudo since your build did not fail due to permissions.
I'm curious... Where exactly did you fetch your device tree from? I do not see it in googlesource.com. Seeing as you're building for the OnePlusOne, I must ask if you're attempting to build AOSP or CM?
Click to expand...
Click to collapse
Here are the 2 places I have tried my device tree form
https://github.com/OnePlusAosp/android_device_oneplus_bacon.git
Also
https://github.com/TheUnas - they have forked lot of things for OneplusOne lollipop.
great guide i'am doing mt first build fingures crossed it works thanks again buddy
navendugoyal said:
Here are the 2 places I have tried my device tree form
https://github.com/OnePlusAosp/android_device_oneplus_bacon.git
Also
https://github.com/TheUnas - they have forked lot of things for OneplusOne lollipop.
Click to expand...
Click to collapse
Do you have a copy of '../device/oppo/common/common.mk' ?
I'm trying to duplicate your condition against my source, but I need to know exactly what you've added to your tree. So far I'm coming up with this:
GROGG88 said:
Do you have a copy of '../device/oppo/common/common.mk' ?
I'm trying to duplicate your condition against my source, but I need to know exactly what you've added to your tree. So far I'm coming up with this:
Click to expand...
Click to collapse
Yes I have
See the screenshot
You can get them from here
https://github.com/TheUnas
No File or Directory
Ok, I'm building Android 5.0 Lollipop Aosp Tag= Android-5.0.0_r2
The problem is that some files cannot be found normally and need some editing
For example:
device/htc/leo/custom_libraries/libsensors/AkmSensor.cpp:25:27: fatal error: linux/akm8973.h: No such file or directory
The file "akm8973.h" can be found in "kernel/htc/leo/include/linux" But, nope, the compiler can't find it
One workaround is that I edit it to find the file like this
Before:
#include <linux/akm8973.h>
to
#include <akm8973.h>
and then put the file in the same dir as the file asking for it "device/htc/leo/custom_libraries/libsensors/"
Please, help, I know this is not normal and if there is a fix, please tell me
I have an oppo find 7
folder in the device there is not oppo/find7 so I created me, this folder now is empty, for proprietary file I can use the script "extract-files.sh" present in the source CM11 ? I have an oppo find 7
EDIT: i take device tree and proprietary files (already extracted to a compilation of a cyanogenmod) from cyanogenmod's github but that device tree is for android kitkat, not for lollipop, then i have this error:
http://pastebin.com/HhNGmFS2
after this problem i try this: i take the product_config.mk from cyanogen source but the problem is still there.
sorry for my bad english
Hey, trying to build L for HTC One M7,
this is my rom source : https://github.com/disco2
and this is my device tree : https://github.com/lollipop-m7
After selecting my device on lunch, it says
Code:
build/core/envsetup.mk:157: *** No config file found for TARGET_DEVICE m7. Stop.
** Don't have a product spec for: 'aosp_m7'
** Do you have the right repo manifest?
I have no idea why I get this error, there is no missing files or inaccurate names, but I keep getting this. Any idea?
YudmudTR said:
Hey, trying to build L for HTC One M7,
this is my rom source : https://github.com/disco2
and this is my device tree : https://github.com/lollipop-m7
After selecting my device on lunch, it says
Code:
build/core/envsetup.mk:157: *** No config file found for TARGET_DEVICE m7. Stop.
** Don't have a product spec for: 'aosp_m7'
** Do you have the right repo manifest?
I have no idea why I get this error, there is no missing files or inaccurate names, but I keep getting this. Any idea?
Click to expand...
Click to collapse
I have the same problem. Searching the internet I realized that you have to edit the manifest file . Go to the root of the repo and hit ctrl + h , then you'll see the folder .repo, inside there is manifest file to edit. You must add lines to your device by putting the directory of vendors and devices belonging to your phone ( if you see how add the other devices you'll understand better)
Although I added my device to Maifest I can not compile the AOSP for more error. I am currently compiling the generic and then virtualize just to try Lollipop
Sent from my Find7 using XDA Free mobile app
Any help please??
xperiafan13 said:
Click to expand...
Click to collapse
Please use pastebin for the errors and give a brief output to see the whole code of error...
From given picture i can say that it is showing an error in file_contexts, but I can't say it for sure until looking at whole code of error...
thanks
Trying to build for Xperia L taoshan
Hi there,
I was wondering whether i would be able to build a lollipop build for Xperia L device which is not included in official device list. If i am to develop then which code should i consider as a base to start..... Some steps for the same would be really appreciated...
Looks like I just need to turn off Java check right?
Code:
Checking build tools versions...
************************************************************
You asked for an OpenJDK 7 build but your version is
java version "1.7.0_72" Java(TM) SE Runtime Environment (build 1.7.0_72-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.72-b04, mixed mode).
************************************************************
I put "$(error stop)" into a comment.
I am trying to build 5.0.0_r5 for htc bravo and no matter what I do, I get this error:
Code:
hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp: In function 'android_audio_legacy::AudioHardwareInterface* android_audio_legacy::createAudioHardware()':
hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp:2020:30: error: cannot allocate an object of abstract type 'android_audio_legacy::AudioHardware'
return new AudioHardware();
^
In file included from hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp:37:0:
hardware/qcom/audio-legacy/qsd8k/AudioHardware.h:165:7: note: because the following virtual functions are pure within 'android_audio_legacy::AudioHardware':
class AudioHardware : public AudioHardwareBase
^
In file included from hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareBase.h:20:0,
from hardware/qcom/audio-legacy/qsd8k/AudioHardware.h:26,
from hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp:37:
hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h:255:29: note: virtual android_audio_legacy::AudioStreamOut* android_audio_legacy::AudioHardwareInterface::openOutputStreamWithFlags(uint32_t, audio_output_flags_t, int*, uint32_t*, uint32_t*, android::status_t*)
virtual AudioStreamOut* openOutputStreamWithFlags(
^
hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp:2021:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1plus: some warnings being treated as errors
Only commenting out 'createAudioHardware' allows to proceed with the build:
hardware/qcom/audio-legacy/qsd8k/AudioHardware.cpp
Code:
extern "C" AudioHardwareInterface* createAudioHardware(void) {
return new AudioHardware();
}
hardware/libhardware_legacy/audio/audio_hw_hal.cpp
Code:
ladev->hwif = createAudioHardware();
Here is my manifest.
Anyone else with this?

Categories

Resources