AOKP 7.1.1 for the Galaxy Note Edge!

To God be the glory, my AOKP NOUGAT project finally works!

My fellow T-Mobile-ians, (N915T) you have been left out of AOSP development long enough! By God’s grace I was able to use mickey387’s great tbltexx work, and completely adapt it to our tbltetmo after extracting all of the needed firmware from our 6.0.1 stock roms! No data zips are required here! It is all built in!

I also have made an international version (N915G/F/FY) as well!
This is not a dirty unicorn. This is the original unicorn, the AOKP. Now made out of Nougat! That’s right, all of the AOKP stuff you love, plus LineageOS, plus a built in side bar, and more! All wrapped up into one! With tons of settings from status bar tweaks to button remaps, it’s all here and ready to rumble!

**** This is an UNOFFICIAL ROM. Install at your own risk! ****

Features and Screenshots!

– Advanced Reboot
– Omni-Switcher
– Kernel Adiutor

+ Rom Control:

+ App Launchers
– App Circle Bar
– App Side Bar
– Gesture Anywhere

+ General
– cLock settings
– Recents settings
– Wakelock Blocker

+ Hardware Keys
– Backlight control
– Power button options
– Launch vibration control
– Home button controls
– Recents button controls
– Long press options, double tap options
– Kill app back button option
– Volume buttons wake
– Volume button playback controls
– Keyboard cursor controls
– Volume button reorientation
– IME features

+ Lockscreen
– Media Cover art
– Display music visualizer
– Show weather
– Blur background
– Fingerprint auth vibration
– Double tap to sleep (DT2S)
– Disable quick settings
– Show lockscreen clock and date
– Lockscreen notification count

+ Notification Drawer
– Brightness slider
– Brightness icon
– Rows in portrait and landscape modes
– Columns
– Tile Animations
– Advanced data tile
– Smart pulldown
– Quick pulldown

+ Power Menu
– Animation choices
– Screenshots
– Screenrecord
– Airplane mode
– Sound Panel

+ Sound
– Various sound settings
– Volumn step control

+ Status Bar tweaks
– Network traffic
– Clock style
– Double tap to sleep (DT2S)
– Superuser indicator
– Icon controls
– AOKP logo

+ User interface
– Toast controls
– AOKP animations
– Transparency controls


Background image:
The background images that I used in this ROM came from the Quiet Learner. You should check out his mathematical artwork, including 3D mandelbox images!

Ready to download? Check it out under my menu –> Homemade Roms –> Galaxy Note Edge!

Linux – keep it simple.

TBLTETMO data fix zips!

Praise God! The TBLTETMO data fix finally works!

What is this for?
-These data fix zips allow you to use a TBLTEXX rom on your phone (provided that you can flash it, see “flashing tbltexx roms” for details on that). If you edit a TBLTEXX rom and flash it to your phone, you will not be able to use the cellular, but now you can with these data fix zips!


Flashing TBLTEXX roms:
You have two choices, either flash a TBLTEXX recovery, so you can flash TBLTEXX roms, or you can use a TBLTETMO recovery and follow the steps below.
1. Download the TBLTEXX rom that was built using the 6.0.1 bootloader.
2. Unzip the rom.
3. Open ./META-INF/com/google/android/updater-script in gedit or notepad++.
4. Delete the first line – should say something like

[CODE]assert(getprop(“ro.product.device”) == “tblte” || getprop(“”) == “tblte” || getprop(“ro.product.device”) == “tbltexx” || getprop(“”) == “tbltexx” || getprop(“ro.product.device”) == “tbltedt” || getprop(“”) == “tbltedt” || abort(“E3004: This package is for device: tblte,tbltexx,tbltedt; this device is ” + getprop(“ro.product.device”) + “.”););[/CODE]
5. Save the file.
6. zip the contents back up.
7. Flash!

Mickey387 – For continued development for the TBLTEXX!
louforgiveno – For making the 5.1.1 bootloader data zips for the trlte, which inspired this set of datazips. (Same principle, different files.)

Known working TBLTEXX roms:

[ROM][7.1.1] AOKP Nougat with built in sidebar launcher! [tbltexx]
This rom is available in the T-Mobile thread also for direct use on the T-Mobile phones!
Instructions: After downloading this, you do not need to edit the zip, it is ready for flashing, flash rom, gapps. Reboot, let it settle, then, go back into recovery and flash datazip #1. Reboot. Now you will see your cell phone signal as empty, select your apn, and set your phone to 3g mode. Then, after you get the H+ by your cell signal, you can switch back to LTE.

