[GUIDE]Compile AOKP and CyanogenMod for HTC Sensation on Ubuntu (ONLY 64-bit) - HTC Sensation

First of all, BIG BIG thanks to SparksCo for his guide for compiling CM7, I used his guide as a base for this
Credits:
CyanogenMod for giving their source to everyone
SparksCo for teaching me what I know
Vorbeth for releasing the original source for Sensation
Elelinux for his hardwork on adding things to the device tree
I'm making this guide for those who don't want to wait for a new CyanogenMod or AOKP build and want to build it themselves.
Working on both ubuntu 11.10 and 12.04
NOTE: DEPENDING ON YOUR COMPUTER'S HARDWARE, COMPILING TIME WILL BE DIFFERENT
If you have a MAC OSX, I do not have a guide for that as I don't have one.
Be aware for which part is for AOKP and CyanogenMod
I have put "AOKP" and "CyanogenMod" Labels to help
EVERYTHING THAT IS IN A BOX, OPEN TERMINAL AND ENTER THE COMMAND IN THAT SECTION
Guide Requirements:
- Computer
- Common Sense
- Some Linux Experience
- Ubuntu 64-bit Installed
- At least 4GB of ram with a dual core processor.
Required Software to Install:
For 32-bit and 64-bit System
Code:
sudo apt-get install git-core gnupg flex bison python rar original-awk gawk p7zip-full gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool xsltproc
For 64-bit System
Code:
sudo apt-get install g++-multilib lib32z1-dev ia32-libs lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib g++-multilib
Other Required Software:
Code:
sudo apt-get install libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils
Link libx11
Code:
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
You must have a 1.6.x to compile on the ics branch of cyanogenmod.
MUST Install Java 1.6 (NOT Java 1.7):
1a. Download Java JDK for Linux 64-bit from Java site
Code:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Be sure to download (## will change if there's an update):
Code:
jdk-6u##-linux-x64.bin
1b. Move the downloaded Java JDK into your home directory
1c. Be sure to completely remove ALL OTHER JAVA
Don't worry if some things are asked to be installed just accept!
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
1d. Copy Java JDK into /opt/java/64
Code:
sudo mkdir -p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su -
cd /opt/java/64
chmod +x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit
1e. Add the needed PATH to .bashrc
Code:
gedit ~/.bashrc
Add these lines to .bashrc (Better to be near the top):
Code:
# Java PATHs
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin
Setting Up Android SDK
2a. Download Android SDK at http://developer.android.com/sdk/index.html
2b. Extract it to your home folder [Ex. ~/android/sdk]
2c. Add Android SDK Path
gedit ~/.bashrc
Enter the Following:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools
2d. Add Extra Path For Device:
sudo gedit /etc/udev/rules.d/99-android.rules (Text Editor will open up)
Enter this in it:
Code:
#Acer
SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
#ASUS
SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
#Dell
SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
#Foxconn
SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
#Garmin-Asus
SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
#Google
SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
#HTC
SUBSYSTEM==usb, SYSFS{idVendor}==0bb4, MODE=0666
#Huawei
SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
#K-Touch
SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
#KT Tech
SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
#Kyocera
SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
#Lenevo
SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
#LG
SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
#Motorola
SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
#NEC
SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
#Nook
SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
#Nvidia
SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
#OTGV
SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
#Pantech
SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
#Philips
SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
#PMC-Sierra
SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
#Qualcomm
SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
#SK Telesys
SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
#Sharp
SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
#Sony Ericsson
SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
#Toshiba
SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
#ZTE
SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666
SUBSYSTEM=="usb", ATTRS{idVendor}=="####:####", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"
TEST=="/var/run/ConsoleKit/database", \
RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}"
After this, close it and then enter:
Code:
sudo chmod +x /etc/udev/rules.d/99-android.rules
If your using ANY AOSP rom like AOKP or CM9 and CM10
Go into developer options and go to root access and change it from "Apps only" to Apps and ADB"
2e. Install Certain Android SDK Tools
Type:
Code:
android
Check Android SDK Tools and Android SDK platform-tools and Install them
Setting Up the .bashrc file
gedit ~/.bashrc
Enter the Following:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools
#Java PATH
export JAVA_HOME=/opt/java/64/jdk1.6.0_32
export PATH=$PATH:$JAVA_HOME/bin
3b. After your done setting this up, close .bashrc file.
Setup Workplace
4a. Download CyanogenMod 9 Source
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo (Reboot your computer after this)
4b. Add Repo Path
gedit ~/.bashrc
Enter the following:
Code:
export PATH=$PATH:~/bin
4c. Setup Necessary Source
For CyanogenMod 9
Code:
cd ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b ics
For CyanogenMod 10
Code:
cd ~/android/system
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
4d. Download Necessary Source
Code:
repo sync
4e. Download Extra Needed Files
Code:
~/android/system/vendor/cm/get-prebuilts
Your Final .bashrc
It SHOULD Look Something Like This:
Code:
#Android PATH
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools
export PATH=$PATH:~/bin
#Java PATH
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin
Building CyanogenMod
Code:
. build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon
Making a New Build
Go inside to your source folder and delete the 'out' folder
THEN Do This:
Code:
repo sync
Code:
. build/envsetup.sh; lunch cm_pyramid-userdebug; mka bacon

Compile AOKP Section
Be sure to follow the steps from the above post and ONLY use this instead of the part called 4c. Setup Necessary Source
FOR AOKP (ICS Version)
Code:
cd ~/android/system
repo init -u https://github.com/AOKP/platform_manifest.git -b ics
Temporary fix to build:
Code:
install -d prebuilt/android-arm/kernel
Then do:
Code:
curl -o prebuilt/android-arm/kernel/LINUX_KERNEL_COPYING -O https://raw.github.com/ezterry/kernel-biff-testing/ezgb-2636/COPYING
FOR AOKP (JELLYBEAN Version)
Code:
cd ~/android/system
repo init -u https://github.com/AOKP/platform_manifest.git -b jb
5b. Building AOKP
Code:
. build/envsetup.sh; lunch aokp_pyramid-userdebug; mka bacon

Compiling error solutions
error: The requested URL returned error: 403 while accessing https://android.googlesource.com/pla...blzf/info/refs:
http://forum.xda-developers.com/showpost.php?p=23205163&postcount=423
Correct repo file for ~/bin/repo:
http://forum.xda-developers.com/showpost.php?p=23174017&postcount=413
Overall repo fix:
http://forum.xda-developers.com/showpost.php?p=23147034&postcount=400
http://forum.xda-developers.com/showpost.php?p=23207819&postcount=434

Reference
This section is to help those who may look for answers
Basic Linux Commands
http://ss64.com/bash/
CyanogenMod Wiki
http://wiki.cyanogenmod.com/wiki/Main_Page
Difference between breakfast, brunch and lunch
http://synrgi.wordpress.com/2011/09/16/breakfast-brunch-and-lunch/
Installing Android SDK
http://developer.android.com/sdk/installing.html

You running a nightly?
Sent from my HTC Sensation XE with Beats Audio using Tapatalk

hi man thank you for this guide, i got a problem
when i try to install the first files for sistem 64 bit i get this error:
Package awk is a virtual package provided by:
original-awk 2011-05-06-1
mawk 1.3.3-15ubuntu2
gawk 1:3.1.8+dfsg-0.1build1
You should explicitly select one to install.
E: Package 'awk' has no installation candidate
E: Unable to locate package 7zip

You say that it is not recommended to do it in a virtual machine. What if I got 8 gigs of memory? Could I try it?? Thanx
Sent from my Sensation using XDA App

Nope.
A box is a box.
Ubuntu standalone is a very powerfull machine.
Just install 64bit and my advice to you: avoid Ubuntu. Try another version, which is compatible with this guide. I suggest Kubuntu or Xubuntu (64).

webmasteryoda said:
Nope.
A box is a box.
Ubuntu standalone is a very powerfull machine.
Just install 64bit and my advice to you: avoid Ubuntu. Try another version, which is compatible with this guide. I suggest Kubuntu or Xubuntu (64).
Click to expand...
Click to collapse
Ubuntu is fine, just strip out unity & replace with gnome shell

matt95 said:
hi man thank you for this guide, i got a problem
when i try to install the first files for sistem 64 bit i get this error:
Package awk is a virtual package provided by:
original-awk 2011-05-06-1
mawk 1.3.3-15ubuntu2
gawk 1:3.1.8+dfsg-0.1build1
You should explicitly select one to install.
E: Package 'awk' has no installation candidate
E: Unable to locate package 7zip
Click to expand...
Click to collapse
It might not be 7zip but 7za
As for awk try to install original-awk I wasn't sure actually since I had my computer setup for a long time already with everything

miniudavid said:
You say that it is not recommended to do it in a virtual machine. What if I got 8 gigs of memory? Could I try it?? Thanx
Sent from my Sensation using XDA App
Click to expand...
Click to collapse
I don't recommend virtual machines at all!
Just dual boot if you have windows that's how I setup my computer.

n1kon said:
You running a nightly?
Sent from my HTC Sensation XE with Beats Audio using Tapatalk
Click to expand...
Click to collapse
In a way yes but no, the work to get sensation cm9 at the moment is done by Vorbeth, elelinux and others.
I compiled my own and it runs pretty good honestly but there are major issues but it'll be fixed later hopefully.

Vorbeth said:
Ubuntu is fine, just strip out unity & replace with gnome shell
Click to expand...
Click to collapse
Nope. Gnome shell is a same story. Thats why I suggested kde or xfce.

webmasteryoda said:
Nope. Gnome shell is a same story. Thats why I suggested kde or xfce.
Click to expand...
Click to collapse
I like Linux Mint. They have done a great job with Gnome 3 in making a more usable interface.
Sent from my HTC Sensation Z710e using Tapatalk

