System Development

Download System Source

Download the compressed volumes

Version Download Password
android4.3-work 5c74
android5.1-work sn7u
android4.3-mirror 4pxg
android5.1-mirror jnv8

Please read “readme.txt” carefully after the completion of the source code download.

After download is complete, check the MD5 compression:

$ md5sum elf-work-v1.0(beta2)-api1aa (0f745f3036550d5986444945dda38bab)
$ md5sum elf-work-v1.0(beta2)-api1ab (54e7005888c070aa82c0f82abd5e528c)
Merge the two volumes and extract them:

$ cat elf-work-v1.0\(beta2\)-api1a* > elf-work-v1.0\(beta2\)-api1.tar
$ md5sum elf-work-v1.0\(beta2\)-api1.tar (51e38e86547160aae21a8a1a1eecce97)
$ tar xf elf-work-v1.0\(beta2\)-api1.tar
To reduce package size, the tar package contains only code library (after unpacked just .repo directory), does not contain the code itself, we need to extract the current version using the following command:

$ .repo/repo/repo sync --local-only
If you need to synchronize the subsequent update, first provide ~ / .ssh / file to our project staff in order toget assigned to a Division. After appropriate permissions are granted, check the source code synchronization rights (this step can not be automated for the first time since ssh connection requires a user to enter yes confirm):

$ ssh -p 29418
Set the server address information:

$ .repo/repo/repo init -u ssh:// -b release-4.3 -m elf.xml
Synchronization command (remove parameters will synchronize other branches, the first synchronization is slow):

$ .repo/repo/repo sync --current-branch --no-tags
But with --no-tags important iwop tag are not synchronized, you have to manually synchronize (or automatically via a script), with this command:

$ .repo/repo/repo forall -c 'pwd; git fetch $REPO_REMOTE "iwop-elfos-v1.0(beta2)-api1"'
Return to a specific tag version of the code:

$ .repo/repo/repo forall -c 'pwd; git checkout "iwop-elfos-v1.0(beta2)-api1" || kill $PPID'

Download the compressed sub-volume (mirror version for team development who need to build code repository, please download this version)

Highly RecommendedWe provide a custom repo tool to avoid circular references bug

repo download link:

Unzip the repo.tar file and replace the existing repo folder

Password: qi7v

Verify the MD5 compression using checksum:

$ md5sum elf-mirror-v1.0-4.3-master-api1.paa (cd3b1954a34937ba5a538152dff44ba4)
$ md5sum elf-mirror-v1.0-4.3-master-api1.pab (afca79c28a5421596d94e5bac09696b7)
Merge the volumes and extract them inside the server location:

$ cat elf-mirror-v1.0-4.3-master-api1.* > elf-mirror-v1.0-4.3-master-api1.tar
$ elf-mirror-v1.0-4.3-master-api1.tar
$ tar xf elf-mirror-v1.0-4.3-master-api1.tar # For example, the path where to extract the project /mnt/data/elf-mirror
Other employees (i.e. clients) in order to download the code (need to replace localhost server's address; here is the standard ssh protocol as an example, the user can change to match their address):

$ repo init -u ssh://name@localhost/mnt/data/elf-mirror/manifests.git -b release-4.3 -m elf-from-mirror.xml
$ repo sync
After the code has been modified by the team, it can not be submitted directly to the default branch, otherwise synchronization code error may occurs in our server, so you need to modify the code base for the new branch, For example, to modify the kernel code, you need to first establish if a branch (client) is a kernel:

kernel $ git checkout -b new-branch
kernel $ echo "new file" > new file
kernel $ git add . && git commit -m "new change"
kernel $ git push os new-branch:new-branch
Counting objects: 4, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 278 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To ssh://name@localhost/mnt/data/elf-mirror/android/kernel/kernel-3.0.8
 * [new branch]      new-branch -> new-branch
For locate a new branch, modify the manifest.xml as following:

.repo/manifests $ git checkout -b new-branch
.repo/manifests $ vi elf-from-mirror.xml
-  <project path="kernel" name="android/kernel/kernel-3.0.8" remote="os" />
+ <project path="kernel" name="android/kernel/kernel-3.0.8" remote="os" revision="new-branch" />
.repo/manifests $ git add . && git commit -m "new change" .repo/manifests $ git push origin new-branch:new-branch Counting objects: 5, done. Delta compression using up to 24 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 353 bytes, done. Total 3 (delta 2), reused 0 (delta 0) To ssh://name@localhost/mnt/data/elf-mirror/manifests.git * [new branch] new-branch -> new-branch
Notify your collegues to switch their repo pointing to the new address:

$ repo init -u ssh://name@localhost/mnt/data/elf-mirror/manifests.git -b new-branch -m elf-from-mirror.xml
$ repo sync # It doesn't require extra parameters because it is an internal server repository
Subsequent synchronizations, first provide ~/.ssh/id_rsa/pub file to our project staff in order to get authorized (it cannot be automated for the first time because the user is prompt for a password)

$ ssh -p 29418
Point to our server address:

.repo/manifests $ vi .git/config
    Modify url as following:ssh://
.repo $ rm manifest.xml
.repo $ ln -s manifests/elf-mirror.xml manifest.xml
Synchronization command (remove the parameter will synchronize subsequent branches):

$ .repo/repo/repo sync --current-branch --no-tags
With --no-tags important iwop tag are not synchronized, so you have to manually synchronize them:

$ .repo/repo/repo forall -c 'pwd; git fetch $REPO_REMOTE "iwop-elfos-v1.0(beta2)-api1"'


Only repo tool version v1.12.14 supports --current-branch and --no-tags argument, if you use the system default repo or ./repo for synchronization, make sure that its version is not lower than this requirements, comes tool version:

$ .repo/repo/repo --version
repo version v1.12.16
repo launcher version 1.21
       (from /mnt/data/duke/pack/elf-work/.repo/repo/repo)
git version
Python 2.7.3 (default, Jun 22 2015, 19:33:41) 
[GCC 4.6.3]



If your server is relatively slow you can try to switch to a different URL


Configure the Development Environment

We reccomend Ubuntu 64Bit operating system(higher or equal to Ubuntu 12.04 64Bitversion),and need to install also jdk,sdk and ndk。

1.JDK1.6.x (be sure to have 1.6 version and not higher)

Download link:
Configure environment variables

Modify ~/.bashrc,add java path at the end of the file:

export JAVA_HOME=/work/soft/jdk1.6.0_33  
export PATH=$PATH:$JAVA_HOME/bin
Verify that Ubuntu is using the correct JDK

Enter java -version,and verify the installation:

$java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)



NOTE: android-sdks provided here is used to configure the android sdk package compiled elf ant project, because the file is relatively large, for customer convenience we have done some cutting, respectively the add-ons docs, samples, system-images folder content, so it can not be used to configure the eclipse..

Configuration environment variables

Modify ~ / .bashrc, at the end of file add the path to the SDK folder, for example:

export ANDROID_HOME=~/work/soft/android-sdk-linux  
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/build-tools


Configure Environment variable

Modify ~ / .bashrc, at the end of file add the path NDK folder, for example:

export NDK_HOME=~/work/soft/android-ndk-r10
Verify that NDK and SDK are installed

Enter ndk-build, if the terminal display "NDK-BUILD not found" the installation is not done

Install the required packages to compile Android

$ 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/ /usr/lib/i386-linux-gnu/  


Compilation steps

./build/  --preset=aw808_v11_wisesquare_iwop //square watch

./build/  --preset=aw808_v11_naturalround_iwop //round watch

After compilation, in the out/target/product/aw808_iwop/ folder you will find the following files:

u-boot-with-spl-mbr-gpt.bin、 boot.img、 system.img、 recovery.img


Burn the images

Burn procedure