[DEV] - Compile Unofficial CM10 for Pantech Flex - Miscellaneous Android Development

To compile Unofficial CyanogenMod for Pantech Flex P8010 (oscar), 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 oscar 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="mifl/android_device_pantech_oscar" path="device/pantech/oscar" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_qcom-common" path="device/pantech/qcom-common" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_msm8960-common" path="device/pantech/msm8960-common" remote="github" revision="jellybean" />
<project name="mifl/android_kernel_pantech_p8010" path="kernel/pantech/p8010" remote="github" revision="jellybean" />
</manifest>
Synchronize the repositories:
Code:
cd ~/android/cyanogenmod/jellybean/
repo sync
6º - Copy proprietary files:
Option 1:
To compile Pantech oscar, connect the device to the computer and ensure that ADB is working properly.
Code:
cd ~/android/cyanogenmod/jellybean/device/pantech/oscar
./extract-files.sh
Option 2:
You can also include the repository with the necessary files for compilation:
Code:
gedit ~/android/cyanogenmod/jellybean/.repo/local_manifests/roomservice.xml
Add this line:
Code:
<project name="mifl/android_vendor_pantech_oscar" path="vendor/pantech/oscar" 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:
cd ~/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 oscar
9º - Compiled files:
Files generated in the compilation are in the /out directory, the build file is:
~/android/cyanogenmod/jellybean/out/target/product/oscar/cm-10-XXXXX-UNOFFICIAL-oscar.zip
-------------------------------
I hope that more users try to compile the ROM, and report bugs they find. Any help is greatly appreciated.
Greetings.

**Reserved for future updates**

**Reserved for future updates**

**Reserved for future updates**

I followed your instructions to the lleter, and this is what i get.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist.
Device oscar not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/Cyanogen
Repository for oscar not found in the CyanogenMod Github repository list. If this is in error, you may need to manuato your local_manifests/roomservice.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist.
** Don't have a product spec for: 'cm_oscar'
** Do you have the right repo manifest?

superbart007 said:
I followed your instructions to the lleter, and this is what i get.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist.
Device oscar not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/Cyanogen
Repository for oscar not found in the CyanogenMod Github repository list. If this is in error, you may need to manuato your local_manifests/roomservice.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist.
** Don't have a product spec for: 'cm_oscar'
** Do you have the right repo manifest?
Click to expand...
Click to collapse
Sorry:
There is an error in the wording of post. The kernel repository was wrong, must be changed p9070 for P8010.
Code:
<project name="mifl/android_kernel_pantech_p8010" path="kernel/pantech/p8010" remote="github" revision="jellybean" />
The rest of the repositories are well, and have been updated today and compiled fine.
----------------------------------------------------------------------------------------------------------------
Update:
In CyanogenMod Source, ~/.repo/local_manifest.xml file has been changed to ~/.repo/local_manifests/roomservice.xml
To adapt to change into the your "~/.repo" dir, must create the dir "local_manifests", rename the file local_manifest.xml to roomservice.xml, and move it into the new dir.
----------------------------------------------------------------------------------------------------------------
Greetings.

Ok tried our again still no joy. But also your instructions never mention how the dir pantech, and oscar are made, and when i goto build it say it can't find the mk file in the /devices/pantech/oscar.
Sent from my PantechP8010 using xda app-developers app

superbart007 said:
Ok tried our again still no joy. But also your instructions never mention how the dir pantech, and oscar are made, and when i goto build it say it can't find the mk file in the /devices/pantech/oscar.
Sent from my PantechP8010 using xda app-developers app
Click to expand...
Click to collapse
Projects in the file roomservice.xml have this structure:
Code:
<project name="mifl/android_device_pantech_oscar" path="device/pantech/oscar" remote="github" revision="jellybean" />
Each of the fields is:
name: name of the repository.
path: directory where the files are placed.
remote: git server
Revision: version (branch) to synchronize.
Each time you add a line to your roomservice.xml, you must synchronize the repositories:
Code:
cd ~/android/cyanogenmod/jellybean/
repo sync
Greetings.

Ok thank you, I'm new at doing this, and I'm trying to learn.
Sent from my PantechP8010 using xda app-developers app

Berry does this compile include gapps pu or do i need to use a jb one from goo.im
Sent from my PantechP8010 using xda app-developers app

superbart007 said:
Berry does this compile include gapps pu or do i need to use a jb one from goo.im
Sent from my PantechP8010 using xda app-developers app
Click to expand...
Click to collapse
You have to download Google Apps and flash from CWM Recovery.
Greetings.

Ok cool thanks
Sent from my PantechP8010 using xda app-developers app

Refactor to use repo msm8960-common
Changes in the repositories structure:
The repositories are needed:
Code:
android_device_pantech_oscar
| - android_device_pantech_qcom-common
| - android_device_pantech_msm8960-common
| - android_kernel_pantech_p8010
| - android_vendor_pantech_oscar
To complete this refactoring, you need to add a repository to your file: ~/.repo/local_manifests/roomservice.xml:
Code:
<project name="mifl/android_device_pantech_msm8960-common" path="device/pantech/msm8960-common" remote="github" revision="jellybean" />
And synchronize:
Code:
repo sync
Greetings.

mifl said:
Changes in the repositories structure:
The repositories are needed:
Code:
android_device_pantech_oscar
| - android_device_pantech_qcom-common
| - android_device_pantech_msm8960-common
| - android_kernel_pantech_p8010
| - android_vendor_pantech_oscar
To complete this refactoring, you need to add a repository to your file: ~/.repo/local_manifest/roomservice.xml:
Code:
<project name="mifl/android_device_pantech_msm8960-common" path="device/pantech/msm8960-common" remote="github" revision="jellybean" />
And synchronize:
Code:
repo sync
Greetings.
Click to expand...
Click to collapse
im getting this error message on step 8
Device oscar not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for oscar not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_oscar'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
Please help

atadres said:
im getting this error message on step 8
Device oscar not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Repository for oscar not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml.
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/oscar/cm.mk]]: "device/*/oscar/cm.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_oscar'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
Please help
Click to expand...
Click to collapse
Can you write the contents of your file: ~/.repo/local_manifest/roomservice.xml
Greetings.

mifl said:
Can you write the contents of your file: ~/.repo/local_manifest/roomservice.xml
Greetings.
Click to expand...
Click to collapse
sure heres what it says
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="mifl/android_device_pantech_oscar" path="device/pantech/oscar" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_msm8960-common" path="device/pantech/msm8960-common" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_qcom-common" path="device/pantech/qcom-common" remote="github" revision="jellybean" />
<project name="mifl/android_kernel_pantech_p8010" path="kernel/pantech/p8010" remote="github" revision="jellybean" />
</manifest>

atadres said:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="mifl/android_device_pantech_oscar" path="device/pantech/oscar" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_msm8960-common" path="device/pantech/msm8960-common" remote="github" revision="jellybean" />
<project name="mifl/android_device_pantech_qcom-common" path="device/pantech/qcom-common" remote="github" revision="jellybean" />
<project name="mifl/android_kernel_pantech_p8010" path="kernel/pantech/p8010" remote="github" revision="jellybean" />
</manifest>
Click to expand...
Click to collapse
The file seems fine.
To ensure:
Code:
cp ~/android/cyanogenmod/jellybean/.repo/local_manifests/roomservice.xml ~/android/cyanogenmod/jellybean/.repo/local_manifest.xml
Synchronize the repository:
Code:
repo sync
If synchronizing the repository, you get an error, saying it has duplicate projects, you should delete the file: local_manifest.xml.
Greetings.

