[ROM] [4.2.2] Unofficial Root-Box w/ Inverted Gapps [2013-08-17] FOCAL - Sprint HTC EVO 4G LTE

This is an unofficial port of Vanilla Root-Box.
I compiled this ROM from Root-Box and other sources and have
added my own modifications and other apps not normally included.​
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I would love any feedback, suggestions, help and even complaints.
I want to learn as much as I can about building my own ROMs and believe
the only way I can truly get better is through the XDA community.
I've only just started learning this stuff and have had a huge amount of
help from mikeshepard and jrior001 in learning and getting this ROM to build.
FEATURES
All features found in Vanilla Root-Box
Compiled with -O3 optimizations with GCC 4.8
Added Apollo
Added CM File Manager
Added Nova Launcher Basic (Will Update from Market)
Added Android Terminal Emulator (Will Update from Market)
RootBoxOTA
Includes patch for Android Master Key bug #8219321 and bug # 9695860
Custom default PA DPI settings for Calculator, Gmail, Email, Play Store and Settings.
Dark Root-Box Gapps - turning on Dark Root-Box will invert these gapps.​
Downloads:
You can find all my builds on Devhost.
DevHost - http://d-h.st/users/tjarnold/?fld_id=18388#files
Most Recent ROM - 08-08-2013 - RootBox-JB-jewel-Unofficial-20130808.zip*
Gapps - Black-Box_Gapps_Aroma_20130801-signed.zip - Custom Dark Rootbox Compatible Gapps
Focal - Focal.apk - Built from sources created by the CyanogenMod team. Install like any other apk.
Changelog For ROM:
08-08-2013 - RootBox-JB-jewel-Unofficial-20130817.zip*
- Updated all non-Root-Box sources.
- Changed to 3.4.11 CyanogenMod/msm8960 kernel. (The 3.4.49 kernel was presenting too many stability issues.)
- Added Intellidemand governor to kernel.
- Added underclocking to 192MHz
- Updated the following Root-Box repos:
1. bionic
2. bootable_recovery
3. dalvik
4. Superuser
5. frameworks_av
6. frameworks_base
7. frameworks_native
08-08-2013 - RootBox-JB-jewel-Unofficial-20130808.zip*
- Update all sources.
- Added Lionheart and Intellidemand Governors.
- Added underclosking to 192MHz and overclocking to 1674MHz. (For some reason it defaults to 1674MHz and not 1512MHz.)
- Put Deck's RIL fixes back in. (As some of you noticed, I screwed up and left these out of the last build.)
- Updated Nova Launcher Basic.
08-03-2013 - RootBox-JB-jewel-Unofficial-20130803.zip*
- Update all sources
- Compiled with GCC 4.8
- RootBoxOTA - replaces Goo Manager.
07-30-2013 - RootBox-JB-jewel-Unofficial-20130730.zip
- Updated all sources
- Superuser Fix
- Changed Wallpaper
- Works well with Black-Box_Gapps_Aroma_20130731-signed.zip
- Stability fix for reboots
07-23-2013 - RootBox-JB-jewel-Unofficial-20130723.zip
- Most recent sources
- Includes patch for Android Master Key bug #8219321 and bug # 9695860
- Added Android Terminal Emulator (Term.apk - this will update through the market)
- Added Apollo
- Added Deck's RIL fix (patch 23) for data dropping. (These commits have still not been committed and are considered to be a work in progress. With that being said, most reports are showing that this fix is working.)
07-21-2013 - Minor Update
- Synced Repos
- Added CM File Manager
- New custom DPI setting for Calculator (Adds extra keys)
07-19-2013 - initial build
- All current Root-Box sources.
- Added Nova Launcher basic as a launcher option.
- Custom default PA DPI settings for a few apps.
- Root-Box wallpaper from Rootbox.ca
- Compiled with -O3 optimizations with GCC 4.7
*While I normally say a dirty flash should not cause any problems, I have found that for some reason I do get rare reboots with a dirty flash. I would recommend using TiB to restore your apps if you run into this problem rather than a nandroid.
Custom Dark Root-Box Gapps
* I did not create any of these Gapps. They were created by CM or SlimROMS. *
These gapps can be used in place of any other gapps. The modifications I made will allow the dark Root-Box setting to affect all the Gapps.
*There is an update in the playstore for Google Hangouts. Do not install the update as you will lose the dark version.
Changelog:
08-01-2013 - Black-Box_Gapps_Aroma_20130801-signed.zip
- Fixed install problem with Google Now and TTS
07-31-2013 - Black-Box_Gapps_Aroma_20130731-signed.zip
All Gapps can be individually installed or left out if you do not use them.
Core apks, libs, ect. are installed without having to select them. (No need to figure out for yourself what HAS to be there.)
Gapps Included:
- Google Play Store
- Gmail
- Google Now
- Google Music
- Hangouts (Formerly Talk)
- YouTube
- LatinIME
- Text To Speech
- Voice Dialer
- Talkback
- Google Ears
- News & Weather
07-29-2013 - Black-Box_gapps_20130729-signed.zip
I took the gapps-jb-20130301 and removed the following files:
- Google Play Store
- Google Talk
- Google Now
- GmsCore.apk
I then added the following Gapps from SlimRom Gapps:
- Google Play Store
- Google Music
- Gmail
- Google Hangouts
- Google Now
- Youtube
- GmsCore.apk
Credits:
I want to thank these guys for their work that has led me to get here. Without them, I would not have been able to even start compiling for myself.
mikeshepard - His instructions on building Root-Box for Jewel got me started on this.
jrior001 - Debugged and fixed recent compiling issues.
kushdeck - Deck's CM builds started me off getting away from stock ROMs since his builds were always top notch.
bajee11 - Root-Box is his creation and IMHO is awesome.
jamieg71 - His Root-Box ROM was the first non-sense ROM I tried. I've been hooked on Root-Box ever since.
sylentprofet
dragonstalker
(If there is anyone that I have not mentioned and I am using your work, please let me know.)
Sources
Root-Box
jrior001
mikshepard
tjarnold
CyanogenMod
WARNING:
Please use this ROM at your own risk. I am not responsible for anything that happens to your phone including the emergence of skynet as a result of using this ROM.

