[CM] Building for expressltexx (GT-I8730)

Search This thread

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
There's an easy way to do whatever's discussed below, except for a) getting the SDK, b) syncing the repos, and c) building the ROM; and that way is using this script. But it's still better to do the steps below manually as it gets you acquainted with the terminal - you'll be using it a lot.

Thanks to @klvnhng for the original tutorial for mako
Credits to him.

You will need:

  • A computer running Ubuntu with at least 2GB memory and around 40-65 GB of free space
    • If you don't want to install Ubuntu, run it instead in VMWare Player or VirtualBox.
      • make sure you provide the virtual machine with the amount of recommended disk space or more
      • give it no less than 3-4GB of RAM
  • A (preferably fast) internet connection (trust me, you don't want to do this with a 256 or 512 kbps connection)
  • Familiarity with Android and Linux. Read up at source.android.com.

Setting up the build environment

1. Install JDK
DO NOT USE OPENJDK. Remove it by entering
Code:
sudo apt-get purge openjdk* icedtea* icedtea-6*

Install Oracle Java 6 by typing this into a terminal:
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer

Android SDK requires the x86 compatibility packages, ia32-libs. Install it by entering this:
Code:
sudo apt-get -y install ia32-libs
As an alternative, you can also do this (thanks to @jjchico):
Code:
sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

2. Android SDK
Download it here.

Extract it to a folder of your choice (in this guide, I will refer to it as ~/android/sdk).
Enter these commands into the terminal:
Code:
cd ~/android/sdk/adt-bundle/sdk/tools
./android sdk

Click Install packages. cd to ~/android/sdk/adt-bundle/sdk/platform-tools and type:
Code:
./adb
./fastboot

If you've done everything correctly, you should get a big block of text for both (which list all of the adb/fastboot commands).

3. Install required packages
Copy and paste this command into the terminal:
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \
ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \
tofrodos python-markdown libxml2-utils xsltproc readline-common \
libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \
lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \
libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \
libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev

4. Install the repo command
Make directories called bin and android in your home folder, respectively.
Code:
mkdir -p ~/bin
mkdir -p ~/android

Download and setup the repo binary:
Code:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now add it to your path:
Code:
export PATH="$PATH:~/bin"
And make sure it belongs in your path between subsequent reboots:
Code:
echo "export PATH="$PATH:~/android/sdk:~/bin"" >> ~/.bashrc
source ~/.bashrc

5. Configuring USB

You must configure USB to detect your Android device(s) properly.
Do this in a terminal:
Code:
curl https://raw.githubusercontent.com/aureljared/build-env-init/master/51-android.rules > ~/bin/51-android.rules
chmod a+r ~/bin/51-android.rules
sudo cp -vfp ~/bin/51-android.rules /etc/udev/rules.d/51-android.rules

6. Syncing up

The next step is to initialize the repository and download the source code to your computer.
Type the following lines into the terminal:
Code:
mkdir -p ~/android/cm-11.0
cd ~/android/cm-11.0
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

To download all the necessary device-specific files for our device, do this:
Code:
curl https://raw.githubusercontent.com/aureljared/android-manifests/expresslte-cm-11.0/local_manifest.xml >> .repo/local_manifests/local_manifest.xml

Now run
Code:
repo sync
You have now begun downloading all of the CM source code to your build directory. Depending on your internet speed, this can take from a couple of hours to a few days. If the sync interrupts, don't worry. Simply continue the sync (you don't have to restart completely, only the project you were downloading when the interrupt occured, lol) by entering:
Code:
repo sync

