Unfortunately I think I cannot update it anymore, because of my low specs pc and my lack of time, so I made a noobproof guide on how to compile it, or any other LineageOS 13/14.1 based ROM.
A lot of guides on XDA don't show some steps, and for a n00b (like me) understand them is almost impossible without a step-by-step guide. So here we are, a COMPLETE guide on HOW TO BUILD for GT-I9525 (jactivelte).
It could be applied for any other device, but with some changes.
You can find this guide too on my Github, precisely in the local_manifest repository or on my Github Page. However, let's start.
Setup the machine
Download any Debian based distro, burn it in a USB and install it or just create a virtual machine. I advice you to install Ubuntu 16.04.2 Xenial. Don't install it on virtual machine if you've got a low specs PC.
Now, open a terminal and write the command:
sudo apt-add-repository ppa:openjdk-r/ppa -y; sudo apt update -y; sudo apt install git-core python gnupg flex bison gperf libsdl1.2-dev libesd0-dev \
squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-8-jre openjdk-8-jdk pngcrush \
schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32ncurses5-dev \
gcc-multilib liblz4-* pngquant ncurses-dev texinfo gcc gperf patch ccache libtool \
automake g++ gawk subversion expat libexpat1-dev python-all-dev bc libcloog-isl-dev \
libcap-dev autoconf libgmp-dev build-essential gcc-multilib g++-multilib pkg-config libmpc-dev libmpfr-dev lzma* \
liblzma* w3m android-tools-adb maven ncftp htop repo lib32z1-dev -y
Note that this one is a SINGLE giant command. There isn't any wrap between. Once you did it, do it again.
If some package like lib32z1-dev causes error code (1), just remove it from the command. Note that it could compromise the build, if it's an important one. I'd advice you to Google it for solving.
Now, you successfully setted up your building machine.
Manage your repos
First of all we need to setup the repo binary, with the commands:
curl http://commondatastorage.googleapis....downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Now create a folder for the sources where you want. I created mine in a subfolder inside my home. To do so, open your terminal and type mkdir LOS or change LOS to whatever you want.
Then enter in the folder just created with cd "FOLDER NAME"
You have now to configure your github account. To do so:
git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"
Now init the project, in this case I'll use the JDCTeam's project. To do so type in terminal
repo init -u git://github.com/JDCTeam/manifests.git -b opt-cm-14.1
If you want to repo sync RR
repo init -u https://github.com/ResurrectionRemix...m_manifest.git -b nougat
Instead, for clean LineageOS
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
After this, you have to repo sync, with the command
repo sync -f --force-sync --no-clone-bundle
It will take some hours, it depends by your connection speed. When it will finish, repo sync again (just for being sure).
Now open any file manager (if you're on Ubuntu, it will be Nautilus), press CTRL+H, open the folder .repo, create a new folder called "local_manifests". In base of the OS you want to build, choose between by LineageOS, Resurrection Remix OS, Side or OptimisedLOS local_manifests. Now rename the file you downloaded into local_manifest.xml and move it to the local_manifests folder you just created.
Repo sync again. If there are some duplicates, just comment them. To do so, put !-- and -- respectively before and after the duplicate paths. So <project *blablablahere* /> would become <!--project *blablablahere* /-->.
Now, go to LOS/device/samsung/jf-common and open BoardConfigCommon.mk
Here, if the BOARD_RECOVERYIMAGE_PARTITION_SIZE := is not set to 11300000 or more, change it, otherwise the build will fail.
That's what I'm talking about
This step should improve the building speed, but it require some space (just like a cache, considering that it IS a cache).
echo "export USE_CCACHE=1" >> ~/.bashrc
~/RR/prebuilts/misc/linux-x86/ccache/ccache -M 100G
If you don't have so much space, I advice you to give 50G instead of 100G. Less is useless IMHO.
Configure the repos
CyanogenMod (RIP) left the show to LineageOS. Unfortunately someone still didn't notice it. The sources, indeed, could still be setted up for CyanogenMod. Don't mind, it's not that difficult, we could solve together.
In terminal type:
You should see jactivelte, jf-common and qcom-common. Well, if you don't, you missed some step. Now, open these folders. Rename any cm.dependencies into lineage.dependencies, without editing anything. If there is cm.mk too (but it shouldn't), rename it lineage.mk, then open it and at the bottom replace cm_jactivelte with lineage_jactivelte.
Building the ROM
Now, prepare yourself for the building itself. Type in the terminal
Write your password and press enter. This will enable the root access to every command. Type
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX: +TiePurpleCompilation -Xmx4g"
rm -rf /home/"yournamehere"/.jack-server
export ANDROID_JACK_VM_ARGS="-Xmx3g -Dfile.encoding=UTF-8 -XX:+TiePurpleCompilation"
Now wait some hours (or some minutes if your PC is a beast), and you'll get your ready-to-flash ROM zip! You can find it in home/LOS/out/target/product/jactivelte
If you want to build again, with updated sources:
repo sync -f --force-sync --no-clone-bundle
. build/envsetup.sh && brunch jactivelte
You can find it in home/CM14.1/out/target/product/jactivelte
Remember to put in your credit EVERYONE who helped you or provided you the sources, like CyanogenMod, LineageOS, XOSP, RR and so on and so on.
Remember also that if you want to publish a ROM, you also have to publish the sources, if you made some commits.
Have fun compiling!