After this command:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
I get this output:
Code:
No command 'repo' found, did you mean:
Command 'rep' from package 'rep' (universe)
Command 'repl' from package 'nmh' (universe)
Command 'repl' from package 'mailutils-mh' (universe)
repo: command not found
Any ideas?

Sym_Link said:
I like Linux Mint. They have done a great job with Gnome 3 in making a more usable interface.
Sent from my HTC Sensation Z710e using Tapatalk
Click to expand...
Click to collapse
I agree. Linux Mint has the best Gnome 3 experiance. But its still Gnome 3. Mutter is still having a major issues with Ati propriatory drivers, while the other intefaces work excellent.
I think that probably the best Ubuntu distro for cooking roms is Xubuntu. Its well optimised and free of all sorts of fancy staff.

Thanks for the detailed HOWTO
[/COLOR]
iJohnny said:
After this command:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
I get this output:
Code:
No command 'repo' found, did you mean:
Command 'rep' from package 'rep' (universe)
Command 'repl' from package 'nmh' (universe)
Command 'repl' from package 'mailutils-mh' (universe)
repo: command not found
Any ideas?
Click to expand...
Click to collapse
The repo script is not in your path yet. I created a directory like /home/mperry/b in first and then installed the repo script there. You can prepend the command repo with the place you put the repo script. I copied repo to /usr/bin since this is a personal system and I don't care what I violate. You could also add a path statement to your .bashrc for the user which includes the path to the bin directory you created.

miniudavid said:
You say that it is not recommended to do it in a virtual machine. What if I got 8 gigs of memory? Could I try it?? Thanx
Sent from my Sensation using XDA App
Click to expand...
Click to collapse
That should be fine but why do vm at all? I mean vm is not really good for development I.m.o.

Vorbeth said:
Ubuntu is fine, just strip out unity & replace with gnome shell
Click to expand...
Click to collapse
This is what I did but I installed kde plasma instead.

Updated the OP to be more clear and added a few things missing

Related

[GUIDE] How To Build CM9 From Source Code Ubuntu 11.10 64-Bit

Building CM9 From Source On The Epic 4G
I just recently built CM9 for the Epic 4G since Contacts.apk and the Honeycomb Ripple Lockscreen Mod need to be built from source to work properly on our phones. If you follow my instructions exactly, you should have a working CM9 build for the Epic 4G. You can then modify whatever you need to customize your apks, jar files, etc.
Now lets get started. You will need to install Ubuntu 11.10 64-Bit on your computer. It can be a virtual machine, an install using Wubi, or an actual partition for Ubuntu. You will need at least 30gb available for Ubuntu since the repository and the build take up a lot of space.
(Note: It Must Be Ubuntu 11.10 64-Bit And Have A Working Internet Connection!)
Install Java JDK
Once Ubuntu is installed the first thing you will need to do is install Java JDK. Open up a terminal or press Ctrl+Alt+T on the keyboard and copy the following commands:
Code:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk sun-java6-plugin
After the first command is entered, it will ask you for your password. Enter it and continue with the commands. Once Java is about to install, it will tell you how much additional disk space Java will add to your hard drive and ask if you want to continue. Press Y and hit Enter. When Java is done installing, you should see a window that pops up with the Java Licensing Agreement. Use the arrow keys or the Tab key on your keyboard to navigate to the OK button and press Enter. Then Navigate to Yes and hit Enter again. Java is now installed on your Computer!
Install Android SDK For Linux
Next, you will need to install android sdk. Google search android sdk and it should be the first link that pops up. Click on it and download android-sdk_r18-linux.tgz for Linux. Now go back to your terminal and enter the following commands:
Code:
cd Downloads
tar -xvzf android-sdk_r18-linux.tgz
rm *.tgz
mv android-sdk-linux/ ..
cd ../android-sdk-linux/
In case you don't know what you just did, you navigated to your Downloads folder and extracted the android-sdk-linux folder. Then you deleted the compressed file and moved your android-sdk-linux folder to your Home directory. Finally, you navigated to your android-sdk-linux folder.
Now we need to open the Android SDK Manager and download the necessary packages. In the terminal, copy:
Code:
tools/android
It should pop up the Android SDK Manager. Now make sure the Tools folder, and Android 4.0.3 (API 15) packages are selected and click on Install Packages. Check Accept All and click on Install. Once all the packages have been loaded, close out of the Download window and the Android SDK Manager. Go back to your terminal and Type:
Code:
cd
This will navigate you back to your Home Directory.
The Rest Of The Guide Will Need To Be Done In The Root Terminal!
In the terminal type:
Code:
sudo -i
Then enter your password. You are now logged in as root! (Or superuser)
Install Packages
Now we need to install all the necessary packages to make the CM9 build. In the terminal, copy:
Code:
apt-get install python git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential pngcrush schedtool gcc-multilib
Again, press Y and hit Enter.
Configuring USB
Time to set up all devices to work with USB.
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
This will create a new file to configure the USB devices. Copy and paste this into the file:
Code:
#Acer
SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
#ASUS
SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
#Dell
SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
#Foxconn
SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
#Garmin-Asus
SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
#Google
SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE=0666
#Huawei
SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
#K-Touch
SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
#KT Tech
SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
#Kyocera
SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
#Lenevo
SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
#LG
SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
#Motorola
SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
#NEC
SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
#Nook
SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
#Nvidia
SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
#OTGV
SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
#Pantech
SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
#Philips
SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
#PMC-Sierra
SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
#Qualcomm
SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
#SK Telesys
SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
#Sharp
SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
#Sony Ericsson
SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
#Toshiba
SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
#ZTE
SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666
Save the file and close the window. Next set the permissions for the file you just created:
Code:
chmod a+r /etc/udev/rules.d/51-android.rules
Installing Repo
Next, we need to install the CM9 repository.
Code:
mkdir ~/bin
gedit /etc/environment
This will open up your Environment Variables so you can use adb and other commands no matter what directory you're in.
Copy and paste this into the end of the file:
Code:
:/home/gooch/android-sdk-linux/tools:/home/gooch/android-sdk-linux/platform-tools:/root/bin
Replace gooch with your Username that you set up and make sure to leave the quotes! It should look like one big line.
Now Logout and Log back in! This will update your Environment Variables.
Once you're logged back in, open up the terminal and log back in as root:
Code:
sudo -i
Enter your password and then copy the following commands:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir CM9
cd CM9
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync
These commands will set everything up and download the CM9 repository. (This will take a long time to download!)
(Note: If your download freezes or hangs, close the terminal and open up a new one. Log back into root and repeat these steps)
Code:
cd CM9
repo sync
This will continue where you left off. Once everything is synced, enter in the terminal:
Code:
nautilus
This will open up a root file explorer. navigate to the CM9/device/samsung folder and see if there is a folder called "epicmtd". If there is, skip to Copy Proprietary Files. If not, close the file explorer and type:
Code:
brunch epicmtd
This should gather the epicmtd folder for you. If it starts to build, exit the terminal Immediately!
Open another terminal, log into root, and open up the root file explorer again:
Code:
nautilus
Check if the "epicmtd" is there again. If it's there, Navigate back to the CM9 folder and then navigate to the out/target/product folder. If there is a folder called "epicmtd", delete it and close the root file explorer.
Copy Proprietary Files
Next you need to download the proprietary files from your phone. You must have a working CM9 ROM currently on your phone. Make sure USB Debugging is on and plug your phone into your computer. (You can find this under Settings-Developer Options-USB Debugging)
In the terminal, navigate the the "CM9" folder if you're not already there:
Code:
cd CM9
Then copy the following commands:
Code:
cd device/samsung/epicmtd
./extract-files.sh
This will gather all the necessary files needed from your phone. Once this is finished, navigated back to the "CM9" folder by entering:
Code:
cd
cd CM9
Now enter:
Code:
vendor/cm/get-prebuilts
(Note: The whole "Copy Proprietary Files" step only needs to be done once to set everything up!)
Build Source
Finally, We can build the CM9 Source Code.
In the terminal, copy the commands:
Code:
. build/envsetup.sh
brunch epicmtd
This will take a while, but if you set up everything correct, you should have a working, flashable CM9 ROM in the CM9/out/target/product/epicmtd folder. The .zip is called something like "update-cm-9.0.0-RC0-epicmtd-KANG-signed".
Copy that to your phone's SD Card and reboot into recovery mode. Wipe user data, cache, and dalvik cache, and flash. If it installs and your phone boots up with CM9, You just made a successful build!
You can delete the "epicmtd" folder created in the CM9/out/target/product directory by running in CM9 directory:
Code:
make clobber
Now you can modify the Source Code, and build again by issuing these two simple commands:
Code:
. build/envsetup.sh
brunch epicmtd
I hope you enjoyed this tutorial and that it helped you. Start building!
Thanks to UberPinguin for helping me with my Source Build
let me first off say thanks for this i have book marked and subscribed and FIRST for the first time lol
Second!!! Gonna set this up now!
Writen in plain english. Amazing!
It's building! (Nexus)
Good job man!
Broadcast to the public; to promote self awareness.
You can just run 'make clean', if I recall correctly. And it'll remove the epicmtd directory within /out section so that you can build again. No need to manually remove it.
Sent from my SPH-D700 using xda premium
AproSamurai said:
You can just run 'make clean', if I recall correctly. And it'll remove the epicmtd directory within /out section so that you can build again. No need to manually remove it.
Sent from my SPH-D700 using xda premium
Click to expand...
Click to collapse
Thanks, I'll test and make sure that works.
Sent from my CM9 Epic Blue Mist using xda premium
make clobber will wipe the out folder.
Also, ubuntu uses gcc 4.6 which causes problems if try any custom optimization. I personally use debian32 with gcc 4.4.
Another tip is you can add the gihub CyanogemMod vendor samsung epicmtd to your local_manifest.xml instead of pulling the vendor files from your own phone.
Sent from my SPH-D700 using XDA App
Thanks for this!
Sent from my SPH-D700 using xda premium
There you go, it was clobber lmao. Hahaha I was thinking of something else.:| Apologies.
Sent from my SPH-D700 using xda premium
Awesome, thanks guys.
Sent from my CM9 Epic Blue Mist using xda premium
chuckdez said:
make clobber will wipe the out folder.
Also, ubuntu uses gcc 4.6 which causes problems if try any custom optimization. I personally use debian32 with gcc 4.4.
Another tip is you can add the gihub CyanogemMod vendor samsung epicmtd to your local_manifest.xml instead of pulling the vendor files from your own phone.
Sent from my SPH-D700 using XDA App
Click to expand...
Click to collapse
Soooooo.....git://github.com/CyanogenMod/android.git -b Samsung epicmtd?
Broadcast to the public; to promote self awareness.
Thank You OP for NOT giving in to the Windows / Mac (WaC) quid pro quo!
deciple said:
Soooooo.....git://github.com/CyanogenMod/android.git -b Samsung epicmtd?
Broadcast to the public; to promote self awareness.
Click to expand...
Click to collapse
modify the .repo/local_manifest.xml in the CM9 folder.
This has the device, vendor and kernel files.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="device/samsung/epicmtd" name="CyanogenMod/android_device_samsung_epicmtd" remote="github" revision="ics"/>
<project path="kernel/samsung/victory" name="CyanogenMod/android_kernel_samsung_victory" remote="github" revision="ics"/>
<project path="vendor/samsung" name="koush/proprietary_vendor_samsung" remote="github" revision="ics"/>
</manifest>
Cant seem to get past the brunch epicmtd part guys. Where should I execute this command?
Its saying brunch command not found
It have to be specifically on 11.10? I have 10.04 for compatibility reasons and plan on giving this a whirl .
Sent from my SPH-D700 using xda premium
I did it on 11.04
Broadcast to the public; to promote self awareness.
Big Goron said:
It have to be specifically on 11.10? I have 10.04 for compatibility reasons and plan on giving this a whirl .
Sent from my SPH-D700 using xda premium
Click to expand...
Click to collapse
It will work on every debian based OS. I am using Linux Mint Debian and I can compile fine.
Sent from my SPH-D700 using Tapatalk
I succesfully get the repo but once I type nautilus I get something about user sharing.
I proceed and then it says brunch is not a command.
In the pastebin is what comes out on the terminal/
http://pastebin.com/409YjyBi
joe_d08_17 said:
I succesfully get the repo but once I type nautilus I get something about user sharing.
I proceed and then it says brunch is not a command.
In the pastebin is what comes out on the terminal/
http://pastebin.com/409YjyBi
Click to expand...
Click to collapse
Make sure your build environment is setup by issuing the following command in CM9 folder.
. build/envsetup.sh
Note the space between the dot and the word build.
Sent from my SPH-D70buildng XDA App
So where are the files that you edit before you build?