Ok got it build with no errors, but it just boot loops at the 1st showing of pantech. It could be that you are using cm10.1(jelly bean), and that there is only ics available for this phone. Could you post the changes to build cm9 and then I could give that a try.

superbart007 said:
Ok got it build with no errors, but it just boot loops at the 1st showing of pantech. It could be that you are using cm10.1(jelly bean), and that there is only ics available for this phone. Could you post the changes to build cm9 and then I could give that a try.
Click to expand...
Click to collapse
Before installing the rom, have you applied?
Wipe data/factory reset;
Wipe cache partition;
Advanced -> Wipe dalvik cache;
Greetings.

Yes wiped every thing.
Sent from my PantechP8010 using xda app-developers app

Related

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

[GUIDE/ROM] Project Rookie - How to's - Building ROMs, Kernels & Mods [TEAM ROOK]

Welcome to Project Rookie:
This is the unofficial guide to ROM, Kernel and AROMA installer building. This guide is primarily geared toward building for the AT&T Samsung Galaxy Skyrocket, but as a general guide it will work for all devices (you just need to know where to plug in your device specific repos and commands). The intended audience is for individuals with basic knowledge of linux, a degree of knowledge in basic troubleshooting and a general curiosity for how this stuff works.
This thread is extraordinarily long and is jam packed full of useful information. Please SEARCH the thread before asking questions related to building. If you cannot find your answer, or need additional clarification then don't hesitate to ask. Everyone participating here is knowledgeable and helpful to new builders, so don't abuse it – any flaming will immediately be reported to the moderation team.
In the very least, read through the first posts of this thread in detail, at least twice, before you start building and running commands to get setup.
On one hand, it should go without saying that if you have no knowledge and/or experience with building, java, C++, and various other tools, you probably shouldn't begin here. At the same time, it is possible to learn to build, provided you can read, follow directions, and aren't too lazy to RESEARCH.
OH YEAH, and you better have patience. This isn't easy. It will be work. The quickest way to get flamed is to show yourself to be lazy. If you think that with a couple clicks, you can have your own flashy ROM, forget it. But, if you do want to learn, this is a good place to get started. Nobody here has an ego about this, and we all want to help. But, we all struggled to get to a successful point, and lazy, unmotivated people just irritate those who have had to learn from scratch too. This is an ever-changing thread; team members are working on or currently building all types of ROMs, kernels and other MODs like AROMA installer. Tutorials will be posted for any new thing learned and built as time and space allow. ALL ARE WELCOME AND ALL QUESTIONS ARE TOO. But, seriously, if it's a really ridiculous one, we reserve the right to screw with you about it.
Thread Disclaimer:
The releases, instructions, and extras posted here are to be used at your own risk. We work hard to provide good, workable knowledge and builds, and test our work before posting it up front. Nevertheless, no one is responsible if you lose your files, brick your device, or inadvertently cause a nuclear war. If you are seeking absolute perfection, RUN NOW WHILE YOU STILL CAN!!
Thread Table of Contents:
Post 1:
- Linux system configuration (Ubuntu 12.04 & 13.04)
- ROM building instructions for CM10.2, AOKP, PACMAN
Post 2:
- Instructions for kernel building, along with other additions, mods, and helpful tutorials
Post 3:
- Misc topics
- Team Rookie ROM & Kernel Distributions
- Links to related topics and specific posts of interest
The tutorial for building your own AROMA installer can be found here: http://forum.xda-developers.com/showpost.php?p=34886089&postcount=2708​
GETTING STARTED
Setting up your environment :
This is a combination of the steps offered in the threads 'Compile JB on Ubuntu' and TeamChopsticks CyanogenMod for Hercules and Skyrocket.
Special thanks to dastin1015 and TeamChopsticks.
Tip: Allocate at least 75 gigs of space for the building of ONE ROM. If you install ccache, you will want 90. A complete build directory can use as much as 100 gigs, so make sure you have plenty of room. One of the ways to fail out a build is too use all of your partition before acquiring all the necessary files.
For OSX Mavericks users, check out this thread for getting setup: http://forum.xda-developers.com/showthread.php?t=2510898
Here are the steps from those 2 tutorials in correct order:
1) You need the following:
-JDK 6 if you wish to build Jellybean.
Code:
[COLOR="Black"]$ sudo apt-get install openjdk-6-jdk[/COLOR]
-Python 2.4 -- 2.7, which you can download from python.org. Or:
Code:
[COLOR="black"]$ sudo apt-get install python[/COLOR]
-Git 1.7 or newer. You can find it at git-scm.com. Or:
Code:
[COLOR="black"]$ sudo apt-get install git-core[/COLOR]
-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 – this tutorial assumes you've done that as well.
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:
[COLOR="black"]# Android tools
export PATH=${PATH}:~/android-sdk/tools
export PATH=${PATH}:~/android-sdk/platform-tools
export PATH=${PATH}:~/bin[/COLOR]
Find your .profile file and add this at the bottom of the file:
Code:
[COLOR="black"]PATH="$HOME/android-sdk/tools:$HOME/android-sdk/platform-tools:$PATH"[/COLOR]
You have now successfully installed the Android SDK.
To check for updates issue this into your terminal:
Code:
[COLOR="black"]$ android[/COLOR]
2) Install required packages. 64-bit (recommended)
Code:
[COLOR="black"]$ 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 lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils lzop schedtool[/COLOR]
On newer versions of Ubuntu such as 11.10 you may need to do the following:
Code:
[COLOR="black"]$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so[/COLOR]
Code:
[COLOR="black"]$ 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[/COLOR]
3) Configure your USB.
Code:
[COLOR="black"]$ gksudo gedit /etc/udev/rules.d/51-android.rules[/COLOR]
Inside of this blank text file insert:
Code:
[COLOR="black"]#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"[/COLOR]
4) Save the file and close it and then issue this command:
Code:
[COLOR="black"]$ sudo chmod a+r /etc/udev/rules.d/51-android.rules[/COLOR]
5) Install the repo:
Code:
[COLOR="black"]$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo[/COLOR]
Create your work directory:
Code:
[COLOR="black"]mkdir ~/"your directory name here" For example: mkdir ~/cm10
cd ~/cm10[/COLOR]
This is what you need to begin building. From here, the various types of ROM styles can be built with a few additions and commands.
UNOFFICIAL CM10.2 :
Initialize the work directory:
Code:
[COLOR="Black"]repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2[/COLOR]
Create and edit roomservice.xml in .repo: gedit /.repo/local_manifests/roomservice.xml
Code:
[COLOR="Black"]<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_skyrocket" path="device/samsung/skyrocket" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_samsung_hercules" path="device/samsung/hercules" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_samsung_msm8660-common" path="device/samsung/msm8660-common" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_kernel_samsung_msm8660-common" path="kernel/samsung/msm8660-common" remote="github" revision="cm-10.2" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_samsung_celox-common" path="device/samsung/celox-common" remote="github" revision="cm-10.2" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" revision="cm-10.2" />
</manifest>[/COLOR]
Code:
[COLOR="black"]repo sync -j16 (this may take a few hours as it downloads ~17GB of source)[/COLOR]
To Build:
Code:
[COLOR="black"]. build/envsetup.sh (notice the period and space)
vendor/cm/get-prebuilts
repo sync -j16
[/color]
For Skyrocket:
Code:
$ CM_EXTRAVERSION=mycustombuild CM_SNAPSHOT=1 brunch cm_skyrocket-userdebug
or
$ breakfast cm_skyrocket-userdebug
$ brunch cm_skyrocket-userdebug
For Hercules:
Code:
CM_EXTRAVERSION=mycustombuild CM_SNAPSHOT=1 brunch cm_hercules-userdebug
**After you build, your repo files will remain in place. This will cause your future builds to be based from that specific time of additions and merges. Wiping or 'cleaning' your files often will ensure that your builds are the most up-to-date. To be sure that you start with a fresh repo at the beginning of every build, you should 'make clean' often. For example:
Code:
[COLOR="Black"]$ cd ~/cm10
$ make clean (or 'make clobber' without quotes)[/COLOR]
If you want to have your 'cleaning service' done as part of your process, this is a way to achieve it:
Code:
[COLOR="black"]$ cd cm10
$ repo sync -j16
$ . build/envsetup.sh && make clobber && CM_EXTRAVERSION= mycustombuild CM_SNAPSHOT=1 brunch cm_skyrocket-userdebug[/COLOR]
This will make the cleaning process automatic.
The Git can be found here:
https://github.com/CyanogenMod
UNOFFICIAL CM11.0 :
The steps are essentially the same as CM10.2 ... just have to make a couple changes to your git init and your roomservice.xml as follows:
Code:
[COLOR="Black"]repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0[/COLOR]
Create and edit roomservice.xml in .repo: gedit /.repo/local_manifests/roomservice.xml
Code:
[COLOR="Black"]<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_skyrocket" path="device/samsung/skyrocket" remote="github" />
<project name="CyanogenMod/android_device_samsung_hercules" path="device/samsung/hercules" remote="github" />
<project name="CyanogenMod/android_device_samsung_msm8660-common" path="device/samsung/msm8660-common" remote="github" />
<project name="CyanogenMod/android_kernel_samsung_msm8660-common" path="kernel/samsung/msm8660-common" remote="github" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="github" />
<project name="CyanogenMod/android_device_samsung_celox-common" path="device/samsung/celox-common" remote="github" />
<project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github" />
</manifest>[/COLOR]
The remaining steps to build are the same ... breakfast, lunch, brunch etc.
UNOFFICIAL AOKP :
This is a set of steps to set up and run an AOKP build. Special thanks to m4570d0n for taking the time to share his detailed instructions, and R41NS for his assistance in providing some simplifications. Buy those guys a beer if you see them!
It's actually pretty close to CM. It's just several tiny changes. I made some changes that are not necessary but did so to conserve space. With CM's manifest setup, you don't have to worry about downloading a bunch of stuff you don't need but with AOKP, by default you're downloading all the kernels and /device/whatever for pretty much all devices and I didn't want to do that so here's what I did.
1)
Code:
[COLOR="Black"]repo init -u https://github.com/AOKP/platform_manifest.git -b jb-mr1[/COLOR]
2) Create local_manifest.xml in .repo with the following in it:
Code:
[COLOR="black"]
[/COLOR]
3) Next, do a repo sync.
4) Edit vendorsetup.sh to have the following in it :
Code:
[COLOR="Black"]add_lunch_combo aokp_skyrocket-userdebug[/COLOR]
Also, open device.mk and change it to this :
Code:
[COLOR="black"]$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
## The gps config appropriate for this device
PRODUCT_COPY_FILES += device/common/gps/gps.conf_US_SUPL:system/etc/gps.conf
## (2) Also get non-open-source specific aspects if available
$(call inherit-product-if-exists, vendor/samsung/skyrocket/skyrocket-vendor.mk)
## misc
PRODUCT_PROPERTY_OVERRIDES += \
dalvik.vm.dexopt-flags=m=v,o=y
## overlays
DEVICE_PACKAGE_OVERLAYS += device/samsung/hercules/overlay
# Device uses high-density artwork where available
PRODUCT_AAPT_CONFIG := normal hdpi
PRODUCT_AAPT_PREF_CONFIG := hdpi
# Hardware
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml
# Ramdisk
PRODUCT_COPY_FILES += \
device/samsung/skyrocket/ramdisk/init.qcom.rc:root/init.qcom.rc \
device/samsung/skyrocket/ramdisk/init.qcom.sh:root/init.qcom.sh \
device/samsung/skyrocket/ramdisk/init.qcom.usb.rc:root/init.qcom.usb.rc \
device/samsung/skyrocket/ramdisk/init.qcom.usb.sh:root/init.qcom.usb.sh \
device/samsung/skyrocket/ramdisk/init.target.rc:root/init.target.rc \
device/samsung/skyrocket/ramdisk/ueventd.rc:root/ueventd.rc \
device/samsung/skyrocket/ramdisk/init.emmc.rc:root/init.emmc.rc \
device/samsung/skyrocket/fstab.qcom:root/fstab.qcom
# BT firmware
PRODUCT_COPY_FILES += \
device/samsung/skyrocket/firmware/bcm4330B1.hcd:system/etc/firmware/bcm4330B1.hcd
# Vold
PRODUCT_COPY_FILES += \
device/samsung/skyrocket/vold.fstab:system/etc/vold.fstab
# QRNGD
PRODUCT_PACKAGES += qrngd
# common msm8660
$(call inherit-product, device/samsung/msm8660-common/msm8660.mk)
$(call inherit-product, frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk)
$(call inherit-product-if-exists, vendor/samsung/skyrocket/skyrocket-vendor.mk)
#WIFI_BAND := 802_11_ABG
#$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4330/device-bcm.mk)
# NFC
BOARD_HAVE_NFC := true[/COLOR]
**With the exception of making the change to use the Hercules overlay, the other edits to device.mk are optional, and will cause different results with the different options you use.
5)Go to vendor/AOKP/products and create a skyrocket.mk file that is essentially copied from the hercules.mk. :
Code:
[COLOR="black"]# Inherit AOSP device configuration for skyrocket.
$(call inherit-product, device/samsung/skyrocket/full_skyrocket.mk)
# Inherit common product files.
$(call inherit-product, vendor/aokp/configs/common_phone.mk)
# Inherit GSM common stuff
$(call inherit-product, vendor/aokp/configs/gsm.mk)
# skyrocket overlay
PRODUCT_PACKAGE_OVERLAYS += vendor/aokp/overlay/hercules
# Setup device specific product configuration.
PRODUCT_NAME := aokp_skyrocket
PRODUCT_BRAND := Samsung
PRODUCT_DEVICE := skyrocket
PRODUCT_MODEL := SGH-I727
PRODUCT_MANUFACTURER := Samsung
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=SGH-I727 TARGET_DEVICE=SGH-I727 BUILD_FINGERPRINT="samsung/SGH-I727/SGH-I727:4.1.1/IMM76D/UCLF6:user/release-keys" PRIVATE_BUILD_DESC="SGH-I727-user 4.1.1 IMM76D UCLF6 release-keys"
# boot animation
PRODUCT_COPY_FILES += \
vendor/aokp/prebuilt/bootanimation/bootanimation_480_800.zip:system/media/bootanimation.zip[/COLOR]
Then go to vendor/AOKP and
6) Add the skyrocket.mk file in Step 5 to vendor/AOKP/products/AndroidProducts.mk :
Code:
[COLOR="black"]PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/captivatemtd.mk \
$(LOCAL_DIR)/crespo.mk \
$(LOCAL_DIR)/crespo4g.mk \
$(LOCAL_DIR)/d2tmo.mk \
$(LOCAL_DIR)/d2usc.mk \
$(LOCAL_DIR)/d2vzw.mk \
$(LOCAL_DIR)/evita.mk \
$(LOCAL_DIR)/galaxysmtd.mk \
$(LOCAL_DIR)/fascinatemtd.mk \
$(LOCAL_DIR)/galaxysmtd.mk \
$(LOCAL_DIR)/grouper.mk \
$(LOCAL_DIR)//skyrocket.mk \
$(LOCAL_DIR)/hercules.mk \
$(LOCAL_DIR)/i9300.mk \
$(LOCAL_DIR)/i9100.mk \
$(LOCAL_DIR)/i9100g.mk \
$(LOCAL_DIR)/maguro.mk \
$(LOCAL_DIR)/n7000.mk \
$(LOCAL_DIR)/p3100.mk \
$(LOCAL_DIR)/p3110.mk \
$(LOCAL_DIR)/p3113.mk \
$(LOCAL_DIR)/p5100.mk \
$(LOCAL_DIR)/p5110.mk \
$(LOCAL_DIR)/p5113.mk \
$(LOCAL_DIR)/tf101.mk \
$(LOCAL_DIR)/toro.mk \
$(LOCAL_DIR)/toroplus.mk \
$(LOCAL_DIR)/vibrantmtd.mk[/COLOR]
7) In vendor/AOKP open vendorsetup.sh and add this :
Code:
[COLOR="black"]add_lunch_combo aokp_skyrocket-userdebug[/COLOR]
8) Go to https://github.com/TeamChopsticks/proprietary_vendor_samsung/downloads and select "Download as zip." After the download completes, open the archive and extract the "skyrocket" folder to /vendor/samsung.
or
8) cd to your home directory. Download the proprietary_vendor_samsung repo from Team Chopsticks and then copy the skyrocket directory to /vendor/samsung:
Code:
[COLOR="Black"]cd
git clone -b jellybean https://github.com/TeamChopsticks/proprietary_vendor_samsung.git
cp -r proprietary_vendor_samsung/skyrocket aokp/vendor/samsung[/COLOR]
9) Start building :
Code:
[COLOR="Black"]. build/envsetup.sh
lunch aokp_skyrocket-userdebug && mka bacon[/COLOR]
SLIMBEAN :
By popular demand, here is a set of steps for building Slimbean - Many thanks to onlychevys for taking the time to lay this out
To build Slim Bean, you do the same as cm10 only with their platform_manifest:
https://github.com/SlimRoms/platform_manifest
(The manifest code is too long to place here, sorry)
If you have the space on your hard drive, then you can copy the .repo file from cm10 or aokp etc (.repo is a hidden file,cntrl + h to see it) to another directory and delete the local_manifest in there.
Then:
Code:
[COLOR="Black"]repo init -u git://github.com/SlimRoms/platform_manifest.git -b jb4.2[/COLOR]
Copy this code to terminal while in that directory to initialize their repo.
Next:
Code:
[COLOR="black"]repo sync -j16[/COLOR]
**Copying the .repo saves about 3 plus hours of downloading aosp source.
Then you should be ready to build.
Start building :
Code:
[COLOR="Black"]. build/envsetup.sh
lunch slimbean_skyrocket-userdebug && mka bacon[/COLOR]
PAC-man :
This is a newer but very functional and well-liked compilation of three builds: Paranoid Android, CM, and AOKP. Here is a brief set of steps from the PAC git:
To get started with PAC-man, you'll need to get familiar with Git and Repo.
To initialize your local repository using the PAC-man trees, use a command like this:
Code:
[COLOR="Black"]repo init -u git://github.com/PAC-man/android.git -b cm-10.1[/COLOR]
Then to sync up:
Code:
[COLOR="black"]repo sync[/COLOR]
After the syncing process completes, you can run your build commands:
Code:
[COLOR="black"]. build/envsetup.sh[/COLOR]
Code:
[COLOR="black"]vendor/cm/get-prebuilts[/COLOR]
Code:
[COLOR="black"]repo sync -j16[/COLOR]
And finally:
Code:
[COLOR="black"]./build-pac.sh skyrocket -j16[/COLOR]
The Git can be found here:
https://github.com/PAC-man
Some github information from @m4570d0n who has some serious git-fu skills.
m4570d0n said:
You don't have to cd into a project directory to do a repo sync for that project. You can just run repo sync path/to/project. from the root of your build tree.
While I'm here, someone asked me about some git stuff recently, and I figured the info might be useful here as well....
Start with the tutorials on github.
Create A Repo
Fork A Repo
Using Pull Requests
Github Glossary
Also, don't underestimate the usefulness of --help. It's nearly a universal rule that adding "--help" to any command will bring up a help menu for that command. For git, it's particularly helpful for me, and literally every git command has it's own help file, and usually has example commands as well. For example, each of these will bring up a different help file:
Code:
git branch --help
git pull --help
git log --help
git remote --help
git show --help
etc., etc.
You can also just browse the whole manual, which is where those help files come from.:
http://git-scm.com/docs
I've also had a few specific things I was trying to figure out how to do on git and in the process found some nice sites/articles that were very helpful:
Visual Git Cheat Sheet
git howto: revert a commit already pushed to a remote repository - Christoph Rüegg
On undoing, fixing, or removing commits in git
More reference info with examples:
http://gitref.org/branching/
http://gitref.org/remotes/
a few miscellaneous command I picked up that I found useful.
commit a change created by someone else, and manually retaining the original author of the commit:
Code:
git commit --author="John Doe <[email protected]>"
commit a change created by someone else, and manually retaining the original author and the original commit date:
Code:
git commit --author="John Doe <[email protected]>" --date="Thu Oct 03 20:19:03 2013 +0000"
Push a change to CM's gerrit or PAC-man's gerrit:
Code:
git push ssh://[email protected]:29418/android_packages_apps_Setting HEAD:refs/for/cm-10.2
Code:
git push ssh://[email protected]:29418/android_packages_apps_Settings HEAD:refs/for/cm-10.2
Find the git index blob associated with a particular file:
Code:
[COLOR=SeaGreen][email protected][/COLOR]:[COLOR=RoyalBlue]~/PAC[/COLOR]$ cd frameworks/base
[COLOR=SeaGreen][email protected][/COLOR]:[COLOR=RoyalBlue]~/PAC/frameworks/base[/COLOR]$ git hash-object core/res/assets/images/android-logo-mask.png
498ad8885e2a1e55a499c404effa457de2cb6461
Also there's a couple extra git packages in the official Ubuntu repos that can be pretty handy. One is called git-stuff. I'm pretty sure the guy that created that is one of the dudes in CM (author is Daniel Baumann and I see commits on CM's gerrit almost daily from a guy named Danny Baumann).
Two others:
git-extras
git-gui
git gui is kinda cool and noob friendly. In order to use it, just cd into a folder that has a git repo in it and type:
Code:
git gui
Another useful git command is git stash.
Let's say you made some local changes to /packages/apps/Mms. If you wanted to cherry-pick a commit that involved any files you changed locally, the cherry-pick would fail because there are uncommitted changes. You could commit them, but then they would be undone on your next repo sync. With git stash, it will save your uncommitted changes. Then you can apply the cherry picks, and then apply your changes again on top of them by running:
Code:
git stash apply
Note: that will work if you only have one stash or if your most recent stash is the one you want to apply, otherwise you will have to add the name of the stash as well. For reference on git stash command options like listing the stashes, diffs, etc. see this:
https://www.kernel.org/pub/software/scm/git/docs/git-stash.html
Click to expand...
Click to collapse
KERNEL BUILDING and other EXTRAS
Building your first kernel :
This is a set of steps to get you building your first kernel. Special thanks to thewadegeek for putting this tutorial together. His thread can be found here: http://forum.xda-developers.com/showthread.php?t=1748297
Step 1. Build Environment
A. Install Ubuntu 12.04(Not holding your hand here, if you can't do this you shouldn't be messing with kernels)
B. Required packages: git-core, gnupg, flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl, libncurses5-dev, zlib1g-dev, ia32-libs, lib32z1-dev, lib32ncurses5-dev, gcc-multilib, g++-multilib, and Adb.
C. Open a terminal
D. Type
Code:
[COLOR="black"]mkdir android[/COLOR]
E. Type
Code:
[COLOR="black"]cd android[/COLOR]
G.Type
Code:
[COLOR="black"]mkdir kernel[/COLOR]
Step 2. Your Source
A. Open your Terminal Prompt
B. Type
Code:
[COLOR="black"]cd android/kernel[/COLOR]
C. Type
Code:
[COLOR="black"]git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains[/COLOR]
D. Now comes the tricky part, you need to have some-type of source for your kernel. Check the following two sites for your device as appropriate. Once you have it download it is extracted/cloned into a folder in your kernel directory.
http://www.htcdev.com/
http://opensource.samsung.com/
.http://developer.sonymobile.com/wpor...ads/opensource
http://www.lg.com/global/support/ope...opensource.jsp
Step 3. Modifications
This is the part people are curious about, they want to make modifications to the kernel to make it "special". Start all these from the root directory of your kernel source.
Mod 1. Applying a patch
A. Download the patch you wish to apply, in this case this one should work.
B. Save that file as "kernelPatch" in your kernel directory.
C. Open a Terminal
D. Move into the root directory of the kernel you wish to patch.
E. Type
Code:
[COLOR="black"]patch -p1 < ../kernelPatch[/COLOR]
Mod 2. Adding a Governor Alone
A. Open "drivers/cpufreq/Kconfig"
B. Add the following lines in appropriate spot amongst the other govenor's
Code:
[COLOR="Black"]config CPU_FREQ_DEFAULT_GOV_SMARTASS
bool "smartass"
select CPU_FREQ_GOV_SMARTASS
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'smartass' as default.
[/COLOR]
Code:
[COLOR="Black"]config CPU_FREQ_GOV_SMARTASS
tristate "'smartass' cpufreq governor"
depends on CPU_FREQ
help
smartass' - a "smart" optimized governor!
If in doubt, say N.[/COLOR]
C. Open "drivers/cpufreq/Makefile"
D. Add the following line in the appropriate spot.
Code:
[COLOR="Black"] obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS) += cpufreq_smartass.o[/COLOR]
E. Create a file called "drivers/cpufreq/cpufreq_smartass.c"
F. Put the following code in that file.
http://pastebin.com/f0Bk9kVZ
G. open "include/linux/cpufreq.h"
H. Under the "Cpufreq Default" section add
Code:
[COLOR="Black"]#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS)
extern struct cpufreq_governor cpufreq_gov_smartass;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_smartass)[/COLOR]
Ok there is a governor added, do the exact same steps for any other one's you would like to add.
Step 4. Getting a Config file
Option A. Pulling a config file from a kernel.
A. Hook up a device that is using a kernel similar to one you are using as your base.
B. Open a terminal
C. Change to your root kernel directory
D. Type
Code:
[COLOR="black"]adb pull /proc/config.gz[/COLOR]
E. Type
Code:
[COLOR="black"]gunzip config.gz[/COLOR]
F. Type
Code:
[COLOR="black"]mv config arch/arm/configs/<your_config_name>_defconfig[/COLOR]
Option B. Using the manufacturers config.
Unfortunately as stated above, not all kernels support the "/proc/config.gz" method. You can typically find a manufacturer's configuration file in "arch/arm/configs". I believe the one for my HTC Flyer was called "flyer_hc_defconfig", so look for a layout similar to that one. Also read the README to get a better idea of how to modify it. I would personally make a copy of it called "<your_config_name>_defconfig" and use that as my base.
Step 5. Building
Time to start the real "build" section of this tutorial.
Part A. Pre-build Steps
A. Open terminal and change to the root of your kernel directory
B. Type
Code:
[COLOR="black"]export ARCH=arm[/COLOR]
C. Type
Code:
[COLOR="black"]export CROSS_COMPILE=~/android/kernel/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-[/COLOR]
Part B. The First Build
A. Type
Code:
[COLOR="black"]make <your_config_name>_defconfig[/COLOR]
B. Type
Code:
[COLOR="black"]make menuconfig[/COLOR]
and make the required changes to use any modules you added or similar changes.
C. Type
Code:
[COLOR="black"]make -j<maximum number of jobs>[/COLOR]
Part C. Re-Builds
A. Type
Code:
[COLOR="black"]make clean[/COLOR]
B. Type
Code:
[COLOR="black"]make oldconfig[/COLOR]
C. Type
Code:
[COLOR="black"]make -j<maximum number of jobs>[/COLOR]
Part D. Building Modules
You have two options:
A. Type
Code:
[COLOR="black"]make modules[/COLOR]
B. Type
Code:
[COLOR="black"]make path/to/your/module.ko[/COLOR]
The above steps explained:
Part A.(These steps are required every time you close your terminal and re-open it to build again.)
A. Ok shouldn’t need to explain this.
B. This command sets your target architecture.
C. Defines the path to the toolchain we are going to use to compile our kernel. You can change this to point towards whatever toolchain you have downloaded or feel like using, the way it is currently configured it will use the Linaro toolchain that we downloaded above.
Part B.(These only need to be run the first time you build a kernel.)
A. Load's your configuration file from earlier.
B. Open up a menu to configure your kernel. It will use the config file you loaded in the previous step as a base.
C. Viola start the build. I typically allow 1 job per core, so on my quad core machine I put "make -j4". Just raising that number will not make your build faster, your processor needs to be able to support the number of jobs you are assigning it.
Part C. (Use the command's when you are building any-time outside of the first)
A. This command gets rid of any old/outdated binaries or modules you compiled before, and let's start fresh. I like to run it every I build unless my changes are really small and localized.
B. A very awesome command, it parses through what has changed and only prompts you about new options.
C. See the explanation for the above "Part C.".
Part D.(Use these for just building kernel modules.)
A. This will re-build all modules.
B. Will rebuild just the module you need. Very useful when you need to rebuild a WiFi module.
Step 6. Now what
Ok we have now started our build and we are waiting for it to finish, so there are two possible outcomes:
Outcome A. Build Succeeds
W00t!! You have a kernel built by your self from source. There are a couple things you need in-order to use this kernel on your device any ".ko" modules and the zImage binary. If you pay attention to the output of your compiler then you will see the location of those objects. However the following commands will make your life a bit easier(Thanks Recognized Developer Hacre):
A. Open a terminal
B. Change to your root kernel directory
C. Type
Code:
[COLOR="black"]mkdir ../<your_kernel>_output[/COLOR]
D. Type
Code:
[COLOR="black"]cp arch/arm/boot/zImage ../<your_kernel>_output/zImage[/COLOR]
E. Type
Code:
[COLOR="black"]find . -name "*.ko" -exec cp {} ../<your_kernel>_output \;[/COLOR]
The above steps explained:
A-C. Self-Explanatory
D. Move our kernel binary into our output folder
E. This handy bit of magic finds all ".ko" modules and also copies them into your output file.
You will also need to assemble a kernel image containing a initramfs for your device, along with the kernel binary and such. That however is beyond the scope of this tutorial. To get started though try searching the following phrases.
Code:
[COLOR="Black"]building android kernel image
xda build kernel image
xda unpack boot.img[/COLOR]
Outcome B. Build Fails
Oh dear. It failed. Well guess what...this is going to happen..a LOT. Get used to it, and get used to googling and experimenting with different solutions. The following are some tips that will help you with debugging your issues.
Running a "Clean" build
A. Backup your config file - Type
Code:
[COLOR="black"]cp .config ../backupConfig[/COLOR]
B. Re-run the build process using just your defconfig from earlier.
Limiting Output(Thanks Hacre.)
A. Another good tip is to run "make -j1" to get the error, as it will limit the amount of text you need to scroll through.
CCACHE​
Here is a brief tutorial on the installation of Ccache, which can shorten build times drastically :
If you have room on your build system you can speed
your builds up considerably by using ccache. ccache is a compiler
cache. It speeds up re-compilation of C/C++ code by caching
previous compiles and detecting when the same compile is
being done again.
Install it with apt-get:
Code:
[COLOR="Black"]sudo apt-get install ccache[/COLOR]
Set environment vars for Android use:
(I put these exports in my .bashrc)
Code:
[COLOR="Black"]export USE_CCACHE=1
export NDK_CCACHE=ccache[/COLOR]
Set a cache size of 10G for optimal results:
Code:
[COLOR="black"]ccache -M 10G[/COLOR]
Check the status of your cache with the command:
Code:
[COLOR="black"]ccache -s [/COLOR]
Returns:
Code:
[COLOR="black"]
cache directory /home/jocala/.ccache
cache hit 106673
cache miss 18379
called for link 3758
preprocessor error 5
not a C/C++ file 4425
unsupported compiler option 678
no input file 4565
files in cache 36758
cache size 3.2 Gbytes
max cache size 10.0 Gbytes[/COLOR]
Instructions for submitting to Gerrit are listed here: http://forum.xda-developers.com/showpost.php?p=34095392&postcount=2588
ADVANCED INSTRUCTIONS FOR BUILDING CUSTOMIZATION
Special thanks to m4570d0n for putting this together for everyone
If you wanted to add something like, for example, Titanium Backup, you could go to /vendor/cm/config/common.mk and starting on line 98 where you see:
Code:
[COLOR="Black"]PRODUCT_COPY_FILES += \
vendor/cm/proprietary/RomManager.apk:system/app/RomManager.apk \
vendor/cm/proprietary/Term.apk:system/app/Term.apk \
vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so \
vendor/cm/prebuilt/common/apps/Superuser.apk:system/app/Superuser.apk[/COLOR]
and add a line below that like this:
Code:
[COLOR="black"] vendor/cm/prebuilt/common/apps/TitaniumBackup.apk:system/app/TitaniumBackup.apk[/COLOR]
Then just place your TitaniumBackup.apk in the /vendor/cm/prebuilt/common/apps folder. You can modify that folder location to whatever folder you want to use, and you can substitute Titanium Backup with whatever apk you'd like. Take note though that this will install it as a system app in /system/app, while most apps would normally be installed as a user app in /data/apps. I think you could change the location to /data/app in that line, but I'm not positive. Someone please correct me if I'm wrong. I mean, I know you can, but I'm not sure if it would be an issue when you flash a zip without wiping /data and the zip file has files in /data.
You could also create your own github repo, name it something like vendor_onlychevys and add that repo to your local manifest with the path as vendor/onlychevys. Then you could use that as your directory path to the apps you want to add.
The slightly longer, but better way, is that you could also create your own make file in that repo by copying /device/samsung/skyrocket/cm.mk to your repo and rename it (let's say vendor_onlychevys/products/onlychevys_skyrocket.mk) and add a line in that file with something like this:
Code:
[COLOR="black"]# Inherit some common onlychevys stuff.
$(call inherit-product, vendor/onlychevys/config/common_full_phone.mk)[/COLOR]
and also editing the product name in that file near the bottom to something like this:
Code:
[COLOR="black"]PRODUCT_NAME := onlychevys_skyrocket[/COLOR]
You would need to make 3 more files.
In that same directory make a file called AndroidProducts.mk and in that file add this:
Code:
[COLOR="black"] PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/onlychevys_skyrocket.mk[/COLOR]
Next, copy /vendor/cm/config/common_full_phone.mk to your repo at vendor_onlychevys/config/common_full_phone.mk. Then edit that file by adding a line in there with something like this:
Code:
[COLOR="black"]PRODUCT_COPY_FILES += \
vendor/onlychevys/prebuilt/common/apps/TitaniumBackup.apk[/COLOR]
And make sure to put your app in that prebuilt/common/apps/ directory in your repo.
Finally, create a new file in gedit (or other text editor of your choice). In that file add this:
Code:
[COLOR="black"] add_lunch_combo onlychevys_skyrocket-userdebug[/COLOR]
Name the file vendorsetup.sh and put it in your repo at vendor_onlychevys/vendorsetup.sh
Now, when you want to build you can run:
Code:
[COLOR="black"]. build/envsetup.sh
brunch onlychevys_skyrocket-userdebug[/COLOR]
This will be the same as if you used the regular command but will also include whatever apks you want to put in your repo, since you are just copying those files and adding a line to also include your stuff. This way, though you can add apps and/or make changes to your repo and you wont get errors about having local changes to vendor/cm or wherever when you try to run repo sync. You also wont have to keep deleting and re-adding the same files over and over after every sync because they will be in your own repo.
And just for clarity, your repo would look something like this:
Code:
[COLOR="black"]vendor_onlychevys
|-- config
| `-- common_full_phone.mk
|-- prebuilt
| `-- common
| | `-- apps
| | `-- TitaniumBackup.apk
|-- products
| |-- AndroidProducts.mk
| `-- onlychevys_skyrocket.mk
`-- vendorsetup.sh[/COLOR]
More advanced instructions to be posted as time allows. Now, get to work!
CHERRYPICKING: If you have progressed beyond the level of copying and pasting, and have begun researching the 'cherry-picking' process, there is a brief set of steps regarding this on post #1292 : http://forum.xda-developers.com/showthread.php?t=1798056&page=130.
This should give those interested a basic idea of the process. More detailed instructions are going to be posted as time allows.
NOTE: the cherry-picks listed in that tutorial are no longer neccesary. They have been merged, and don't require picking. But, for the informational purposes, the steps are useful. Thanks to m4570d0n for laying that out for everyone!​
Links for all relevant topics:
Here are some relevant topics/tutorials/sites:
Download | Ubuntu - www.ubuntu.com/download
Official Ubuntu Documentation: Help for all versions. - https://help.ubuntu.com/
How To Windows Dual Boot: - https://help.ubuntu.com/community/WindowsDualBoot
How To Use The Terminal: Commandline stuff. - https://help.ubuntu.com/community/UsingTheTerminal/
[HOW TO] Beginners Guide to Android ROM Development - http://forum.xda-developers.com/showthread.php?t=1272270 (courtesy of isidromxz)
[Tutorial] Compile JB on Ubuntu - http://forum.xda-developers.com/showthread.php?t=1762641 (courtesy of dastin1015)
[CM10] [PPA] Cyanogenmod Compiler v0.6 - http://forum.xda-developers.com/showthread.php?t=1789190 (courtesy of lithid-cm)
[WIP][CM10] CyanogenMod 10 Alpha | tutorial - http://forum.xda-developers.com/showthread.php?t=1775133 (courtesy of sk8erwitskil)
[Wiki] How to: Gerrit - http://wiki.cyanogenmod.com/wiki/Howto:_Gerrit
[Wiki] How to: Git - http://wiki.cyanogenmod.com/wiki/Howto:_Git
[Wiki] How to: Connect to device with SSH - http://wiki.cyanogenmod.com/wiki/Howto:_Connect_to_Device_with_SSH
Here is an easy-to-use page on common Linux commands: - http://www.pixelbeat.org/cmdline.html
Linux Newbie Guide : - http://www.unixguide.net/linux/linuxshortcuts.shtml
Also, Team Chopsticks has a good page with some useful tips as well, located here:
http://www.teamchopsticks.org/p/contributing.html (thanks to bdusmc for the tip)
Here is a link to LIFEHACKER's command line tutorials. Very good stuff!! : http://lifehacker.com/5743814/become-a-command-line-ninja-with-these-time+saving-shortcuts
Building AOKP from source : http://rootzwiki.com/topic/31166-tutorial-so-you-want-to-build-aokp-jb-ubuntu-1204/
Link to AOKP (Android Open Kang Project) · GitHub :
https://github.com/AOKP
Link to AOKP news : http://aokp.co/index.php/news
Link to R41NS AOKP work : http://rootzwiki.com/topic/34092-aok...-2-jb-build-4/
Link to aznrice2k4s other Skyrocket and OneX work : http://forum.xda-developers.com/showthread.php?t=1956247
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Builds :
M4570D0N has a new PAC-man ROM for all to see, use and emulate!
Info:
based on the latest AOSPA (ParanoidAndroid 3.14+)
plus the latest CM10.1
plus the latest AOKP-MR1
In addition to everything included in the vanilla PAC-man build I've added:
internal/external sdcard storage options for Camera/Gallery
Alt-signal layout from AOKP
CM circle battery from CM10/10.1
Titanium Backup
ADWLauncher
M4570M0D v1.1
tiny gapps
Download:
http://d-h.st/sZo
​
I think you should call it project powerthrust....much catchier
Sent from my SAMSUNG-SGH-I727 using xda app-developers app
i really want this thread to go somewhere so im going try and set up my build environment and see if i can get jb to compile. im using ubuntu 12.04 because i think soon its going to become the new standard for building. here is some instructions by sk8rwitskil http://forum.xda-developers.com/showthread.php?t=1766862
mbucks911 said:
no offense, but you probably should have actually built something before creating this thread because just creating this thread isnt going to "get the ball rolling" but what will is a starting point or an alpha build for the aspiring developers to look at and try to debug and make better. right now you just look like "that guy" that just wanted attention by trying to start something in the dev thread
Click to expand...
Click to collapse
I respectfully disagree. I am happy to see this thread (I think my comments in the WIP CM10 are what prompted it) and I fully support it. People need to have a place to learn to develop and build ROMs from source, and this is a step to help provide that place without clogging up other more focused dev threads. I don't think anyone is trying to use the thread to get attention, other than to get others involved, talking, debugging and building.
Tom
Yea it might have been better to post in general guys. Looking forward to this and good luck
Sent from my Nexus 7 using xda premium
I'm jumping on board here too. Feel free to mosey on over to fb and join our group. It's called Team NAND, it is for aspiring devs as well. Only it isn't intended for jb only.
I'm hoping to have all my prereqs set up by the weekend and ill post my first build here. Good luck everyone.
Sent from my SAMSUNG-SGH-I727 using xda app-developers app
Go TEAM ROOKIE aha but yea I'm all set up and ready to go developing with everyone else
Sent from my SAMSUNG-SGH-I727 using xda app-developers app
mbucks911 said:
no offense, but you probably should have actually built something before creating this thread because just creating this thread isnt going to "get the ball rolling" but what will is a starting point or an alpha build for the aspiring developers to look at and try to debug and make better. right now you just look like "that guy" that just wanted attention by trying to start something in the dev thread
i do want this thread to go somewhere so im going try and set up my build environment and see if i can get jb to compile. im using ubuntu 12.04 because i think soon its going to become the new standard for building. here is some instructions by sk8rwitskil http://forum.xda-developers.com/showthread.php?t=1766862
Click to expand...
Click to collapse
WOW that didn't take long. Thanks for that. Real helpful. I was trying to start a place for those of us that really want to provide builds, but HAVEN"T yet. I spent two days getting my environment together and have seen so many posts from other feeling the same way that this seemed like a good idea, until now. I specifically said that I assumed no control over this thread. If you actually looked anywhere else, you would see that myself and quite a few other rookies have been posting on sk8rs thread for the better part of two weeks. We need novices that want to help, not start static. Sheesh
Decepticaons said:
I'm jumping on board here too. Feel free to mosey on over to fb and join our group. It's called Team NAND, it is for aspiring devs as well. Only it isn't intended for jb only.
I'm hoping to have all my prereqs set up by the weekend and ill post my first build here. Good luck everyone.
Sent from my SAMSUNG-SGH-I727 using xda app-developers app
Click to expand...
Click to collapse
Can you link the group, searching FB finds nothing.
dakpluto said:
Can you link the group, searching FB finds nothing.
Click to expand...
Click to collapse
As you wish!
https://www.facebook.com/#!/groups/205511066243382/
I am interested in this. What do I need to do to setup initial environment? Do I follow instructions by sk8rwitskil?
cnewsgrp said:
I am interested in this. What do I need to do to setup initial environment? Do I follow instructions by sk8rwitskil?
Click to expand...
Click to collapse
Do you have Ubuntu installed? If not install Ubuntu then follow the instructions here http://source.android.com/source/initializing.html after that you can follow sk8erwitskil's instructions
Sent from my Transformer Pad TF300T using Tapatalk 2
Fyi - i have a hercules, but im already down. Going to need to repartition my hdd, and work some stuff around... but ill get er done.
Sent from my ASUS Transformer Pad TF300T using XDA Premium HD app
cnewsgrp said:
I am interested in this. What do I need to do to setup initial environment? Do I follow instructions by sk8rwitskil?
Click to expand...
Click to collapse
Preferences vary among the Linux crowd, but from my own experience and what others have posted, Ubuntu is the easiest to install and get started with. Google it and their site will have everything you need, right down to an exe. for easy install. From there, follow the other's instructions for getting an environment set up. Any questions or issues, someone here will help, I'm sure.
EDIT: posted a link to this at the beginning of the thread
new ion? said:
Fyi - i have a hercules, but im already down. Going to need to repartition my hdd, and work some stuff around... but ill get er done.
Sent from my ASUS Transformer Pad TF300T using XDA Premium HD app
Click to expand...
Click to collapse
I am a novice, so I don't know the particulars yet, but from what I've read it shouldn't be a serious issue. Maybe a fix here or there....
Decepticaons said:
I'm jumping on board here too. Feel free to mosey on over to fb and join our group. It's called Team NAND, it is for aspiring devs as well. Only it isn't intended for jb only.
I'm hoping to have all my prereqs set up by the weekend and ill post my first build here. Good luck everyone.
Sent from my SAMSUNG-SGH-I727 using xda app-developers app
Click to expand...
Click to collapse
Link to the fb group? Searched, but with no luck.
EDIT: Nevermind. I see it was already asked/answered haha.
btm fdr said:
Link to the fb group? Searched, but with no luck.
Click to expand...
Click to collapse
You searched huh, its only 6 posts back
Sent from my SAMSUNG-SGH-I727 using xda premium

[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

[GUIDE] Compile CM from source [Full Tutorial]

How to compile CyanogenMod from source
Tutorial for building CM for your very own core.​
Prerequisites :
Linux Environment (Ubuntu is perfect match, must be 64 bit)
At least 40 GB free space on ubuntu.
Working Internet Connection (we are going to download gigs bytes of data)
Some part of your brain (must be usable )
Index
Setting Environment on Ubuntu System (64 bit) | Post 1
Download source and build for Galaxy Core | Post 2
Getting logs | Debug device | Post 3
FAQ / Help / Tips | Post 4
Chapter 1 : Setting Linux (Ubuntu) build Environment for Android
So let's first start with java installation.
# Java 6 ( one line one command in ubuntu terminal )
Code:
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
# Installing required libs-packages
Code:
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
# Configuring USB Access
Code:
gksudo gedit /etc/udev/rules.d/51-android.rules
now enter/paste this in that black document :
#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″
Click to expand...
Click to collapse
Save and give it executable permission by :
Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# Installing repo
Code:
mkdir -p ~/bin
Open .bashrc file ( you can found it in Home directory by enabling "Show hidden files")
Add this line in ".bashrc" opened file anywhere you want :
Code:
export PATH=~/bin:$PATH
Now Getting repo and make it executable :
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now you should restart your machine to take effect properly.
Chapter One Finished
Chapter 2 : Download source and build
# Syncing CM 10.2 source
Code:
mkdir cm-10.2
cd cm-10.2
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
repo sync -j16
Tip : You can use any directory you want
Now sit back and relax, buy some patience because you are going to use it now.
This will depend on your connection speed.
# Getting CM prebuilts
Code:
vendor/cm/./get-prebuilts
# Getting device config / vendor blobs
Open .repo folder in cm-10.2 source (enable hidden files)
create directory : local_manifests
open local_manifests folder and create a xml doc. named - roomservice.xml
Copy this much of data into it :
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="ankur850/android_device_samsung_arubaslim" path="device/samsung/arubaslim" remote="github" revision="cm-10.2" />
<project name="ankur850/android_vendor_qcom_msm7x27a" path="vendor/qcom/msm7x27a" remote="github" revision="cm-10.2" />
<project name="ankur850/android_device_qcom_msm7x27a" path="device/qcom/msm7x27a" remote="github" revision="cm-10.2" />
<project name="ankur850/android_vendor_samsung_arubaslim" path="vendor/samsung/arubaslim" remote="github" revision="cm-10.2" />
<project name="ankur850/android_hardware_qcom_display-legacy" path="hardware/qcom/display-legacy" remote="github" revision="jellybean-mr2" />
<project name="ankur850/android_hardware_qcom_audio-caf" path="hardware/qcom/audio-caf" remote="github" revision="cm-10.2" />
<project name="ankur850/android_kernel_samsung_msm7x27a" path="kernel/samsung/arubaslim" remote="github" revision="cm-10.2" />
</manifest>
Save it
Now again do repo sync (this will download required device config / vendors ):
Code:
repo sync -j16
Done syncing, now move to building part.
# Start Actual Building..
Code:
cd cm-10.2 && . build/envsetup.sh && brunch arubaslim
It will be finish in some hours (depends on your cpu performance)
Now get your freshly compiled rom from out/target/product/arubaslim/cm-10.2xx-xx.zip
Push to sdcard and start testing the rom.
Chapter second finished.
Chapter 3 : Taking logs and debug device
You can get the adb tools from android-sdk or move to this thread to download
http://forum.xda-developers.com/showthread.php?t=2317790
Thanks to xda Recognized Contributor @shimp208 for minimal adb tools.
# Collecting android system logcat
Code:
adb logcat -v long > logcat.txt
# Collecting kernel logs
Collecting kernel message :
Code:
adb shell su -c dmesg > dmesg.log
Collecting last message of kernel until shutdown
Code:
adb shell su -c "cat /proc/last_kmsg" > last_kmsg.log
You can use pastebin or gist to share your logcat to get some help from others for fixing bugs.
Chapter Three Finished
Chapter 4 : Help / Tips / FAQ
# PC Hardware requirements
Dual core or more
AT Least 2 GB RAM
Normal HDD with atleast 40 GB Free space
Tip : If you are using 2 GB RAM, then you'll need swap of 2 GB, for help you need to Google this
# Use CCACHE for faster builds
Open .bashrc in home folder and add these two lines anywhere :
Code:
export USE_CCACHE=1
export CCACHE_DIR=<path-to-your-cache-directory>
example : export CCACHE_DIR=~/ccache
(~ is home, so this will create in home/ccache)
Now setup max size that ccache will use
Code:
cd cm-10.2/prebuilts/misc/linux-x86/ccache
./ccache -M 10G
This will set the ccache max size upto 10 GB.
If you want to see current CCACHE status :
Code:
./ccache -s
Chapter four finished
Finally some motivation to install Ubuntu on my machine
Thank you very much, waiting for other chapters.
thanx bro....very nice info
Sent from my GT-I8262 using XDA Premium 4 mobile app
Great work
Sent from my GT-I8262 using XDA Premium 4 mobile app
MirXas said:
Finally some motivation to install Ubuntu on my machine
Thank you very much, waiting for other chapters.
Click to expand...
Click to collapse
U can dual boot ..or u can instal it via virtual box..u can google it
Sent from my GT-I8262 using XDA Premium 4 mobile app
rahul.pipaliya007 said:
U can dual boot ..or u can instal it via virtual box..u can google it
Sent from my GT-I8262 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
or triple boot if you also want Windows 7 and 8, I have a tutorial for it.
I am also using triple boot , Windows 7 - Windows 8.1 - Ubuntu :victory:
Windows 7 is only for odin mode, because older samsung devices are not compatible with windows 8.1 in odin mode.
I know what is dual boot, I've done it before
Sent from my GT-I8260
ankur850 said:
or triple boot if you also want Windows 7 and 8, I have a tutorial for it.
I am also using triple boot , Windows 7 - Windows 8.1 - Ubuntu :victory:
Windows 7 is only for odin mode, because older samsung devices are not compatible with windows 8.1 in odin mode.
Click to expand...
Click to collapse
That's a hot machine! What are your computers specs?!!!!
Sent from my Amazon Otter using xda app-developers app
androvista said:
That's a hot machine! What are your computers specs?!!!!
Sent from my Amazon Otter using xda app-developers app
Click to expand...
Click to collapse
Pentium Dual Core :laugh: @ 2.50 Ghz
2 GB HD 6670 Graphics
2 GB DDR2 RAM
320 GB WD Blue HDD
160 Gb for Ubuntu
31 GB for Windows 8.1
30 GB for Windows 7
rest for Data Storage / songs / videos

Categories

Resources