Build for m7ul

From Omni
Jump to: navigation, search

Directions for building Omni for the HTC One (m7ul)

Most of the commands shown in this guide assume you are using Linux (e.g. Ubuntu)

Setting up the build environment

If you need to set up your environment follow these steps general Android build environment.

The above link may say that you must use java-1.6.0-openjdk, the build can now also be done using java-1.7.0-openjdk

Getting the Omni source code

This section assumes that when you used repo sync to download the Omni source code you did this in ~/android/omni. However, you can use any directory you wish, just be sure to use the correct directory name when following the examples below.

Make sure you are in the correct directory

cd ~/android/omni

Create a local_manifests directory

mkdir ~/android/omni/.repo/local_manifests

Using your favorite editor create a file, which you will save as

~/android/omni/.repo/local_manifests/local_manifest.xml

Paste this into that new local_manifest.xml file and save the file

 <?xml version="1.0" encoding="UTF-8"?>
 <manifest>
 <remote name="omnirom"
 review="gerrit.omnirom.org"
 fetch="https://github.com/omnirom" />

 <remote name="DonkeyCoyote"
 fetch="https://github.com/DonkeyCoyote/"
 review="gerrit.omnirom.org" />

 <!-- V E N D O R -->
 <project path="vendor/htc" name="proprietary_vendor_htc" remote="DonkeyCoyote" revision="android-4.4" />

 <!-- M 7 U L D E V I C E T R E E S -->
 <project path="device/htc/m7ul" name="android_device_htc_m7ul" remote="omnirom" revision="android-4.4" />
 <project path="device/htc/m7-common" name="android_device_htc_m7-common" remote="omnirom" revision="android-4.4" />
 <project path="kernel/htc/m7" name="android_kernel_htc_m7" remote="omnirom" revision="android-4.4" />
 <project path="device/htc/msm8960-common" name="android_device_htc_msm8960-common" remote="omnirom" revision="android-4.4" />
 </manifest>

Make sure you do not have a roomservice.xml file by using the following command. If you get an error that the file does not exist ignore that error because the result is what we want... no roomservice.xml file

rm ~/android/omni/.repo/local_manifests/roomservice.xml

Now do another repo sync to make sure you have the latest version of Omni's sources. You can speed this up by using multiple threads depending on how many processors your system has. If you don't know how many you can find out with the following command

grep processor /proc/cpuinfo | wc -l

If the above command returns 6 then you can do this (if you get a different number use that)

repo sync -j6

It's not neccessary to use the maximum number or processors, you can use any number between 1 and your maximum. In fact if you experience timeout errors when running repo sync try again using -j1.

Building

source build/envsetup.sh
lunch

running lunch will ask you to choose what you want to build, choose omni_m7ul

brunch m7ul

Your new ROM

If the build completes successfully you can find the ROM at

~/android/omni/out/target/product/m7ul/omni-4.4.1-<date>-m7ul-HOMEMADE.zip

Flash this the same as any other ROM, but do a nandroid backup first!

If you are flashing Omni ROM over a different ROM you should do a full wipe (factory reset first), if you are flashing over an older version of Omni ROM this is not necessary.