[ROM][OFFICIAL]NOUGAT Resurrection remix 5.8.0 (7.1.1)
Instructions: After making it flashable, flash rom, gapps. Reboot, let it settle, then, go back into recovery and flash datazip #1. Reboot. Now you will see your cell phone signal as empty, select your apn, and set your phone to 3g mode. Then, after you get the H+ by your cell signal, you can switch back to LTE.

[rom][6.0.1] aokp mm [n915t/n915f/n915fy/n915g]
Instructions: After downloading the 6.0.1 bootloader version, you do not need to edit the zip, it is ready for flashing. Flash the rom, the gapps, and reboot. After it boots up the first time, go back to recovery and flash data zip #1. You should be good to go! If you have trouble, choose your apn, cycle between 3g and lte!

finnigen2 found that this also works with Resurrection remix 5.8.1 (7.1.1) with the data fix with Mickey’s TWRP

unimatrix725 found that this also works with TekX EPE2 [6.0.1] on a SM-N915R4 (U.S. Cellular).

JeremySS found that if you upgrade from TBLTEXX RR 5.8.0 to 5.8.1, you can flash data zip 2 to fix your issues.

The data zips.

Data Zip #1:

Data Zip #2:

You can also check it out on XDA:

Linux – keep it simple.

keyCode=KEYCODE_UNKNOWN, When your buttons don’t work!

While building roms for the Samsung Galaxy Note Edge (TBLTETMO, TBLTEXX) I ran into an issue where the recents button was not working. So, I pulled a logcat, and here is what I saw:

KeyEvent { action=ACTION_UP, keyCode=KEYCODE_UNKNOWN, scanCode=254, metaState=0, flags=0x208, repeatCount=0, eventTime=182478, downTime=182375, deviceId=18, source=0x101 }

This lead me on a wild goose chase accross the internet, but praise God, I caught that goose!

Here is the article that helped me the most:

However, it was only close to solving my issue. Sometime between 2010 and now, Android stopped using qwerty.kl as the main file for setting the keymap. So, I also had to edit Generic.kl to make it work.

Here is the whole thing if you are doing this on your phone:

Using ES File Explorer or similar, open /system/usr/keylayout/Generic.kl.

Go down past “key 226 HEADSETHOOK”
and add “key 254 MENU”

Save and close that.

Then, open /system/usr/keylayout/qwerty.kl.

Go down past “key 212 CAMERA”
and add “key 254 MENU”

Save and close that.

Then, open /system/usr/keylayout/sec_touchkey.kl.

Edit “key 254 MENU”

Save and close that.

Now, reboot your phone and the recents button will be a menu button!

If you are editing your source code, you can see the commit I did and do likewise, here:

Essentially, I added the Generic.kl file from my phone to my build, and made the build copy it over when making a rom. Pretty simple, once you know what to do!

Linux – keep it simple.

How to add an I/O Scheduler to your kernel

How to add an I/O Scheduler to your kernel:

Praise God, another succesful addition to the TBLTE kernel was that of adding the FIOPS I/O scheduler to the kernel. What is an I/O scheduler? Well it is the part of the kernel that handles, or schedules, input and output. Particularly, this has to do with writing and reading to and from media, like your hard drive, flash drive, etc.

So, how do we do that? How do we add I/O schedulers to our kernel?

Well, for the TBLTE kernel, I will show you what I did, and you can add to your kernel similarly.

Go to the block folder in your kernel source. The first thing that you need to do is add the fiops-iosched.c file. Whatever I/O scheduler you want to add will be named like this: {NAME-iosched.c} you can search Google or github for them, or take them from my source if you would like.

Once you put your fiops-iosched.c file in your kernel’s ./block/ folder, you can now edit two other files in that folder. You need to add the new scheduler to the make file, so it knows to make it, you can do that like so:

Open ./block/Makefile and add this line after the other *-iosched.o lines:

obj-$(CONFIG_IOSCHED_FIOPS) += fiops-iosched.o

Notice that it just uses the name of the iosched file, but with an “.o” extension instead of a “.c” extension. The “.c” file you added earlier will create a “.o” (object) file that the Kernel needs to use to “make” the kernel.

Now edit the ./block/Kconfig.iosched file like so:

tristate “FIOPS I/O scheduler”
default y
The FIOPS I/O scheduler. WJH.

This way, when you are moddifying your configuration, you can select to build it. Notice that it is a “default y”, essentially, I am telling the config file creator to allways assume I want to build this, unless I choose not to. You can also eddit the “—help—” portion to say anything you want. I put my initials in there so I can find it easily with the search tool.

Now open your configuration file. For the stock builds, that would be ./arch/arm/configs/ap88084_sec_defconfig, and add this line:


Note that you could also do this through

[CODE]$ make menuconfig [/CODE]

You may also note, since we gave it a “default y” in the Kconfig.iosched file, we don’t actually need to add this to our configs, as it will be built by default, but I like to declare what I am building in my configs so I remember what I am doing.

There you go! Now when you build your kernel again, the FIOPS I/O scheduler will be added in. It is remarkably simple, just the way I like it. You can read the commit here: [url][/url]

Linux – keep it simple.


Overclock an apq8084 Samsung Galaxy Note Edge!

In my continuing quest to make a better kernel for the Samsung Galaxy Note Edge (TBLTE, N915T), I decided to tackle overclocking the kernel. There are already some overclocked kernels out there, but I decided to do something slightly different with mine. The distinguishing feature of my overclocked kernel is that it doesn’t use any more power than it did before, and to God be the glory, it worked!

I also feel that when you overclock a chip, you are increasing the rate of failure, and the induced heat load. So I like to keep my overclocking light, less than 10% of the overall capacity that the chip was designed for. It is my hope that this will reduce wear and tear on the device while still providing superior performance.

Editing the tables for this chip was a lot simpler than for other chips I have worked on.

It all took place within the kernel/samsung/tblte/arch/arm/boot/dts/qcom/apq8084.dtsi file. Here is how it used to look:

/* 2.7GHz RC1 */
qcom,speed2-pvs0-bin-v1 =
< 0 0 0 >,
< 300000000 810000 76 >,
< 345600000 820000 88 >,
< 2496000000 1120000 813 >,
< 2572800000 1135000 849 >,
< 2649600000 1150000 886 >;

And here was my change:

/* 2.7GHz RC1 */
qcom,speed2-pvs0-bin-v1 =
< 0 0 0 >,
< 300000000 810000 76 >,
< 345600000 820000 88 >,
< 2496000000 1120000 813 >,
< 2572800000 1135000 849 >,
< 2688000000 1150000 886 >;

That’s right, I only made a 39MHz change. I feel this was appropriate to keep the device cool and continue to use the same voltages. So it is essentially a 39MHz boost with no noticable consequences. Of course, I had to do the above to each speed and pvs table in that file.

Then, I needed to edit this portion:

qcom,msm-cpufreq@0 {
reg = <0 4>;
compatible = “qcom,msm-cpufreq”;
qcom,cpu-mem-ports = <1 512>;

qcom,cpufreq-table =
< 300000 300000 1144 800 >,
< 422400 422400 2288 800 >,
< 2572800 1728000 16250 10101 >,
< 2649600 1728000 16250 10101 >;

To this:

qcom,msm-cpufreq@0 {
reg = <0 4>;
compatible = “qcom,msm-cpufreq”;
qcom,cpu-mem-ports = <1 512>;

qcom,cpufreq-table =
< 300000 300000 1144 800 >,
< 422400 422400 2288 800 >,
< 2572800 1728000 16250 10101 >,
< 2688000 1728000 16250 10101 >;

It actually was the only time I have overclocked a kernel on the second try. Don’t think too highly of me, though, I spent hours reviewing kernel edits for overclocking by various other kernel developers on GitHub. If you are looking to do the same, you should spend some time looking at working code for others, and then make your own tables.

If you were to compare my tables with everyone elses, you would see that I have done it differently than my contemporaries, even though we reached similar, or in some cases, identical results. I like to keep the code clean, short, and sweet. Often when overclocking, most kernel developers will add more lines to the tables. I have found that while that may be the best to maximize use, my method is much simpler and easy to implement, as well as follow, and that is what Linux should be all about, keeping it simple.

Linux – keep it simple.


When symbolic links don’t work?

Recently, while compiling CM12 for the TBLTETMO, Galaxy Note Edge, I ran into an odd error. I did not get a chance to copy the error message, but essentially it said that the file[CODE]linux/dqblk_qtree.h[/CODE]

did not exist.

Normally, this would not cause concern, nor even a raised eyebrow. However, when I went to the location, the file DID exist. I thought that was really odd. Then I realized that it was a symbolic link to another file. Sometimes, for whatever reason, the symbolic links don’t always work for the compiler. In this case, I simply replaced the file with the linked one. If you don’t have the file, I found it online here:

The point being, if you find a “missing file” that actually exists, check to see if it is a link to another file. If so, copy the linked file in its entirety to the proper location, as that will work much better.

Linux – keep it simple.

Stop. No rule to make android.hardware.fingerprint.xml

Stop. No rule to make android.hardware.fingerprint.xml

As I continue to attempt successful builds on the TBLTETMO, TBLTEXX, and TBLTESPR, I came accross this error:

make: *** No rule to make target `frameworks/native/data/etc/android.hardware.fingerprint.xml’, needed by `/home/alaskalinuxuser/Documents/projects/phones/compile/build_cm12_mickey/out/target/product/tbltexx/system/etc/permissions/android.hardware.fingerprint.xml’. Stop.

Obviously, just a missing file. I searched around a bit on Google, and finally found the answer. I copied this text and made my own file at frameworks/native/data/etc/android.hardware.fingerprint.xml, it looks like this:

<?xml version=”1.0″ encoding=”utf-8″?>
<!– Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
See the License for the specific language governing permissions and
limitations under the License.
<!– This is the standard set of features for a biometric fingerprint sensor. –>
<feature name=”android.hardware.fingerprint” />

Or you can download it here:

For better or worse, the error has cleared. Apparently all it needed was a feature name, but that’s good enough for me!

Linux – keep it simple.


New builds! New device! The N915T Galaxy Note Edge!

While I don’t have one yet, I have decided that I will be getting one of these Galaxy Note Edge phones. They are a couple years old, and the price on them is going down significantly. In the meantime, I noticed that there were not very many custom roms available for them. Actually, there are only 2 roms that are not just modifications of stock roms. Those two roms are CM 12.1 (Lollipop) and Resurrection Remix (Marshmallow).

So, I decided to build some of my own. To God be the glory, it worked! Well, sort of.

Working with a group of willing testers, I have put together this rom:

At this time, it does not have functioning WiFi or Cellular, but it is a start. It is my hope to continue working on this and get it squared away. For now, it is a fun Alpha teaser to try out.

Some of the main problems with custom roms on this phone is the “edge” feature. The curved glass edge has never truly been done justice by a non-touchwiz rom, which I suspect is why most stick with the stock roms, or modifications thereof.

My long term goals are to find a way to put the edge back into play, and to also make the s-pen fully functional. Short term goals are to get the usual hardware working. If you have a N915T, feel free to try out this alpha build, but remember, it is not a daily driver yet.

Linux – keep it simple.

Testers requested for AOKP 6.0.1 on the Note Edge, T-Mobile variant.

Testers requested for AOKP 6.0.1 on the Note Edge, T-Mobile variant.

Hi, I have built several roms for other phones, both personally, and shared here on my website, or on XDA.

The Note Edge N915T is getting pretty cheap to buy off of Swappa, Ebay, and Amazon, and I was thinking about picking one up. I am a dad, so I have to be frugal and stick with older/cheaper phones. I can’t afford to buy everybody in the family a new cell phone! As I save up a few bucks for it, I was thumbing through the forums and noticed that there were not many non-stock based roms available for it. So, I built one. By God’s grace it compiled after a few tries of error fixing. I would like to ask for any volunteers to assist me with testing it out.

The applicants would need a little bit of knowledge:

– Have a N915T variant
– Have TWRP installed
– Know how to make a backup
– Know how to wipe and flash roms
– Preferably be able to use adb (I can help with that)
– Know how to recover back to stock rom or TWRP in the event of a failure
– Know how to take screenshots/pictures (common sense is in fact a super power)

Essentially, if interested, click on the “contact” link in the bar at the top. Fill out the contact form with a valid email address, and I will email you a reply with a link to Media-Fire for the download and I would include instructions.

If it fails, well, you can just jump back into TWRP and restore your daily driver.

If it passes, I can  list you as an Alpha/Beta tester!

I never charge money for my rom work, I do not accept donations, so this is not a ploy to exploit cash from anyone. I just like building custom roms, and I am really interested in building one for this phone.


You can click on the “Homemade Roms” link above if you would like to check out some of my other work.

Linux – keep it simple.