Some tips:
  • You can interrupt the process by pressing Ctrl + C, it will continue where it left off the next time anyway.
  • Remember, you need to cd into your build directory (~/android/cm-11.0, if you've been following this guide) for the command to work.
  • If you want only one project to be synced at a time, run repo sync -j1 instead.

This step takes a long time depending on your internet connection speed (FYI you're downloading ~20 GB of code!)

7. Building CM (yay!)

You must download the necessary pre-built apps:
Code:
~/android/cm-11.0/vendor/cm/get-prebuilts

Now let's build! cd to your build directory and run the following commands in the terminal:
Code:
. build/envsetup.sh
brunch expressltexx

Now, just let your computer do the rest. This step is very demanding for your computer, so you better leave it alone while it builds. Usually this takes an hour or more. Go get some sleep or eat something.

Done? If everything went correctly, cd to ~/android/cm-11.0/out/target/product/expresslte and you should see your newly built ROM entitled:
cm-11.0-20xxxxxx-UNOFFICIAL-expressltexx.zip

Congratulations! You've successfully built CM 11.0!

For re-builds (i.e. when the source code has been updated and you would like to make a new nightly), just do this:
Code:
cd ~/android/cm-11.0
make clobber
repo sync
. build/envsetup.sh
brunch expressltexx

Have fun building!​
 
Last edited:

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
I suggest you to modify step 5 inserting before repo sync
Code:
mkdir .repo/local_manifests
cd .repo/local_manifests
wget https://raw.github.com/KINGbabasula/android_device_samsung_expresslte/cm-10.2/local_manifest.xml
cd ..
cd ..
This will download the specific necessary repos with repo sync
Then remove this in step 6
Code:
mkdir files
cd files
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
as it isn't needed
And change make clean with make clobber because with clobber it will rebuild faster

EDIT: And before step 6 you need to replace these 2 files with the 2 in the attachment
Code:
system/core/mkbootimg/bootimg.h
system/core/mkbootimg/mkbootimg.c
 

Attachments

  • mkbootimg.zip
    4.1 KB · Views: 102
Last edited:

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
I suggest you to modify step 5 inserting before repo sync
Code:
mkdir .repo/local_manifests
cd .repo/local_manifests
wget https://raw.github.com/KINGbabasula/android_device_samsung_expresslte/cm-10.2/local_manifest.xml
cd ..
cd ..
This will download the specific necessary repos with repo sync
Then remove this in step 6
Code:
mkdir files
cd files
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
as it isn't needed
And change make clean with make clobber because with clobber it will rebuild faster

EDIT: And before step 6 you need to replace these 2 files with the 2 in the attachment
Code:
system/core/mkbootimg/bootimg.h
system/core/mkbootimg/mkbootimg.c

Original post updated.
Can you help me with ia32-libs?
It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.

I'm using 13.10 x64 on an ASUS K43SJ.
- Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
- 2GB RAM available to Ubuntu VM

Sent from my International Galaxy Express using Tapatalk 4
 
  • Like
Reactions: jjchico

KINGbabasula

Inactive Recognized Developer
Jan 28, 2013
2,301
5,167
Treviso
Original post updated.
Can you help me with ia32-libs?
It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.

I'm using 13.10 x64 on an ASUS K43SJ.
- Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
- 2GB RAM available to Ubuntu VM

Sent from my International Galaxy Express using Tapatalk 4

You have to apt-get install every missing library one by one

Inviato dal mio GT-I9070 utilizzando Tapatalk
 
  • Like
Reactions: aureljared

jjchico

Member
Jul 9, 2011
45
43
Sevilla
2. Android SDK
Download it here.

Extract it to a folder of your choice (in this guide, I will refer to it as ~/android/sdk).
Enter these commands into the terminal:
Code:
cd ~/android/sdk/adt-bundle/sdk/tools
./android sdk

Click Install packages. cd to ~/android/sdk/adt-bundle/sdk/platform-tools and type:
Code:
adb
fastboot

Shouldn't it be
Code:
./adb
./fastboot

Or have you added the sdk to your path?

I guess the compilation process will need the sdk. How does it find the sdk? Do you need to provide the path anywhere?

Thanks for the great tuto.
 

jjchico

Member
Jul 9, 2011
45
43
Sevilla
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

---------- Post added at 12:08 PM ---------- Previous post was at 11:29 AM ----------

These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
 
  • Like
Reactions: aureljared

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

---------- Post added at 12:08 PM ---------- Previous post was at 11:29 AM ----------

These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

$ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

Shouldn't it be
Code:
./adb
./fastboot

Or have you added the sdk to your path?

I guess the compilation process will need the sdk. How does it find the sdk? Do you need to provide the path anywhere?

Thanks for the great tuto.

Updated original post.

Sent from my GT-I8730 using Tapatalk
 

bazzan

Senior Member
Dec 12, 2010
135
94
Sydney
I get this
bazzan@bazzan-OptiPlex-780:~/android/cm-10.2$ repo init -u git://github.com/CyanogenMod/android.git -b cm-10.2
No command 'repo' found, did you mean:
Command 'repro' from package 'repro' (universe)
Command 'repl' from package 'nmh' (universe)
Command 'repl' from package 'mailutils-mh' (universe)
Command 'rep' from package 'rep' (universe)
repo: command not found
bazzan@bazzan-OptiPlex-780:~/android/cm-10.2$

Any ideas? All seemed good before that
Bazzan
 

jjchico

Member
Jul 9, 2011
45
43
Sevilla
Check that repo is in the bin folder in your user main folder.
Check that repo is executable
chmod a+x ~/bin/repo

Enviado desde mi GT-I9000 mediante Tapatalk
 
  • Like
Reactions: bazzan

bazzan

Senior Member
Dec 12, 2010
135
94
Sydney
"6. Building CM (yay!)"

"In order to make a working build, you have to get the proprietary files (mainly device build files and drivers) for the device."

so how do I get the propriety files and where do I put them? ADB from your phone?

After this you direct us to prebuilt apps so it appears there is a step missing unless I am pulling proprietary files down from KINGbabasula's Github

Bazzan
 

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
"6. Building CM (yay!)"

"In order to make a working build, you have to get the proprietary files (mainly device build files and drivers) for the device."

so how do I get the propriety files and where do I put them? ADB from your phone?

After this you direct us to prebuilt apps so it appears there is a step missing unless I am pulling proprietary files down from KINGbabasula's Github

Bazzan

Yeah, the files are located somewhere in KINGbabasula's github. If you want to use ADB then refer to the text file located in android_device_samsung_expresslte.

Or if you want to download the files themselves, do this in a terminal:
Code:
mkdir proprietary
cd proprietary
git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git

The files will be located in proprietary/proprietary_vendor_samsung/expresslte.

Sent from my GT-I8730 using Tapatalk
 
Last edited:

bazzan

Senior Member
Dec 12, 2010
135
94
Sydney
Finally got build going. Thanks for the tutorial @aureljared. You were not kidding when you said takes a while. Not too sure where to from here. Welcome suggestions if anyone wants me to try anything
Bazzan
 

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
URGENT

Before proceeding to build any more ROMs, let me ask some questions.
  • What toolchain for building the kernel are you using? Toolchains that might work are arm-eabi-4.4.3 upwards or linaro 4.4.3 upwards.
  • What is your configuration for the kernel? It is written to a file called ".config" insinde the kernel source.
  • Have you applied any kind of patch to the code before compiling? If so, what?

Thank you for your time. Your answers to the above questions will be highly appreciated and will be of utmost importance. There is also a good chance that we might build a proper kernel with your reports!

:good: :victory:

Sent from my GT-I8730 using Tapatalk
 
  • Like
Reactions: bazzan

bazzan

Senior Member
Dec 12, 2010
135
94
Sydney
URGENT

Before proceeding to build any more ROMs, let me ask some questions.

  • What toolchain for building the kernel are you using? Toolchains that might work are arm-eabi-4.4.3 upwards or linaro 4.4.3 upwards.
  • What is your configuration for the kernel? It is written to a file called ".config" insinde the kernel source.
  • Have you applied any kind of patch to the code before compiling? If so, what?


Thank you for your time. Your answers to the above questions will be highly appreciated and will be of utmost importance. There is also a good chance that we might build a proper kernel with your reports!

:good: :victory:

Sent from my GT-I8730 using Tapatalk
No toolchain experience at all. Just substituted kernels from elsewhere. Maybe if you are leaning toward Linaro, I should find myself a tutorial for arm-eabi-4.4.3 upwards and give that a go. then we can cover more ground.
Bazzan
 
Last edited:
  • Like
Reactions: aureljared

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
No toolchain experience at all. Just substituted kernels from elsewhere. Maybe if you are leaning toward Linaro, I should find myself a tutorial for arm-eabi-4.4.3 upwards and give that a go. then we can cover more ground.
Bazzan

Sure.
I'm not saying that I'm relying on Linaro now, it's just that Linaro is a toolchain developed by a consortium of technology companies including Samsung that aims to build Linux kernels that perform extremely well on mobile devices.
CM 10.2 uses Linaro 12.09, I think.

I tried building with Linaro a couple of days ago but make threw me some errors, the most confusing being something like this
Code:
make [cypress_touchkeys.o] *** Error 2

I don't even know what Cypress is.

Sent from my GT-I8730 using Tapatalk
 
  • Like
Reactions: bazzan

bazzan

Senior Member
Dec 12, 2010
135
94
Sydney
Sure.
I'm not saying that I'm relying on Linaro now, it's just that Linaro is a toolchain developed by a consortium of technology companies including Samsung that aims to build Linux kernels that perform extremely well on mobile devices.
CM 10.2 uses Linaro 12.09, I think.

I tried building with Linaro a couple of days ago but make threw me some errors, the most confusing being something like this
Code:
make [cypress_touchkeys.o] *** Error 2

I don't even know what Cypress is.

Sent from my GT-I8730 using Tapatalk

Cannot help with Cypress. Some time ago I downloaded a file called GT-I8730_JB_Opensource.zip - not sure where I found it.

It appears to be what is says it is. Within it is a text file called README_Kernel.txt
It has the following
################################################################################

1. How to Build
- get Toolchain
From android git server , codesourcery and etc ..
- arm-eabi-4.4.3

- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) export CROSS_COMPILE= $(android platform directory you download)/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Ex) export CROSS_COMPILE=/usr/local/toolchain/arm-eabi-4.4.3/bin/arm-eabi- // check the location of toolchain

