[Kernel] [.34] Undervolted @ Stock-8/29 - 950mV-The Original - Nexus One Android Development

What this kernel does is provide slightly less voltage to the processor. This should not be dangerous for anyone to try, however it may be unstable or just result in general weirdness on a few phones. If it does, all you have to do is revert back to the kernel you had before.
The upsides to less voltage are less heat as well as less power consumption. That means battery life
Remember, this one is running at stock speeds.
Get it on Koush's RomManager (download RomManager from the market) I'll post changelogs in this thread from now on, but keep the kernel on RomManager.
Changelog 8/29:
Lots of stuff.. I dunno.. Look at the CM6 kernel changelog (I've been working on that).
Biggest thing IMO is the usleep stuff which lowers CPU usage and therefore increases battery life.
Note: only tested on CM6. Let me know if you try it on any other roms.
Link: http://kanged.net/up/files/5/kernels/signed-August26-UV950.zip
Changelog 6/20:
Ermm.. I've been releasing my kernels on twitter.. but I'm finally happy with this one.
-Latest Cyan commits
-Minor voltage tweaking
-erm... yeah I dunno.
Get it here http://kanged.net/kmobs/signed-619UV-34.zip or from RomManager.
Changelog 5/14:
-Reinstated those commits reverted earlier.
-Updated to .33.4
-Only doing a 925mV kernel due to the results from the blind study
Changelog 5/1:
-Reverted the following commits thanks to intersectRaven. I think they were the reason for the excessive battery drain.
27dd25f80402a13f9d5c381eda07b560e5545fcc
1490683fb851b992722cbd175d3df087df833656
f2513498e961966d3209aacfffc43de4f41f2ece
-Updated to latest CM source (minus those commits)
Changelog 4/21:
Fixed the board-mahimahi.c in the 850mV kernel.
OLD updates and changelog:
http://iq0.org/story/yet-another-nexus-one-kernel-now-battery-saving
Note: Now offering a universal update.zip method for flashing the kernel (big thanks to Koush for this one)
Thank you www.tdrevolution.com for hosting my work.

Does it still have the highmem?

GEtting an access denied message, Seems the post doesnt exist

Great job. Will get you a logcat if I get any random weirdness.
Maybe now my battery can last longer then my G1 battery did when I am at work.

Anyone care to make an update.zip for those of us without computers nearby to check this out?

Tested and functional with Enomther 1.61. Thanks a lot
What is the CPU voltage and is the some app that can show it?

Running this new kernel at 576/245 mHz, wifi off, 3G connection, brightness set to automatic. will report back with battery life as soon as it runs out. lol
Off of charger: 11:34AM , Wednesday, February 17, 2010
Battery completely drained: TBA

DocRambone said:
Tested and functional with Enomther 1.61. Thanks a lot
What is the CPU voltage and is the some app that can show it?
Click to expand...
Click to collapse
Hey do report if there is any improvements... meanwhile can someone make it into to an update.zip for us?

mgear356 said:
Hey do report if there is any improvements... meanwhile can someone make it into to an update.zip for us?
Click to expand...
Click to collapse
I will, phone seem ok so far, BenchmarkPi at 2670
No slowdowns or reboots during benchmarks or gameplay. Phone feel cooler tho

I'll give this a shot.

Mi|enko said:
Does it still have the highmem?
Click to expand...
Click to collapse
just flashed it. yes it does. my phone hasnt exploded yet either...

Mi|enko said:
Does it still have the highmem?
Click to expand...
Click to collapse
Yes
To those asking for an update.zip: I don't to package this into something that will be easily flashable by all, including those that may not understand the risks (I don't think there are any with this kernel, but can't be sure). I want there to be some rudimentary knowledge of android before someone goes and flashes this and potentially messes up their phone.
Does that make sense? I feel that there should be a barrier to entry on kernels that OC and the like.

What voltages is it for different MHz?

great job, really need something like this... im trying it out! thanks

DocRambone said:
What voltages is it for different MHz?
Click to expand...
Click to collapse
Its not across the board, and I'm not home right now to tell you, but 245 is at 1.0 vs 1.05 and 998 is at 1.250 instead of 1.275

persiansown said:
Yes
To those asking for an update.zip: I don't to package this into something that will be easily flashable by all, including those that may not understand the risks (I don't think there are any with this kernel, but can't be sure). I want there to be some rudimentary knowledge of android before someone goes and flashes this and potentially messes up their phone.
Does that make sense? I feel that there should be a barrier to entry on kernels that OC and the like.
Click to expand...
Click to collapse
I do understand what your saying, I don't think its that much of a barrier though. There are many instructions throughout these boards that will let anyone who is even remotely interested flash a new kernel and push a .ko to their phone... The only reason why I want an update.zip is so that I can flash this on my phone to test it while I'm at work, it would also be nice to be able to switch quickly between kernels and whatnot. I don't have a computer that I can connect to via USB to run fastboot/adb so the only way I can get these on my phone is via a zip.
I don't think that a developer/hacker can be held responsible for others not knowing what issues can be caused by a voltage/clock tweak - especially with disclaimers up everywhere.

FettsVett said:
I do understand what your saying, I don't think its that much of a barrier though. There are many instructions throughout these boards that will let anyone who is even remotely interested flash a new kernel and push a .ko to their phone... The only reason why I want an update.zip is so that I can flash this on my phone to test it while I'm at work, it would also be nice to be able to switch quickly between kernels and whatnot. I don't have a computer that I can connect to via USB to run fastboot/adb so the only way I can get these on my phone is via a zip.
I don't think that a developer/hacker can be held responsible for others not knowing what issues can be caused by a voltage/clock tweak - especially with disclaimers up everywhere.
Click to expand...
Click to collapse
Oh I understand where you're coming from, and I would make you a private one, but I'm not home at the moment. However, for the general user, if they can't use fastboot, I don't want them anywhere near this. I hope someone makes you an update.zip!

I await the PM's!

Dear lord what am I going to do with this should I get my 2800mah battery? my phone will never die! lol
-Charlie

FettsVett said:
I await the PM's!
Click to expand...
Click to collapse
you can make one yourself.
grab boot.img from cyanogen's rom.
grab split_bootimg.pl from http://android-dls.com/files/linux/split_bootimg.zip
grab persiansown's zImage.
(in linux)
put all three in a folder. let's call it kernel.
while in the kernel folder:
./split_bootimg.pl boot.img
mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage-persiansown --ramdisk boot.img-ramdisk.gz -o boot-persiansown.img
(in windows)
download this: http://www.sendspace.com/file/kj2wi7
use winrar to open up that up, remove the boot.img in there and replace it with boot-persiansown.img (make sure it is named boot.img)
open up the update-script in META-INF folder (some levels down in there), and remove the format BOOT line (you'll be left with write_raw_image ... line), and save it.
grab this: http://www.relentlessaddictions.com/Androidstuff/signing.zip
unpack to your tools folder in your android-sdk folder distribution, and run autosign.bat. follow the prompts. once setup, you can right click on the .zip file with the boot.img in it to sign it, or you can execute from a cmd prompt: java testsign BOOT-IMG.zip
flash via custom recovery (which can flash .zip's signed with test keys).
you should be all set.
edit: mkbootimg can be found in prebuilt within AOSP distribution, or you can grab this precompiled one: http://forum.xda-developers.com/attachment.php?attachmentid=229872&d=1253485580

Related

[Kernel] [2.6.34/2.6.35] OCed - UVed: -1.113Ghz

If you haven't noticed, Pershoot has taken over this thread a LOOONNGGG time ago. We just keep it here because it's easier than opening a new thread.
Here is a kernel for the Nexus One running at 1.113 Ghz. Its been perfectly stable for me. Enjoy.
Remember, I hold NO responsibility for anything that goes wrong. I'm simply providing the kernel, whatever happens with it is on your shoulders not mine.
Pershoot just compiled the .32 kernel that is both undervolted and OCed. Big props to him.
Instructions:
1. Root your Nexus and install the latest Cyanogen rom (5.0.2 as of 2/15/2010)
2. Download SetCPU from either XDA for free, or support the developer as I did and buy it on the market
3. Reboot into fastboot and type "fastboot flash zimage zImage"
4. Push the .ko file to /system/lib/modules
5. Once your phone boots, open SetCPU and tell it to autodetect your CPU (Don't choose Nexus from the list!)
6. Set the max clock to the highest and tell it to set on boot.
7. Enjoy
Keep in mind that this kernel is both undervolted and overclocked. So you're getting less power consumption as well as faster speeds.
This also fixes the issue that many had that prevented them from flashing it.
Direct Pershoot link
How to revert:
take the boot.img out of the cyanogen zip and fastboot flash boot boot.img
If you are using enom's, use a similar process (as well as pushing the proper .ko file back as well)
You could also just reflash the rom you were using before. That will get rid of the addon, and you won't have to wipe.
EDIT: You may have issues with the phone getting warmer while it is charging. If that is the case, simply set up charging profiles in setcpu.
This kernel is now undervolted for everything but 1.113ghz. So you should probably see about the same battery usage as a stock kernel
can you upload to another website ?
4shared doesn't work really well on here.
Works fine for me!
yeah, works fine too now
thanks
Are the improvements evident or it's only a metter of numbers?
asci said:
Are the improvements evident or it's only a metter of numbers?
Click to expand...
Click to collapse
This.
Is this extra amount of GHZs really of any interest to us? Or is it just a matter of knowing your phone is going above average speeds?
Eclair~ said:
This.
Is this extra amount of GHZs really of any interest to us? Or is it just a matter of knowing your phone is going above average speeds?
Click to expand...
Click to collapse
You know this is XDA-developers right?
Pushing the limits is what it's all about
rhov23 said:
You know this is XDA-developers right?
Pushing the limits is what it's all about
Click to expand...
Click to collapse
Oh yea. But is it worth frying the processor if there isnt any notable gains from doing this?
What about the battery? Faster Draining?
Bye!
serialtoon said:
Oh yea. But is it worth frying the processor if there isnt any notable gains from doing this?
Click to expand...
Click to collapse
its still using old voltage. nothing will happen.
thank you!
this works on eno1.6.1 too. great work.
Some superpi results:
2720 with stock enom1.61
2410 with overclock
rhov23 said:
You know this is XDA-developers right?
Pushing the limits is what it's all about
Click to expand...
Click to collapse
double quote to Rhov23!
Does it mantain himem availability?
I've got an error: can't load "zImagekmobs". Do I need to change the file extension to img? I tried with both the bat and img file extension. Got the same error. I did copy the zImagekmobs file to the fastboot folder.
asci said:
Does it mantain himem availability?
Click to expand...
Click to collapse
Yes. It was built of CM's source.
I do not plan on releasing a higher clock version, because a higher clock would require bumping the voltages. That is something I am not comfortable doing with a phone.
amwayorlando said:
I've got an error: can't load "zImagekmobs". Do I need to change the file extension to img? I tried with both the bat and img file extension. Got the same error. I did copy the zImagekmobs file to the fastboot folder.
Click to expand...
Click to collapse
put .dat at the end
for example
fastboot-windows flash zimage zImagekmobs.dat
persiansown said:
Yes. It was built of CM's source.
I do not plan on releasing a higher clock version, because a higher clock would require bumping the voltages. That is something I am not comfortable doing with a phone.
Click to expand...
Click to collapse
Definitely better safe then sorry
kylez64 said:
Definitely better safe then sorry
Click to expand...
Click to collapse
thats why you dont OC unless you're willing to be sorry not very necessary is it?
flashed and it booted. so far so good.

[REAL DEVELOPMENT] ICS Building for Flyer

This is not a thread to say ‘thanks’ to developers. Only post here if you have some input in this development progress, by either fixing bugs, or coming up with ideas (and ideally, try your idea and report what happens).
Having that said, let’s move on to where we are at the moment. Currently, we have a build which is based upon Ice Cold Sandwich 6.2 Test Edition for the HTC Desire HD. This build boots up by flashing my custom kernel on it, based on Flyer HC Original Kernel Source, with some patches:
-Quota2 Support
-Genlock Support
-Updated KGSL driver by applying Lord Clockans patches from his kernel
The ZIP we are working on now, can be downloaded here:http://w728685.open.ge.tt/1/files/9iI3CbF/0/blob?download
This ZIP contains a build which is mainly Lord Clockans ICS, with essential changes in the ROM to get it booting (we used LeeDroid’s Flyer HC as the donor ROM). This ROM is made for a HoneyComb HBOOT!
After you have flashed that ZIP, this is the kernel you need: http://ge.tt/9iI3CbF/v/1
You MUST flash this kernel to get it up and running, or it’ll just loop in the logcat complaining about unsupported stuff.
This set should do the following:
-Boot up (bootanimation resets after some time, it’s ok, it will boot within 5 minutes).
-Touchscreen works after you did this: open ADB Shell (by entering ‘adb shell’ on your pc,), and send the command “echo ‘1’> /sys/android_touch/event_google”. Now touchscreen should be working. (For some reason the file 90flyerhacks in /system/etc/init.d doesn’t do its job. If anyone has a clue > say so!) Also, the ntrig.c file in /drivers/input/touchscreen/ is modified in the kernel, don’t know if it helped though.
-Full Hardware Accceleration
-Screen is bugged at certain moments (seems to happen especially during things concering wallpapers. Rendering a wallpaper, showing a heavy LWP, etc.). The build.prop file contains some lines such as:
ro.fb.mode=1
debug.composition.type=gpu/mdp
debug.fb.rgb565=0
Perhaps we have to change these lines to get it running without issues (strange thing is, logcat doesn’t seem to make an issue about this). We can also try a recompile of the kernel using the entire driver folder from Lord Clockans kernel (it’s in /drivers/gpu/msm/ in his kernel, and /drivers/video/msm/gpu/kgsl_adreno205_hc in ours, moving the folder to where it should be causes issues, so we keep it like this for the time being).
-Sound is working
-Backcamera seems to be working fine, haven’t tested frontcamera.
-Hardware buttons under the screen aren’t working, and this should be a low
priority for now. It isn’t ideal to use them in ICS anyway (different button functions in comparison with the softbuttons), and I think we shouldn’t focus on this for now.
-GPS switch can be enabled, haven’t tested whether it works.
-Bluetooth switch can be enabled, but turns off automatically after about ten seconds.
-WiFi switch can’t be changed, logcat tells us that it can’t connect with /dev/rfkill, applying this patch in the ramdisk could fix it:
https://github.com/OpenSensation/an...mmit/da09360d70888a7e126871ab2ae5b218514cad18
-Power button and Volume buttons work fine.
-Pen works after we send the event_google command mentioned before.
If the ROM immediately reboots within 10 seconds and it seems like it’s looping, and you can’t even logcat, hold down Power and Volume Down until you get to HBOOT, select FASTBOOT, and enter ‘fastboot erase cache’ in the CMD/Terminal, and reboot, and it should work.
And that’s about it for the current things we know I think. If you manage to fix something, please write down and report what you did to fix it, so we can keep a list. I will work on a vendor folder using the known information, so we can compile a ROM from source, made for our device.
And last, but not least: don’t post here asking for release dates. We will do our utmost best to bring ICS experience to the Flyer, but do not bug us. Thanks.
Now let’s get this up and running guys! I will keep a log of what is fixed and what is not, so we can keep the thread organized. Else we’ll have 50 ZIPs around, not knowing which one is the right one et cetera.
Source code of kernel: http://github.com/Chaosz-X
Ramdisk will be uploaded tomorrow.
Donations are much appreciated, as I'm developing and building atm on a 1.67GHz Dual core...
Donations can me made to [email protected] using Paypal.
i suggest creating two repos... one for ROM and one for kernel... that way single file changes can be tracked even on ROM front, not just kernel...
willing devs can fork those repo and send pull requests to main repo when they get stuff working
I'm not a developer, and I have nothing but love for all the great devs that worked so hard to bring ICS to the Flyer.
Might I suggest, however, that instead of pursuing CM9 builds, the next effort be centered around porting the Android Open Kang Project (AOKP) ROM? In terms of features and customizations, it's considerably ahead of CM9, with numerous supported devices to boot.
I think this ROM, versus CM9, would give users the most flexible and dynamic ICS experience for their Flyer.
Chaosz-X said:
-Touchscreen works after you did this: open ADB Shell (by entering ‘adb shell’ on your pc,), and send the command “echo ‘1’> /sys/android_touch/event_google”. Now touchscreen should be working. (For some reason the file 90flyerhacks in /system/etc/init.d doesn’t do its job. If anyone has a clue > say so!)
Click to expand...
Click to collapse
Does it work if you add
write /sys/android_touch/event_google 1
to the init.rc file?
Could you post the init.rc file where you trigger the init.d scripts?
nickiberli said:
Does it work if you add
write /sys/android_touch/event_google 1
to the init.rc file?
Could you post the init.rc file where you trigger the init.d scripts?
Click to expand...
Click to collapse
yes that should work correctly
No, I didn't add that. I'll try it tomorrow (or one of you, if you have a Linux machine ready. Laptop with Ubuntu is having some issues atm, can fix it tomorrow).
So, assuming that's working, let's get to the display. We know that it causes issues, but how?
-Logcat doesn't error (except for HtcEbdLog, saying something about rotation, which seems to happen when glitches occur. Perhaps we need to swap the files?)
-At the very beginning, it does tell that initOverlay failed. This overlay-thing is baked in the ROM, and can be disabled in the ROM itself by setting an option to 'false' in the vendor setup. We don't know if it fixes the issue, but since the attempts to add this functionality to the kernel failed, it could be a better idea to fix it in the ROM to get rid of the error.
Any other suggestions?
Edit: and before I forget, tomorrow I'll check the ZIP for what is changed in comparison with the ROM it is based upon, so we know what we have to add in to a new build too.
Chaosz-X said:
No, I didn't add that. I'll try it tomorrow (or one of you, if you have a Linux machine ready. Laptop with Ubuntu is having some issues atm, can fix it tomorrow).
So, assuming that's working, let's get to the display. We know that it causes issues, but how?
-Logcat doesn't error (except for HtcEbdLog, saying something about rotation, which seems to happen when glitches occur. Perhaps we need to swap the files?)
-At the very beginning, it does tell that initOverlay failed. This overlay-thing is baked in the ROM, and can be disabled in the ROM itself by setting an option to 'false' in the vendor setup. We don't know if it fixes the issue, but since the attempts to add this functionality to the kernel failed, it could be a better idea to fix it in the ROM to get rid of the error.
Any other suggestions?
Edit: and before I forget, tomorrow I'll check the ZIP for what is changed in comparison with the ROM it is based upon, so we know what we have to add in to a new build too.
Click to expand...
Click to collapse
u want me to add stuff to that ramdisk?
start a github repo for the ramdisk and ROM too... trust me... its VERY helpful...
I'll start installing Ubuntu within 30 minutes, and will add everything to a GitHub by tonight within about 3 hours I think.
Chaosz-X said:
I'll start installing Ubuntu within 30 minutes, and will add everything to a GitHub by tonight within about 3 hours I think.
Click to expand...
Click to collapse
thats great... it should make keeping track of changes much easier and other interested devs can contribute if they want...
Hello, all.
Attempting to help by working on the build.prop settings. I'm S-OFF with revolutionary and have my device fully configured with the Honeycomb HBOOT/radio/bootloader/etc.
After flashing the ROM and the kernel, the device would immediately reboot upon attempting to return to the main recovery menu. I had to fastboot oem rebootRUU and reflash Globatron's PG41IMG-WIFI-light-B10 zip to get recovery back.
The device never proceeded to the boot animation.
Thracks said:
Hello, all.
Attempting to help by working on the build.prop settings. I'm S-OFF with revolutionary and have my device fully configured with the Honeycomb HBOOT/radio/bootloader/etc.
After flashing the ROM and the kernel, the device would immediately reboot upon attempting to return to the main recovery menu. I had to fastboot oem rebootRUU and reflash Globatron's PG41IMG-WIFI-light-B10 zip to get recovery back.
The device never proceeded to the boot animation.
Click to expand...
Click to collapse
I can confirm this happened to me also. The only difference is that I was using the kernel for a port of mine, and it did the same thing.
Yes, it is known that for some reason, Go Back already reboots the device. It's no problem though, it works fine anyway. If it is really looping the bootanimation every ten seconds, keep Vol Down and Power pressed, until you get to HBOOT. Select FASTBOOT, and enter 'fastboot erase cache' in the terminal. Then reboot on the device, and it should boot up fine.
Also, kernel won't work on Honeycomb, haven't checked why it doesn't though (and I won't btw, our goal is not to make a new kernel for Honeycomb, but for ICS, where it does its job fine).
Kernel source is uploaded to my Github: http://github.com/Chaosz-X
Edit the CROSS_COMPILE for your toolchain, and it should compile fine (it does here).
Will add the link to the OP within 5 minutes, ramdisk will be uploaded tomorrow.
If chaos has a device tree set up for the Flyer/View, no build prop editing should be necessary, can just submit requests - but I don't notice it on the git.
Thanks for uploading, I'll have a look and see what has changed so far. It's a little difficult to keep track of the changes since there are no commits that document the patches applied over time, but I'll try to make do with what you've got.
Is this straight from flyer HC kernel source?
I may be doing this wrong, but the touch screen commands do not seem to be working for me
Cimer said:
I may be doing this wrong, but the touch screen commands do not seem to be working for me
Click to expand...
Click to collapse
You have to type it in manually. Copying and pasting does not work, at least it did not for me. I think the issue is with the '
lawguy said:
You have to type it in manually. Copying and pasting does not work, at least it did not for me. I think the issue is with the '
Click to expand...
Click to collapse
It may just be me, I tried manual too. I had to use http://forum.xda-developers.com/showthread.php?t=1379875 since I'm stuck on Windows 8..maybe something is up with that. I guess I will just need to sit and wait =/
Cimer said:
It may just be me, I tried manual too. I had to use http://forum.xda-developers.com/showthread.php?t=1379875 since I'm stuck on Windows 8..maybe something is up with that. I guess I will just need to sit and wait =/
Click to expand...
Click to collapse
Hang tight for now. Wifi Does not work and the screen freaks out. I'm sure that these things will be fixed soon.
Going to upload ramdisk source within an hour, and try to apply a fix for WiFi, and try to fix the touchscreen by using the command in init.rc mentioned here earlier.
The new modem arrived, I have Internet again, so we have remote access to our Linux machine and can start compiling etc again
Indeed, we're grabbing AOKP source code now. Within about 2 hours we think, we'll start compiling the ROM for the HTC Flyer. Don't know if it will work out, but we have to start somewhere

[MOD][ICS] Modified boot.img with adb root & init.d support

I am not sure if someone else has posted this already. But I couldn't find one, so here you go. (Please let me know if I'm mistaken)
I made two small edits to the boot.img of the stock (leaked) ICS rom in order to satisfy my needs:
1. ability to run init.d scripts,
2. start adb in root.
They are very simple and anyone with a little knowledge can do it himself, but it still is convenient to have someone else do it, isn't it? I, for one, searched the forum in vein.
Here's a short explanation of what it is, and how to utilize the features.
1. init.d :
You can place your own shell scripts in /etc/init.d (you have to create the directory yourself, of course) and run them at boot time. If you prefer the CM style userinit.d, you could create a script like:
Code:
#!/system/bin/sh
# call userinit.sh and/or userinit.d/* scripts if present in /data/local
if [ -e /data/local/userinit.sh ];
then
log -p i -t
userinit "Executing /data/local/userinit.sh";
logwrapper
/system/bin/sh /data/local/userinit.sh;
setprop
fi;
if [ -d /data/local/userinit.d ];
then
logwrapper busybox
run-parts /data/local/userinit.d;
fi;
and place it in init.d (credit: CM team). After that, you can place additional scripts without remounting system partition. Just don't forget to chmod appropriately.
A word of caution: Don't go wild and install all those tweaks found in other forums without checking to see their contents. I found that most of them to be either irrelevant or even harmful to the Amaze. Remeber, we've got one of the best phones on the market and wouldn't want to ruin it by running tweaks designed for our 'lessor' siblings!
2. adb root :
I was getting tired of the inability to adb push files to user restricted directories. Also, I use Droid Explorer a lot, but was tired of its inability to obtain root even though my phone is rooted. So I basically changed the default.prop and everything is fine now.
Added benefit is that 'adb remount' works now.
Well, that's it. Too simple, but until someone comes up with a nice kernel with these mods built in, we got to live with what's available.
DISCLAIMER : Should I even include a disclaimer? Why not? This is just a stock boot.img with minor modifications to its ramdisk portion, and it shouldn't harm your phone. If it doesn't work, simply reflash the stock boot.img found in the stock/leaked ICS roms. However, I don't want anyone to brick his phone, so don't flash this unless you know what you are doing. Also, I've seen some people bricking their phones merely by trying to flash innocent files like this one. Hard to believe, but anything can happen, so I will not be responsible if you brick your phone.
INSTRUCTIONS :
0. be sure you got the ICS build 4.0.3 with the stock kernel. rooted and have installed busybox (for init.d support only).
1. download the attached boot.img.
2. place the file where adb/fastboot can find it.
3. flash it using 'fastboot flash boot boot_new.img.
4. reboot.
5. try 'adb shell' and see if you get # prompt.
6. add some scripts in /etc/init.d and reboot and see if it runs.
It runs on my Amaze running the newer leaked ICS rom (unlocked bootloader, rooted, and busybox from the market). If you have any other settings, it probably won't do any good.
That's it, guys. Hope you have some fun with it (like I did).
Just flashed your modified boot.img so far everything works as described. Going to attempt my backlight script now. Just reflashed the stock RUU as certain Roms were giving me WiFi issues. Thanks
Is this why adb remount never worked?? I asked a few people and they acted like I was crazy.. I KNEW there had to be a reason it wasn't working.. I guess my only question is why was it no one thought to do this since the ICS release except you? LOL.
Edit: And I am out of thanks, this is my mental note to come back and hit thanks when I get some to give again!
Edit2: As advertised it works flawlessly, as advertised. It will be awesome to be able to push files to my phone and all the other things I couldn't do before! A simple tweak, as you said, still appreciated!
seems like were getting some more people around here that actually contribute to the amaze forums. thanks guys...carry on
Thank you very much
Now to find some scripts to run, lol.
Thank you all for the kind words! As I said in the OP, I was curious at first about the usefulness of my post. I truly believe that, if HTC had given us more power to mod this phone, this forum would have been 10 time more active with all sorts of useful stuff. Come on HTC, you give us the best phone (even better than the One series!), and why do you want to cripple us?
Double0EK said:
Just flashed your modified boot.img so far everything works as described. Going to attempt my backlight script now. Just reflashed the stock RUU as certain Roms were giving me WiFi issues. Thanks
Click to expand...
Click to collapse
As I didn't test the boot.img with any roms around, I don't know what went wrong with your wifi. That's why I only promised it would work with the NEWER stock ICS rom. Is it possible that you flashed the boot.img to a custom rom that is based on the OLDER leak?
Additionally, if the rom dev has made his/her own mods to the boot.img, it would not be compatible with the stock boot.img like mine. I didn't add, remove or move any files.
Silentbtdeadly said:
Is this why adb remount never worked?? I asked a few people and they acted like I was crazy.. I KNEW there had to be a reason it wasn't working.. I guess my only question is why was it no one thought to do this since the ICS release except you? LOL.
Edit: And I am out of thanks, this is my mental note to come back and hit thanks when I get some to give again!
Edit2: As advertised it works flawlessly, as advertised. It will be awesome to be able to push files to my phone and all the other things I couldn't do before! A simple tweak, as you said, still appreciated!
Click to expand...
Click to collapse
Hehe, yeah it is because of some security settings that phone manufacturers chose to enable in order to minimize customer support costs, I guess. Instead, they should give us all the power (and funding, too) so that we can support each other at XDA!
mrmako777 said:
seems like were getting some more people around here that actually contribute to the amaze forums. thanks guys...carry on
Click to expand...
Click to collapse
bilek06 said:
Thank you very much
Click to expand...
Click to collapse
I've used more than two dozen smart phones in the past, including ancient pda's and even iPhones (ouch!), and I think the Amaze has the best (mix of) hardware. I, too, wish there were more devs here, and wonder why some great devs around didn't see the potential in it. Well, HTC isn't doing something right...
Dark Nightmare said:
Now to find some scripts to run, lol.
Click to expand...
Click to collapse
Hard to find anything useful for the (already mighty) Amaze, isn't it?
Things I would add for myself are like:
- house keeping: delete cache, move/copy important files from internal to external sdcard, etc.
- renice phone and input method a bit. How about acore? Probably not...
- zipalign, maybe, if you're fanatic about it.
- save logs and erase oldest ones. Gosh, what am I saying? We've got so much storage space. Oh, well. If we save the logs in external sdcard, we can view them even when the phone doesn't turn on...
Hehe, I think I should search.
I never flashed your boot.img on custom roms only on the stock. I have better WiFi with stock.
--------------------------------
It's Better To Fail At Originality
Than To Succeed In Imitation.
--------------------------------
ringochan said:
Hard to find anything useful for the (already mighty) Amaze, isn't it?
Things I would add for myself are like:
- house keeping: delete cache, move/copy important files from internal to external sdcard, etc.
- renice phone and input method a bit. How about acore? Probably not...
- zipalign, maybe, if you're fanatic about it.
- save logs and erase oldest ones. Gosh, what am I saying? We've got so much storage space. Oh, well. If we save the logs in external sdcard, we can view them even when the phone doesn't turn on...
Hehe, I think I should search.
Click to expand...
Click to collapse
Lol searching, was thinking about the v6 supercharger script, still reading into it though.
I use Cache Cleaner NG to clean. Set it on Auto with new method 2 times a day.
--------------------------------
It's Better To Fail At Originality
Than To Succeed In Imitation.
--------------------------------
Double0EK said:
I never flashed your boot.img on custom roms only on the stock. I have better WiFi with stock.
--------------------------------
It's Better To Fail At Originality
Than To Succeed In Imitation.
--------------------------------
Click to expand...
Click to collapse
I must have misread your original post. My bad. But then, I have no idea about your wifi problem with the modified boot.img. I didn't touch anything other than 2 things that I mentioned. And my wifi is working just fine. It's spooky.
Dark Nightmare said:
Lol searching, was thinking about the v6 supercharger script, still reading into it though.
Click to expand...
Click to collapse
LOLOLOL! That guy is something! I mean the guy who created the v6 script. Yes, I think his concept is right on. I may borrow some of his tweaks like app grouping and oom/minfree. I've done similar adjustments when I was still using my G1/Dream, but with Amaze with de-bloated ICS, I am already getting (almost, if not) everything he is promising we can achieve with his script.
The only lag I have is when some background services are busy. But I don't really want to make them low priority (yet).
What do you think you like to achieve using v6? I may be able to help because I myself want to experiment some.
Double0EK said:
I use Cache Cleaner NG to clean. Set it on Auto with new method 2 times a day.
--------------------------------
It's Better To Fail At Originality
Than To Succeed In Imitation.
--------------------------------
Click to expand...
Click to collapse
Hehe, you know that some script junkies won't approve of ANY apps to take over what he can do with scripts, right? I've seem many. No, I've worked with many! They refused to use GUI text editors, LOL!
ringochan said:
LOLOLOL! That guy is something! I mean the guy who created the v6 script. Yes, I think his concept is right on. I may borrow some of his tweaks like app grouping and oom/minfree. I've done similar adjustments when I was still using my G1/Dream, but with Amaze with de-bloated ICS, I am already getting (almost, if not) everything he is promising we can achieve with his script.
The only lag I have is when some background services are busy. But I don't really want to make them low priority (yet).
What do you think you like to achieve using v6? I may be able to help because I myself want to experiment some.
Click to expand...
Click to collapse
Hey, if you want to try out something cool, check this out.. http://android.mimic.ca/ it patches the services.jar file to change the OOM priority, evidently in a way more effective than the supercharger script can do it. I was going to try to include it in the latest update for my rom till I decided I wanted to work on other things.. the guy who made supercharger script helped design the patch for the file though Just thought you may be interested.
Silentbtdeadly said:
Hey, if you want to try out something cool, check this out.. http://android.mimic.ca/ it patches the services.jar file to change the OOM priority, evidently in a way more effective than the supercharger script can do it. I was going to try to include it in the latest update for my rom till I decided I wanted to work on other things.. the guy who made supercharger script helped design the patch for the file though Just thought you may be interested.
Click to expand...
Click to collapse
erm... it CAN'T be more effective than supercharging... because it IS SuperCharging
Well, 50% of it. The other 50% comes from the script when on ICS.
Why do you think that website is integrated into the latest V6 Scripts?
That needs to be done in addition to the V6 script when using ICS roms to get 100%.
Of course, non ICS roms get 100% supercharged with the script itself since there's no need to patch services.jar
zeppelinrox said:
erm... it CAN'T be more effective than supercharging... because it IS SuperCharging
Well, 50% of it. The other 50% comes from the script when on ICS.
Why do you think that website is integrated into the latest V6 Scripts?
That needs to be done in addition to the V6 script when using ICS roms to get 100%.
Of course, non ICS roms get 100% supercharged with the script itself since there's no need to patch services.jar
Click to expand...
Click to collapse
LOL. Did you search yourself? HAHA. Yes, we are talking about how awesome your scripts are..
I would be using them myself but I can't figure out a setting that really makes it awesome like it did with my old vibrant!
Edit: And thanks for the explanation, that makes more sense than whatever post that lead me to your patch.
what is a modified boot image?
what is the different between the modifed boot image and the android we can download from the developer google site/?

[H918]Anyone that wants the 10j kernel source (that actually compiles)... Here it is

So LG released build 10j, with accompanying kernel source for the 10j update.
However, their source includes a lot of "typos" and silly little mishaps and doesn't compile.
Things that had to be fixed (note, not every file type mentioned were fixed, just specific ones) :
Makefile(s)
Kconfig(s)
.c sources
.h headers
The package I am providing stems from @jcadduono initial release (found here). I then replaced all files from the 10j source from LG (found here).
I then compiled with one thread and went error by error. Yes, it took me much longer than it should have, but I've never done anything like this, and the longest part was actually learning on how to figure out what was causing issues. I suppose in the future, it will be much faster for me.
Anyway, it flashes fine, here it is.
No changes to the defconfig, nor was anything customized inside (just fixed). It is stock, and builds Image.lz4 as well as the accompanying modules. This is all thanks to @jcadduono 's beautiful build.sh script, as well as his menuconfig.sh.
To build :
set toolchain in menuconfig.sh as well as build.sh
cd /path_to_dir
./menuconfig (do your changes, exit, follow prompts to save changes)
./build.sh h918
You want /path_to_dir/build/lib/modules and /path_to_dir/build/arch/arm64/boot
Save those things before running menuconfig and/or build.sh again, as they are automatically cleaned per config or build.
Remember you still have to disable verity, and force-encrypt.
Also, here is a full stock, flashable 10j boot.img (with kernel built from source packed inside), with verity and force-encrypt disabled. Also, it flashes the newly-compiled modules, as well as SuperSU2.79-SR3. Stock RAMdisk used as well.
When you do end up customizing the kernel, will you be putting that out as a stand alone custom kernel?
Thanks for all the hard work. Take a week off.
Cheers!
Update
Hey @Tilde88 seems the dreaded no sound on call after switching from wifi calling to data call is active again
I also have another branch going here: https://github.com/jcadduono/android_kernel_lge_msm8996/commits/android-7.0_2
which is 10j with LG's stuff separated from other commits.
I can't seem to figure out why it doesn't want to boot though. For whatever odd reason, seems the bootloader isn't even reading the Image.lz4-dtb and going straight to blank screen -> power off. Makes it darn hard to investigate when you can't get a pstore.
Update: I just realized that lz4 binary changed so all I had to do was change -lz16 to -lz9
Update 2: Nope still doesn't boot, I'm outta ideas.
jcadduono said:
I also have another branch going here: https://github.com/jcadduono/android_kernel_lge_msm8996/commits/android-7.0_2
which is 10j with LG's stuff separated from other commits.
I can't seem to figure out why it doesn't want to boot though. For whatever odd reason, seems the bootloader isn't even reading the Image.lz4-dtb and going straight to blank screen -> power off. Makes it darn hard to investigate when you can't get a pstore.
Update: I just realized that lz4 binary changed so all I had to do was change -lz16 to -lz9
Update 2: Nope still doesn't boot, I'm outta ideas.
Click to expand...
Click to collapse
Is that for 10j? From the H918 source, the Kconfig and Makefile for the DTB image were broken. It would automatically remove the lines from defconfig anytime you did a menuconfig. I'm sure you already picked up on that though
Other than that, I have nothing to offer... I am no expert like yourself
kelvin216 said:
Hey @Tilde88 seems the dreaded no sound on call after switching from wifi calling to data call is active again
Click to expand...
Click to collapse
I'm still on 10d with my 5.5 rom+kernel. Going to make a v6 test rom+kernel and try it out live tomorrow.
I used 5.5 with VoLTE and WiFi calling in the last few days... But I have gotten no issues, even though I'm actually trying to get them to occur.
I was actually in a building for some time with 0.0% radio signal. So I hopped on wifi, and made my calls to the office that way.
When I left the building, WiFi disconnected due to range, 4G came up and I called my office, no issue at all.
When you say "again", do you mean it is occurring again as it once did, or as it recently has? (On what kernel are you having this issue - NSS 5.5 for H918 is fully stable). Other than a few people having high CPU usage (which I also can't replicate), there are no issues on the 5.5 kernel. I suspect the CPU usage thing to be due to me enabling C-States blindly in defconfig; but that has nothing to do with what we are on about.
Thanks for the info.
10j
Hey @Tilde88 it happen it on your new 10j kernal while i was testing didnt have any high Cpu or overheating issue with kernal, just on calls when switching from wifi calling to data, calls can be made and receive but no one can hear me unless i reboot phone and then everything is fine till the switch again from wifi calling and data and vice versa, glad i can help, will get a log when it happens again but the kernal is great for my needs on a 10j base rom
So no ones working on h918 kernel for 10j?
lightninbug said:
So no ones working on h918 kernel for 10j?
Click to expand...
Click to collapse
It's fine the way it is imo. Just get root and tare apart the bloats
Sent from my zeroltetmo using XDA Labs
twidledee said:
It's fine the way it is imo. Just get root and tare apart the bloats
Click to expand...
Click to collapse
That comes NO WHERE close to comparing to tweaks at a kernel level.
Tilde88 said:
Is that for 10j? From the H918 source, the Kconfig and Makefile for the DTB image were broken. It would automatically remove the lines from defconfig anytime you did a menuconfig. I'm sure you already picked up on that though
Other than that, I have nothing to offer... I am no expert like yourself
Click to expand...
Click to collapse
what tools do you guys recommend? Im was going to do some things with my own in regards to ovrclocking and anything else the tools i found on the app store.
I've already downloaded tje files and im going to work it. So if you wouldn't mind suggesting some tools I can go from there. I did some scripting and coding a ling time ago and couriered for several eu topsides in the well. I dual booted NT pro server and Red Hat early a 90s. I cam put together a Lan and maintain the integrity of the network locally or remotely. When ICQ was just a bunch of rooms where allot of hoxor groups tested each others skills. I was good enough track a dos attacker through telnet and a few other scripts that I and And another put together just for such occasion- through 6 proxies...
then i became a truck driver. Got married and had kids.
Kids all grown now... I want to play with some old toys.
twidledee said:
what tools do you guys recommend? Im was going to do some things with my own in regards to ovrclocking and anything else the tools i found on the app store.
I've already downloaded tje files and im going to work it. So if you wouldn't mind suggesting some tools I can go from there. I did some scripting and coding a ling time ago and couriered for several eu topsides in the well. I dual booted NT pro server and Red Hat early a 90s. I cam put together a Lan and maintain the integrity of the network locally or remotely. When ICQ was just a bunch of rooms where allot of hoxor groups tested each others skills. I was good enough track a dos attacker through telnet and a few other scripts that I and And another put together just for such occasion- through 6 proxies...
then i became a truck driver. Got married and had kids.
Kids all grown now... I want to play with some old toys.
Click to expand...
Click to collapse
The only tool you will need on top of this source, is a cross compiler.
There are a few to choose from, but mainly, you might want to use Linaro.
This is the version I use gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.
Once you have that, set it's path within the 2 files build.sh and menuconfig.sh.
Next step is to do ./menuconfig , do your changes, then do ./build.sh h918
To add features, you have to add source files (.c and .h files, and reference them accordingly in their respective Makefile and Kconfig files.
Thanks to @jcadduono for the realest build scripts. build.sh and menuconfig.sh are epic.
Tilde88 said:
The only tool you will need on top of this source, is a cross compiler.
There are a few to choose from, but mainly, you might want to use Linaro.
This is the version I use gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnu.
Once you have that, set it's path within the 2 files build.sh and menuconfig.sh.
Next step is to do ./menuconfig , do your changes, then do ./build.sh h918
To add features, you have to add source files (.c and .h files, and reference them accordingly in their respective Makefile and Kconfig files.
Thanks to @jcadduono for the realest build scripts. build.sh and menuconfig.sh are epic.
Click to expand...
Click to collapse
Hi.
The boot file you linked. I decompressed it and itt produced many double copies. I assume that I have originals + a copy (1) some are identical in size others not so.... What do I do?
twidledee said:
Hi.
The boot file you linked. I decompressed it and itt produced many double copies. I assume that I have originals + a copy (1) some are identical in size others not so.... What do I do?
Click to expand...
Click to collapse
None of the words you just said make sense.
What are you trying to do, and with what.
Be precise.
If what you did was get the boot.img file and decompressed it, you exposed the RAMdisk. This will not help you in any way. This is also not the way in which you create a kernel. boot.img contains the kernel (zImage).
?
Tilde88 said:
None of the words you just said make sense.
What are you trying to do, and with what.
Be precise.
If what you did was get the boot.img file and decompressed it, you exposed the RAMdisk. This will not help you in any way. This is also not the way in which you create a kernel. boot.img contains the kernel (zImage).
?
Click to expand...
Click to collapse
It's my first time. I wanted to see what the package consisted of outside of the tar.zip so I unpacked it. As it was unpacking it was periodically halting due to an existing file already there. So I wasn't sure what to do so I let it rename. I wanted to see what the duplicate file was.
I'm not at the desk at the moment but when i looked at replicas the few I read were Readme and Linux guides.
As far as I can tell they weren't crucial files. I was just curious what made that happen since I haven't seen that with other packages. Then again I haven't embarked on this sort of project before either.
I hope that makes some sense.
Sent from my zeroltetmo using XDA Labs
Bump
twidledee said:
Bump
Click to expand...
Click to collapse
You are doing it wrong.
twidledee said:
It's my first time. I wanted to see what the package consisted of outside of the tar.zip so I unpacked it. As it was unpacking it was periodically halting due to an existing file already there. So I wasn't sure what to do so I let it rename. I wanted to see what the duplicate file was.
I'm not at the desk at the moment but when i looked at replicas the few I read were Readme and Linux guides.
As far as I can tell they weren't crucial files. I was just curious what made that happen since I haven't seen that with other packages. Then again I haven't embarked on this sort of project before either.
I hope that makes some sense.
Sent from my zeroltetmo using XDA Labs
Click to expand...
Click to collapse
Did you ever figure it out?
Not sure which you are using, the source, or the compiled boot.img.
If you want to make a custom kernel, I am more than happy to help. When extracting the source, or anything really, you will not get those errors, unless you already have files/folders that match identically to the structure in which you are extracting to... That would mean that you can have the same folder twice within a compressed file, which, you can't.
So, take the tarball, extract it (I just did it myself right now, there are no duplicates --because impossible), modify menuconfig.sh and build.sh to point them to your cross compiler (i recommend Linaro 6.1.1 for aarch64).
Now, within the source, you WILL find multiple files that are named the same, but they are in different locations, and contain different lines of code (almost usually). But these are NOT to be de-duped. Extract and use as-is.
Once you have set your toolchain in the 2 .sh files that jcadduono has made (and are awesome as can be), open up a terminal (i really hope you are on a Linux environment by this point, because if not, none of the steps in this paragraph will work ). Do not use root, just plain old userspace. Once in the terminal, cd to your source directory.
Type ./menuconfig.sh and hit enter.
Make your edits, save the file, and confirm you want to save.
Now you are back in your terminal session.
Type ./build.sh h918
Wait or watch as it compiles.
When it finishes, you will need 2 things. The kernel (found in your /sourcefolder/build/arch/arm64/boot directory), and the modules (found in your /sourcefolder/build/lib/modules/yourkernelname/kernel. This directory will be wiped the next time you do menuconfig or build, so get your files now. There will be like 20ish or so modules, and they have the .ko extension. Search the folder, and copy all these modules to a new folder, along with your zImage (file called Image.lz4-dtb).
You can either flash the zImage , or pack it into a boot.img with an existing RAMdisk, and flash the boot.img.
Also, all the modules you just compiled, need to go in your ROM. So when you make the flashable zip, make it delete /system/lib/modules, and then extract the new /modules dir into /system/lib.
Congrats, you just compiled your first custom kernel.
Hello
I thank you and @jcadduono for doing this.
Though I myself am not a developer, I will be getting this phone soon and I appreciate the activity on XDA that could potentially make it more fun to own this LG device.
I do know some basic Linux stuff, and I have compiled a few kernels with success so maybe I'll look into it someday, but hopefully there will be many veteran Linux hackers doing it instead the results would be better I think.
Btw, I looked on lg opensource site and found this: "LGH918_Android_Nougat_v10n.zip" I have not seen it mentioned anywhere in the forums yet, it must be very new.
askermk2000 said:
Btw, I looked on lg opensource site and found this: "LGH918_Android_Nougat_v10n.zip" I have not seen it mentioned anywhere in the forums yet, it must be very new.
Click to expand...
Click to collapse
https://forum.xda-developers.com/v20/how-to/h918-10k-kernel-source-potential-10n-t3631920
Plus @Mentalmuso has released a kernel using the 10N source.

[MODS DELETE THIS THREAD] exNoShadez-eas

Mod edit: Thread closed on owner's request.
exNoShadez-EAS Kernel
Hey Pixel XL forum. I'm a Pixel/Sailfish owner, who also enjoys hacking on kernel code. I recently released a Kernel in the Google Pixel forum => but we are all using the same kernel, sooo.... I thought after pushing my second stable release, that I should probably post on the XL forum too.
My kernel is a bit different than most kernels available, you will quickly notice. Lots of interesting features and some unique ones too.
FEATURES
- Current LTS release -> Linux-3.18.114
- Energy Aware Scheduling
- Schedutil (default Cpu Governor)
- RCU infrastructure backport (with expert mode enabled)
- Cpu-Boost / Input Boosting (enabled by default)
- BINFMT_MISC support (NOT mounted on boot).
- Kernel Hardening/Protection (CopperheadOS/Grsec/Pax Marlin kernel hardening features)
- leds-qpnp: Notification LED control - V1.1c (Boeffla) - Adapted for Marlin
- Binder_rt = My own re-implementation of AOSP Binder that uses rt_mutexes; supporting priority inheritance
- Improved scheduling/determinism for high priority threads/tasks
- Backported Scheduling, Locking and Workqueue subsystem code from Newer Linux kernels.
- Audio Driver enhancements / backports (from Wahoo/Pixel 2)
- Sound/Audio driver Tweaks (bug fixes, scheduling improvements)
- forced Interrupt threading enabled
- Wifi Mac Address Randomization
- WireGuard (VPN) kernel module support
- KCal Advanced Colour control
- Improved ASLR (in kernel)
- USB Fast Charge
- Wake Gestures
- GCC 6/7+ Fixes
- Built with GCC-8.x-dev
- and more
Contains code from everywhere: Code Aurora, Flar2/Marlin, CopperheadOS, AOSP, Project-EAS, Freak7/Kirisakura, Linaro, Pixel 2 kernel sources, mainline linux and elsewhere. Modifications and backports by me, as well.
BACKGROUND
I wanted a kernel for My Pixel that had 'all of the things', it didn't exist... So I'm working on my own kernel. I try to balance Security/hardening, experimental features with high Performance and battery life. <- not an easy task! ... Some of the security features do come with overhead, but if you use apps that are CPU heavy / processing and/or require low latency - they will perform well (at the cost of chewing some battery life, of course).... Battery life and SOT are very reasonable though.
WARNING / VERY IMPORTANT: This kernel isn't compatible with installing TWRP ~> meaning; you must use the fastboot version of TWRP (used in RAM) , flash the kernel and NOT install TWRP to your system (the kernel is too big for TWRP to co-exist).... This may sound inconvenient, but there are a number of valid reasons to avoid reducing a kernel's size in order to support TWRP installation, in the boot partition.
***Fun facts on not supporting TWRP below => 2nd post: PLEASE READ: to understand my motivation***
TWRP REMOVAL
*To remove TWRP from your system; You need the stock boot.img from your running/current firmware (which is inside of the factory image zips) or use the Nov Stock boot.img provided here. Then it's as simple as flashing the boot.img to wipe TWRP;
fastboot flash boot_a /path/to/boot.img
fastboot flash boot_b /path/to/boot.img
Stock 8.1 July 2018 Boot.img => https://github.com/nine7nine/Apps/raw/master/MarlinStockJulyBoot.img
Now you can proceed with using the TWRP fastboot boot.img to flash my kernel, magisk/supersu or whatever else....
Fastboot twrp boot image => https://dl.twrp.me/marlin/twrp-3.2.2-0-marlin.img
WARNING: This shouldn't need to be said, but we did have someone on the Pixel forum who did this, so I'm adding a sticky/warning here; do NOT EVER re-lock your bootloader after flashing any kind of custom software, kernels, etc to your device - *it will brick your phone*. Meaning you are screwed would need an RMA / replacement device ... everyone in the XDA community should know better, but still; worth mentioning....
IMPORTANT:
Before asking questions; Please read through the thread (starting with the last few pages) - I shouldn't need to be repeatedly answering the same questions over and over again. It's good practice to get into the habit of reading through threads before asking questions in any thread on XDA, as more often then not; you're question has probably been answered. Thanks!
EXNS-EAS KERNEL DOWNLOAD:
JULY 2018 OREO 8.1 RELEASE exNoShades-eas Kernel Flashable zip
https://github.com/nine7nine/Apps/raw/master/exNoShadez_eas_v2.8.2_f94351f.zip
It is stable, high performance and very responsive...
Important: You will need root; I don't support non-rooted devices && some features require it. I recommend using Magisk; https://forum.xda-developers.com/apps/magisk/beta-magisk-v13-0-0980cb6-t3618589 ...
NOTE: Make sure to flash the latest Magisk beta *before* flashing the kernel zip ...
More Background / Important Notes:
Binder_RT:
My own port and re-implementation of the Binder Kernel Driver; a slightly modified version of The AOSP binder.
Binder_RT uses rt_mutexes as oppsed to mutexes for locking in Binder, ion, ashmem, etc... rt_mutexes support priority inheritance and should improve determinism in Binder, speed up IPC, Ion and Ashmem => Allowing applications that require low-latency, tight deadlines, low jitter and deterministic behaviour to perform better ~ This re-implementation is proving to be the great for those types of applications. The goal here is to help ensure that the Kernel and Binder's high priority && time critical threads and tasks are properly prioritized... Example; audio buffers arriving on time / no buffer underruns... *Further development work is planned to research, experiment with and improve Binder_RT.
rt_mutex documentation, for those interested;
https://github.com/nine7nine/Marlin_exns-eas/blob/EXNS_EAS/Documentation/locking/rt-mutex.txt
https://github.com/nine7nine/Marlin_exns-eas/blob/EXNS_EAS/Documentation/locking/rt-mutex-design.txt
CPU-Boost / Input Boosting:
Touch inputs boost CPU frequencies (thus improves performance and responsiveness).
# Cpu-boot / Input boost settings
write /sys/module/cpu_boost/parameters/input_boost_enabled 1
write /sys/module/cpu_boost/parameters/input_boost_freq "0:1363200 1:0 2:1900800 3:0"
write /sys/module/cpu_boost/parameters/input_boost_ms 100
IO/ CPU Governors:
This kernel doesn't include a thousand io/cpu governors. IO-wise; CFQ is the default, but we've got a few in there. chose your poison, but know that the majority of my testing is centered around cfq and deadline. CPU Governor-wise the common Linux CPU governors are there; along with Sched and Schedutil....
Stick with Schedutil - on idle, it draws very little power and in most 'peak performance situations, it should do very well..... I'm getting great battery life, sot and performance.
Managing Kernel Settings:
Get EX Kernel Manager - my original code on github was forked from EX kernel, before rebasing it - but EXKM will give you access to 99% of my kernel's settings.
My 8.1 Kernel Sources: https://github.com/nine7nine/Marlin_exns-eas
Donations via PayPal very much appreciated. I do put a significant amount of energy and time into researching, development, testing / QA and also providing support/help to end-users... It's definitely not mandatory to donate; but If you appreciate the effort, see value or benefits from using my kernel on your device and can afford to; Use the "Donate to me" button or the below link... It makes a big difference. thanks!
https://www.paypal.me/jrdnjhnstn
Why TWRP Installations are NOT supported:
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
(and why I'm not using it!)
Most custom/android kernel devs are using the above configuration in kernel compilation, which is arguably very BAD... I understand that boot partitions are small and the desire to install TWRP to them, thus there is a need to reduce the kernel's size....and yes, this will achieve that - However;
1. SUSE, RedHat, etc (Enterprise linux) disable CONFIG_CC_OPTIMIZE_FOR_SIZE -> it's original use case has proven to be invalid. Even Google (in their own documentation) advise against using this; https://source.android.com/devices/tech/perf/boot-times ....
2. It suppresses useful compiler warnings....
3. As SOCs have become more powerful, google has come to the same conclusion that Enterprise Linux did back in 2012.
4. by turning off CONFIG_CC_OPTIMIZE_FOR_SIZE, we achieve better performance, boot time and better cache utilization.
Clark Williams / Redhat Bugzilla said:
* Cause: CONFIG_CC_OPTIMIZE_FOR_SIZE set with assumption that smaller code would yield hot cache lines and good performance
* Consequence: this config caused gcc to generate jump-to-jump code which causes cache line bouncing, hurting performance
* Fix: turn off CONFIG_CC_OPTIMIZE_FOR_SIZE
* Result:slightly larger kernel but better cache utilization
Click to expand...
Click to collapse
(The Above is quoted from Clark Williams, A Senior Software Architect @ RedHat -> https://bugzilla.redhat.com/show_bug.cgi?id=796297)
I know of no other way to significantly reduce kernel size. Disabling some debugging, unneeded features, etc helps - but not enough.... I am focusing on optimization, using newer builds of GCC/Linaro, performance enhancements, fixing compilation errors, etc, etc -> these things are more important than trying to support TWRP installation.
Therefore; I do NOT support installing TWRP....
This sounds incredible. All those features.. and then some. Hard for me to test as I rarely use my PC but I may have to go and give this a try.
Edit: would it be possible to create a build for those who do want to use TWRP? Would be great to do some benchmarks (real work using DiscoMark and synthetic using geekbench/AnTuTu/etc) to see differences between the two.
All those features are welcome in this poor Oreo pixel community! thanks for your work..
i'll try it as soon as possible!
spr33 said:
This sounds incredible. All those features.. and then some. Hard for me to test as I rarely use my PC but I may have to go and give this a try.
Edit: would it be possible to create a build for those who do want to use TWRP? Would be great to do some benchmarks (real work using DiscoMark and synthetic using geekbench/AnTuTu/etc) to see differences between the two.
Click to expand...
Click to collapse
No. like I said. I don't/won't support installing twrp. it would require reverting a bunch of patches/ work that I've already put in... and also not using linaro GCC 7.2.1 compiler, either...
the time invested would be a complete waste for me and I would have maintain another separate branch. test another build, etc, etc'... i'm not doing it. my current goal is to reduce my branches into one single branch/build;. ... which will end up hopefully being binder_rt... not create more.
feature wise, pretty much a 'best of' what any other custom kernel offers for Marlin, all of the hardening stuff (I think I'm the only Marlin kernel on XDA with that), etc... afaict, I'm the only one rolling in EASv1.4, cpu-boost, dynamic stune boost; all of which I've ported myself... some of the audio driver stuff I personally ported (more coming) and binder_rt is my baby; I ported aosp binder and researched / Inplemented all of the changes to Binder...
in my yet-to-be-released binder builds I also have backported a large chunk of the linux locking, workqueues and scheduling code and some other bits from newer mainline linux kernels (which allow me to pull in some new features and use them).
so I'd rather work on this kind of stuff, over caring about twrp, doubling my workload to support running synthetic benchmarks between gcc's -Os vs. -O2 optimization levels...
Thanks for the new kernel. Sounds very interesting. Can't try it atm because i am on dp1 from 8.1. Hope you gonna also support 8.1 when official sources are out. For me battery life is already great on dp1.
housepabldroid said:
All those features are welcome in this poor Oreo pixel community! thanks for your work..
i'll try it as soon as possible!
Click to expand...
Click to collapse
haha. pixel community isn't too bad. there's just not a lot of custom oreo ROMs.... myself, I wouldn't want to run any of those custom roms anyway. they usually are built without odexing or proper signiture key signing = less secure and way less optimized... Stock ROM is great, just needs root and a few apps to modify / customize it a bit.
for me, the kernel has always been the issue. lol... therefore, roll my own. lol....
ya, for sure give it a try... I honestly would say binder_rt is the best build... the 'stable build' is a bit of a misnomer - all of the builds are stable, just the binder ones are running more experimental code... binder_rt blows the socks off any other Marlin kernel for certain kinds of workloads... I'm aiming fir it to become my default build...
Donric13 said:
Thanks for the new kernel. Sounds very interesting. Can't try it atm because i am on dp1 from 8.1. Hope you gonna also support 8.1 when official sources are out. For me battery life is already great on dp1.
Click to expand...
Click to collapse
yup. I have to wait until kernel sources are released. you got it!. but when they are / 8.1 is released; I will be upgrading to 8.1, so no worries - there will be an 8.1 version...
I've heard heard that battery life is pretty good on 8.1, there's a thread in the pixel forum about it... but by what they were saying, it didn't seem that much better than what I see from my kernel.....
I'm more interested to see what performance improvements are in 8.1 kernel sources... I've found stock kernel to be a bit crappy for some stuff...
well, if at some point you are bored and want to test my kernel on 8.1, go for it. ya never know: maybe it will work. the reason I say that?
IIRC - it was tested with my old kernel / sources build... could've been a bug, not present in the new one.... or something else. IdK.. being as I'm on 8.0 I can't even look into why that might be or have been...
just make sure if u do ever try it, keep the stock boot.IMG for 8.1 around, in case it doesn't work..... and report back, if it does work. lol
Gotta say super smooth. Thanks for sharing. Maybe it's just a glitch in ex kernel manager but zram "stopping..." Or nothing to worry about.
JS.zip said:
Gotta say super smooth. Thanks for sharing. Maybe it's just a glitch in ex kernel manager but zram "stopping..." Or nothing to worry about.
Click to expand...
Click to collapse
Ah yes, I should've mentioned that ~ zram is working fine - but EXKM is being denied permission to read those files on the file system - I think it's due to a change in cgroups code (from merging in EASv1.4), but I haven't gotten to the bottom of it yet....
No worries though ~ I HAVE completely verified that zram is working, mounted swapon and behaving as it should... Honestly, the defaults for zram are fine ~ if they ever weren't; you would have bigger problems on your hands, that changing swapping wouldn't help. lol
Which build are you using? (just curious)
nine7nine said:
Ah yes, I should've mentioned that ~ zram is working fine - but EXKM is being denied permission to read those files on the file system - I think it's due to a change in cgroups code (from merging in EASv1.4), but I haven't gotten to the bottom of it yet....
No worries though ~ I HAVE completely verified that zram is working, mounted swapon and behaving as it should... Honestly, the defaults for zram are fine ~ if they ever weren't; you would have bigger problems on your hands, that changing swapping wouldn't help. lol
Which build are you using? (just curious)
Click to expand...
Click to collapse
Thanks that's what I thought. The bad boy "Binder RT" lol
JS.zip said:
Thanks that's what I thought. The bad boy "Binder RT" lol
Click to expand...
Click to collapse
bad boy eh? haha.
Ya, no worries - I check that sort of stuff, when it crops in... fixing that particular issue just hasn't been a huge priority, over other stuff that I'm working on. (and because I think it's pointless that EXKM even displays it to begin with - it just gives users the false impression that they are tweaking something, that in 99.99999% of cases - is absolutely pointless to touch).
Anyhoo, cool - let me know how things are working out with the binder_rt build, as you get some more use in ~ I really want it to become my main focus / implementation. (I personally won't be going back to using any other build day to day, anyway.)
nine7nine said:
bad boy eh? haha.
Ya, no worries - I check that sort of stuff, when it crops in... fixing that particular issue just hasn't been a huge priority, over other stuff that I'm working on. (and because I think it's pointless that EXKM even displays it to begin with - it just gives users the false impression that they are tweaking something, that in 99.99999% of cases - is absolutely pointless to touch).
Anyhoo, cool - let me know how things are working out with the binder_rt build, as you get some more use in ~ I really want it to become my main focus / implementation. (I personally won't be going back to using any other build day to day, anyway.)
Click to expand...
Click to collapse
I just wanted to point out that I grabbed your stock kernel from the OP and had planned to use that to flash my stock image. However, I happened to have the latest boot.img release decompressed on my drive so I compared it to the one I had on hand.
MD5 for your Stock Image: 7A2D92981FDE96E5D60D806019ACFA0C
MD5 for Google's Stock Image: BF9EDA2888C8C6A1FCD0A7DB6E37F739 (Latest November build)
Now I don't want to sound like the suspicious type, because in reality the stock kernel you provided is just to get TWRP off the device before flashing your kernel, but I'm forced to ask why your stock image is not identical with the main stock image? Unless your stock kernel isn't from the latest release but instead from a prior month or something of that nature (It would take me quite awhile to download the other month's releases just to check so I was hoping to ask you instead)
AlkaliV2 said:
I just wanted to point out that I grabbed your stock kernel from the OP and had planned to use that to flash my stock image. However, I happened to have the latest boot.img release decompressed on my drive so I compared it to the one I had on hand.
MD5 for your Stock Image: 7A2D92981FDE96E5D60D806019ACFA0C
MD5 for Google's Stock Image: BF9EDA2888C8C6A1FCD0A7DB6E37F739 (Latest November build)
Now I don't want to sound like the suspicious type, because in reality the stock kernel you provided is just to get TWRP off the device before flashing your kernel, but I'm forced to ask why your stock image is not identical with the main stock image? Unless your stock kernel isn't from the latest release but instead from a prior month or something of that nature (It would take me quite awhile to download the other month's releases just to check so I was hoping to ask you instead)
Click to expand...
Click to collapse
Easy explanation - I'm on Sailfish, you aren't; so the md5 wouldn't match...
I can do one of two things; you can post a upload/link to your boot.img and I will replace the link for Marlin's nov boot.img (adding it to my github) OR I will remove the link from the post and Marlin users will have to fend for themselves. (have to download 1.8GB firmware themselves for a boot.img... Obviously i'm NOT downloading your guys Nov Firmware images).
nothing suspicious at all here, dude.
EDIT: I've removed the link to the sailfish Nov boot.img, as a sign of good faith; I can replace it with the Marlin Nov boot.img - but that will require you to post a download/link to me, so I can add it in. thx
nine7nine said:
Easy explanation - I'm on Sailfish, you aren't; so the md5 wouldn't match...
I can do one of two things; you can post a upload/link to your boot.img and I will replace the link for Marlin's nov boot.img (adding it to my github) OR I will remove the link from the post and Marlin users will have to fend for themselves. (have to download 1.8GB firmware themselves for a boot.img... Obviously i'm NOT downloading your guys Nov Firmware images).
nothing suspicious at all here, dude.
EDIT: I've removed the link to the sailfish Nov boot.img, as a sign of good faith; I can replace it with the Marlin Nov boot.img - but that will require you to post a downlink to me, so I can add it in. thx
Click to expand...
Click to collapse
No problem, I download every Marlin release so I'll just update my AFH folder to include the monthly kernel release and users can download it from there. You can either link to my folder or download from it to add to your repository; either one is fine with me Thanks, and I do appreciate what you're doing but I have a 'verify first' stance since these devices are a big part of people's lives. I'm going to give your kernel a spin now, I appreciate you getting back to me so quickly. If only AFH was this fast, I just spent 25 minutes trying to get it to create an empty folder...
Link to Marlin Stock Images: https://www.androidfilehost.com/?w=files&flid=231142
Edit: I attempted to flash the "exNoShadez_eas-3.18.83_Binder_b0b66e0.zip" from the fastboot installed version of TWRP after flashing the stock boot to slot_a and slot_b, but it is failing with an error that states, "New image larger than boot partition. Aborting..." Then updater process Error 1. Any idea what would cause that?
AlkaliV2 said:
Edit: I attempted to flash the "exNoShadez_eas-3.18.83_Binder_b0b66e0.zip" from the fastboot installed version of TWRP after flashing the stock boot to slot_a and slot_b, but it is failing with an error that states, "New image larger than boot partition. Aborting..." Then updater process Error 1. Any idea what would cause that?
Click to expand...
Click to collapse
Hey, I added your nov boot.img to the OP. put it on github to save a few clicks for people.
The error you are seeing would suggest that TWRP is installed to the system. That is the only time anyone has ever bumped into that message. So, I'm not sure what's going on with your end but it would seem you have twrp actually installed...?!
the TWRP that you are supposed to use, is this one;
https://dl.twrp.me/marlin/twrp-3.1.1-1-fastboot-marlin.img
that loads and runs from RAM. twrp can't be "installed from fastboot" ~ it installs to the boot partition; leaving not enough room for the kernel.
nine7nine said:
Hey, I added your nov boot.img to the OP. put it on github to save a few clicks for people.
The error you are seeing would suggest that TWRP is installed to the system. That is the only time anyone has ever bumped into that message. So, I'm not sure what's going on with your end but it would seem you have twrp actually installed...?!
the TWRP that you are supposed to use, is this one;
https://dl.twrp.me/marlin/twrp-3.1.1-1-fastboot-marlin.img
that loads and runs from RAM. twrp can't be "installed from fastboot" ~ it installs to the boot partition; leaving not enough room for the kernel.
Click to expand...
Click to collapse
Yeah, that actually explains it. I was using a kernel with TWRP installed last go round and now it seems just flashing the factory boot.img is not getting rid of the installed TWRP. I'll figure out how to get TWRP removed for good this time; thank you for letting me know where to look.
AlkaliV2 said:
Yeah, that actually explains it. I was using a kernel with TWRP installed last go round and now it seems just flashing the factory boot.img is not getting rid of the installed TWRP. I'll figure out how to get TWRP removed for good this time; thank you for letting me know where to look.
Click to expand...
Click to collapse
Yup. TWRP can't be installed along side. Running it from RAM has to be used. ie: I don't support TWRP installations. lol
Flashing the factory boot.img DOES get rid of TWRP for good ~ you just have to make sure to use the TWRP fastboot boot.img for flashing my kernel after (since fastboot/twrp doesn't install to the boot partition)...
I've added a link to the OP to Marlin's twrp fastboot boot.img....
I also updated all of the download links and double-checked to make sure that all of the Marlin zips are packed properly with AnyKernel2 + relabelling every file on my github (by re-packing all of them all... This is mostly just paranoia on my part - but now that I'm supporting 2 devices, best to make sure that nothing gets tangled together.)
@everyone
just a few notes, since you guys are just getting exposure to my kernel, the way I do things; in regards to development, etc.
-> I post test builds (this usually happens when I make big changes.). reports are helpful on these builds.
-> Development happens fast; *I routinely add new features, bug fixes, etc and i'm almost always ahead on LTS updates over the Stock kernel.
examples;
=> lts -3.18.83 build available on the day of release
=> my Binder_rt branch is currently 140+ commits (code changes) ahead of the the other branches.
(changes since in the current downloads/releases)
=> There are a number of bug fixes, a few added features (mostly in-kernel stuff), some optimizations *and* there are massive upgrades to parts of the kernel's subsystems. (100+ commits are related to that)...
(changes since the current downloads/releases)
NOTE: The binder Branch (non-rt) will see the majority of the above changes code, but the Stable branch will only see a subset of these commits + bug fixes.
I probably won't roll out a test build for Binder_rt builds, until I've had the newest code running for a couple of days.... At that point, once things have proven to be stable good ~ i'll roll out a test build for anyone who wants to help out and dogfood test builds....
Then, I will push back changes back into the Binder builds, Stable, etc... I usually try and line up actual releases to LTS and/or => more importantly monthly android security / firmware updates....
**So the gist is; there will be frequent updates. Update as you see fit - anyone who wants to help out - run test builds and report back issues.
So pending a detail or two, I likely will be phasing out my other builds in favor of the Binder_rt build.
- I've had quite a lot of feedback via the Pixel forum, PMs and email (and a couple of friends using it too).
- The Binder_rt build seems to be very stable for everyone.... not too mention just all around better.
- there seem to be no drawbacks and quite a few benefits to that build over the others.
The one thing I'm waiting on is; I've joined the Android Kernel Developers Google Group and am currently waiting to see if I can't get some help with porting a missing Kernel function into Marlin's sources ~ this particular kernel function is what's stopping me from having Binder be sync'd with the AOSP binder implementation.... I'm hoping to resolve this sooner than later, at which point I will be able to merge in those commits (and test them).
In the meantime I'm working on a few backports to the audio driver and a few other bits (taken from Wahoo/Pixel 2 kernel sources). I've also pulled in a few fixes to binder from Wahoo, as well....
So I might post a test build for Binder_rt tomorrow - as it's accumulated a number of changes, bug fixes, etc.... I'm not sure If I will have any resolution to the missing kernel function - but that doesn't affect pushing a test build....

Categories

Resources