[GUIDE]How to build CM9, AOKP, or ICS from source on Windows or Linux

How to build ICS from source using Windows 64bit or Linux 64bit​This guide has only been confirmed for linux or Ubuntu v11.10
If step has a ** then that means skip if on Linux
If step has a ~~ then that means skip if on Windows
If no key then perform on all operating systems
I reccomend to copy and paste commands as some are very long.
Required Packages:
** You may download Ubuntu 11.10 (a MUST if using windows) here or use the torrent. (You can Dual boot with an installer app or run in a Virtual machine)
Lets download Java 6:
start a terminal and type the following in
Code:
sudo add-apt-repository ppa:ferramroberto/java
sudo apt-get update
sudo apt-get install sun-java6-jdk
Once everything is installed and setup, exit and re-open terminal give your self root permisions:
Code:
sudo -i
Now lets download some other required packages (in terminal):
Code:
apt-get install python git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils
ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
Setting up basic features:
Lets setup USB to work with our phones (ADB and such):
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
then enter the following into the top of the text box:
Code:
#Acer
SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
#ASUS
SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
#Dell
SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
#Foxconn
SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
#Garmin-Asus
SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
#Google
SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
#HTC
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE=0666
#Huawei
SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
#K-Touch
SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
#KT Tech
SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
#Kyocera
SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
#Lenevo
SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
#LG
SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
#Motorola
SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
#NEC
SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
#Nook
SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
#Nvidia
SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
#OTGV
SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
#Pantech
SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
#Philips
SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
#PMC-Sierra
SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
#Qualcomm
SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
#SK Telesys
SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
#Samsung
SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
#Sharp
SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
#Sony Ericsson
SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
#Toshiba
SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
#ZTE
SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666
save it and set permissions to it:
Code:
chmod a+r /etc/udev/rules.d/51-android.rules
Now reboot your ubuntu or linux machine just to be safe
Start a new terminal
Now lets setup a bin folder:
Code:
mkdir ~/bin
gedit ~/.bashrc
In the text box type then save:
Code:
#Will use anything in the bin folder in any dir
PATH=~/bin:$PATH
Initializing the repo:
Now lets download the repo binary and put it in the bin:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now exit and restart the terminal
Alright lets download the source:
Code:
mkdir Android_Source
cd Android_Source
Do this step if building CM9:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
Do this step if building AOKP:
Code:
repo init -u git://github.com/AOKP/platform_manifest.git -b ics
Do this step if building plain ICS:
Code:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r1
Download the source:
Sync the repo (-j stands for how many jobs to do at once replace the ? with a number, I use 6 because i have a quad-core so I can go faster):
This can take anywhere from 30 minutes to 5 hours based on your internet speed
Code:
repo sync -j?
Configuring the repo for the Doubleshot:
Now lets set the repo up for our device:
Code:
cd device
mkdir htc (skip if exist)
cd htc
If building CM9:
Code:
git clone git://github.con/CyanogenMod/android_device_htc_doubleshot.git -b ics doubleshot
cd doubleshot
curl http://dl.dropbox.com/u/40873980/vendorsetup.sh >>vendorsetup.sh
cd ..
git clone git://github.com/CyanogenMod/android_device_htc_msm8660-common.git -b ics msm8660-common
cd ../..
cd vendor
mkdir htc (skip if exist)
cd htc
git clone git://github.com/TeamDS/vendor_htc_doubleshot.git -b stable doubleshot
cd ../..
If building AOKP:
Code:
git clone git://github.com/WildchildIcE/device_htc_doubleshot.git -b aokp doubleshot
cd ../..
cd vendor
mkdir htc (skip if exist)
cd htc
git clone git://github.com/WildchildIcE/vendor_htc_doubleshot.git -b ics doubleshot
cd ../..
If building ICS: coming soon
Building from source:
Finally lets build!:
Code:
. build/envsetup.sh
lunch 4
Build a flashable rom zip:
(-j stands for how many jobs to do at once replace the ? with a number, I use 6 because i have a quad-core so I can go faster)
This can take anywhere from 30 minutes to 5 hours based on your CPU speed
Code:
make -j? otapackage
Build a boot.img:
Code:
make -j? bootimage
Build a recovery image:
Code:
make -j? recoveryimage
That should make you a working build of CM9, AOKP, or ICS.
Note: From personal experience, building AOKP with our device may require some simple environment hacking.
1. Using a file explorer, navigate to (your source folder)/build/target/product.
2. Edit core.mk and take out "PRODUCT_NAME := core" and "PRODUCT_BRAND := generic" then save
3. Go back to the root of the source folder
4. goto vendor/aokp/products
5. delete picasso.mk and then edit androidproducts.mk
6. take out the line "$(LOCAL_DIR)/picasso.mk \" then save
7. then delete the following two directories, "/device/acer" and "vendor/acer/"
Then experiment!
my spot....move along
Useful, but I'm running 32-bit Ubuntu 12.04.
Sent from Spaceball One.
Looks fun but I don't have the setup :-(. 32 bit peppermint two OS here. Even if I could compile, my dinosaur would finish sometime around jelly bean ha
Sent from my myTouch_4G_Slide using xda premium
blackknightavalon said:
Useful, but I'm running 32-bit Ubuntu 12.04.
Sent from Spaceball One.
Click to expand...
Click to collapse
yea....ubuntu 12 requires hacking libs to make backwards compaitability....not fun
strapped365 said:
Looks fun but I don't have the setup :-(. 32 bit peppermint two OS here. Even if I could compile, my dinosaur would finish sometime around jelly bean ha
Sent from my myTouch_4G_Slide using xda premium
Click to expand...
Click to collapse
lol i know how u feel
I am building aokp from source for Desire S/Saga.. so Is this correct as of my device saga ??
git clone git://github.com/xmc-wildchild22/android_device_htc_saga.git -b aokp saga
cd ..
cd ../..
cd vendor
mkdir htc
cd htc
git clone git://github.com/xmc-wildchild22/vendor_htc_saga.git -b aokp saga
cd ../..
Click to expand...
Click to collapse
+ Can It be build over 32 bit ubuntu
it is possible to build on 32bit...however its extremely hard....save your self sometime and go 64bit. lol no that command wont work....the git clone command is downloading my device tree here and specifing the branch as aokp. someone has to make a device tree for your device. but i see the saga already has an official cm device tree. ill port it over to work for aokp and send you a dl
edit:
here you go...use this as your device tree
Will try this tomorrow morning after I install ubuntu 12.04. Hopefully with an i7 2670qm it won't take 30 mins to build
Sent from my myTouch_4G_Slide using Tapatalk 2
install the version of ubuntu listed above to avoid hacking libs for backwards compaitability
Hey, I got my new Laptop.
Its an ASUS G7.
It has a Core i7-2630M @2.0GHZ with Turbo at 2.8GHz. It also has multi threading so it has 8 core (4 physical, 4 Virtual).
A GTX 560M
8G's of Ram
50 SSD
What are some good guidelines to get the most out of this Laptop Dev wise?
AgentCherryColla said:
Hey, I got my new Laptop.
Its an ASUS G7.
It has a Core i7-2630M @2.0GHZ with Turbo at 2.8GHz. It also has multi threading so it has 8 core (4 physical, 4 Virtual).
A GTX 560M
8G's of Ram
50 SSD
What are some good guidelines to get the most out of this Laptop Dev wise?
Click to expand...
Click to collapse
Nice I got a k53sd with similar specs except processor and ssd but I'm jelly of your gtx 560m.. how much did you get it for? I got mine for 699 2 months ago.
Sent from my myTouch_4G_Slide using Tapatalk 2
Why isn't this in dev?
Nice XMC - real nice.
... when I get the chance to get back into dev again, I want to start with ICS. Contributions like this will make it real easy to just jump right in and start helping.
Thanks for sharing!
Instead of
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
I had to do this to install java6 jdk. Looks like the package isn't in the archive anymore
Code:
sudo add-apt-repository [B]ppa:ferramroberto/java[/B]
sudo apt-get update
sudo apt-get install sun-java6-jdk
and lib32readline5-dev is not available. I used lib32readline-gplv2-dev instead
EDIT:
ALSO!!
You should probably put into the guide to close the terminal and start a new one right after the edit to ~/.bashrc. I forgot to do that and kept wondering why the repo command wasn't found
...How to build....on Wondoze....
Click to expand...
Click to collapse
HAHAHA
Love the way you mislead the wondoze newbs...
You may download Ubuntu 11.10 (a MUST if using windows)
Click to expand...
Click to collapse
nemesis93 said:
Nice I got a k53sd with similar specs except processor and ssd but I'm jelly of your gtx 560m.. how much did you get it for? I got mine for 699 2 months ago.
Sent from my myTouch_4G_Slide using Tapatalk 2
Click to expand...
Click to collapse
500. Bought it off a work buddy.
Sent from my myTouch_4G_Slide using xda premium
When specifying the number of threads to run i.e. 'repo sync j8' for 8 threads, keep in mind that intel core processors have hyperthreading which lets you effectively double the amount of threads you can run. On my core i7 (quadcore) I use 'j8' but if I was running on an amd quadcore I would use 'j4'.
Just my 2 cents...
michaelmab88 said:
When specifying the number of threads to run i.e. 'repo sync j8' for 8 threads, keep in mind that intel core processors have hyperthreading which lets you effectively double the amount of threads you can run. On my core i7 (quadcore) I use 'j8' but if I was running on an amd quadcore I would use 'j4'.
Just my 2 cents...
Click to expand...
Click to collapse
Thanks, I was wondering that. Intel for life righ'???? :3
Sent from my myTouch_4G_Slide using xda premium
you just need a debian base linux. And if your not sure how to get backward comparability with ubuntu 12 you can always install linux mint debian also this is just my opinion you get better results using aptitude instead of apt-get. I have to say this UNITY SUCKS ruined a great linux distro.
michaelmab88 said:
When specifying the number of threads to run i.e. 'repo sync j8' for 8 threads, keep in mind that intel core processors have hyperthreading which lets you effectively double the amount of threads you can run. On my core i7 (quadcore) I use 'j8' but if I was running on an amd quadcore I would use 'j4'.
Just my 2 cents...
Click to expand...
Click to collapse
Actually, hyperthreading effectively does NOTHING to improve your compile time. Extra threads swapping back and forth actually increases the overhead and decreases performance.
What hyperthreading does, is it takes away some of the operating system's ability to control process scheduling. Its basic purpose is that if you have some runaway or other high-CPU process that wants to take over your CPU, the hardware will assign a higher priority to OTHER processes, giving them equal CPU time so you don't end up dead. It will improve your "smoothness" by effectively increasing priority of low-cpu processes. It is basically pointless on CPU's with multiple real processing cores, and equally pointless on operating systems with decent process schedulers -- i.e., it is for Wondoze on single core processors. Beyond that, they're just trying to technobabble you into thinking that there is some benefit.
Best thing to do is set the number of compiler threads equal to the number of REAL processing cores.
---------- Post added at 04:09 PM ---------- Previous post was at 04:07 PM ----------
darkdata said:
you just need a debian base linux. And if your not sure how to get backward comparability with ubuntu 12 you can always install linux mint debian also this is just my opinion you get better results using aptitude instead of apt-get. I have to say this UNITY SUCKS ruined a great linux distro.
Click to expand...
Click to collapse
Does NOT need to be debian based at all. Just needs to have the necessary dependencies installed and available. I build Android on Fedora.
dhkr234 said:
Actually, hyperthreading effectively does NOTHING to improve your compile time. Extra threads swapping back and forth actually increases the overhead and decreases performance.
What hyperthreading does, is it takes away some of the operating system's ability to control process scheduling. Its basic purpose is that if you have some runaway or other high-CPU process that wants to take over your CPU, the hardware will assign a higher priority to OTHER processes, giving them equal CPU time so you don't end up dead. It will improve your "smoothness" by effectively increasing priority of low-cpu processes. It is basically pointless on CPU's with multiple real processing cores, and equally pointless on operating systems with decent process schedulers -- i.e., it is for Wondoze on single core processors. Beyond that, they're just trying to technobabble you into thinking that there is some benefit.
Best thing to do is set the number of compiler threads equal to the number of REAL processing cores.
Click to expand...
Click to collapse
I must confess I don't know much about the 'technobabble'.. I normally wouldn't run make -j* either.. I just run brunch and everything takes care of itself..
Here are a couple pages to look at for optimizing build time...
edit: and reposync in stead of repo sync.. but you have to setup the environment in the terminal before reposync will work (run '. build/envsetup.sh')

