Device tree for G800F (kminilte)
Feature | Specification |
---|---|
CPU | Quad-core 1.4 GHz |
Chipset | Exynos 3 Quad 3470 |
GPU | Mali-400MP4 |
Memory | 1.5GB RAM |
Shipped Android Version | (4.4.2) |
Storage | 16 GB |
MicroSD | Up to 64GB |
Battery | 2100 mAh |
Dimensions | 131.1 x 64.8 x 9.1 mm |
Display | 720 x 1280 pixels |
Camera | 8 MP, 3264 × 2448 pixels |
Release Date | August 2014 |
Although this device is not officially supported, the build-steps are not that different between devices. Most of the information on this "How to build" page also apply to this device: https://wiki.lineageos.org/devices/herolte/build
Requirements:
Perform the following steps from the above "How to build":
Install the SDK
Install the Build Packages
Create the directories
$ mkdir -p ~/bin
$ mkdir -p ~/android/system
Note: you can replace the build root "~/android/system" with any directory you like. Let's assume it is "~/android/system" in the following steps.
Install the repo command
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Put the ~/bin directory in your path of execution
Initialize the LineageOS source repository
$ cd ~/android/system/
$ repo init -u https://github.com/LineageOS/android.git -b lineage-15.1
Download the source code
$ repo sync
Patch sources
8.1. Clone the local manifests with the following commands:
$ cd ~/android/system/
$ git clone https://github.com/cm-3470/android_.repo_local_manifests -b lineage-15.1 .repo/local_manifests
However if you already obtained local manifests from a different device, just copy at least the following files into .repo/local_manifests :
8.2. Fetch device specific repos by synching all repos
$ repo sync
8.3. Apply device specific patches (also repeat this step whenever the patches in the directory "patch" are modified):
$ cd device/samsung/smdk3470-common/patch
$ ./apply.sh
Prepare the device-specific code
This step is device specific and hence different from the "How to build".
$ source build/envsetup.sh
$ lunch lineage_kminilte-userdebug
These commands only have a temporary effect, you will have to perform these commands again, when you use a new terminal window.
(optional) Turn on caching to speed up build
Only if you want to rebuilt LineageOS multiple times you also should enable CCACHE. E.g. by adding the following lines to your $HOME/.bashrc:
export USE_CCACHE=1
export ANDROID_CCACHE_DIR="/mnt/ccache" # Replace with your ccache dir
export ANDROID_CCACHE_SIZE="50G" # Replace with your ccache size
(optional) Setup the Java VM heap size for the Jack server: Java uses a default max. heap size of 1/4 of the installed RAM. Jack needs a minimum of 4 GB to work properly with Android N, so if your build environment has < 16 GB RAM you should add the following line to your $HOME/.bashrc:
export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
Start the build
$ croot
$ mka bacon
The build-process takes a lot of time - the initial build can take about 10h. If CCACHE is enabled, the next builds only take 3-4 hours. Note that especially the linking process (ld) needs a huge amount of memory. The building process stops without a warning if only 6GB are present. In this case you can try to build with only one process (mka bacon -j1).
When the build-process finished the following files will be available:
LineageOS image: out/target/product/kminilte/lineage-15.1-<date>-UNOFFICIAL-<device>.zip
recovery: out/target/product/kminilte/recovery.img
If you want to rebuild the ROM, perform the following steps:
$ repo sync
$ mka clean
$ mka bacon
"repo sync" might fail due to local source code modifications. In this case temporarily revert the changes and reapply them after the update:
$ repo sync (-> fails due to local modifications, failing subprojects are listed in log-output)
For each failing subproject, revert the changes (e.g. with git reset --hard ...)
$ croot
$ repo sync
Now reapply the patches (see section about device/samsung/smdk3470-common/patch/apply.sh)
#
# Copyright (C) 2017 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#