$ export ARCH=arm
$ make msm8930_express_defconfig
$ make

2. Output files
- Kernel : arch/arm/boot/zImage
- module : drivers/*/*.ko

3. How to Clean
$ make clean
################################################################################

Way out of my depth but will try sometime next week to give it a go with arm-eabi-4.4.3. Major interview Monday so nothing before then.
Bazzan
 
  • Like
Reactions: aureljared

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
Cannot help with Cypress. Some time ago I downloaded a file called GT-I8730_JB_Opensource.zip - not sure where I found it.

It appears to be what is says it is. Within it is a text file called README_Kernel.txt
It has the following
################################################################################

1. How to Build
- get Toolchain
From android git server , codesourcery and etc ..
- arm-eabi-4.4.3

- edit Makefile
edit "CROSS_COMPILE" to right toolchain path(You downloaded).
EX) export CROSS_COMPILE= $(android platform directory you download)/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
Ex) export CROSS_COMPILE=/usr/local/toolchain/arm-eabi-4.4.3/bin/arm-eabi- // check the location of toolchain

$ export ARCH=arm
$ make msm8930_express_defconfig
$ make

2. Output files
- Kernel : arch/arm/boot/zImage
- module : drivers/*/*.ko

3. How to Clean
$ make clean
################################################################################