How to compile Jelly Bean from Source [UBUNTU]

Hey there! I know the current situation in the i9003. We have a functional but not full ICS and now we need kernel 3.X to make everything work perfectly. Dhiru is working hard, he made a very very good work but he cannot do more until hillbeast finishes a bootable 3.0 kernel. A few hours ago, JB Source Code was released and now it can be compiled from source. I have read a good tutorial made by dastin1015 which explains how to do that. I say THIS IS NOT MY WORK (obviously) so credits go for him.
If somebody knows how to do that, please, try it. Probably we will be saving a lot of time for further development. Only to make it boot in a i9003 is a big step and a big contribution for the community. Here are the steps:
GUIDE - HOW TO COMPILE JB ON UBUNTU FROM SOURCE​
To compile Jellybean on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling. Also note that this appears to be a development preview source code.
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.
Note: The source download is approximately 6GB in size. You will need 25GB 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. You can download it from java.sun.com. Or:
Code:
$ sudo apt-get install sun-java6-jdk
-Python 2.4 -- 2.7, which you can download from python.org. Or:
Code:
$ sudo apt-get install python
-Git 1.7 or newer. You can find it at git-scm.com. Or:
Code:
$ sudo apt-get install git-core
2) Install required packages. 64-bit (recommended)
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
On newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
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-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ 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
$ repo init -u https://android.googlesource.com/platform/manifest -b jb-dev
7) When prompted, enter your real name and email address.
8) Gather the files:
Code:
$ repo sync
9) Compiling:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
10) Issue:
Code:
$ lunch
11) Pick your poison.
12) Now issue (The '#' is the number of cores your processor has plus 1, ex. I have a dual core processor so I type 'make -j3':
Code:
$ make -j#
~How To Add A Device To The List~
1) Find the github for your device you wish to add. (For me it is the HTC Evo 3D CDMA)
2) Now navigate to the location you are going clone the device tree to:
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir htc
3) Clone the github device tree from remote to local: (The shooter 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_htc_shooter.git shooter
4) Now navigate into the folder:
Code:
$ cd shooter
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
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:
Code:
$ make -j#
Or for a flashable zip:
Code:
$ make -j# otapackage
~NOTE~
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_shooter". Stop.
Device shooter not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for shooter 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_shooter". Stop.
** Don't have a product spec for: 'full_shooter'
** 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_shooter.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.
Source​
Hope it helps for our development, and again, if u know how to do that, please try
Click to expand...
Click to collapse
luiseteyo said:
Hey there! I know the current situation in the i9003. We have a functional but not full ICS and now we need kernel 3.X to make everything work perfectly. Dhiru is working hard, he made a very very good work but he cannot do more until hillbeast finishes a bootable 3.0 kernel. A few hours ago, JB Source Code was released and now it can be compiled from source. I have read a good tutorial made by dastin1015 which explains how to do that. I say THIS IS NOT MY WORK (obviously) so credits go for him.
If somebody knows how to do that, please, try it. Probably we will be saving a lot of time for further development. Only to make it boot in a i9003 is a big step and a big contribution for the community. Here are the steps:
GUIDE - HOW TO COMPILE JB ON UBUNTU FROM SOURCE​
To compile Jellybean on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling. Also note that this appears to be a development preview source code.
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.
Note: The source download is approximately 6GB in size. You will need 25GB 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. You can download it from java.sun.com. Or:
Code:
$ sudo apt-get install sun-java6-jdk
-Python 2.4 -- 2.7, which you can download from python.org. Or:
Code:
$ sudo apt-get install python
-Git 1.7 or newer. You can find it at git-scm.com. Or:
Code:
$ sudo apt-get install git-core
2) Install required packages. 64-bit (recommended)
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
On newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
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-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ 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
$ repo init -u https://android.googlesource.com/platform/manifest -b jb-dev
7) When prompted, enter your real name and email address.
8) Gather the files:
Code:
$ repo sync
9) Compiling:
Code:
$ source build/envsetup.sh
Or:
Code:
$ . build/envsetup.sh
10) Issue:
Code:
$ lunch
11) Pick your poison.
12) Now issue (The '#' is the number of cores your processor has plus 1, ex. I have a dual core processor so I type 'make -j3':
Code:
$ make -j#
~How To Add A Device To The List~
1) Find the github for your device you wish to add. (For me it is the HTC Evo 3D CDMA)
2) Now navigate to the location you are going clone the device tree to:
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir htc
3) Clone the github device tree from remote to local: (The shooter 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_htc_shooter.git shooter
4) Now navigate into the folder:
Code:
$ cd shooter
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
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:
Code:
$ make -j#
Or for a flashable zip:
Code:
$ make -j# otapackage
~NOTE~
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_shooter". Stop.
Device shooter not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for shooter 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_shooter". Stop.
** Don't have a product spec for: 'full_shooter'
** 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_shooter.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.
Source​
Click to expand...
Click to collapse
Nice efforts! Liked!! You should continue maybe you can be the 1st dev of JB ^^
EDIT: Nevermind.
Anybody is going to try this? Almost all the big devices have a start build of JB. I can't do this so, isnt here any developer who wants to try this?
luiseteyo said:
Anybody is going to try this? Almost all the big devices have a start build of JB. I can't do this so, isnt here any developer who wants to try this?
Click to expand...
Click to collapse
Altough I'm not this device user, but i'm setting up my PC to start building for my LG-P500
And I must say that this is really a very helpful and the easiest guide available apart from the errors I'm going to face while building
luiseteyo said:
Anybody is going to try this? Almost all the big devices have a start build of JB. I can't do this so, isnt here any developer who wants to try this?
Click to expand...
Click to collapse
dhiru1602 said:
CM10 boots. Needs more testing.
Everything as that of CM9 seem to work fine with the only problem being the space on the system partition. It's too low to accommodate the full ROM and Jellybean Google apps. With the release of 3.0 kernel, we will resize the partitions, but as of now I have moved the applications to the data partition on a temporary basis.
Will make a release in a separate thread by the next few days.
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=29018786&postcount=2809
shriomman said:
http://forum.xda-developers.com/showpost.php?p=29018786&postcount=2809
Click to expand...
Click to collapse
Yes i know
Sent from my iPad using Tapatalk HD
Workaround for repo syntax errors
For those getting a syntax error on
Code:
repo init
It's because of Python3 being listed as Python in /usr/bin.
A temporary workaround is to symlink python2 in place of python 3.
Code:
$ mkdir ~/bin
$ ln -s /usr/bin/python2 ~/bin/python
$ export PATH=~/bin:$PATH
Check to see if it worked
Code:
$ which python
And if it returns the binary in ~/bin/python it worked
The solution would either be to symlink python by default or rewrite repo in Python3.