Building from Source
Guide for building Root-Box from source​
To start off, you need Ubuntu 12.04 or higher, 64-bit version installed. You cannot build Android 4.2.2 unless you are using a 64-bit OS. I am personally using Ubuntu 13.04 but I started on 12.04 so either way should be fine.
Everything is done in terminal. Please make sure to type or copy the commands exactly to avoid any issues.
Next we need to get the correct version of Java installed and set up as default. I would recommend removing any other versions. If you want to remove some other common versions that may be installed on your system run:
Code:
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
Now we need to add a self updating repository for Java.
Code:
sudo add-apt-repository ppa:webupd8team/java
Lets install Java 6
Code:
sudo apt-get update && sudo apt-get install oracle-java6-installer
In case you decided to leave other versions of java or you have another version of Java installed we need to make sure that your computer will use the correct version to compile Android.
Code:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/jre/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1
sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1
Now we tell your computer exactly which version of Java to use. After typing each line one of your choices should be JDK1.6.0_45. This is the one you want to choose.
Code:
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config jar
sudo update-alternatives --config javadoc
Now we need to install everything else needed to build Android.
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-glx:i386 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 python
And
Code:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Here we tell your computer how to "repo".
Code:
kdir ~/bin
export PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
Create a folder to build in and change to that folder.
Code:
mkdir ~/rootbox_jewel
cd ~/rootbox_jewel
Initialize and sync Root-Box sources. This will take quite a while. (Like 3-6 hours with a decent connection. I sync for the first time overnight.) After the first sync, you will only get updates or changes so its much faster. You can also add -jX to the sync command (ex. repo sync -j6) where X is the number of threads being downloaded at the same time. The default is 4. I typically use 6. If you have problems or your system locks up you may want to use a smaller number.
Code:
repo init -u https://github.com/tjarnold/platform_manifest.git -b jb-mr1
repo sync
Download Term.apk. The build will fail without this since I added it into the makefiles.
Code:
cd ~/rootbox_jewel/vendor/cm
. get-prebuilts
Now you are finally ready to compile your ROM.
Code:
. build_rootbox.sh jewel
There are also some extra commands you can add on to the above command. Just type all 3 of these options after the command above. They need to be in the same order otherwise it will not work. 1) sync or nosync - will sync your repo before building, 2) any number - number of threads to build at once (the aboe command defaults to 4), 3) clean or noclean - the clean option will clear out all old build files from a previous build. This is useful if there is a major change or something gets screwed up during the build.
Code:
. build_rootbox.sh jewel sync 4 clean (run repo sync, 4 threads, delete old build files)
. build_rootbox.sh jewel nosync 2 noclean (don't sync, use 2 threads, don't remove old build files)
. build_rootbox.sh jewel sync 6 noclean (run repo sync, 6 threads, don't remove old build files)
If you have followed the directions above, the resulting .zip can be found in:
~/home/rootbox_jewel/out/target/product/jewel

Nice and thanks!
Sent from my EVO using xda app-developers app

Do you have the kernel as a separate file to try and flash it S-On?
Thanks for sharing BTW!!

welshwarriorsf said:
Do you have the kernel as a separate file to try and flash it S-On?
Thanks for sharing BTW!!
Click to expand...
Click to collapse
You can pull it straight from the root directory of the zip file. boot.img is the file you're looking for.

louched1 said:
You can pull it straight from the root directory of the zip file. boot.img is the file you're looking for.
Click to expand...
Click to collapse
OK thanks, I just flash the boot.img 1st then the ROM?

Thanks OP. Great to see new people. Thanks for sharing. :thumbup:
Sent from my EVO using xda premium

New Nightly
New Nightly Up
RootBox-JB-jewel-Unofficial-20130723.zip
Changelog:
- Most recent sources
- Includes patch for Android Master Key bug #8219321 and bug # 9695860
- Added Android Terminal Emulator (Term.apk - this will update through the market)
- Added Apollo
- Added Deck's RIL fix (patch 23) for data dropping. (These commits have still not been committed and are considered to be a work in progress. With that being said, most reports are showing that this fix is working.)

Does this have 4G LTE? I haven't picked anything up yet, but my area is very spotty.

c64fan said:
Does this have 4G LTE? I haven't picked anything up yet, but my area is very spotty.
Click to expand...
Click to collapse
LTE does work. It's just coming into my area so it only works for me in some places.
One thing that I noticed with this ROM after adding Deck's RIL fix is that I had to reboot the ROM for it to connect to data. If anyone else can confirm this.

Nice 1. Thanks for sharing man. Looking forward to see what you bring in the future
SENT FROM MY LTEVO

Does this have the ribbon feature?

downloading now baby!!

@tjarnold since I build RB for the HTC DNA (somewhat similar device) let me know if you can figure out later how to get the camera to work when compiling with GCC 4.7 and -O3, because I ran into the same issue. I fixed it by using GCC 4.6 and -O2 everything compiled fine.

mcwups1 said:
Does this have the ribbon feature?
Click to expand...
Click to collapse
Yes, ribbons are included. They were one of the first reasons that got me back on Root-Box. I love using the ribbons and have a couple set up at any one time.

.torrented said:
@tjarnold since I build RB for the HTC DNA (somewhat similar device) let me know if you can figure out later how to get the camera to work when compiling with GCC 4.7 and -O3, because I ran into the same issue. I fixed it by using GCC 4.6 and -O2 everything compiled fine.
Click to expand...
Click to collapse
I have my rom compiled with GCC 4.7 and -O3. While I did not fix the issue compiling the camera myself, you can see what was done here. I am very new to this so you may be referring to something different.

tjarnold said:
I have my rom compiled with GCC 4.7 and -O3. While I did not fix the issue compiling the camera myself, you can see what was done here. I am very new to this so you may be referring to something different.
Click to expand...
Click to collapse
Mike pm'ed me about what he did to fix it shortly after I posted that post lol but thanks anyways
Sent from my Nexus 7 using XDA Premium HD app

Anyone else have the media volume change with the buttons instead of the ringer? No matter if in an app or not
Sent from my EVO 4G LTE using xda app-developers app

reeher3287 said:
Anyone else have the media volume change with the buttons instead of the ringer? No matter if in an app or not
Sent from my EVO 4G LTE using xda app-developers app
Click to expand...
Click to collapse
Yes. That is the way it is set up. The repos I'm using have it set that way. I like it that way since I keep my ring on silent and use to accidentally hit the volume button and either turn it up or turn off vibrate and this annoyed me.
I have never looked into where this setting is. I did check to see if I could find something in settings to change this, but did not find one.

its all good, ive kinda grown to like it myself lol.
on another hand, this rom and jellbeer latest i keep getting random reboots and when it would boot back up system process fc's, never had these problems before using cm based roms for the past year. any ideas??
latest firmware and etc except the ts driver btw

Related

[ROM][LOTK][4.2.2] Unoffical Root-Box Nightly 8/5/13

This is an Unoffical port of Root-Box ROM for our device. I had no part of the development, I only compiled it.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is a continuation of jamieg71's Root-Box port for our phone (located here), that’s actually how I found out about it. This is built with a CM10.1 kernel, and Root-Box sources, and a few additional tweaks. The ibtimes.co.uk best describes it:
"The Vanilla Rootbox ROM combines the best custom features of Android Open Kang Project (AOKP) and CyanogenMod (CM) ROM in a single profile, which includes per app DPI, tablet UI and Language features.
NOTE: As the Vanilla RootBox ROM is based on the newly released Android 4.2.2 firmware which is still under development, it may harbour a few untested bugs or broken features. However, all such issues are expected to be fixed in the upcoming updates as development progress.
Here is the complete list of key features supported by Vanilla RootBox v3.8 ROM:
-AOKP Features
-CM Profiles
-Per App DPI
-Per App Tablet UI
-Per App Language
-OTA Updates - Goo Manager
-Navigation Bar Colour
-Camera: Save to external memory
-Phone: Advance Phone Settings (Vibrate on Answer, Every 45 Seconds, On Hangup and On Call Waiting)
-Phone: Noise Suppression
-MMS: Message rate alerts (Modify SMS message limit for alert)
-MMS: Fully Customizable MMS Theme
-MMS: Soft Keyboard Type (Emoji, Enter to Send, Enter for a New Line)
-Home button call answer (Accessibility Option)
-Variable size pattern lockscreen
-LCD Density Changer
-Low Battery Warning (Pop-up & Sound, Pop-up only, Sound only, Off)
-Option to control cursor in text fields using volume keys
-Disable Fullscreen Keyboard (Landscape mode)
-Expanded Desktop
-Hold Back to Kill
-CRT Animation (Screen On/Screen Off)
-Lockscreen Shortcuts (Paranoid)
-Pie (Paranoid Android)
-Lockscreen Targets (CM)
-Screen Security Features (Unlock options: Quick Unlock, Delay Screen Lock, Menu Unlock, Home Unlock)
-cLock (Chronus)
-Option to disable sound when adjusting volume
-Launch Music app on Headset connection
-Hardware Keys Remapping
-Lockscreen Hardware Keys Remapping"
-AOKP Ribbons
-Halo (THERE IS A SECURITY EXPLOIT WITH THIS, SEE HERE BEFORE USING)
Mike's Additions:
Bash: AOSP errors of "void endpwent()(3) is not implemented on Android" patched by me, custom profile (see below)
Command line tools: openvpn, openssl, nano, netcat, rsync, htop
Amazing new default wallpaper, designed by Chema Fontán
Themed Deskclock (Back with blue accents)
Added new alarm ringtone if you care for some morning madness
Compiled with GCC 4.8
ROM and Kernel compiled with Linaro -O3 optimizations
A few dpi tweaks for better experience
Slimbean Keyboard
Patched to work with Slim Gapps (to be toggleable with the Dark RootBox option)
Terminal emulator added
-More to come
I will try to provide any help I can but I’m not a developer, so my support in fixing any issues CM or AOSP related will be next to nill. I’m just sharing what is working for me if anyone is interesting in using it. I’m really happy with it.
​
Credits:
kushdeck For making CM possible on this phone, his kernel source is what is powering this ROM.
Root-box They made an awesome ROM.
jamieg71 For his excellent ROM and introducing it to our phone. I look forward to his upcoming versions.
jrior001 He gave me much help with the camera crashing on GCC 4.7 and 4.8.
Enjoy,
Mike
DOWNLOADS
Latest:
Nightly 8-05-13
Nightly 7-24-13
Nightly 7-22-13
Nightly 7-10-13 Build by jrior001
Nightly 5-8-13 Build
Nightly 4-10-13 Build
Nightly 4-9-13 Build
TIPS: If nano (a commandline tool) gives you an error of ""Error opening terminal: vt100", type this in the terminal:
export TERMINFO=/system/etc/terminfo
export TERM=vt100
GAPPS
I personally recommend you use the Slim Gapps with these builds, they feature toggleable apps (for use with the Dark RootBox option) and my latest builds have been patched to use the gesture keyboard with them. Also, these get updated regularly.
http://slimroms.net/index.php/downloads/dlsearch/viewdownload/383-addons/4530-aio-aroma-4-2-2-build-8
Also, if you want a toggleable Maps, Google+, or Multi-Dpi Play Store:
http://slimroms.net/index.php/downloads/dlsearch/viewcategory/526-apps
Misc Downloads
Themed Deskclock
Multi-dpi Google Play Store (only needed if you plan on changing the default dpi of the ROM - if you don't know what this means, don't bother with it). This is not needed if the Slim GApps is flashed (link above).
4.2 Camera with Photosphere This zip name is camera42patchedv2.zip, does anyone know the creator of it? I can't give proper credit as I downloaded it a while back and don't remember from where.. sorry
4.3 Camera Flash the 4.2 Photosphere zip above and then install this like any other apk. Works great!
Looking for a sound mod?? Check out this excellent how-to for Acid V7 and the Noozxiode by AndrasLOHF.
Changelog:
8/5/13
It has the usual additions by me (extra alarm tone, new default wallpaper, extra command-line tools, linaro O3 flags, themed alarm clock, SlimBean keyboard, apollo added, etc)
Compiled with GCC 4.8
Sync'd to the latest RootBox sources:
-- Fixes to phone call muting
-- Fixes to AOKP Ribbons
-- Other minor fixes
-- Nexus 7 animations
Fixed keyboard gesture problem with Slim Gapps, no need to flash normal gapps with them! Flash them by themselves now and enjoy toggleable Gapps!
Updated bash aliases (see below)
Updated bash to include TERM and TERMINFO variables (nano, htop, etc. will work out of the box now)
Compiled with linaro -O3 and GCC 4.8
Terminal emulator included.
and others that I'm forgetting.
7/24/13
Compiled with latest sources
Incoming call in background option
Switched to SlimBean's keyboard for a better theme when using the Dark Root-Box option
Fixed some commandline tools not working (ex. bash)
Compiled with more cflags (should be more optimized than the last version, not sure how noticeable it'll be though)
7/22/13
Compiled with latest sources
-Fixes to halo
-New iconset
Compiled with linaro -O3 and GCC 4.7
Deck's RIL fixes (Patch 23) for data dropping (These commits haven't been committed yet, so they are a work in progress. Again, many thanks to Deck, the latest patch solved my data dropping issues.
Custom wallpaper from Chema Fontán
7/10/13
jrior001 helped out and built this build for you guys, I've been backed up with work. So be sure and thank him.
It has the latest Root-Box sources (many changes since last build)
Linaro -O3 optimizations
GCC 4.7
5/8/13
Updated to latest Root-Box sources, with many updates to PA fixes and updates to hybrid settings.
Headphone fix is now on the ROM side, so using other kernels won't break it.
Lots of other things, enjoy!
4/10/13
Added amazing new default wallpaper, designed by Chema Fontán YOU GUYS WILL LOVE THIS!!
Fixed Bash error of "void endpwent()(3) is not implemented on Android", good riddance!
Compile busybox with -O3 linaro flags (might make a small speed increase)
Added nano, rsync, htop, netcat. Put "export TERMINFO=/etc/terminfo" into your bash profile or terminal startup for these to work
Added custom DPI setting for Calculator, you'll love it
Fixed Hybrid Settings menu not showing some default options
Optimized all apk's for better performance
Added an option to have your phone cook you a pizza from scratch and bring you a beer
4/9/13
-Synced with latest sources, Paranoid Android sources are now integrated
-To use PA settings, gotto Settings --> Hybrid Settings --> swipe right to pull open the sidebar, and set it to however you like.
-Lockscreen settings have a new layout with toggle switches
-8 Lockscreen targets are now allowed
3-31-13-Fixed
-Fixed headphone not being detected problem, thanks to thicklizard
-Fixed bootanimation size being off.
3-31-13
-Compiled with Linaro -O3 flags on the ROM and kernel (thanks to Jamieg71, he helped emensly)
-Added in Jamie's tweaks to Trebuchet, should fell much snappier
-Fixed missing "Reboot Bootload" from reboot menu
-Added in Rootbox bootanimation (I noticed it's the wrong size, it'll be fixed in a day or two, sorry)
-Added new alarm ringtone if you care for some morning madness
-Rootbox changed AOKP Mms to AOSP Mms, so built-in theme engine is gone and quick reply popup is different.
-Changed size of Mms quick reply popup
-Added netcat to command line tools
NOTE: If you have problems with Settings options not showing up when in tablet hybred mode, switch back to normal, adjust your settings, and then switch back. Thanks for temporary fix, Fredgar75. Rootbox is updating their repos with latest Paranoid Android settings, so hopefully this will be fixed shortly. I'll to release an update in the next few days. This is only a problem on hybred mode, the rest of the ROM works great.
3-18-13 -
ROOTBOX: Breathing StatusBar Missed Call notification effect, Dark Root-Box option (gives everything a darker theme look, Volume Status quick setting option, 16:9 resolution ratio for Camera, More Battery Icon options (the speedometer is really cool), and SuperUser is fully integrated into settings with a dark background now.
ME: Switched DeskClock to my darker themed version, should be much more pleasing than the grey/red of stock. Compiled bash and openvpn into ROM from the Cyanogen repo's (for those of you that like commandline tools), it doesn't add much to the overall size of the ROM.
NONE OF JAMIES TWEAKS WERE ADDED TO THIS VERSION. We're both very busy, so I compiled this to hold everyone over. Stay tuned and I'll try to get that done as soon as I can, thanks.
3-9-13 - Breathing StatusBar Messaging notification effect (from Root-Box), fix for hard button long-press (if you experience this, from CM), bash shell (compiled in by me from CM repo)
Bash features:
-Modified login to say "Good Morning", "Good Afternoon" etc, based on the time of day,
-Outputs kernel version, uptime, current time, and who you are logged in as (color coded) at time of login (see pic).
-TERM and TERMINFO variables assigned by default. Nano, htop, etc. will work on every ROM now.
-Custom aliases (quick commands)
diskspace - show you a listing of directories and their size
x - exit
ff - find a file (type the name after ff, i.e "ff Term.apk")
lsd - list only directories
.. - go back one directory
... - go back two directories
... - go back three directories
I recommend you switch the default shell in TERM to use this, (Preferences --> Command Line --> enter "/system/xbin/bash").
** HOW-TO COMPILE THIS YOURSELF **
Here are my notes on how to port Root-Box to our devices, should anyone be interested in compiling their own. I ran into a few headaches when I attempted this, so I’m hoping these notes will save others from that. The point of this tutorial is to teach newbies how to port a ROM, while I could do some things on my end make it easier to compile this ROM, I think it's important to outline all the steps involved in doing this by hand, so the methods may be applied to other ROM ports, not just Root-Box.
I compiled on a Debian Wheezy system, 64bit (squeeze should be the same). A 64-bit computer is required to compile Jellybean (ICS and above for that matter), so don’t attempt this on anything less. If you are unfamiliar with installing Debian, you can use LMDE, it's a live Debian system that you can install with minimal linux knowledge and works pretty nice. However the installation process is pretty easy for vanilla Debian and a good learning process, so give it a shot if you have the time.
Do this all as root
Download dependencies:
Code:
apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2 libxml2-utils schedtool pngcrush xsltproc zlib1g-dev lib32stdc++6 lib32ncurses5 ncurses-libs.i686 libstdc++.i686 libgcc.i686 lib32readline-gplv2-dev lib32z1-dev
Link files:
Code:
ln -s /lib32/libncurses.so.5 /lib32/libncurses.so
or for Ubuntu 10.10:
Code:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
Install Google’s repo script:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod 755 ~/bin/repo
Make your working Directory and start syncing with Root-Box
Code:
mkdir ~/rootbox; cd ~/rootbox
repo init -u https://github.com/Root-Box/platform_manifest.git -b jb-mr1
repo sync
Create a local_manifests file with Cyanogenmods sources for our phone and kernel (thanks to Deck’s work). This is porting part.
Code:
mkdir ~/rootbox/.repo/local_manifests
echo ‘<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_htc_jewel" path="device/htc/jewel" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_msm8960-common" path="device/htc/msm8960-common" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_s4-common" path="device/htc/s4-common" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_htc_msm8960" path="kernel/htc/msm8960" remote="gh" revision="cm-10.1" />
<project name="TheMuppets/proprietary_vendor_htc" path="vendor/htc" remote="gh" revision="cm-10.1" />
</manifest>’ > ~/rootbox/.repo/local_manifests/jewel.xml
Sync the repo again
Code:
repo sync
Create your device file for Root-Box (adapted from CM’s cm.mk file):
Code:
echo ‘$(call inherit-product, vendor/rootbox/configs/common.mk)
$(call inherit-product, vendor/rootbox/configs/cdma.mk)
# Enhanced NFC
#$(call inherit-product, vendor/cm/config/nfc_enhanced.mk)
# Inherit device configuration
$(call inherit-product, device/htc/jewel/jewel.mk)
# Device naming
PRODUCT_DEVICE := jewel
PRODUCT_NAME := rootbox_jewel
PRODUCT_BRAND := htc
PRODUCT_MODEL := EVO
PRODUCT_MANUFACTURER := HTC
# Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=htc_jewel BUILD_ID=JRO03C BUILD_FINGERPRINT="htc/jewel/jewel:4.1.1/JRO03C/147243.3:user/release-keys" PRIVATE_BUILD_DESC="3.16.651.3 CL147243 release-keys"
# Release name
PRODUCT_RELEASE_NAME := jewel
# Boot animation
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 720
# PA OVERLAY_TARGET
OVERLAY_TARGET := pa_jewel
# Copy compatible prebuilt files
PRODUCT_COPY_FILES += \
vendor/rootbox/prebuilt/bootanimation/bootanimation_1280_720.zip:system/media/bootanimation.zip
-include vendor/rootbox/configs/common_versions.mk’ > ~/rootbox/vendor/rootbox/products/jewel.mk
edit /vendor/rootbox/products/AndroidProducts.mk and add a \ to the last line and then add $(LOCAL_DIR)/jewel.mk under that. So every line but the last ends in “\”. It should look something like this at the end of the file when done.
$(LOCAL_DIR)/toro.mk \
$(LOCAL_DIR)/t0lte.mk \
$(LOCAL_DIR)/jewel.mk
Click to expand...
Click to collapse
then add our device to the vendorsetup.sh file
Code:
echo “add_lunch_combo rootbox_jewel-userdebug” >> ~/rootbox/vendor/rootbox/vendorsetup.sh
Now, lets create the PA defaults for the per-app-dpi and hybrid settings. It will build and look fine with these xhdpi defaults, but I suggest you look over the pa_jewel.conf at least, here is where you can change the defaults for how apps and settings will look. Setting the "com.android.systemui.navbar.dpi" to "0" is a good idea since we have hardware buttons (but it's a person preference).
Code:
cp ~/rootbox/vendor/rootbox/pa_xhdpi.conf ~/rootbox/vendor/rootbox/pa_jewel.conf
cp -r ~/rootbox/vendor/rootbox/preferences/pa_xhdpi ~/rootbox/vendor/rootbox/preferences/pa_jewel
remove a conflicting file:
Code:
/device/htc/msm8960-common/overlay/packages/apps/Settings/res/values/arrays.xml
OPTIONAL: lets add the "Reboot Bootloader" to our reboot menu:
Code:
echo '<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- reboot options -->
<string-array name="reboot_options">
<item>@string/reboot</item>
<item>@string/reboot_recovery</item>
<item>@string/reboot_bootloader</item>
</string-array>
<!-- reboot values -->
<string-array name="reboot_values">
<item></item>
<item>recovery</item>
<item>bootloader</item>
</string-array>
</resources>' > ~/root/rootbox/device/htc/s4-common/overlay/framework/base/core/res/res/values/arrays.xml
now we build our environment:
Code:
. build/envsetup.sh
build your new ROM for our device:
Code:
. build_rootbox.sh jewel `grep 'processor' /proc/cpuinfo | wc -l`
(the last part can be a number instead of the "grep command", it's how many cpu cores you have)
when finished, it’ll be located in ~/rootbox//out/target/product/jewel/
NOTE: If later on, you get a problem when trying to do a repo sync because of files wanting to be overridden, take note of the files. They are most likely the ones we edited to add the jewel device (~/rootbox/vendor/rootbox/products/AndroidProducts.mk, or /vendor/rootbox/vendorsetup.sh), delete them, and re-add the changes back after the sync is done. This will only happen if those files get updated on the git repo. The cleaner way to do this is to fork these to your own git repo and update them from there, however this tutorial is to teach you how to port ROMs, so we are doing it manually here. Let me know if you see any errors and I’ll update this.
EXTRAS:
Compile Bash Shell into ROM:
add two lines into your ~/.repo/local_manifests/jewel.xml so it looks like this:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_htc_jewel" path="device/htc/jewel" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_msm8960-common" path="device/htc/msm8960-common" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_s4-common" path="device/htc/s4-common" remote="gh" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_htc_msm8960" path="kernel/htc/msm8960" remote="gh" revision="cm-10.1" />
<project name="TheMuppets/proprietary_vendor_htc" path="vendor/htc" remote="gh" revision="cm-10.1" />
<!-- add patched bash -->
<project name="mikshepard/android_external_bash" path="external/bash" remote="gh" revision="cm-10.1" />
</manifest>
and edit your ~/device/htc/jewel/jewel.mk and add the following to it (somewhere in the middle is fine):
Code:
Extra Commondline Tools
PRODUCT_PACKAGES += \
bash
Compile with GCC 4.7
This is a bit more complicated and should not be attempted until you are comfortable with the above, some debugging may be required.
Add this line to your ~/device/htc/s4-common/BoardConfigCommon.mk
Code:
# Use GCC 4.7
TARGET_GCC_VERSION := 4.7
now you need to adjust your TARGET_linux-arm.mk to use some different cflags otherwise you will not be able to connect to the camera. This has been adapted from the work by jrior001 and SlimROMS. Just adjust your ~/build/combo/TARGET_linux-arm.mk to match the following:
https://github.com/mikshepard/android_build/blob/416eae1fb70fcab3b9075fc44699ec2f7d2799f8/core/combo/TARGET_linux-arm.mk
I suggest you look at the comments in there to understand what is being changed.
Now build like normal. PM me if you have problems.
TIP:
If you are into building, checkout my acompile script in my signature, it'll email you when your build is complete using Gmail's snmp and will include the time it took and the last few lines of the output. I find it very useful for knowing when my build is done (especially since they take me about 3+ hours apiece)
SOURCES:
This page helped a lot with a great tutorial on building ROMS
This forum is filled with great people who others with the building of ROMS. A great source when you run into errors you don’t understand.
Hope this helps someone,
-Mike
On a side note, I don’t use the PIE function of this ROM. It seems redundant, as we have the hardware buttons, on our phone. I use LMT instead, so I can have the PIE clock and notifications but apps instead of buttons for the actual PIE. That said, I’ve been interested in trying out porting the LiquidSmooth ROM to our phone, I think it has most of the same features as Root-Box and a few other things, and no PIE built in. The errors it’s throwing out during compiling are a bit beyond my knowledge. Any interested in lending a hand? PM me, it’s just for fun and learning mostly.
Re: Unoffical Root-Box (AOSP Android 4.2.2)
First
I need to try this!
Sent from my kick ass EVO using Tapatalk 2
Re: Unoffical Root-Box (AOSP Android 4.2.2)
Just curious, u said u didn't tweak anything, so how is this thing different? XD
Sent from my EVO using xda app-developers app
Rocklee99 said:
Just curious, u said u didn't tweak anything, so how is this thing different? XD
Sent from my EVO using xda app-developers app
Click to expand...
Click to collapse
It's just a later build from source, which is upgraded to Android 4.2.2 and should have better bluetooth, faster Gallery operation, security fixes, etc. The Root-Box source has a few changes (updated MMS, integrated Superuser, some fixes to the Status Bar transparency, etc). Also, the kernel's been updated with Deck's fixes, so 1080dp video recording and notification light (solid only) is working. That's all, might be enough for others to upgrade, might not
Hope this helps,
-Mike
Re: Unoffical Root-Box (AOSP Android 4.2.2)
mikshepard said:
It's just a later build from source, which is upgraded to Android 4.2.2 and should have better bluetooth, faster Gallery operation, security fixes, etc. The Root-Box source has a few changes (updated MMS, integrated Superuser, some fixes to the Status Bar transparency, etc). Also, the kernel's been updated with Deck's fixes, so 1080dp video recording and notification light (solid only) is working. That's all, might be enough for others to upgrade, might not
Hope this helps,
-Mike
Click to expand...
Click to collapse
Oh nice, I gotcha, Ima try it out
Sent from my EVO using xda app-developers app
Re: Unoffical Root-Box (AOSP Android 4.2.2)
CM based. Not AOSP.
And thank kushdeck for bringing CM not "AOSP" (Spelled wrong in OP).
Evervolv is the closest to AOSP we have.
Either way thank you for your contribution. Dont knock yourself so much in your OP :thumbup:
Good work Mike!
youdug said:
CM based. Not AOSP.
And thank kushdeck for bringing CM not "AOSP" (Spelled wrong in OP).
Evervolv is the closest to AOSP we have.
Either way thank you for your contribution. Dont knock yourself so much in your OP :thumbup:
Good work Mike!
Click to expand...
Click to collapse
I updated the OP to credit Deck for CM instead of AOSP. As for the ROM, while this build is based off of the CM kernel, Root-Box builds takes the AOSP source and adds some features from CM and AOKP, plus adds their own. I did update the OP to reflect this as well. Thanks for catching these errors, I appreciate the help.
-Mike
Re: Unoffical Root-Box Nightly (JB 4.2.2)
Nice! Thanks for sharing. :thumbup:
From my Evo LTE, yup.
Re: Unoffical Root-Box Nightly (JB 4.2.2)
Nice! I love that you included a how-to compile as well, great idea! Hit me up on the liquid smooth thing, been playing with that lately as well, I'll lend a hand anytime.:thumbup:
Sent from my EVO
jamieg71 said:
Nice! I love that you included a how-to compile as well, great idea! Hit me up on the liquid smooth thing, been playing with that lately as well, I'll lend a hand anytime.:thumbup:
Sent from my EVO
Click to expand...
Click to collapse
Awesome man, I'll do that this weekend then! I've been curious about trying that ROM and I get hung up on a few errors. I'll send you what I got within the next few days, any of your help would be greatly appreciated.
Thanks!
-Mike
Re: Unoffical Root-Box Nightly (JB 4.2.2)
Flashed great job will hold me over til Jamie tweaks things up
Sent from my EVO using xda app-developers app
Man this is great I've been running Jamie's build since it dropped and love can't wait to try this out and get a peek of what's to come with this ROM
I dirty flashed this on top of jamieg71's and it works smoothly
OP updated with next nightly, this adds an option to RootBox settings for a "Breathing SMS" which is a effect added to the StatusBar icon for messaging notifications, thanks to the RootBox devs. Also, if you experience the hard-buttons getting stuck on long-press ever (only happened once to me), there was an update to the CM repo to fix this. I also compiled bash shell into this from the CM repo.
I updated the how-to if anyone wants to try this themselves.
Cheers,
Mike
Re: Unoffical Root-Box Nightly (JB 4.2.2)
Thanks again Mike this is running great
Sent from my EVO using xda app-developers app
Re: Unoffical Root-Box Nightly (JB 4.2.2)
I can't wait to try this! I've had such bad luck with Dhost lately. Been trying to DL AOKP for the last week on different WiFi connections and 3g even. Now this :banghead:
Really lookin forward to it, thanks, mike. :thumbup:
Edit: does this have the MMS apk with 'reply' and 'read' from notification panel? I have the MMS apk that does, if this doesn't, but I suspect using it would mess up the breathing SMS you mention.
From my Evo LTE, yup.
Thanks! this rom is nice!
But, does anyone know how to get the "menu" working? For example google play I cant hit menu and select "my apps". And also ES file explorer I cant figure out how to get the menu so i can modify the settings.
Re: Unoffical Root-Box Nightly (JB 4.2.2)
Is it not in Settings>System>Hardware Keys on root box? Also, at the bottom (if its there) should be a button that says three dot overflow. Sorry, I'm just guessing, I haven't been able to get this downloaded yet.
From my Evo LTE, yup.

[ROM][LOTK][4.3] Unoffical SlimBean Nightly **UPDATE** Version 1.4

This is an Unoffical port of SlimBean ROM for our device. I had no part of the development, I only compiled it.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is lightweight and fast JellyBean 4.2.2 AOSP-based, with tweaks from CM10.1 and AOKP. I like it as it is a powerful ROM with many settings and options but without feeling too bloated with features that many don't use. You won't find a PIE option or Per-App dpi settings here, but you will find many customizations to make this run exactly as you see fit. Here's some of what it offers:
-8 Lockscreen targets
-Notification bar and drawer transparency settings
-Custom carrier label
-Battery bar
-CM Power Widget
-Hardware key custom actions (including back button)
-Disable lockscreen widgets and/or usability hints
-Quiet Hours
-DashClock Widget built in
-Widgets Viewpager (a kind of locker at the bottom of the screen for widgets that can be called by a hardware -key assignment, very cool)
-linaro -O3 flags
-Dark Slim option (a built in theme to darken everything)
-much more...
Changelog
Slimbean 4.3 Build 1.4
First stable unofficial build of Android 4.3 Slimbean for Jewel!
Updated to latest sources as of 10-3-13
Focal included
Usual additions are all there (commandline tools, themed deskclock, custom bash, etc)
Everything working great (camera, GPS, data, etc)
Be sure to use the latest Slim Gapps listed below
Enjoy!
Slimbean 8-6-13 Nightly
Latest sources for Slimbean 8.0 (still Android 4.2)
Updated Decks data dropping fix to the latest commits (patch 24).
I compiled in the Nexus 7 animations from Root-Box -- really cool btw.
Terminal emulator included by default
Added in CM Filemanager over SlimRom's
And Bash (see below)
SlimBean 7-29-13 Nightly
One more build for Android 4.2
Latest nightly for SlimBean 7.8
-A lot of code cleanup, will help with smoothness and prepare for 4.3
-Reorganizing of the settings menu (see here if you can't find something)
-Can now choose built-in System Icons for a custom look
Updated kernel to 3.4.11
SlimBean 7-24-13 Nightly
One last build for Android 4.2 (4.3 is already being merged)
Latest nightly for SlimBean 7.5
Option to have incoming calls stay in backround.
Fixed commandline tools (i.e bash not working right)
SlimBean 7-21-13 Nightly
Latest nightly for SlimBean 7.5
Deck's RIL fixes for data dropping patch 23 (These commits haven't been committed yet, so they are a work in progress. This update fixed my data drops and I couldn't be happier.
Few other minor things
SlimBean 7-18-13 Nightly
Latest nightly for SlimBean 7.2
Fixes to TRDS messenging text colors.
Storage Settings: Allow user to trigger a volume rescan
Backup: Use native google backup system to backup profile feature
FFC fix
Volume fixes and mic fixes (thank Deck)
Deck's RIL fixes for data dropping (These commits haven't been committed yet, so they are a work in progress. Again, many thanks to Deck)
Slim Gapps updated
SlimBean 7-11-13 Nightly
Latest nightly for SIimBlean 7.0
Voicemail no longer dials *86
Statusbar Quick Peek option (swipe down to view in full screen modes)
Mem fixes
Dashclock Updates
Gapps updated (linked below)
Linaro -O3 optimizations
Latest CM 3.4 kernel from Cyanogenmod sources
-FFC will force close for now, this is a kernel problem being looked in to.
TIP: If others claim you sound like you are in a tunnel all the time on the phone, try editing your /system/build.prop from:
persist.audio.handset.mic=digital
to
persist.audio.handset.mic=analog
6-15-13 Nightly
Latest nightly for Slimbean 6.2
-Transparency for incoming calls
-Memleak fixs
-Torch fixes
-Updates to TRDS
5-10-13 Nightly -
Latest nightly for SlimBean v5.1
Now includes a second level for PIE
Nova launcher included by default
Changes to MMS and Recent Apps Switcher
More optimizations
New kernel tweaks for better performance
Enjoy!
5-6-13 Nightly -
Still using latest codefreeze Build 4
Switched back to Cyanogenmod for kernel/device sources
Integrated headphone fix into ROM, switching kernels won't break it anymore!
Default dpi is 240 (can be easily switched back to 320)
Apks optimized, reducing memory and hopefully better multitasking.
4-18-13 Nightly -
Built with latest codefreeze for Slimbean 4.2.2 Build 4
Integrated, resource-friendly PIE, which allows for custom assignments (including apps)
Assign Button Action to hardware menu key longpress in Lockscreen
Fixed "void endpwent()" error for sshd
Built with better linaro -O3 handling
Switched to Evervolv's kernel
Also more stuff that I'm forgetting. Enjoy!
4/11/13 Nightly -
-Removed default music app and added Apollo
-Added Launcher2 tweaks by JamieG71 (will feel much snappier)
-Compiled busybox with linaro -O3 flags (may increase speed)
-Added CM LockClock back in, for those that don't like DashWidget
-Fixed bash error "void endpwent()(3) is not implemented on Android", good riddance!
-Compiled command-line utilities: ssh, scp, netcat, openvpn, rsync, and htop into ROM
-Added Terminal emulator into build
-Added a few other tweaks I'm forgetting here
THIS BUILD IS VERY SMOOTH AND SNAPPY, ENJOY!!
4/5/13 Nightly
-First release. Compiled kernel with linaro -O3 flages, swapped in my themed blue DeskClock, added extra alarm rington for some morning madness..
​
Credits:
kushdeck For making CM possible on this phone, his kernel source is what is powering this ROM. His endless hours of work made all our non-sense ROM's possible.
SlimRoms They really put together an amazing ROM.
jamieg71 His roms motivated me to start compiling my own, and his help allowed my to dive into adding linaro toolchains.
thicklizard For giving me a fix for a problem of headphones not being connected, wouldn't have gotten this without him.
Evervolv Using their sources helped fix some errors I was running into when porting this.
Downloads:
Gapps:
Slim Aroma Selectable Gapps 4.3 Build 1
***Use these for all 4.3 Slim builds. ****
***If you have a problem with Google Now FC'ing on a dirty flash, it is due to a security update. Please uninstall Google Search, reboot, and then reflash.
Aroma Slim Gapps 4.2.2 Build-8
These Slim Gapps are recommended for use with this ROM, they are in an Aroma installer and feature the toggleable Gapps (for a Google apps dark look when The Real Dark Slim option is toggled)
Also, if you want a toggleable Maps, Google+, or Multi-Dpi Play Store:
http://slimroms.net/index.php/downloads/dlsearch/viewcategory/526-apps
Misc:
SlimBean offical add-ons (this ROM comes slimmed down and many things are available as an addon, email is located in the Extras package).
Themed Deskclock
4.2 Camera with Photosphere This zip name is camera42patchedv2.zip, does anyone know the creator of it? I can't give proper credit as I downloaded it a while back and don't remember from where.. sorry
4.3 Camera Flash the 4.2 Photosphere zip above and then install this like any other apk. Works great!
Hints
Enable Developer Settings: goto Settings --> About Phone --> Build Number, and click 7 times
Enable Rebot Menu (Reboot Recovery, Reboot Bootload, etc), goto Settings --> Developer Options --> Advanced Reboot, pick one
If you prefer the stock lockscreen handle, here is a link to set it to stock.
Explore their website, there are many add-ons for this ROM
Looking for a sound mod?? Check out this excellent how-to for Acid V7 and the Noozxiode by AndrasLOHF.
Bash features:
-Modified login to say "Good Morning", "Good Afternoon" etc, based on the time of day,
-Outputs kernel version, uptime, current time, and who you are logged in as (color coded) at time of login (see pic).
-TERM and TERMINFO variables assigned by default. Nano, htop, etc. will work on every ROM now.
-Custom aliases (quick commands)
diskspace - show you a listing of directories and their size
x - exit
ff - find a file (type the name after ff, i.e "ff Term.apk")
lsd - list only directories
.. - go back one directory
... - go back two directories
... - go back three directories
I recommend you switch the default shell in TERM to use this, (Preferences --> Command Line --> enter "/system/xbin/bash").
Enjoy!
-Mike
** HOW-TO COMPILE THIS YOURSELF **
Here are my notes on how to port SlimBean to our devices, should anyone be interested in compiling their own. I ran into a few headaches when I attempted this, so I’m hoping these notes will save others from that. The point of this tutorial is to teach newbies how to port a ROM, while I could do some things on my end make it easier to compile this ROM, I think it's important to outline all the steps involved in doing this by hand, so the methods may be applied to other ROM ports, not just SlimBean.
I compiled on a Debian Wheezy system, 64bit (squeeze should be the same). A 64-bit computer is required to compile Jellybean (ICS and above for that matter), so don’t attempt this on anything less. If you are unfamiliar with installing Debian, you can use LMDE, it's a live Debian system that you can install with minimal linux knowledge and works pretty nice. However the installation process is pretty easy for vanilla Debian and a good learning process, so give it a shot if you have the time.
Do this all as root
Download dependencies:
Code:
apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2 libxml2-utils schedtool pngcrush xsltproc zlib1g-dev lib32stdc++6 lib32ncurses5 ncurses-libs.i686 libstdc++.i686 libgcc.i686 lib32readline-gplv2-dev lib32z1-dev
Link files:
Code:
ln -s /lib32/libncurses.so.5 /lib32/libncurses.so
or for Ubuntu 10.10:
Code:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
Install Google’s repo script:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod 755 ~/bin/repo
Make your working Directory and start syncing with SlimBean
Code:
mkdir ~/slimbean; cd ~/slimbean
repo init -u git://github.com/SlimRoms/platform_manifest.git -b jb4.2
repo sync
Create a local_manifests file with Cyanogenmods sources for our phone and kernel (thanks to Deck’s work). This is porting part.
Code:
mkdir ~/slimbean/.repo/local_manifests
echo ‘<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<!-- CyanogenMod -->
<project name="CyanogenMod/android_device_htc_jewel" path="device/htc/jewel" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_s4-common" path="device/htc/s4-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_device_htc_msm8960-common" path="device/htc/msm8960-common" remote="github" revision="cm-10.1" />
<project name="CyanogenMod/android_kernel_htc_msm8960" path="kernel/htc/msm8960" remote="github" revision="cm-10.1" />
<!-- Add HTC Proprietary Files -->
<project name="TheMuppets/proprietary_vendor_htc" path="vendor/htc" remote="github" revision="cm-10.1" />
<!-- Add qcom-caf source for our phone -->
<project path="hardware/qcom/media-caf" name="SlimRoms/hardware_qcom_media-caf" remote="github" revision="jb4.2" />
<project path="hardware/qcom/display-caf" name="SlimRoms/hardware_qcom_display-caf" remote="github" revision="jb4.2" />
<project path="hardware/qcom/audio-caf" name="SlimRoms/hardware_qcom_audio-caf" remote="github" revision="jb4.2" />
<!-- Add personal fixed bash -->
<remove-project name="SlimRoms/android_external_bash" />
<project path="external/bash" name="mikshepard/android_external_bash" remote="github" revision="cm-10.1" />
</manifest>’ > ~/slimbean/.repo/local_manifests/jewel.xml
Sync the repo again
Code:
repo sync
Create your device file for Slimbean (adapted from CM’s cm.mk file):
Code:
echo '$(call inherit-product, vendor/slim/config/common_full_phone.mk)
$(call inherit-product, vendor/slim/config/cdma.mk)
# Enhanced NFC
$(call inherit-product, vendor/slim/config/nfc_enhanced.mk)
# Inherit device configuration
$(call inherit-product, device/htc/jewel/jewel.mk)
# Device naming
PRODUCT_DEVICE := jewel
PRODUCT_NAME := slim_jewel
PRODUCT_BRAND := htc
PRODUCT_MODEL := EVO
PRODUCT_MANUFACTURER := HTC
# Set build fingerprint / ID / Product Name ect.
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=htc_jewel BUILD_ID=JRO03C BUILD_FINGERPRINT="htc/jewel/jewel:4.1.1/JRO03C/147243.3:user/release-keys" PRIVATE_BUILD_DESC="3.16.651.3 CL147243 release-keys"
# Release name
PRODUCT_RELEASE_NAME := jewel
# Boot animation
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 720
# Copy compatible prebuilt files
PRODUCT_COPY_FILES += \
vendor/slim/prebuilt/hdpi/bootanimation.zip:system/media/bootanimation.zip
-include vendor/cm/config/common_versions.mk > ~/device/htc/jewel/slim.mk
then create a vendorsetup.sh file
Code:
echo “add_lunch_combo slim_jewel-userdebug” >> ~/device/htc/jewel/vendorsetup.sh
now we build our environment:
Code:
. build/envsetup.sh
get a list of all devices:
Code:
lunch
Choose slim_jewel-userdebug (it should be option 9), and then create your ROM:
Code:
make bacon
when finished, it’ll be located in ~/slimbean/out/target/product/jewel/
NOTE: if using a multi-core processor use "make -jX bacon" where X = the number of cores you have. For my duel-core processor, I use "make -j2 bacon".
TIP:
If you are into building, checkout my acompile script in my signature, it'll email you when your build is complete using Gmail's snmp and will include the time it took and the last few lines of the output. I find it very useful for knowing when my build is done (especially since they take me about 3+ hours apiece)
SOURCES:
This page helped a lot with a great tutorial on building ROMS
This forum is filled with great people who others with the building of ROMS. A great source when you run into errors you don’t understand.
Hope this helps someone,
-Mike
Really interested to try this, but before I do:
How are the cameras in these AOSP roms these days? On par with the Sense camera or is the quality still degraded?
Nice something new to flash lol thanks
Sent from my EVO using Tapatalk 2
Slim GAPPs link is not working brother.
Sent from my EVO using Tapatalk 2
smatherlee said:
Slim GAPPs link is not working brother.
Sent from my EVO using Tapatalk 2
Click to expand...
Click to collapse
Doh, missed a quote. Thanks, its fixed now.
-Mike
RAD! Thanks for sharing!
Running pretty good so far. Miss my tablet ui already though. Lol. Thanks bro.
Sent from my EVO using Xparent BlueTapatalk 2
---------- Post added at 06:00 PM ---------- Previous post was at 05:30 PM ----------
Hey bud just noticed that there is no email app in this ROM. I know I have to DL gmail but I've never had to DL an email app before.
Sent from my EVO using Xparent BlueTapatalk 2
Been wanting to try slim bean thanks Mike!!
Sent from my EVO using xda app-developers app
Thanks for bringing this to us. I know Jamie helped a lot but Mazda also had a version of this not that long ago. I'm sure he would help ya with any questions.
Sent from my EVO using Tapatalk 2
fredgar75 said:
Hey bud just noticed that there is no email app in this ROM. I know I have to DL gmail but I've never had to DL an email app before.
Sent from my EVO using Xparent BlueTapatalk 2
Click to expand...
Click to collapse
This ROM is slimmed down, so some of those things aren't included in the stock install but available as a extra addon. What you want is located here. I'll make a mention of it on the OP.
-Mike
Nice work. Thanks Mike.. Will give this a go soon. Too many to choose from right now lol. Still on your rootbox, it does everything I need well. Thanks again. :thumbup:
Sent from my EVO using xda premium
Good stuff mike.
Sent from my EVO using xda premium
Right on brother downloading now.
Sent from my EVO
Flashed and for some reason I can't flash komodo. It installs fine, and after it boots up it freezes up and reboots just to do the same thing again. Any thoughts?
Sent from my EVO using xda app-developers app
polar2792 said:
Flashed and for some reason I can't flash komodo. It installs fine, and after it boots up it freezes up and reboots just to do the same thing again. Any thoughts?
Sent from my EVO using xda app-developers app
Click to expand...
Click to collapse
Which one did you DL? It might be over clocking too much or might be for jb 4.1
Sent from my EVO using Xparent BlueTapatalk 2
I got build 29 not sure if it's the right one or not. Which folder do I need?
Sent from my EVO using xda app-developers app
polar2792 said:
I got build 29 not sure if it's the right one or not. Which folder do I need?
Sent from my EVO using xda app-developers app
Click to expand...
Click to collapse
Did you get the one capped at 2.1 or a lower? I use komodo 29 capped at 1.8. My phone does not go past 1.8ghz. It will freeze and go into boot loops.
Sent from my EVO using Xparent BlueTapatalk 2
fredgar75 said:
Did you get the one capped at 2.1 or a lower? I use komodo 29 capped at 1.8. My phone does not go past 1.8ghz. It will freeze and go into boot loops.
Sent from my EVO using Xparent BlueTapatalk 2
Click to expand...
Click to collapse
I'll download one again. If 1.5 is an option I'll get it. I usually never go past that.
Sent from my EVO using xda app-developers app
polar2792 said:
I'll download one again. If 1.5 is an option I'll get it. I usually never go past that.
Sent from my EVO using xda app-developers app
Click to expand...
Click to collapse
Cool let me know if you get it working. I do know that the 1.8 capped kernel is set to 1.5 as default setting.
Sent from my EVO using Xparent BlueTapatalk 2

[KERNEL][08/11][3.10.102][UBER-5.4] Unofficial AK - 067

Introduction
Hello everyone, this is my unofficial version of @ak's kernel. As he has been busy with life lately, I wanted to keep up with the Android security patches since this kernel runs amazingly on my phone; so I did just that. Because these are unofficial, you are NOT to discuss the use of them in ak's thread. Do that here. Read ALL of this post, I go over almost everything you could need to know. This kernel will only receive security updates and upstream Linux patches; I will not be changing anything else.
For those of you who have come here before, I have moved the more feature packed kernel to here: http://forum.xda-developers.com/nexus-6p/development/kernel-ninja-kernel-v1-0-t3437247
Differences from official
AK versions 064-066 (unreleased officially by ak)
Linux versions 3.10.74-3.10.83 and 3.10.102
August security patch
Patches for some CVEs
Compiled with latest Uber 5.4 toolchain
Downloads
Main folder
Installation
If on a previous version of my build OR the kernel that comes with your ROM: Flash the zip in TWRP and reboot.
If on another custom kernel: Dirty flash your ROM OR the boot.img if on stock, flash the zip in TWRP, and reboot.
Changelog
Code:
[b]067[/b]
[LIST]
[*]Initial release
[/LIST]
Frequently asked questions
1.1 Q: I am having an issue, can you help me?
1.1 A: Keep in mind I am by no means a kernel developer. However, start by reading the release posts, as I may make note of a particular issue. Also search the thread to see if I have discussed it before. If you see nothing and then provide me with a dmesg/last_kmsg and logcat plus your ROM/kernel version, I'll do my best to assist you.
Code:
adb logcat -d > logcat.txt
adb shell dmesg > dmesg.txt
1.3 Q: Can you add xyz feature?
1.3 A: Sorry, no. I will only be adding security patches. If you want a fully updated and feature packed kernel, check out my Ninja Kernel: http://forum.xda-developers.com/nexus-6p/development/kernel-ninja-kernel-v1-0-t3437247
1.4 Q: How do I control the kernel?
1.4 A: AK recommends using Synapse; if you do not care for Synapse, I would flash this UKM uninstaller in TWRP to keep your /data partition clean. Personally, I recommend using either @flar2's EX Kernel Manager or @Yoinx's Kernel Adiutor-Mod; both are extremely solid and have given me no issues.
1.5 Q: What are your settings?
1.5 A: Here are my regular/tried and true settings for what I consider great performance and battery life:
CPU:
CPU governor: Interactive
CPU governor (Cluster 2): Interactive
Stock governor profile
Max CPU frequency: 1708 MHz
Min CPU frequency: 302 MHz
Max CPU frequency (Cluster 2): 2054 MHz
Min CPU frequency (Cluster 2): 302 MHz
Input boost frequency: 0:768000 1:0 2:0 3:0 4:0 5:0 6:0 7:0
Input boot milliseconds: 60
msm_thermal: Enabled
core_control: Disabled
Graphics:
No modifications
Gestures:
Sweep2Wake: Up, Down
Camera launch gesture: Enabled
Sound:
No modifications
Memory:
No modifications (I leave zRAM enabled)
Miscellaneous:
No modifications (sioplus and 1536 are the defaults, which I use)
Thanks to:
@ak for the fantastic kernel
The various developers for their patches (@flar2, @franciscofranco, and @imoseyon to name a few)
@DespairFactor for helping me with some kernel compilation issues and the Uber prebuilt toolchains I use
All of you guys for viewing the thread
DISCLAIMER: I openly welcome off topic in my threads. Mods, please do not clean off topic discussion and users, do not complain about off topic discussion here. I may direct you to another thread if it is so suited but I won't have the discussion cleaned. Thank you.
XDA:DevDB Information
Unofficial AK Kernel, Kernel for the Huawei Nexus 6P
Contributors
nathanchance, ak
Source Code: https://github.com/nathanchance/AK-Angler
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: v067
Stable Release Date: 2016-08-11
Created 2016-06-19
Last Updated 2016-08-11
How to compile the kernel for yourself
1. Configure your environment
In order to compile this kernel, I'd recommend using Linux (OS X should be acceptable but this guide will be tailored for Linux). To get the environment configured, either use Google's own guide here or my guide (only section 1) here.
2. Grab the source
Grab my AK source
Code:
mkdir ~/Android
cd ~/Android
git clone https://github.com/nathanchance/AK-Angler.git AK
Explanation:
First command makes a directory named Android in your home folder (mkdir = make directory). You can change the location if you want but keep it consistent throughout the guide.
Second command moves into that directory (change directory)
Third command pulls the source from my Github into a directory named AK (git clone <url> <folder_to_clone_in_to> is the format of the command).
Grab my AnyKernel source
Code:
cd ~/Android
git clone https://github.com/nathanchance/AK-Angler-AnyKernel2 AK-AK2
Explanation:
First command moves into the Android directory we made above (change directory)
Third command pulls the source from my Github into a directory named AK-AK2 (git clone <url> <folder_to_clone_in_to> is the format of the command).
Grab the toolchain you want to use to compile the kernel
Code:
cd ~/Android
git clone <kernel_url>
Explanation:
In order to compile the kernel, we need to grab a toolchain (bunch of compilation tools). I currently compile 11 options, you'll only be doing one. Below are the list of possible URLs to clone; copy and paste it after the words git clone above:
AOSP: https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
Uber 4.9: https://bitbucket.org/DespairFactor/aarch64-linux-android-4.9-kernel.git
Uber 5.4: https://bitbucket.org/DespairFactor/aarch64-linux-android-5.x-kernel.git
Uber 6.1: https://bitbucket.org/DespairFactor/aarch64-linux-android-6.x-kernel.git
Uber 7.0: https://bitbucket.org/DespairFactor/aarch64-linux-android-7.0-kernel.git
Linaro 4.9: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-4.9-linaro.git
Linaro 5.4: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-5.4-linaro.git
Linaro 6.1: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-6.1-linaro.git
DF-Linaro 4.9: https://bitbucket.org/DespairFactor/aarch64-linux-android-4.9-kernel-linaro.git
DF-Linaro 5.4: https://bitbucket.org/DespairFactor/aarch64-linux-android-5.x-kernel-linaro.git
DF-Linaro 6.1: https://bitbucket.org/DespairFactor/aarch64-linux-android-6.x-kernel-linaro.git
3. Setup the build
Make sure everything looks right
After following the above steps, type:
Code:
ls
You should see something like this:
Code:
aarch64-linux-android-6.x-kernel-linaro AK AK-AK2
The toolchain directory make be different depending on what you cloned above. If it looks different, delete the Android folder and do step 2 again.
Select the correct kernel branch
Code:
cd ~/Android/AK
git checkout <branch>
Example:
Code:
cd ~/Android/AK
git checkout m-eas
Explanation
First command will move you into the AK source directory we cloned above.
Second command will checkout the branch you want to compile for. A git repo can have multiple branches. For mine, these are the possible options:
m-standard (for the M Normal branch)
m-eas (for the M EAS branch)
m-nethunter (for the M NetHunter branch)
n-testing (for the N Normal branch)
Select the correct AnyKernel branch
Code:
cd ~/Android/AK-AK2
git checkout ak-angler-anykernel
Explanation
First command will move you into the AK AnyKernel directory we cloned above. This is what allows you to flash the kernel (thank you very much @osm0sis for all the work you do).
Second command will checkout the correct branch (in this case, ak-angler-anykernel)
4. Make the kernel
Tell the makefile what toolchain and architecture you are building for
Figure out the full path of your toolchain folder
Assuming you have done this whole process correctly, you can move into your toolchain directory and type:
Code:
cd ~/Android/<toolchain_folder>
pwd
Example:
Code:
cd ~/Android/aarch64-linux-android-6.x-kernel-linaro
pwd
You should get something like this:
Code:
/home/nathanchance/Android/aarch64-linux-android-6.x-kernel-linaro
Tell the compiler where that toolchain is
Copy and paste that file location above into this command:
Code:
export CROSS_COMPILE=<toolchain_dir>/bin/aarch64-linux-android-
Example:
Code:
export CROSS_COMPILE=/home/nathanchance/Android/aarch64-linux-android-6.x-kernel-linaro/bin/aarch64-linux-android-
Set the architecture
Angler is a 64-bit device so we need arm64
Code:
export ARCH=arm64
export SUBARCH=arm64
Clean up from a previous compilation and update the source
Code:
cd ~/Android/AK-AK2
git reset --hard origin/ak-angler-anykernel
git clean -f -d -x > /dev/null 2>&1
git pull > /dev/null 2>&1
cd ~/Android/AK
git reset --hard origin/<kernel_branch>
git clean -f -d -x > /dev/null 2>&1
make clean && make mrproper
Example:
Code:
cd ~/Android/AK-AK2
git reset --hard origin/ak-angler-anykernel
git clean -f -d -x > /dev/null 2>&1
git pull > /dev/null 2>&1
cd ~/Android/AK
git reset --hard origin/m-standard
git clean -f -d -x > /dev/null 2>&1
make clean && make mrproper
git pull
Explanation:
First set:
The first command moves you into the AK AnyKernel directory.
The second command will undo any local commits you have done and align your source with the most recent commit from me.
The third command will clean any untracked or compiled files (this is send to /dev/null so you do not see it happen).
The fourth command will pull any new AnyKernel changes from me into the source.
Second set:
The first command moves you into the AK source directory.
The second command will undo any local commits you have done and align your source with the most recent commit from me.
The third command will clean any untracked or compiled files (this is send to /dev/null so you do not see it happen).
The fourth and fifth command (strung together with &&) will remove you
The sixth command will pull any new kernel changes from me into the source.
Set up the defconfig
A defconfig tells the compiler which features you want in the kernel. This is already set up by me. To set up the defconfig, type the following:
Code:
cd ~/Android/AK
make ak_angler_defconfig
Name the kernel
If you notice in About Phone > Kernel Version, it shows 3.10.102-AK.066-9.UBER4.9 (or something similar). You can customize this like so:
Code:
export LOCALVERSION=-"kernel name"
Example:
Code:
export LOCALVERSION=-"AK-Nathan-Personal"
Make the kernel!
Code:
make -j#
Example:
Code:
make -j4
Explanation:
The # after the "j" is how many simultaneous threads are run. Traditionally, this is the number of cores you have plus one. So a quad-core CPU would be -j5.
5. Zip it up and flash!
Copy the zImage to the AnyKernel directory
Code:
cd ~/Android/AK/arch/arm64/boot
cp -v Image.gz ~/Android/AK-AK2/zImage
Explanation:
We need to copy the newly compiled kernel (which resides in the arch/arm64/boot folder) to the AnyKernel directory, while changing its name to zImage.
cp = copy
-v = verbose (prints the copying)
Image.gz = file to be copied
~/Android/AK-AK2/zImage = destination and name
Make a current dtb file
Code:
cd ~/Android/AK-AK2
tools/dtbToolCM -v2 -o dtb -s 2048 -p ~/Android/AK/scripts/dtc/ ~/Android/AK/arch/arm64/boot/dts/
Explanation:
No explanation, just do it :silly:
Zip it up!
Code:
cd ~/Android/AK-AK2
zip [email protected] -r9 ak-kernel.zip *
Using the above commands, your newly completed kernel will be located at ~/Android/AK-AK2/ak-kernel.zip
If you followed all of the above steps successfully, congratulations, you built the kernel!! Once you have done all five steps, you will just need to follow steps 4 and 5 to update in the future. Below, I have linked a script that will do all of this for you (with some variable edits at the top); however, please do it manually first so you know exactly what you are doing enjoy!
https://raw.githubusercontent.com/nathanchance/Android-Tools/master/ak.sh
nathanchance said:
Reserved
Click to expand...
Click to collapse
Definitely quicker than PN mm2 release ......lol
thanks a lot
Well look what's cooking! Kudo's
Thx 4 this Nate!
Any useable with DP4
Sent from my Nexus 6P using Tapatalk
kenbrownstone said:
Any useable with DP4
Sent from my Nexus 6P using Tapatalk
Click to expand...
Click to collapse
No, Marshmallow only.
@nathanchance
Can you share your EXKM settings?
Asselalf said:
@nathanchance
Can you share your EXKM settings?
Click to expand...
Click to collapse
Sure. They are added in the OP and will be updated if I ever change them.
OK, i'll try that. Thanks for sharing
Thank you the kernel.
I use Resurrection Remix ROM with ElementalX kernel. Can I install the AK.066-2.ANGLER.UBER6.1.zip after the ElementalX kernel? Or should I go back the apascual kernel and then install the AK.066-2.ANGLER.UBER6.1.zip?
raymondoliviero said:
Thank you the kernel.
I use Resurrection Remix ROM with ElementalX kernel. Can I install the AK.066-2.ANGLER.UBER6.1.zip after the ElementalX kernel? Or should I go back the apascual kernel and then install the AK.066-2.ANGLER.UBER6.1.zip?
Click to expand...
Click to collapse
Go back to the included kernel then flash this one.
nathanchance said:
Go back to the included kernel then flash this one.
Click to expand...
Click to collapse
Ok, thank you.
raymondoliviero said:
Ok, thank you.
Click to expand...
Click to collapse
I'll add installation instructions to the OP, thanks for the reminder.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
It's very fast, thank you very much. I use your settings.
Sent from my Nexus 6P using XDA-Developers mobile app
Sorry for the double, please delete this.
What ROM do you use Nathan. Just wondering.
Pandawg said:
What ROM do you use Nathan. Just wondering.
Click to expand...
Click to collapse
Pure Nexus, I am using the mm2 branch that I compiled myself. Should be available publicly here soon.
Awesome Work as always Nathan and Congrats for crossing the 10,000 mark on the Thanks meter
Hey thanks for this Nathan, you've done an excellent job. This is the smoothest kernel I've tried. Running RR it is very smooth.
Sent from my Nexus 6P using XDA-Developers mobile app

[ANGLER] [8.0.0] [3.10.107] [GCC 7.2.1] Flash Kernel v3.1

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Introduction
Hello everyone, this is my personal kernel for the Nexus 6P. While I am not a super star kernel developer, I do know my way around it. My philosophy on kernels is pretty simple:
Follow upstream Linux always
Stable kernel rules work best
Security and stability are paramount
Features will be added only as needed
Hopefully you enjoy
Thread Rules
I refuse to acknowledge/respond to bug reports that do not include clear steps to reproduce, a logcat, and a console ramoops (if random rebooting) or a dmesg (any other issues). Follow this guide to do this. More on bug reporting policy here.
Keep things civil, I do NOT tolerate flaming of any kind.
OT is allowed.
Features
Here are the major features of the kernel (feel free to explore Github)
Updated to the latest security patch on the latest Android version (August on Oreo)
Updated to the latest Linux upstream version (3.10.107)
Several CVE fixes
Upstream patches from CAF and Linux
Touchboost force disabled
High brightness mode
KCAL color control
Adreno Boost
Wake gestures (sweep2wake, doubletap2wake, sweep2sleep, and camera launch gesture)
Faux Sound Control with high performance audio
ZRAM from 3.18
Maple I/O scheduler
Wakelock controls
TCP algorithms: bic, cubic, highspeed, htcp, hybia, illinois, lp, reno, scalable, vegas, veno, westwood (default)
F2FS support (latest from here)
Compiled with a Linaro 7.2.1 toolchain built with crosstool-NG (located here).
Makefile optimizations (courtesy of @adinkwok)
Forced encryption and dm-verity disabled
Hides bootloader unlock from SafetyNet (can still fail through other means)
Flashed with AnyKernel2 (thanks to @osm0sis)
Downloads
8.0.0 (v3.x): https://github.com/nathanchance/angler/releases
Legacy downloads:
7.1.2 (v1.x-v2.x): https://github.com/nathanchance/angler/releases
7.1.1 (4.x): Main
7.0 (3.x): Main
6.0.1 (1.x): Main
Do not mirror my kernels!
Installation
If you are on stock:
If you are on the stock kernel: flash the kernel zip and reboot
If you are on a custom kernel: flash the stock boot image matching your build number, flash the kernel zip, and reboot
If you are on a custom ROM:
If you are on the kernel that came with your ROM: flash the kernel zip and reboot
If you are on a custom kernel: dirty flash your ROM zip, flash the kernel zip, and reboot
Upgrading from one Flash version to the other:
Just flash the kernel zip and reboot
Changelog
Latest post
Kernel: https://github.com/nathanchance/angler/commits/8.0.0-flash
AnyKernel: https://github.com/nathanchance/AnyKernel2-archive/commits/angler-flash-public-8.0.0
Frequently asked questions
1.1 Q: I am having an issue, can you help me?
1.1 A: I am not an amazing kernel developer but I will certainly try my best. First, start by reading the release posts, as I may make note of a particular issue. Also search the thread to see if I have discussed it before. If you see nothing, please provide me with a dmesg/last_kmsg and logcat, your ROM/kernel version, and a detailed description of the issue, following this guide. If I can't reproduce reliably though, I'm not going to fix the issue.
1.2 Q: Can you add xyz feature?
1.2 A: If you link me the commits or tell me what kernel you had the feature in, I can take a look at them. I will not go digging super hard for commits and I will ignore requests that don't include this information. I won't promise that I will merge every request but I will always take it into consideration.
1.3 Q: How do I control the kernel?
1.3 A: I'd recommend using either @flar2's EX Kernel Manager or @Yoinx's Kernel Adiutor-Mod; both are extremely solid and have given me no issues.
1.4 Q: What ROM are you on? What are your settings?
1.4 A: Currently, I am on Dirty Unicorns and my settings are available here
1.5 Q: OMFG MY BATTERY SUXXXX PLS FIX!!!
1.5 A: The kernel doesn't drain any battery, use an app like BetterBatteryStats to figure out what app is screwing with your phone.
Thanks to:
@neobuddy89 for always providing great fixes and being a shining example of a great kernel developer
The various other developers for their patches (@ak, @Buckmarble, @flar2, @franciscofranco, @frap129, @imoseyon, and @Yank555 to name a few)
@osm0sis for AnyKernel2
@DespairFactor for helping me with some kernel compilation issues
@kwoktopus for giving me good advice on Makefile flags and other patches
@kantjer for being a beta tester along the way!
@malybru for my nifty new signature!
@phantom146 for the thread banner and default profile GlassCannon
All of you guys for viewing the thread
A note about donations
Quite a few people have asked to donate to me in the past and I have turned them down. I am not in this for the money, this is my hobby, something I truly enjoy. If you truly want to donate to something (it is not expected in the slightest), I recommend an entity like the Open Source Initiative, the Free Software Foundation, XDA, or any one of the people I have thanked in the OP. Additionally, you are free to copy any and all of my work; the only thing I request is that you not ask for donations as well (though I can't really enforce this lol). Thank you.
Kernel source links
8.0.0: https://github.com/nathanchance/angler/tree/8.0.0-flash
7.1.2: https://github.com/nathanchance/angler/tree/7.1.2-flash
7.1.1: https://github.com/nathanchance/angler/tree/7.1.1-flash
7.0: https://github.com/nathanchance/angler-old/tree/release-7.0
6.0.1: https://github.com/nathanchance/angler-old/tree/release-6.0.1
DISCLAIMER: I openly welcome off topic in my threads. Mods, please do not clean off topic discussion and users, do not complain about off topic discussion here. I may direct you to another thread if it is so suited but I won't have the discussion cleaned. Thank you.
XDA:DevDB Information
Flash Kernel, Kernel for the Huawei Nexus 6P
Contributors
nathanchance
Source Code: https://github.com/nathanchance/angler
Kernel Special Features:
Version Information
Status: Stable
Current Stable Version: v3.1
Stable Release Date: 2017-09-17
Created 2016-08-11
Last Updated 2019-07-02
How to compile the kernel
BUILD GUIDE: https://github.com/nathanchance/Android-Tools/blob/master/Guides/Building_Flash.txt
BUILD SCRIPT: https://github.com/nathanchance/Android-Tools/blob/master/Scripts/build-flash.sh
FORMER GUIDE:
1. Configure your environment
In order to compile this kernel, I'd recommend using Linux (OS X should be acceptable but this guide will be tailored for Linux). If you can't dual bot, use Virtual Box to create a virtual machine. To get the environment configured, either use Google's own guide here or my guide (only section 1) here.
2. Grab the source
Grab the kernel source
Code:
mkdir ~/Android
cd ~/Android
git clone https://github.com/Flash-Kernel/angler.git Flash
Explanation:
First command makes a directory named Android in your home folder (mkdir = make directory). You can change the location if you want but keep it consistent throughout the guide.
Second command moves into that directory (change directory)
Third command pulls the source from my Github into a directory named Ninja (git clone <url> <folder_to_clone_in_to> is the format of the command).
Grab the toolchain you want to use to compile the kernel
Code:
cd ~/Android
git clone <kernel_url>
Explanation:
In order to compile the kernel, we need to grab a toolchain (bunch of compilation tools). I currently use DF-LINARO4.9 (third to last option in this list) but I have used all of these in the past. Below are the list of possible URLs to clone; copy and paste it after the words git clone above:
AOSP: https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9
Uber 4.9: https://bitbucket.org/DespairFactor/aarch64-linux-android-4.9-kernel.git
Uber 5.4: https://bitbucket.org/DespairFactor/aarch64-linux-android-5.x-kernel.git
Uber 6.1: https://bitbucket.org/DespairFactor/aarch64-linux-android-6.x-kernel.git
Uber 7.0: https://bitbucket.org/DespairFactor/aarch64-linux-android-7.0-kernel.git
Linaro 4.9: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-4.9-linaro.git
Linaro 5.4: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-5.4-linaro.git
Linaro 6.1: https://android-git.linaro.org/git/.../aarch64/aarch64-linux-android-6.1-linaro.git
DF-Linaro 4.9: https://bitbucket.org/DespairFactor/aarch64-linux-android-4.9-kernel-linaro.git
DF-Linaro 5.4: https://bitbucket.org/DespairFactor/aarch64-linux-android-5.x-kernel-linaro.git
DF-Linaro 6.1: https://bitbucket.org/DespairFactor/aarch64-linux-android-6.x-kernel-linaro.git
3. Setup the build
Make sure everything looks right
After following the above steps, type:
Code:
ls
You should see something like this:
Code:
aarch64-linux-android-4.9-kernel-linaro Flash
The toolchain directory make be different depending on what you cloned above. If it looks different, delete the Android folder and do step 2 again.
Select the correct kernel branch
Code:
cd ~/Android/Flash
git checkout release
Explanation
First command will move you into the Flash source directory we cloned above.
Second command will checkout the branch you want to compile for (in this case, release)
4. Make the kernel
Tell the makefile what toolchain and architecture you are building for
Figure out the full path of your toolchain folder
Assuming you have done this whole process correctly, you can move into your toolchain directory and type:
Code:
cd ~/Android/<toolchain_folder>
pwd
Example:
Code:
cd ~/Android/aarch64-linux-android-4.9-kernel-linaro
pwd
You should get something like this:
Code:
/home/nathan/Android/aarch64-linux-android-4.9-kernel-linaro
Tell the compiler where that toolchain is
Copy and paste that file location above into this command:
Code:
export CROSS_COMPILE=<toolchain_dir>/bin/aarch64-linux-android-
Example:
Code:
export CROSS_COMPILE=/home/nathan/Android/aarch64-linux-android-4.9-kernel-linaro/bin/aarch64-linux-android-
Set the architecture
Angler is a 64-bit device so we need arm64
Code:
export ARCH=arm64
export SUBARCH=arm64
Clean up from a previous compilation and update the source
Code:
cd ~/Android/Flash
git reset --hard origin/n
git clean -f -d -x > /dev/null 2>&1
make clean && make mrproper
git pull
Example:
Code:
cd ~/Android/Flash
git reset --hard origin/n
git clean -f -d -x > /dev/null 2>&1
make clean && make mrproper
git pull
Explanation:
The first command moves you into the Flash source directory.
The second command will undo any local commits you have done and align your source with the most recent commit from me.
The third command will clean any untracked or compiled files (this is send to /dev/null so you do not see it happen).
The fourth and fifth command (strung together with &&) will remove you
The sixth command will pull any new kernel changes from me into the source.
Set up the defconfig
A defconfig tells the compiler which features you want in the kernel. This is already set up by me. To set up the defconfig, type the following:
Code:
cd ~/Android/Ninja
make flash_defconfig
Name the kernel
If you notice in About Phone > Kernel Version, it shows 3.10.103-FLASH-v3.10 (or something similar). You can customize this by opening the Makefile in the source directory and editing the EXTRAVERSION variable (this will be undone next time you compile).
Make the kernel!
Code:
make -j#
Example:
Code:
make -j4
Explanation:
The # after the "j" is how many simultaneous threads are run. Traditionally, this is the number of cores you have plus one. So a quad-core CPU would be -j5.
5. Zip it up and flash!
Copy the zImage to the AnyKernel directory
Code:
cd ~/Android/Flash/arch/arm64/boot
cp -v Image.gz-dtb ~/Android/Flash/anykernel/zImage
Explanation:
We need to copy the newly compiled kernel (which resides in the arch/arm64/boot folder) to the AnyKernel directory, while changing its name to zImage.
cp = copy
-v = verbose (prints the copying)
Image.gz-dtb = file to be copied
~/Android/Flash/anykernel/zImage = destination and name
Zip it up!
Code:
cd ~/Android/Flash/anykernel
zip -r9 flash-kernel.zip * -x README flash-kernel.zip
Using the above commands, your newly completed kernel will be located at ~/Android/Flash/anykernel/flash-kernel.zip
If you followed all of the above steps successfully, congratulations, you built the kernel!! Once you have done all five steps, you will just need to follow steps 4 and 5 to update in the future. Below, I have linked a script that will do all of this for you (with some variable edits at the top); however, please do it manually first so you know exactly what you are doing enjoy!
https://raw.githubusercontent.com/nathanchance/angler/release/build-flash.sh
Below are screenshots of me doing this process in a virtual machine (Mint 18) with 2 cores, 4GB of RAM, and 15GB of storage on my MacBook with a 2.5 GHz Intel Core i5 and 8GB of RAM (fairly average in the world of PC specs I think). It's totally possible to do this on your own. Additionally, in the next post, I have provided some tips for customizing the kernel even further!
How to do your own modifications to the kernel
Introduction
When I was getting started with compiling kernels, I relied a lot on Google and git documentation (this website is the best) to get what I wanted to accomplished. As a lot of that reading can be kind of dense. I decided to boil it down to the few commands and procedures you will need to modify this kernel (or any git repo).
LEARN GIT FROM THE COMMAND LINE. Seriously, do not use a program like SmartGit, it will cripple you and your workflow and potentially screw up authorship. Do it the right way using this guide.
Note: This is NOT supposed to be a super technical guide/how-to on Git. If there is something that is glaringly inaccurate, I will fix it but I am not going to add a ton of extra text here as there are plenty of Git tutorials you can easily find with Google. This is a crash course.
Git Introduction
What's a git?
Git is a version control system that allows developers to keep track of their changes to code. This is extremely helpful when working with large amount of code and changes across a large range of files (such as a kernel or ROM) as it allows you to easily revert or add changes as you see fit.
Terminology
These are not super precise definitions (you can find technical ones by Googling "what is a <word> git"):
Repository: the location that holds all of your code changes and files (this can be local or remote).
Commit: a change to your code
Branch: different snapshots of your code
Cloning: copying a remote repo to a local one
Forking: copying a repo (either remote or local) and making changes to it without affecting the other
Reading Github
Github is the most popular site for hosting git repositories. This is what my repo is hosted, which I will be using for my example. If you go to https://github.com/nathanchance/Ninja-Kernel, you will be greeted with this screen:
Here we will unpack those terms above. The repository (that view) contains files. At the top, you will see a tab called Commits. Clicking on this will bring you to a view similar to this:
This is a full list of the changes to the repository. The name of the commit message generally describes what it does and clicking on the title of the commit will bring you into the detailed view:
In this commit, I have renamed the version from 1.1.1 to 1.2. Some commits will be very small like this, others won't be. Additionally, in the righthand corner of the commit message, you'll see a commit hash (bunch of numbers and letters). That will come in handy later.
Back on the home page of the repo, if you click on the branch dropdown, you will see the various different branches of the repo:
If you click on a branch (let's do n in this case), you'll be brought to a page similar to the home page but there may be different commits in the commits tab. In this case, I have committed version 2.1 instead of 1.1:
This should help you navigate around Github and find commits you may want to merge.
Git Documentation
Throughout the next sections, I will be using commands to show you how to modify the source. This section goes over the command format, what it does, and an example.
git clone
Format:
Code:
# Clone a repo into a directory the same as its remote name
git clone <url>
# Clone a repo into a directory with a specified name
git clone <url> <name_of_folder>
What it does:
- Copies a remote repo into a folder on your computer
Example:
Code:
git clone https://github.com/nathanchance/Ninja-Kernel.git
git clone https://github.com/nathanchance/Ninja-Kernel.git Ninja
Screenshot:
git checkout
Format:
Code:
# Changes to the specified branch (if it does not exist, it creates one)
git checkout <branch>
# Creates a new branch based off the specified one
git checkout -b <branch> <branch_to_be_based_on>
What it does:
- Whenever you want to make changes to files, you need to make sure you are on the right branch. You can see what branch you are currently on by running git branch; if you are on a different one, switch to the right one using the above commands
- If you want to create a new branch, use the second command.
Example:
Code:
# Switches to the m branch
git checkout m
# Creates a new branch "new-branch" based on old-branch
git checkout -b new-branch old-branch
Screenshot:
git add
Format:
Code:
# Adds a file to the staging index
git add <file>
# Adds all of the changed files to the staging index
git add -a
What it does:
- This adds a file to the list of changes to commit (staging). So let's say you modify the README of your repo, deleting a line, and adding one. In order to register that change, you need to add the file to your staging index.
Example:
Code:
# Adds the file README to the index
git add README
Screenshot:
git status
Format:
Code:
# Tells you what the status is of your repo
git status
What it does:
- Allows you to see what files you have staged for commit, where you are relative to where you are with your remote
Example:
Code:
Screenshot:
git commit
Format:
Code:
# Commit your changes and bring up a nano window to write your message
git commit
# Commit your changes and create the message as a parameter
git commit -m "Commit message here"
What it does:
- Saves all of your staged changes in a commit
Example:
Code:
git commit -m "This is a test commit message"
Screenshot:
git revert
Format:
Code:
# Undoes the changes by a certain commit
git revert <hash>
What it does:
- Undoes the commit you have chosen.
- NOTE: It is a good idea to add to the commit message why you are reverting a commit so people don't have to guess (did you not like it or did it break something?)
Example:
Code:
git revert 18d72d42648de9fde9bedcc810a936e0d253af9c
Screenshot:
git pull
Format:
Code:
git pull
What it does:
- Retrieves the latest changes from your remote repository (like Github)
Screenshot:
git push
Format:
Code:
git push
What it does:
- Opposite of git pull, it sends your latest changes from your local repository to the remote
Screenshot:
git fetch
Format:
Code:
# Fetches the commits from the main branch of a remote repository
git fetch <url>
# Fetches the commits from the specified branch of a remote repository
git fetch <url> <branch>
What it does:
- Whenever you want to merge or cherry pick something from a repository other than your own, you need to fetch it so git knows where to pull commits from.
Example:
Code:
# Fetches the commits from the n branch of my repo
git fetch https://github.com/nathanchance/Ninja-Kernel.git n
Screenshot:
git merge
Format:
Code:
# Merge one branch of your repo with the current one
git merge <branch_to_merge>
# Merge a remote branch into the current one
git merge <remote>/<branch_to_merge>
What it does:
- Takes the commits in the specified branch and merges the ones that are not present in the current branch.
Example:
Code:
git merge n
git cherry-pick
Format:
Code:
# Takes a commit either from another branch or the list you fetched and merges it into your current branch
git cherry-pick <hash>
# Pick a range of commits
git cherry-pick <hash_1>^..<hash_2>
What it does:
- If you have a commit in another branch and want to merge it into your current branch, get the hash either from Github if pushed or git log (below) and run git cherry-pick
- If you have a commit in a remote repo you want to merge into your current branch, fetch the remote repo and run git cherry-pick with its hash (found on the remote repo's website)
Example:
Code:
git cherry-pick 68a8ff686ccb2ff01cbaa7b2704c4da6c066ecc8
gcp 7204eedd1076bd87c624aab4fb9c0cc6ac50933b^..102a72b895afb063240fb09292c17e11155e8dd9
Screenshot:
git log
Format:
Code:
# Brings up a list of commits with their full messages and hashes
git log
# Brings up a list of commits with the title of their message and full hashes
git lot --format="short"
# Brings up a list of commits with short hashes and messages
git log --oneline
What it does:
- This command allows you to see the revision history of your local repo
Screenshots: (git log, git log --format=short, then git log --oneline
How To's
Merge Android security updates
There are two ways to do this (I personally recommend cherry-picking)
1. Cherry pick the individual commits
1. Fetch Google's repo
Google's kernel repository is located here: https://android.googlesource.com/kernel/msm/
Currently, Angler is on the branch android-msm-angler-3.10-marshmallow-dr1.6-1
Thus, the command looks like this:
Code:
git fetch https://android.googlesource.com/kernel/msm/ android-msm-angler-3.10-marshmallow-dr1.6-1
2. Figure out which commits you need to pick
Click on the branch you want to merge commits from in Google's list
Click on the "log" link next to the commit hash
In that list, find the first commit at the top of the list and open it in a new tab (now referred to as the last commit)
Start skimming the list, looking for the next commit that has a green android-6.0.1_r# next to it
Open the commit right above that commit (now referred to as the first commit)
Copy the individual hashes of the first and last commit (make sure to know which is which!)
3. Pick the commits!
Code:
git cherry-pick <hash_of_first_commit>^..<hash_of_second_commit>
Example
Commit log located here: https://android.googlesource.com/kernel/msm/+log/android-msm-angler-3.10-marshmallow-dr1.6-1
First commit: https://android.googlesource.com/kernel/msm/+/46b9920417db45ee0a93f16a07e80666219446d3
Last commit: https://android.googlesource.com/kernel/msm/+/909746bb5e4be07344b4fe4ce95c57fbfc8d9595
Code:
git fetch https://android.googlesource.com/kernel/msm/ android-msm-angler-3.10-marshmallow-dr1.6-1
git cherry-pick 46b9920417db45ee0a93f16a07e80666219446d3^..909746bb5e4be07344b4fe4ce95c57fbfc8d9595
2. Merge the whole branch
1. Add a remote
Google's kernel repository is located here: https://android.googlesource.com/kernel/msm/. A remote allows us to easily fetch a repo we use often. To add a remote, follow the below format:
Code:
git remote add <name> <url>
In this case:
Code:
git remote add aosp https://android.googlesource.com/kernel/msm/
Example:
2. Fetch the repo
Format:
Code:
git fetch <name_of_remote_above>
Example:
Code:
git fetch aosp
3. Merge the branch
On the left of Google's website, you will notice there are some branches. Currently, Angler is on android-msm-angler-3.10-marshmallow-dr1.6-1 (you can tell by the commit date of the first commit)
The format looks like this:
Code:
git merge <name_of_remote>/<branch_to_merge>
Example:
Code:
git merge aosp/android-msm-angler-3.10-marshmallow-dr1.6-1
Merge new Linux kernel updates
1. Fetch the kernel.org repo
We are on the 3.10 branch of the stable repo: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git
Code:
git fetch git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.10.y
2. Figure out which commits you need
Go to the kernel.org website
In the 3.10 line, click browse
You will be presented with a full list of commits
Open the first one in a new tab (which should be something in the form of "Linux 3.10.y" (now known as last commit)
Use the next link at the bottom of the list and skim through the list of commits until you see the next commit in the form of "Linux 3.10.y"
Open the commit directly above the previous commit (now known as the first commit)
Copy the hash of the first and last commits (making sure you know the difference!)
3. Pick the commits
Code:
git cherry-pick <hash_of_first_commit>^..<hash_of_last_commit>
Example
First commit of 3.10.102: https://git.kernel.org/cgit/linux/k.../?id=ce9588a047eae53baf1607a408a8d1d5363f5fde (found on this page)
Last commit of 3.10.102: https://git.kernel.org/cgit/linux/k.../?id=ca1199fccf14540e86f6da955333e31d6fec5f3e (found on this page)
Code:
git fetch git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.10.y
git cherry-pick ce9588a047eae53baf1607a408a8d1d5363f5fde^..ca1199fccf14540e86f6da955333e31d6fec5f3e
If you get any conflicts. resolve them using the fix merge conflicts section below.
Add a feature from another kernel
I will be using @flar2's wake gestures as an example but this process will work for any set of commits. I have provided a Git example repo here. On the aosp-latest branch will be the latest kernel source from AOSP. If you want to follow along in this tutorial, clone that repo and checkout the branch like so:
Code:
git clone https://github.com/nathanchance/Git-Example.git && cd Git-Example && git checkout aosp-latest
1. Figure out which commits you need
This can be a little bit tricky. When adding a feature, there may be more than one commit you need to grab. The trick I use for figuring out if this is the case is going into the detailed commit view (take this commit for example), copying the location of one of the files changed, going back to the head of the repo (in this case, here), navigating to that file, and clicking the history button in the right hand corner. This should give you something like this:
Now copy all of the commit hashes (you can click the little arrow clipboard icon next to the commit message to do this automatically. That gives us this list for wake gestures:
12cea9ee691f9794d3b0a76c6b381b4bde670bda
f4286dee51fde5c1082732381c9474c8381b8fb6
4c9e7f3f63eaf7514154633d320a6d4dd4f94831
5d10751af74617c23dfaf93bdf8149e39ce6da41
79d2aae008e51ed32d64e8a4a1dcf03231a22439
6495a2b15e501ce81bb58d39edd5923d52c2e45f
37daa721971b17a01d503c6dfa66c7c93b7cde2d
2. Fetch the repo
Now we need to fetch the repo that has the commits we need (in this case, the ElementalX repo).
Code:
git fetch https://github.com/flar2/angler.git ElementalX-1.00
Example:
3. Pick the commits
After fetching the repos, make sure you are on the proper branch using git checkout and git branch. Once this looks good, run git cherry-pick with the hashes:
Code:
git cherry-pick 12cea9ee691f9794d3b0a76c6b381b4bde670bda
git cherry-pick f4286dee51fde5c1082732381c9474c8381b8fb6
git cherry-pick 4c9e7f3f63eaf7514154633d320a6d4dd4f94831
git cherry-pick 5d10751af74617c23dfaf93bdf8149e39ce6da41
git cherry-pick 79d2aae008e51ed32d64e8a4a1dcf03231a22439
git cherry-pick 6495a2b15e501ce81bb58d39edd5923d52c2e45f
git cherry-pick 37daa721971b17a01d503c6dfa66c7c93b7cde2d
Screenshot:
In this case, I was lucky not to have any conflicts. If you try to pick something and there are differences between the code that conflict, you'll get a merge conflict which you will need to fix before committing the cherry pick.
4. Check for any conflicts
Now when you merge a feature, you may need to enable in your defconfig. In this case, we need to add the line CONFIG_WAKE_GESTURES=y (tells the compiler to build the wake gestures module and add it). You can see an example of this here and here.
Fix merge conflicts
I'm not going to explain it any better than these guides
https://help.github.com/articles/resolving-a-merge-conflict-from-the-command-line/
https://githowto.com/resolving_conflicts
http://stackoverflow.com/questions/161813/how-to-resolve-merge-conflicts-in-git
Special note: Authorship
Authorship is very important in the open source world, as it is what allows people to determine who is responsible for the commit and receive the proper credit. The general rule of thumb is if you didn't think of the idea and write the code, you are not the author. If you are cherry-picking properly, authorship should be automatically maintained; however, if you have to commit something that isn't yours or do some other wonky stuff, you may become the author. No worries though, it is very easy to fix it!
Apply authorship during commit:
Format:
Code:
git commit --author="Full Name <[email protected]>"
Example:
Code:
git commit --author="Nathan Chancellor <[email protected]>"
Screenshots:
Apply authorship after commit
Format:
Code:
git commit --amend --author="Full Name <[email protected]>"
Example:
Code:
git commit --amend --author="Nathan Chancellor <[email protected]>"
Screenshots:
Note: if you have already pushed your commit, you will need to amend the commit and force push it to change it:
Code:
git push origin --force
Good to see you with a kernel of yours.
Should have done this earlier
Sent from my angler using XDA Labs
Congrats!
I found you a cover picture
Nice, let's test, thanks.
cool
Gesendet von meinem Nexus 6P mit Tapatalk
Cool ?
Envoyé de mon Nexus 6P en utilisant Tapatalk
Nice one buddy, been using the kernel now for a few hours and its stable and blazing fast.
Only thing I noticed and maybe you could look into this, is sometimes when I unlock the phone and I am using chill governor it gets stuck at 302 frequency and will not go up at all........ Tried it on other kernel with chill, running same setup and was not the case. Thanks for the awesome kernel, very snappy!
Thanks @nathanchance. Great to see your own kernel make a debut.
Glad to see you adding your own flavors and goodies and sharing the finished product with us!
Flashing this now!
Nice looking kernel dish! Kudo's
yung40oz84 said:
Only thing I noticed and maybe you could look into this, is sometimes when I unlock the phone and I am using chill governor it gets stuck at 302 frequency and will not go up at all........ Tried it on other kernel with chill, running same setup and was not the case. Thanks for the awesome kernel, very snappy!
Click to expand...
Click to collapse
What kernel had it working properly? I am going to guess it is a wakeup issue or something. That governor is based on conservative, which has not be updated (at least on our Linux versiom 3.10.x) for big.LITTLE, so I am a little surprised it is working well elsewhere.
I went with the 'tried & true' settings, and immediately noticed ui was snappier. Only been running it half a day so I expect things to get better as it settles.
Nice work!
Added to Nexus 6P index thread:
[INDEX] Huawei Nexus 6P
Just flashed this along with PN, excited to give it a run. Thanks for the kernel
Flashed it along with beltz rom and so far I'm very satisfied! Thank you.
Sent from my Nexus 6P using XDA-Developers mobile app
Best kernel for 6P. Not even an opinion, just based on performance.
I run Arise always and usually i need to put min freq of clust 1 to 480 MHz, so theres no clipping. This is with other kernels.
Ninja runs it perfect and smooth even with min freq set to 302 MHZ.

[GUIDE] Building Pure Nexus

Introduction
Alright guys, there was a lot of talk about building Pure Nexus in the main thread, which was a little irritating for some so now we get our own thread! In this post, I will be giving you some resources to go over in order to help you with compilation. If you have any questions, just ask!
If you compile successfully, feel free to share your accomplishment and your computer specs
Compilation Guide
This is available on my Github, where it may be a little more up to date.
0. Getting started
In this guide, I will go over how to build Pure Nexus on your Linux machine. This particular tutorial will focus on Ubuntu 16.04 (Mint 18 is also good) since that is what Google recommends but this should work with any version of Linux (here are steps for setup with Arch Linux, which will cover step 1); it does need to be 64-bit however. I will leave the installation of that up to you, Google is a wonderful resource. If you don't have a good computer but still want to build, check out this thread on XDA: http://forum.xda-developers.com/chef-central/android/guide-how-to-build-rom-google-cloud-t3360430
1. Set up your environment
1. Automatically
Code:
sudo apt-get install git-core
git clone https://github.com/akhilnarang/scripts
cd scripts
ls
bash <script-name>
<script-name> should be one of the scripts in the folder for your particular architecture.
2. Manually
1. Install Java 8
Code:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-8-jre
2. Install other build tools
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
2. Configure repo and git
If you have any problems with the below commands, try running as root:
Code:
sudo -s
Git is an open source version control system which is incredibly robust for tracking changes across repositories. Repo is Google's tool for working with Git in the context of Android. More reading if you are interested: https://source.android.com/source/developing.html
Run these commands to get repo working (only do this if you did the manual set up method above:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Run these commands to get git working:
Code:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
3. Download the source
First, before downloading the source, create a folder for the source and move into it.
Code:
mkdir ~/<foldername> (eg. mkdir ~/PN or ~/PureNexus)
cd ~/<foldername>
Then, we need to grab the manifest and sync down the repositories. Here are the commands to do this for Pure Nexus for Nougat (make sure you are in the source folder you made above):
Code:
repo init -u https://github.com/PureNexusProject/manifest.git -b android-7.1
repo sync --force-sync
NOTE: The value for the -b flag, "android-7.1", may change; you will need to go to the manifest's page and see what the branch currently is.
Here is the process generally for other ROMs:
When you go to build a ROM, you must download its source. All, if not most, ROMs will have their source code available on Github. To properly download the source, follow these steps:
Go to your ROM's Github (e.g. http://github.com/PureNexusProject)
Search for a manifest (usually called manifest or android_manifest).
Go into the repo and make sure you are in the right branch (located right under the Commits tab).
Go into the README and search for a repo init command. If one exists, copy and paste it into the terminal and hit enter.
If one does not exist, you can make one with this formula:
Code:
repo init -u <url_of_manifest_repo>.git -b <branch_you_want_to_build>
For example:
Code:
repo init -u http://github.com/PureNexusProject/manifest.git -b android-7.1
After the repo has been initialized, run this command to download the source:
Code:
repo sync --force-sync
This process can take a while depending on your internet connection.
4. Build it!
At this point, it'd be a good idea to set up ccache. ccache is a compiler cache, it stores previously compiled files in a directory and pulls from that instead of recompiling if nothing has changed. This speeds up compilation a LOT. If you want to use it, follow the below steps:
Open up your .bashrc file in your home directory using a text editor or nano and append this to the end of it:
Code:
export USE_CCACHE=1
Then type:
Code:
source ~/.bashrc
After that, run one of the below command (replacing the # with how many GBs of ccache you want, 50 is recommended)
Use this one if you used the manual method of set up in section 1:
Code:
prebuilts/misc/linux-x86/ccache/ccache -M #G
Use this one if you used the automatic method of set up in section 1:
Code:
ccache -M #G
After that, it's time to build!
Code:
. build/envsetup.sh
breakfast angler
mka bacon
After that, your computer will build the flashable zip file and if you see something that says make completed, you've done it!
Any time that you want to rebuild, type the following commands:
Code:
repo sync --force-sync
. build/envsetup.sh
breakfast angler
mka clobber
mka bacon
I also have a script to do this on my Github here
Frequently Asked Questions
1.1 Q: I got an error, what do I do??
1.1 A: Well to start, if it is anything with Ninja, I would go ahead and disable it. You can add this to your .bashrc file:
Code:
export USE_NINJA=false
Then type this
Code:
source ~/.bashrc
. build/envsetup.sh
breakfast angler
mka clobber
mka bacon
If it is saying you ran out of memory, follow this post.
If it isn't Ninja related, check out @AzraelsKiss's post here, where he has documented a few common issues. If none of those apply, post here with a detailed list of what you have done and we will do our best to help you.
1.2 Q: Can you guys share your personal builds?
1.2 A: No, personal builds are just that: personal. Beans releases whenever he feels that the release is ready for the masses and if a bunch of personal builds are floating around, that tarnishes the Pure Nexus name. We are more than happy to help get you up and running but we will not be sharing our builds. Thanks for understanding!
MOD EDIT - THIS IS A DEVELOPER DISCUSSION. NOT FOR ORDINARY USERS. There is No Rom for you to Flash. Nor will there be any support for you. Any ETA or other NON-DEVELOPMENT posts here will be removed without warning!
XDA:DevDB Information
A Guide to Building Pure Nexus for Nougat, ROM for the Huawei Nexus 6P
Contributors
nathanchance, BeansTown106
Source Code: https://github.com/PureNexusProject
ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.10.x
Based On: AOSP
Version Information
Status: Stable
Created 2016-09-15
Last Updated 2017-01-15
Building PureNexus Nougat
RESERVED
Building PureNexus Nougat
Ubuntu is what Google recommend for Android AOSP development. See you http://source.android.com/source/requirements.html
Sent from my Nexus 6P using XDA-Developers mobile app
XDA:DevDB Information
Building Pure Experience Nougat, ROM for the Huawei Nexus 6P
Contributors
Fralund
ROM OS Version: 2.3.x Gingerbread
Version Information
Status: Testing
Created 2016-09-15
Last Updated 2016-09-15
Fralund said:
Ubuntu is what Google recommend for Android AOSP development. See you http://source.android.com/source/requirements.html
Sent from my Nexus 6P using XDA-Developers mobile app
Click to expand...
Click to collapse
But you can actually use most any flavor you wish... You just have to figure out the speedbumps yourself. You can even build using OSX, but that's a whole nutter ball of worms...
Have a good one!
AzraelsKiss said:
I'm a little late, but better late that never... Brand new build with the brand new vendor and blobs... It runs so pretty...
Have a good one!
Click to expand...
Click to collapse
Link?
iSilverBullet said:
Link?
Click to expand...
Click to collapse
It's a personal build, so no link.
iSilverBullet said:
Link?
Click to expand...
Click to collapse
As nathanchance has already said... Personal builds shouldn't be passed around. It's disrespectful to the devs...
Have a good one!
nathanchance said:
Code:
export USE_NINJA=false
mka clobber
breakfast angler
mka bacon
Does that work?
Click to expand...
Click to collapse
Worked very well for me
For those of you that are building PN Nougat, are some minor customizations implemented yet? I ask since I am compiling a copy for myself right now.
laxattack said:
For those of you that are building PN Nougat, are some minor customizations implemented yet? I ask since I am compiling a copy for myself right now.
Click to expand...
Click to collapse
https://plus.google.com/+NathanBenis/posts/21sRasA8Abj
From the sound of Nate's post... He's just got the ROM to the point that he's ready to start on customization. We do have a power menu though.
Have a good one!
laxattack said:
For those of you that are building PN Nougat, are some minor customizations implemented yet? I ask since I am compiling a copy for myself right now.
Click to expand...
Click to collapse
Advanced reboot menu, ADB over network, and stock nav bar tuner and night mode re-enabled are the major ones right now.
Somehow haven't been able to get my virtual machine to compile PN over the weekend (really need to convert my old laptop into a Linux only machine, that's for another day).
So since I want my first N rom to be PN on my N6P and am waiting patiently for it, that means that my Samsung Tab S 8.4 is running Nougat first
Go figure!
GO PN
laxattack said:
For those of you that are building PN Nougat, are some minor customizations implemented yet? I ask since I am compiling a copy for myself right now.
Click to expand...
Click to collapse
nathanchance said:
Advanced reboot menu, ADB over network, and stock nav bar tuner and night mode re-enabled are the major ones right now.
Click to expand...
Click to collapse
What @nathanchance said. But I was surprised to find that after restoring all my previous apps, it works very well and very fast. Definitely faster than 6 builds. Too early to tell
Substratum works with no issues.
Could not get some apps to work like gmd gestures, etc . Not the roms fault but the apps have to be updated for nougat support.
kipue said:
Somehow haven't been able to get my virtual machine to compile PN over the weekend (really need to convert my old laptop into a Linux only machine, that's for another day).
So since I want my first N rom to be PN on my N6P and am waiting patiently for it, that means that my Samsung Tab S 8.4 is running Nougat first
Go figure!
GO PN
Click to expand...
Click to collapse
With some support from this thread, I had no issues compiling... ( I am a super newbie )
aalupatti said:
What @nathanchance said. [...]
With some support from this thread, I had no issues compiling... ( I am a super newbie )
Click to expand...
Click to collapse
Yeah something is wrong with my environnement, the repo sync does not even complete.
I suspect is that I need to give my VM more room to breeze RAM wise.
Anyhow, will see that on my side, that's probably quite OP already.
Thanks ^^
Hey, @nathanchance I'm pretty certain you are running Ubuntu on a VM, right? If so can you share how much memory and storage you have allocated to the VM? I didn't allocate enough space I don't think. Thanks!
I'm attempting to repo sync and it had failed a few times. Could this be due to lack of room on partition? I followed your guide.
Sent from my Nexus 6P using Tapatalk
jmtjr278 said:
Hey, @nathanchance I'm pretty certain you are running Ubuntu on a VM, right? If so can you share how much memory and storage you have allocated to the VM? I didn't allocate enough space I don't think. Thanks!
Click to expand...
Click to collapse
No I have a server I build on but I would say you should allocate half of your computer's memory at a minimum.
Sent from my Nexus 6P using XDA Labs
nathanchance said:
No I have a server I build on but I would say you should allocate half of your computer's memory at a minimum.
Sent from my Nexus 6P using XDA Labs
Click to expand...
Click to collapse
Thanks. I edited my post with another question. Could you have a peek for me please?
Sent from my Nexus 6P using Tapatalk
jmtjr278 said:
Hey, @nathanchance I'm pretty certain you are running Ubuntu on a VM, right? If so can you share how much memory and storage you have allocated to the VM? I didn't allocate enough space I don't think. Thanks!
I'm attempting to repo sync and it had failed a few times. Could this be due to lack of room on partition? I followed your guide.
Sent from my Nexus 6P using Tapatalk
Click to expand...
Click to collapse
I haven't been running Linux under VM for more then a year now but back then 8 GB memory allocated to VM was needed to build (I know some say 4 GB should do the trick but it never worded fine for me).
Disk space I would suggest at least 100-150 GB, If you have the space allocated 200-250GB, that will give you space for ccache and a custom kernel if you like.
jmtjr278 said:
Thanks. I edited my post with another question. Could you have a peek for me please?
Click to expand...
Click to collapse
Depends on what they are. If they are fetch errors, use this: https://android.googlesource.com/new-password
Sent from my Nexus 6P using XDA Labs
kantjer said:
I haven't been running Linux under VM for more then a year now but back then 8 GB memory allocated to VM was needed to build (I know some say 4 GB should do the trick but it never worded fine for me).
Disk space I would suggest at least 100-150 GB, If you have the space allocated 200-250GB, that will give you space for ccache and a custom kernel if you like.
Click to expand...
Click to collapse
Thanks @kantjer I have reallocated the space to 250gb and the memory to 4gb. That's the most I can use and run the VM. I will attempt repo sync again. I appreciate there help! Have been here a while and never attempted this. Wish me luck!
Sent from my Nexus 6P using Tapatalk

Categories

Resources