Way out of my depth but will try sometime next week to give it a go with arm-eabi-4.4.3. Major interview Monday so nothing before then.
Bazzan

That's from Samsung. It contains the kernel source as you already have seen :D

It's stock 3.4.0 so I don't know if it will work with CM :good:

Sent from my GT-I8730 using Tapatalk
 
  • Like
Reactions: bazzan

aureljared

Senior Member
May 2, 2013
970
671
dantis.me
Redmi Note 11
Quote from jt1134:
jt1134 said:
I use the d2 family kernel source.

For stock ROMs and CM10, you can use the source and ramdisk provided by samsung.

For CM10.1 or higher, you'll have to get your hands very dirty. IMO the easiest route would be to port the missing drivers from stock samsung source to the msm8930-common kernel, and modifying it to work with them. This is how I did it for the I437 : http://review.cyanogenmod.org/#/c/47947/ . You may then use the serrano device trees as a template once the kernel is ready.

:D
Updated first post with this info.

Sent from my GT-I8730 using Tapatalk
 

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    There's an easy way to do whatever's discussed below, except for a) getting the SDK, b) syncing the repos, and c) building the ROM; and that way is using this script. But it's still better to do the steps below manually as it gets you acquainted with the terminal - you'll be using it a lot.

    Thanks to @klvnhng for the original tutorial for mako
    Credits to him.

    You will need:

    • A computer running Ubuntu with at least 2GB memory and around 40-65 GB of free space
      • If you don't want to install Ubuntu, run it instead in VMWare Player or VirtualBox.
        • make sure you provide the virtual machine with the amount of recommended disk space or more
        • give it no less than 3-4GB of RAM
    • A (preferably fast) internet connection (trust me, you don't want to do this with a 256 or 512 kbps connection)
    • Familiarity with Android and Linux. Read up at source.android.com.

    Setting up the build environment

    1. Install JDK
    DO NOT USE OPENJDK. Remove it by entering
    Code:
    sudo apt-get purge openjdk* icedtea* icedtea-6*

    Install Oracle Java 6 by typing this into a terminal:
    Code:
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java6-installer

    Android SDK requires the x86 compatibility packages, ia32-libs. Install it by entering this:
    Code:
    sudo apt-get -y install ia32-libs
    As an alternative, you can also do this (thanks to @jjchico):
    Code:
    sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

    2. Android SDK
    Download it here.

    Extract it to a folder of your choice (in this guide, I will refer to it as ~/android/sdk).
    Enter these commands into the terminal:
    Code:
    cd ~/android/sdk/adt-bundle/sdk/tools
    ./android sdk

    Click Install packages. cd to ~/android/sdk/adt-bundle/sdk/platform-tools and type:
    Code:
    ./adb
    ./fastboot

    If you've done everything correctly, you should get a big block of text for both (which list all of the adb/fastboot commands).

    3. Install required packages
    Copy and paste this command into the terminal:
    Code:
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \
    ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
    lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \
    tofrodos python-markdown libxml2-utils xsltproc readline-common \
    libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \
    lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \
    libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \
    libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev

    4. Install the repo command
    Make directories called bin and android in your home folder, respectively.
    Code:
    mkdir -p ~/bin
    mkdir -p ~/android

    Download and setup the repo binary:
    Code:
    curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    Now add it to your path:
    Code:
    export PATH="$PATH:~/bin"
    And make sure it belongs in your path between subsequent reboots:
    Code:
    echo "export PATH="$PATH:~/android/sdk:~/bin"" >> ~/.bashrc
    source ~/.bashrc

    5. Configuring USB

    You must configure USB to detect your Android device(s) properly.
    Do this in a terminal:
    Code:
    curl https://raw.githubusercontent.com/aureljared/build-env-init/master/51-android.rules > ~/bin/51-android.rules
    chmod a+r ~/bin/51-android.rules
    sudo cp -vfp ~/bin/51-android.rules /etc/udev/rules.d/51-android.rules

    6. Syncing up

    The next step is to initialize the repository and download the source code to your computer.
    Type the following lines into the terminal:
    Code:
    mkdir -p ~/android/cm-11.0
    cd ~/android/cm-11.0
    repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

    To download all the necessary device-specific files for our device, do this:
    Code:
    curl https://raw.githubusercontent.com/aureljared/android-manifests/expresslte-cm-11.0/local_manifest.xml >> .repo/local_manifests/local_manifest.xml

    Now run
    Code:
    repo sync
    You have now begun downloading all of the CM source code to your build directory. Depending on your internet speed, this can take from a couple of hours to a few days. If the sync interrupts, don't worry. Simply continue the sync (you don't have to restart completely, only the project you were downloading when the interrupt occured, lol) by entering:
    Code:
    repo sync

    Some tips:
    • You can interrupt the process by pressing Ctrl + C, it will continue where it left off the next time anyway.
    • Remember, you need to cd into your build directory (~/android/cm-11.0, if you've been following this guide) for the command to work.
    • If you want only one project to be synced at a time, run repo sync -j1 instead.

    This step takes a long time depending on your internet connection speed (FYI you're downloading ~20 GB of code!)

    7. Building CM (yay!)

    You must download the necessary pre-built apps:
    Code:
    ~/android/cm-11.0/vendor/cm/get-prebuilts

    Now let's build! cd to your build directory and run the following commands in the terminal:
    Code:
    . build/envsetup.sh
    brunch expressltexx

    Now, just let your computer do the rest. This step is very demanding for your computer, so you better leave it alone while it builds. Usually this takes an hour or more. Go get some sleep or eat something.

    Done? If everything went correctly, cd to ~/android/cm-11.0/out/target/product/expresslte and you should see your newly built ROM entitled:
    cm-11.0-20xxxxxx-UNOFFICIAL-expressltexx.zip

    Congratulations! You've successfully built CM 11.0!

    For re-builds (i.e. when the source code has been updated and you would like to make a new nightly), just do this:
    Code:
    cd ~/android/cm-11.0
    make clobber
    repo sync
    . build/envsetup.sh
    brunch expressltexx

    Have fun building!​
    1
    I suggest you to modify step 5 inserting before repo sync
    Code:
    mkdir .repo/local_manifests
    cd .repo/local_manifests
    wget https://raw.github.com/KINGbabasula/android_device_samsung_expresslte/cm-10.2/local_manifest.xml
    cd ..
    cd ..
    This will download the specific necessary repos with repo sync
    Then remove this in step 6
    Code:
    mkdir files
    cd files
    git clone https://github.com/KINGbabasula/proprietary_vendor_samsung.git
    as it isn't needed
    And change make clean with make clobber because with clobber it will rebuild faster

    EDIT: And before step 6 you need to replace these 2 files with the 2 in the attachment
    Code:
    system/core/mkbootimg/bootimg.h
    system/core/mkbootimg/mkbootimg.c

    Original post updated.
    Can you help me with ia32-libs?
    It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.

    I'm using 13.10 x64 on an ASUS K43SJ.
    - Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
    - 2GB RAM available to Ubuntu VM

    Sent from my International Galaxy Express using Tapatalk 4
    1
    Original post updated.
    Can you help me with ia32-libs?
    It says that it's referred to by a handful of other packages but it has no installation candidates or something. The bottom line is that I can't install it.

    I'm using 13.10 x64 on an ASUS K43SJ.
    - Intel i5-2410M Quadcore (2.3GHz normal, 2.9GHz Turbo Boost)
    - 2GB RAM available to Ubuntu VM

    Sent from my International Galaxy Express using Tapatalk 4

    You have to apt-get install every missing library one by one

    Inviato dal mio GT-I9070 utilizzando Tapatalk
    1
    These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

    $ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5

    ---------- Post added at 12:08 PM ---------- Previous post was at 11:29 AM ----------

    These are the libs that ia32-libs pulls in that are present in Ubuntu 13.10. This should be equivalent to install ia32-libs in Ubuntu 12.04:

    $ sudo apt-get install lsb-release lib32gcc1 libc6-i386 lib32z1 lib32stdc++6 lib32bz2-1.0 lib32ncurses5
    1
    Thanks. Just note the missing double quotes in the export PATH.

    Enviado desde mi GT-I9000 mediante Tapatalk