[Tutorial][S4] How to make your very own Jellybean 4.1.1 on the HTC One S!

Hello everyone! I am anxiously awaiting jellybean for our phone and I know that many of you are also, so I decided to make this thread and help speed things up ! I am currently watching my repo sync so I am hard at work developing this for us but other users can work to, so we get it done faster . So if you are not on ubuntu 10 or 11, LEAVE because this is likely not going to work for you . A few things first: 1. the "$" is an indication of the command, there is one $ before every command and it is already in your terminal so do not type it. 2. You may want to copy and paste commands... 3. This will either not boot or have many bugs, as expected.
There are currently 2 JB roms available, here (by me) and here (by djsubtronic)
GENERAL JELLYBEAN THREAD IS HERE
1) First thing is first, install the required packages:
Open terminal and KEEP IT OPEN FOR ALL OF THIS!!!!!!!!!!!!
Code:
$ sudo apt-get install openjdk-6-jdk
$ sudo apt-get install python
$ sudo apt-get install git-core
Next, download the android sdk for linux and extract it to your home directory. Name it "android-sdk" (without the quotes) for simplicity. In you home folder, show the hidden files (hit Ctrl + H). Open the .bashrc file in the text editor. Add the following lines at the bottom (end) of it:
Code:
# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin
Save it and then go back to the home folder. Edit the .profile file and add this to the end:
Code:
PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"
You now have the sdk installed. In your terminal, enter:
Code:
$ cd android-sdk
$ android
When the sdk manager pops up, download platform-tools, and update the tools folder if needed.
If it does not pop up, try one the following 3 commands and see if it does:
Code:
$ cd tools
$ android
Or
Code:
$ cd platfrom-tools
$ android
Code:
$ cd
$ android
And if none of those bring up the manager, close your terminal window. Then open terminal and type:
Code:
$ android
MORE FILES?!?!?! Yes.
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
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Finally! Past the downloads (for now... wait for the repo sync)
2) Configure the usb:
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
In the blank text field, paste the following:
Code:
#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"
#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"
#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"
#Lenevo
SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"
#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"
#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"
#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"
#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"
#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"
#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"
#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
Save the new text file and close it. Enter this command in your terminal window:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
3) Installing 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
4) Initialize (init) the repo:
Code:
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r1
or, if you want to do CM10, replace the last line (repo init -u blahblahblah) with:
Code:
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
4.5) If you already have the repo initialized and all of the above done, and are just starting over, do this:
Code:
$ cd WORKING_DIRECTORY
$ repo init -b android-4.1.1_r1
$ repo sync
Don't do it if you are starting new.
5) Sync the needed files (repo)
Code:
$ repo sync -j1
When it asks, enter your REAL name and email
6) Compile:
Code:
$ source build/envsetup.sh
or
Code:
$ . build/envsetup.sh
7) Who's hungry?
Code:
$ lunch
Seriously, you have to!
8) Adding HTC One S (ville) to the list
Code:
$ cd WORKING_DIRECTORY/device
$ mkdir htc
$ cd htc
9) I have no name for this (github sync )
Code:
$ git clone git://github.com/intervigilium/android_device_htc_ville.git -b jellybean-ril ville
or
Code:
$ git clone git://github.com/intervigilium/android_device_htc_ville.git -b jellybean ville
10) Navigate to "ville"
Code:
$ cd ville
11) Connect your HTC One S to the computer and verify that adb is working (usb debugging) and once that is verified do this:
Code:
$ ./extract-files.sh
You can disconnect after this is done.
11.5) Every .cpp file in device/htc/ville/libsensors needs these lines to be added after the #includes section:
Code:
#define LOGE
#define LOGE_IF
The following lines must be added to /device/htc/ville/liblights/lights.c after the #includes section:
Code:
#define LOGE
#define LOGE_IF
#define LOGV
(Thanks to djsubtronic for this step!)
12) Time to build!
Code:
$ cd ~/WORKING_DIRECTORY
then:
Code:
$ source build/envsetup.sh
or
Code:
$ . build/envsetup.sh
13) Verify the ville is there:
Code:
$ lunch
14) Choose from the list
15) Compile!
The # stand for the number of cores plus one (Example: my VAIO has 2 cores so I do -j3, if it were quad core I would do -j5)
Code:
$ make -j#
Flashable zip command (instead of above command):
Code:
$ make -j# otapackage
Thanks to dastin1015 for this (Look at it for a general build): http://forum.xda-developers.com/showthread.php?t=1762641
Thanks to everyone with a ville github account!
Post your results in this thread. Also, ask questions here too!
If I have done something wrong, just tell me politely what it is and I will fix it. It is late here and this is a long thread so there is likely at least one mistake. Thanks!
ERRORS AND FIXES:
Code:
build/core/product_config.mk:205: *** No matches for product "device_ville". Stop.
** Don't have a product spec for: 'device_ville'
** Do you have the right repo manifest?
Add this:
Code:
PRODUCT_NAME := device_ville
PRODUCT_DEVICE := ville
PRODUCT_BRAND := Android
PRODUCT_MODEL := Full Android on ville
to the bottom (end) of device_ville.mk
Ville does not show up in lunch menu? Make the file "vendorsetup.sh". Edit it and add this:
Code:
add_lunch_combo device_ville-userdebug
Nice
Enviado desde mi HTC One S usando Tapatalk 2
Reserved for fixes and updates
Nice one.
You can add that every .cpp file in device/htc/ville/libsensors needs these lines to be added after the #includes section:
Code:
#define LOGE
#define LOGE_IF
djsubtronic said:
Nice one.
Click to expand...
Click to collapse
I'll post pictures tomorrow or the next day
djsubtronic said:
Nice one.
You can add that every .cpp file in device/htc/ville/libsensors needs these lines to be added after the #includes section:
Code:
#define LOGE
#define LOGE_IF
Click to expand...
Click to collapse
How would I say that (under what step do you recommend)
BiteBlaze said:
How would I say that (under what step do you recommend)
Click to expand...
Click to collapse
Needs to be done before make, so I would say just before the build steps.
djsubtronic said:
Needs to be done before make, so I would say just before the build steps.
Click to expand...
Click to collapse
I'll add that now
I won't be able to post pictures until monday so if anyone has screenshots of the terminal window at certain points in the instructions, email me. Goodnight and good luck!
Has anybody tried doing this?
Reviewers said:
Has anybody tried doing this?
Click to expand...
Click to collapse
There is a check the general sections topic on Jelly Bean. There are plenty of people trying. The only one with a booting build thus far is Team Liquid's Nocoast.
Why doesn't it work on ubuntu 10.04?
Add to OP after the libsensors bit:
The following lines must be added to /device/htc/ville/liblights/lights.c after the #includes section
Code:
#define LOGE
#define LOGE_IF
#define LOGV
---------- Post added at 12:31 PM ---------- Previous post was at 12:03 PM ----------
Stuck on this:
in function wpa_driver_nl80211_ops:driver_nl80211.c(.data.rel. ro.wpa_driver_nl80211_ops+0x1c8): error: undefined reference to 'wpa_driver_nl80211_driver_cmd'
Added this line to device/htc/ville/BoardConfig.mk: BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_wl12xx
and then got another error...
make: *** No rule to make target `out/target/product/ville/obj/STATIC_LIBRARIES/lib_driver_cmd_wl12xx_intermediates/lib_driver_cmd_wl12xx.a', needed by `out/target/product/ville/obj/EXECUTABLES/wpa_supplicant_intermediates/LINKED/wpa_supplicant'. Stop.
How to get that file?
Alie360 said:
Why doesn't it work on ubuntu 10.04?
Click to expand...
Click to collapse
It does. It doesn't work on 12
~ BiteBlaze via HTC One S... If I have helped you out, hit the Thanks button
BiteBlaze said:
It does. It doesn't work on 12
~ BiteBlaze via HTC One S... If I have helped you out, hit the Thanks button
Click to expand...
Click to collapse
You wrote "So if you are not on ubuntu 10 or 11, LEAVE because this is likely not going to work for you "...
I was assuming it was working only on 12
Alie360 said:
You wrote "So if you are not on ubuntu 10 or 11, LEAVE because this is likely not going to work for you "...
I was assuming it was working only on 12
Click to expand...
Click to collapse
Haha ok I get it you had it backwards. I mean that only people on 10 or 11 can do this ("If you are NOT on ubuntu 10 or 11, this is likely not going to work for you)
djsubtronic said:
Add to OP after the libsensors bit:
The following lines must be added to /device/htc/ville/liblights/lights.c after the #includes section
Code:
#define LOGE
#define LOGE_IF
#define LOGV
---------- Post added at 12:31 PM ---------- Previous post was at 12:03 PM ----------
Stuck on this:
in function wpa_driver_nl80211_ops:driver_nl80211.c(.data.rel. ro.wpa_driver_nl80211_ops+0x1c8): error: undefined reference to 'wpa_driver_nl80211_driver_cmd'
Added this line to device/htc/ville/BoardConfig.mk: BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_wl12xx
and then got another error...
make: *** No rule to make target `out/target/product/ville/obj/STATIC_LIBRARIES/lib_driver_cmd_wl12xx_intermediates/lib_driver_cmd_wl12xx.a', needed by `out/target/product/ville/obj/EXECUTABLES/wpa_supplicant_intermediates/LINKED/wpa_supplicant'. Stop.
How to get that file?
Click to expand...
Click to collapse
Added to the OP. Did you find the file?
BiteBlaze said:
Added to the OP. Did you find the file?
Click to expand...
Click to collapse
I undid the change from BoardConfig.mk
http://translate.google.co.uk/trans...a=X&ei=crACUOCNFOeY1AXcxNWzBw&ved=0CHAQ7gEwCQ
That link has a link to a git that has drivers for the nl80211, wpa_supplicant, and hostapd. Trying to get it to work using those files.
djsubtronic said:
I undid the change from BoardConfig.mk
http://translate.google.co.uk/trans...a=X&ei=crACUOCNFOeY1AXcxNWzBw&ved=0CHAQ7gEwCQ
That link has a link to a git that has drivers for the nl80211, wpa_supplicant, and hostapd. Trying to get it to work using those files.
Click to expand...
Click to collapse
Good. I will try tomorrow. I am glad to say they are upgrading my internet to about 15MBs! I should get a good build on monday
villainhalf said:
There is a check the general sections topic on Jelly Bean. There are plenty of people trying. The only one with a booting build thus far is Team Liquid's Nocoast.
Click to expand...
Click to collapse
I think I will post a link to the general thread in the OP. Nocoast refuses to release it or give us any more info... hopefully some info comes today... maybe screenshots? Or hopefully what the issues are and maybe a logcat

[DEV] - Pantech Burst - CM10 porting

This thread is for the development of Cyanogenmod for Pantech Burst. Any help is greatly appreciated. Below is somewhere to start from but will be adding more as we progress.
Pantech Burst CM10 Discussion thread <----Use this to ask questions. This thread is for development only
Pantech Burst Forum
Are you a dev? want to help the burst in its custom development journey? JOIN THE CHAT!!!
http://webchat.freenode.net/?channels=#burstroot
mifl said:
For anyone who wants to contribute to the project, I created an organization on Github: https://github.com/PrestoTeam.
Here have been added the five repositories needed to work:
https://github.com/PantechDevTeam/android_device_pantech_presto
https://github.com/PantechDevTeam/android_device_pantech_qcom-common
https://github.com/PantechDevTeam/android_device_pantech_msm8660-common
https://github.com/PantechDevTeam/android_kernel_pantech_p9070
https://github.com/PantechDevTeam/android_vendor_pantech_presto
These are the steps that I think we should follow:
Register an account on "Github". It is simple and there are many tutorials.
Make a backup of local files, to keep the changes you have made ​​each user.
Make a fork of the three repositories is on Github organization, and put in your local_manifest.xml.
Remove your "/ out" dir, $repo sync and compile again.
Well I think we can move faster. Without doubt the changes that each user has done on your computer. So each user, using the button "Pull Request", can send the modifications that wants, to repository team. We can discuss changes in the Github page or in this post.
I hope everyone likes this proposal.
You can try to add your Github account. Don't be angry, if it takes a little time before adding your account, I'm still learning.
------------------------------------------------------------------------------------
To begin working with the repositories, you can follow these links:
http://forum.xda-developers.com/showpost.php?p=35474318&postcount=245
http://forum.xda-developers.com/showpost.php?p=33642150&postcount=1
If you have questions about how to do any of the above steps ask here, we will try to help everyone to be resolved as quickly as possible.
Please friends, remember that this is a post to development our rom.
------------------------------------------------------------------------------------
Greetings.
Click to expand...
Click to collapse
Working / Bugs List yet -
Touch
Mobile Data Both 2G/3G , 4G isn't available here
Bluetooth
Wifi
Audio
Haptic feedback
Backlight on keys
Gallery
ADB
External SD support
Mount USB
GPS
All Apk's And Games worked fine also .
What Is essential to be fixed more to use on daily basis :-
Hardware Decoder , Though videos got played with software decoder .
Camera + flashlight
For a complete stable rom these things also needed to be fixed :-
proximity sensor ( half works )
Magneto sensor ( Needs to be tested )
more to come as we find them
***Last updated 3/15/2013 @ 12:00pm EST***
Compile Unofficial CyanogenMod 10 for Pantech Burst
To compile Unofficial CyanogenMod for Pantech Burst P9070 (presto), following the next steps.
1º - Prepare the Build Environment:
This step is based on the following tutorial: [Tutorial] Compile JB on Ubuntu - Thanks dastin1015.
A) Install Python and Git:
Code:
$ sudo apt-get install python
Code:
$ sudo apt-get install git-core
B) Install 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
C) Install required packages:
Building on Ubuntu 10.10/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
On newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
Building on Ubuntu 12.04/10:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
pngcrush optipng
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
D) Install Oracle Java 6:
To install Oracle Java 6 in Ubuntu via PPA: http://www.webupd8.org/2012/11/oracle-sun-java-6-installer-available.html
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
After the installation, check the version of java, using the command:
Code:
$ java -version
Output console:
Code:
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
Note: The installed version of java, may have been updated, but should be kept in version 1.6.XX
Verify the symlinks:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Output console:
Code:
lrwxrwxrwx 1 root root 39 ene 17 08:02 /etc/alternatives/java -> /usr/lib/jvm/java-6-oracle/jre/bin/java
lrwxrwxrwx 1 root root 45 ene 17 08:02 /etc/alternatives/java.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/java.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javac -> /usr/lib/jvm/java-6-oracle/bin/javac
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javac.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javac.1.gz
lrwxrwxrwx 1 root root 38 ene 17 08:02 /etc/alternatives/javadoc -> /usr/lib/jvm/java-6-oracle/bin/javadoc
lrwxrwxrwx 1 root root 48 ene 17 08:02 /etc/alternatives/javadoc.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javadoc.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javah -> /usr/lib/jvm/java-6-oracle/bin/javah
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javah.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javah.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javap -> /usr/lib/jvm/java-6-oracle/bin/javap
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javap.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javap.1.gz
lrwxrwxrwx 1 root root 42 ene 17 08:02 /etc/alternatives/java_vm -> /usr/lib/jvm/java-6-oracle/jre/bin/java_vm
lrwxrwxrwx 1 root root 41 ene 17 08:02 /etc/alternatives/javaws -> /usr/lib/jvm/java-6-oracle/jre/bin/javaws
lrwxrwxrwx 1 root root 47 ene 17 08:02 /etc/alternatives/javaws.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javaws.1.gz
lrwxrwxrwx 1 root root 34 ene 17 08:02 /etc/alternatives/jar -> /usr/lib/jvm/java-6-oracle/bin/jar
E) 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"
Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
2º - Create the Directories
You will need to set up some directories in your build environment.
Note: For the next steps, I modified the installation path sources, because in this way you can include other repositories (CAF, AOSP, etc ...).
To create them:
Code:
mkdir -p ~/bin
mkdir -p ~/android
mkdir -p ~/android/cyanogenmod
mkdir -p ~/android/cyanogenmod/jellybean
3º - Install the repo:
Enter the following to download make executable the "repo" binary:
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Note:
You may need to reboot for these changes to take effect.
4º - Install the CM10 Repository:
Now enter the following to initialize the CyanogenMod repository:
Code:
cd ~/android/cyanogenmod/jellybean/
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
repo sync -j16
5º - Obtain the presto device tree:
Create/Edit a file with the name roomservice.xml in the ".repo/local_manifests/" directory. To see this directory, you have to press Ctrl-H in your file manager.
Code:
mkdir -p ~/android/cyanogenmod/jellybean/.repo/local_manifests/
gedit ~/android/cyanogenmod/jellybean/.repo/local_manifests/roomservice.xml
Add these lines
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="PantechDevTeam/android_device_pantech_presto" path="device/pantech/presto" remote="github" revision="jellybean" />
<project name="PantechDevTeam/android_device_pantech_qcom-common" path="device/pantech/qcom-common" remote="github" revision="jellybean" />
<project name="PantechDevTeam/android_device_pantech_msm8660-common" path="device/pantech/msm8660-common" remote="github" revision="jellybean" />
<project name="PantechDevTeam/android_kernel_pantech_p9070" path="kernel/pantech/p9070" remote="github" revision="jellybean" />
</manifest>
Synchronize the repositories:
Code:
cd ~/android/cyanogenmod/jellybean/
repo sync
6º - Copy proprietary files:
Option 1:
To compile pantech presto, connect the device to the computer and ensure that ADB is working properly.
Code:
cd ~/android/cyanogenmod/jellybean/device/pantech/presto
./extract-files.sh
Option 2:
You can also include the repository with the necessary files for complilación:
Code:
gedit ~/android/cyanogenmod/jellybean/.repo/local_manifests/roomservice.xml
Add this line
Code:
<project name="PantechDevTeam/android_vendor_pantech_presto" path="vendor/pantech/presto" remote="github" revision="jellybean" />
Synchronize the repositories:
Code:
cd ~/android/cyanogenmod/jellybean/
repo sync
7º - Download RomManager
Note:
This only needs to be done when an update to RomManager is released. If you are-up-to date, you may skip to Building CyanogenMod.
Download RomManager which is needed by the build:
Code:
~/android/cyanogenmod/jellybean/vendor/cm/get-prebuilts
8º - Building CyanogenMod
First, check for updates in the source:
Code:
cd ~/android/cyanogenmod/jellybean/
repo sync
Now, the environment must be configured to build and the ROM compiled.
Code:
. build/envsetup.sh && brunch presto
9º - Install
If you're a little crazy, and at your own risk, you can complete the installation:
Copy your .zip file from ~/android/cyanogenmod/jellybean/out/target/product/presto/cm-10-XXXXX-UNOFFICIAL-presto.zip to the root of the SD card.
Optional: Download Google Apps for CyanogenMod 10 and place it on the root of the SD card.
Flash both of these .zip files from recovery.
-----------------------------------------------------------------------------------------
Update:
In CyanogenMod, ~/.repo/local_manifest.xml file has been changed to ~/.repo/local_manifests/roomservice.xml
----------------------------------------------------------------------------------------------------------------
Greetings.
mifl said:
Hello kagedws6:
I'm trying to porting CM7.
Today I got the first complete compilation, but I am beginning not know if I've done well.
I wish I could share the work and the big developers who are in this forum will help us improve it.
if I can write a little later I followed the steps.
Sorry for my bad English.
Click to expand...
Click to collapse
feel free to post as much information as possible here! The more people we can get involved the better and it will help bring even more people in! We have to let XDA know the burst won't fade away and maybe someday we'll get our own section!
mifl said:
Hello kagedws6:
I'm trying to porting CM7.
Today I got the first complete compilation, but I am beginning not know if I've done well.
I wish I could share the work and the big developers who are in this forum will help us improve it.
if I can write a little later I followed the steps.
Sorry for my bad English.
Click to expand...
Click to collapse
Have you tried installing it on the Burst and if so, will it boot?
mifl said:
Hello kagedws6:
I'm trying to porting CM7.
Today I got the first complete compilation, but I am beginning not know if I've done well.
I wish I could share the work and the big developers who are in this forum will help us improve it.
if I can write a little later I followed the steps.
Sorry for my bad English.
Click to expand...
Click to collapse
If you would like to post any files and any progress you've gotten up for review and tweeking please do. You can upload with dropbox or something like that and post the links up
kagedws6 said:
If you would like to post any files and any progress you've gotten up for review and tweeking please do. You can upload with dropbox or something like that and post the links up
Click to expand...
Click to collapse
I'm making some free time this upcoming week to work on this. The first thing I would like to do is recompile recovery and implement touch support.
One that is done I'll upload the crude device tree to start the rest from.
Sent from my PantechP9070 using xda app-developers app
Compile AOSP Codeaurora for Pantech Burst P9070 (presto)
To compile AOSP Codeaurora for Pantech Burst P9070 (presto) - "REVISION I", following the next steps.
1º - Prepare the Build Environment:
This step is based on the following tutorial: [Tutorial] Compile JB on Ubuntu - Thanks dastin1015.
A) Install Python and Git:
Code:
$ sudo apt-get install python
Code:
$ sudo apt-get install git-core
B) Install 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
C) Install required packages:
Building on Ubuntu 10.10/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 lib32readline-gplv2-dev schedtool lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils
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 newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
Building on Ubuntu 12.04/10:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \
pngcrush optipng
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
D) Install Oracle Java 6:
To install Oracle Java 6 in Ubuntu via PPA: http://www.webupd8.org/2012/11/oracle-sun-java-6-installer-available.html
Code:
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
After the installation, check the version of java, using the command:
Code:
$ java -version
Output console:
Code:
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)
Note: The installed version of java, may have been updated, but should be kept in version 1.6.XX
Verify the symlinks:
Code:
$ ls -la /etc/alternatives/java* && ls -la /etc/alternatives/jar
Output console:
Code:
lrwxrwxrwx 1 root root 39 ene 17 08:02 /etc/alternatives/java -> /usr/lib/jvm/java-6-oracle/jre/bin/java
lrwxrwxrwx 1 root root 45 ene 17 08:02 /etc/alternatives/java.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/java.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javac -> /usr/lib/jvm/java-6-oracle/bin/javac
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javac.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javac.1.gz
lrwxrwxrwx 1 root root 38 ene 17 08:02 /etc/alternatives/javadoc -> /usr/lib/jvm/java-6-oracle/bin/javadoc
lrwxrwxrwx 1 root root 48 ene 17 08:02 /etc/alternatives/javadoc.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javadoc.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javah -> /usr/lib/jvm/java-6-oracle/bin/javah
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javah.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javah.1.gz
lrwxrwxrwx 1 root root 36 ene 17 08:02 /etc/alternatives/javap -> /usr/lib/jvm/java-6-oracle/bin/javap
lrwxrwxrwx 1 root root 46 ene 17 08:02 /etc/alternatives/javap.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javap.1.gz
lrwxrwxrwx 1 root root 42 ene 17 08:02 /etc/alternatives/java_vm -> /usr/lib/jvm/java-6-oracle/jre/bin/java_vm
lrwxrwxrwx 1 root root 41 ene 17 08:02 /etc/alternatives/javaws -> /usr/lib/jvm/java-6-oracle/jre/bin/javaws
lrwxrwxrwx 1 root root 47 ene 17 08:02 /etc/alternatives/javaws.1.gz -> /usr/lib/jvm/java-6-oracle/man/man1/javaws.1.gz
lrwxrwxrwx 1 root root 34 ene 17 08:02 /etc/alternatives/jar -> /usr/lib/jvm/java-6-oracle/bin/jar
E) 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"
Save the file and close it and then issue this command:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
2º - Create the Directories
You will need to set up some directories in your build environment.
To create them:
Code:
$ mkdir -p ~/bin
$ mkdir -p ~/android
$ mkdir -p ~/android/codeaurora
$ mkdir -p ~/android/codeaurora/ics
Note:
For this step, I modified the installation path sources, because in this way you can include other repositories (CyanogenMod, AOSP, etc ...).
3º - Install the repo:
Enter the following to download make executable the "repo" binary:
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Note:
You may need to reboot for these changes to take effect.
4º - Install the Codeaurora ICS Repository:
Now enter the following to initialize the Codeaurora repository:
Code:
cd ~/android/codeaurora/ics/
$ repo init -u git://codeaurora.org/platform/manifest.git -b ics
$ repo sync -j16
Note:
Remember that the repository, usually requests a username and password.
5º - Obtain proprietary kernel:
Create a file with the name local_manifest.xml in the ".repo" directory. To see this directory, you have to press Ctrl-H in your file manager.
Code:
$ gedit ~/android/codeaurora/ics/.repo/local_manifest.xml.
Add these lines
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="aosp" fetch="https://android.googlesource.com/"/>
<remote name="github" fetch="https://github.com/"/>
<!-- Kernel Pantech presto -->
<remove-project name="kernel/msm"/>
<project name="mifl/android_kernel_pantech_p9070" path="kernel" remote="github" revision="master"/>
</manifest>
Note:
The third and fourth lines, allows you to add repositories: Github and AOSP.
The sixth and seventh lines, if all goes well, delete the repository kernel, and replace it with the official Pantech kernel.
6º - Copy proprietary files:
Unzip the file "vendor-blobs-rev2.zip" attached to the end of the post. In the root: device/qcom/msm8660_surf
To extract proprietary files, connect the device to the computer and ensure that ADB is working properly.
Code:
$ cd ~/android/codeaurora/ics/device/qcom/msm8660_surf
$ ./extract-files.sh
Note:
The file "proprietary-files.txt" can fail depending on the version of Android, you have installed on your device.You should add to the list, You should add to the list the files that are necessary for compilation.
7º - Necessary changes:
These are needed to include the files created in the previous step.
Add these lines, if not already included, to the end of the file: "device/qcom/msm8660_surf/msm8660_surf.mk":
Code:
#============================================
# Also get non-open-source specific aspects if available
$(call inherit-product, vendor/qcom/proprietary/common/msm8660_surf/device-vendor.mk)
Add these lines, if not already included, to the end of the file: "device/qcom/msm8660_surf/BoardConfig.mk":
Code:
#============================================
# Also get non-open-source specific aspects if available
-include vendor/qcom/proprietary/common/msm8660_surf/BoardConfigVendor.mk
Note:
Check each time you synchronize the repository, the lines are on your site.
In these two files, you can include your own code, for example (BT, WI-FI, etc ...).
Part of what is necessary, changing the routes vendor directory, you can find it here: https://github.com/mifl/android_device_pantech_presto.
Working method:
Changes for BoardConfig.mk files, you must make in the file "vendor/qcom/proprietary/common/msm8660_surf/board-presto.mk".
Changes for device.mk files, you must make in the file "vendor/qcom/proprietary/common/msm8660_surf/device-presto.mk".
These two files are created by the script ". / Extract-files.sh". If the files exist, when you run the script again, does not modify the changes you in them before.
Example:
Copy from here: https://github.com/mifl/android_device_pantech_presto/blob/jellybean/BoardConfig.mk:
Code:
# Headers path
TARGET_SPECIFIC_HEADER_PATH: = device/pantech/presto/include
In "vendor/qcom/proprietary/common/msm8660_surf/board-presto.mk", paste and replace the route. It should look like this:
Code:
# Headers path
TARGET_SPECIFIC_HEADER_PATH: = vendor/qcom/proprietary/common/msm8660_surf/include
Now copy the files in the folder /include. To download the entire repository: https://github.com/mifl/android_device_pantech_presto/archive/jellybean.zip
8º - Building ROM
First, check for updates in the source:
Code:
$ cd ~/android/codeaurora/ics/
$ repo sync
Now, the environment must be configured to build and the ROM compiled.
Code:
$ source build/envsetup.sh
$ lunch msm8660_surf-userdebug
$ make -j4 KERNEL_DEFCONFIG=msm8660-perf-PRESTO_TP20_defconfig
9º - Install
If you're a little crazy, and at your own risk, you can complete the installation:
Copy your .zip file from ~/android/codeaurora/ics/out/target/product/msm8660_surf/msm8660_surf-ota-XXX.zip to the root of the SD card.
Flash both of these .zip files from recovery.
Note:
This last step is unconfirmed, google search for how to.
-----------------------------------------------------------------------------------------
Final note
This guide is part of a project I started some time ago. If you find errors, make every effort to solve them by yourself.
To find more information visit:
https://www.codeaurora.org/gitweb/quic/la/.
https://www.codeaurora.org/xwiki/bin/QAEP/.
Greetings.
P.D.:
Specially dedicated to our friend "mrakattack". I hope this guide will be useful.
mifl said:
Hi
In the new project "Cyanogen-presto" on Google Project Hosting, can download the files, used by me to compile CM7.
The download link is: CM presto_device
I hope to update the project, but my job don´t leaves me time.
Join to the project, together we can do a good job
A greeting.
Click to expand...
Click to collapse
I want to thank you so much for taking the steps needed to get this started and to anyone else reading this that has been helping. I have made a few attempts by myself but with as little as I know I haven't gotten them to install threw cwm which is probably a good thing as I may have bricked my phone if I had been sucessful. Hopefully with this we will be able to progress and also get noticed in the process.
kagedws6 said:
I want to thank you so much for taking the steps needed to get this started and to anyone else reading this that has been helping. I have made a few attempts by myself but with as little as I know I haven't gotten them to install threw cwm which is probably a good thing as I may have bricked my phone if I had been sucessful. Hopefully with this we will be able to progress and also get noticed in the process.
Click to expand...
Click to collapse
Couldn't agree more! Thank you mifl! It would seem you've put a lot of work into this, thank you.
Sent from my PantechP9070 using xda app-developers app
stevotdo said:
Couldn't agree more! Thank you mifl! It would seem you've put a lot of work into this, thank you.
Sent from my PantechP9070 using xda app-developers app
Click to expand...
Click to collapse
ty too stevotdo! for all the work you've done to date and also that you've already given urself to do in the future!
stevotdo said:
Couldn't agree more! Thank you mifl! It would seem you've put a lot of work into this, thank you.
Click to expand...
Click to collapse
kagedws6 said:
I want to thank you so much for taking the steps needed to get this started and to anyone else reading this that has been helping. I have made a few attempts by myself but with as little as I know I haven't gotten them to install threw cwm which is probably a good thing as I may have bricked my phone if I had been sucessful. Hopefully with this we will be able to progress and also get noticed in the process.
Click to expand...
Click to collapse
Thanks guys.
I will try continue working: a guide on how to be compiled and advance in the compatibility of the ROM.
But I have to learn to handle the tools of Google Project Hosting, to include sources files, and use the Wiki for tutorials.
Not answer many post, because the lack of English makes me take long to answer them.
If possible I would like people to collaborate on the project. Providing corrections, suggestions and modifications to the code of the ROM.
A greeting.
mifl said:
Thanks guys.
I will try continue working: a guide on how to be compiled and advance in the compatibility of the ROM.
But I have to learn to handle the tools of Google Project Hosting, to include sources files, and use the Wiki for tutorials.
Not answer many post, because the lack of English makes me take long to answer them.
If possible I would like people to collaborate on the project. Providing corrections, suggestions and modifications to the code of the ROM.
A greeting.
Click to expand...
Click to collapse
Need to change the prebuilts and the fstabs. the partition information is wrong in the prebuilts and in the emmc fstab
davepmer said:
Need to change the prebuilts and the fstabs. the partition information is wrong in the prebuilts and in the emmc fstab
Click to expand...
Click to collapse
well I changed the prebuilts and all the partition info I could find. it compiles fine, but will not even bring up adb. not really sure what is wrong.
here are the device files I tried to fix. http://www.4shared.com/zip/0obdiB7y/presto_device_fixed.html?refurl=d1url
fyi I did not flash the boot.img, not brave enough
davepmer said:
well I changed the prebuilts and all the partition info I could find. it compiles fine, but will not even bring up adb. not really sure what is wrong.
here are the device files I tried to fix. http://www.4shared.com/zip/0obdiB7y/presto_device_fixed.html?refurl=d1url
fyi I did not flash the boot.img, not brave enough
Click to expand...
Click to collapse
added your files to the googlecode site
davepmer said:
well I changed the prebuilts and all the partition info I could find. it compiles fine, but will not even bring up adb. not really sure what is wrong.
here are the device files I tried to fix. http://www.4shared.com/zip/0obdiB7y/presto_device_fixed.html?refurl=d1url
fyi I did not flash the boot.img, not brave enough
Click to expand...
Click to collapse
Believe that you need a valid cm7 ramdisk in the boot.img for it to start loading. If you aren't sure about the precompiled kernel you could always split the boot.img and insert your own.
Better yet you could reboot to fastboot and "fastboot boot boot.img" with the cm7 boot.img and on the next boot it will revert to the original boot.img
Sent from my PantechP9070 using xda app-developers app
Hi
The first thank all the work they are doing.
As I said previously my work would begin development of the ROM, and so we could all collaborate.
To add further modifications as soon as possible to the project file and not saturate, they appreciate it used a standard format.
Example:
In the file "recovery.fstab" in the root directory: mmcblk0p14 is data (it has 13)
Change:
Code:
/data ext4 /dev/block/mmcblk0p13
By the following:
Code:
/data ext4 /dev/block/mmcblk0p14
Following this format, the members of the project: "kagedws6", like myself, or anyone who wants to join the project, we add the change as soon as possible.
Thank you all again.
A greeting.
stevotdo said:
Believe that you need a valid cm7 ramdisk in the boot.img for it to start loading. If you aren't sure about the precompiled kernel you could always split the boot.img and insert your own.
Better yet you could reboot to fastboot and "fastboot boot boot.img" with the cm7 boot.img and on the next boot it will revert to the original boot.img
Sent from my PantechP9070 using xda app-developers app
Click to expand...
Click to collapse
when I try to fastboot boot.boot.img I get an image incomplete error. also the size of my boot.img is wrong, it is way too small. My compiled boot.img is 4.6 megs in size. the boot.img from my cwm recovery backup is 10.5 megs. I am missing something in the compiled kernel.
davepmer said:
when I try to fastboot boot.boot.img I get an image incomplete error. also the size of my boot.img is wrong, it is way too small. My compiled boot.img is 4.6 megs in size. the boot.img from my cwm recovery backup is 10.5 megs. I am missing something in the compiled kernel.
Click to expand...
Click to collapse
I ran into that a couple months ago. I still have no idea how to remedy that. I just got done compiling so maybe I can try to figure out what's going on.
I know that the zimage is 4.5 meg (same as when you split the stock boot.img) so I'm wandering what the secret sauce here is we are missing
Edit: I also think it would be worth tearing down the prestoroot.img also. What ever the secret sauce is, it has to be in there too. Since it is the only modified boot.img that we know of that has booted on this thing.
Sent from my PantechP9070 using xda app-developers app
stevotdo said:
I ran into that a couple months ago. I still have no idea how to remedy that. I just got done compiling so maybe I can try to figure out what's going on.
I know that the zimage is 4.5 meg (same as when you split the stock boot.img) so I'm wandering what the secret sauce here is we are missing
Edit: I also think it would be worth tearing down the prestoroot.img also. What ever the secret sauce is, it has to be in there too. Since it is the only modified boot.img that we know of that has booted on this thing.
Sent from my PantechP9070 using xda app-developers app
Click to expand...
Click to collapse
is the ramdisk.gz missing? from what I understand both the zImage and the ramdisk have to be bundled in the boot.img.
*DEV TOOLS* - Pack & Repack Boot.img Files - for Windows USERS shows how to pull it apart and repack it in windows. I'm just going threw the excruciating long download of cygwin

Categories

Resources