[KERNEL] [GPL] [4.3] FuguMod kernel (3.0.101) (open, stable, reliable and secure)

Search This thread

renaud

Inactive Recognized Developer
Aug 18, 2010
2,332
2,212
Braine-l'Alleud
FuguMod kernel is now available for the Galaxy Nexus.

It has been reported to work both on GSM and CDMA versions. But I can only test it on GSM version myself.

You can download them at:
http://fugumod.org/galaxy_nexus/

Source and changelog can be found here:
https://github.com/renaudallard/gnexus_kernel

IRC channel:
irc.freenode.net #fugumod

To install, just download the appropriate version for your ROM (4.0.x) and flash it with fastboot (RAW version: fastboot flash boot kernel-$VERSION.img) or flash it with CWM (CWM/zip version).
Please note that not all versions exist in CWM format.

4.0.2 version is based on official google initramfs + init.d support (is now in deprecated state, no future updates will be brought)
4.0.3 version is based on the initramfs of AOSP + init.d support. it is compatible with 4.0.4
4.0.4 version is based on the initramfs of AOSP + init.d support. it is compatible with 4.0.3
4.1.x version is based on the initramfs of AOSP + init.d support.
4.2.x version is based on the initramfs of stock kernel
4.3 version is based on the initramfs of stock kernel (use that one for CM, not reco)
4.3-reco version is based on the initramfs of stock kernel, even with install-recovery.sh enabled (so supersu can work, but if you don't have supersu, don't use it)

for experimental versions, do not flash if you are not ready for big troubles, they may not even boot, burn your phone and eat your cat.

Features:
- stackprotector
- various security enhancements
- RCU boost
- Automatic process grouping
- TUN (compiled in kernel)
- latest 3.0 linux kernel
- newer wifi driver
- gamma/color hack
- CM9 compatibility
- PaX (from r333)
- grsec (from r624)
- TouchWake from Ezekeel (from r778)

Versions
Kernels are based on the below version scheme
kernel_FuguMod_20120111_r20-4.0.3.img
20120111 is the date it has been packaged
r20 is the release number
4.0.3 is the ROM it is compatible with

Color offsets
In CM9, just use the built in function.
For other ROMs, the settings offsets are in
/sys/class/misc/samoled_color/
For example green_v1_offset
Just edit the three green red and blue color settings. Default value is 60.
It can be done on the console with a command like this: echo 55> /sys/class/misc/samoled_color/green_v1_offset

Stable vs Testing
There are sometimes kernels in testing folder. These may be very stable or may not boot at all. Be sure to have an USB cable and fastboot under the hand if you try one of these. That said, in general, if they stay into testing folder for more than 15 min, they should at least boot and work more or less. I tend to remove non booting kernels from testing folder in less than 10 min (depending a little bit on the speed testers take them), and so if you see them one hour later, you should assume they are safe enough to flash.
So, in general Stable is the safest bet, but Testing may be the best. I, myself, generally run testing one.

Deprecated folder
In general, unless you really know what you are doing, you should avoid flashing those, they are mainly there for historical reasons.

Radio drops and blueish/faded screens
Please ensure you are running the correct firmware for bootloader and baseband, like in the matrix in bottom of that page: http://source.android.com/source/building-devices.html
For those where problems persist after flashing recommended versions, try "echo 0 > /sys/kernel/debug/smartreflex/sr_core/autocomp"

OTG unmounting internal SD
Please see http://forum.xda-developers.com/showpost.php?p=24040652&postcount=174

Mirrors
bootloaders: http://fugumod.org/bootloaders-gn/
basebands: http://fugumod.org/modem/galaxy_nexus/

Check for vulnerabilities
http://www.xray.io

Compatibility with hackish style apps
All apps which require direct memory write, access to symbols or memory offsets or modules will NOT work. And, no, don't ask they won't be supported in the future.

Security
If you want good security when your phone is stolen, in addition to encryption, don't forget to turn debugging off. Also, use enpasschanger to change your encryption password, any short PIN encryption can be cracked in a few minutes easily (for example, using my script at http://pastebin.com/Mdu06RZN)

Redistribution
As per GPL, you are authorized to redistribute this kernel with any of your custom ROMs provided you give out the source code like I do. You can link to my github in your distribution site.
However, if you modify the kernel yourself, whatever the modification is (compiling it yourself with a different compiler is a modification), you are not authorized to name it FuguMod, although you can credit me and tell the base comes from FuguMod but you cannot call the kernel itself FuguMod.

Touchwake
to enable it "echo 1 > /sys/devices/virtual/misc/touchwake/enabled"
to make it always on: "echo 1 > /sys/devices/virtual/misc/touchwake/always"
Beware, touchwake is known to sometimes produce screen locks

PGM
See "Compatibility with hackish style apps". Use touchwake instead.

Lost root
Use supersu instead of superuser from chainsDD (superuser from koush seems to work fine too). Change the setting in SuperSU to ignore CM root setting if you are running CM.

Updater app
https://play.google.com/store/apps/details?id=my.zin.rashidi.android.fugumod

root on 4.3
Currently only reco version has support for root access with supersu. Keep in mind that su access is now (as of 4.3) provided by a daemon, which may drain your battery or worse. Please think about your uses for root to see what is better fit for you.
 
Last edited:

Nitroz

Senior Member
Jan 13, 2011
1,793
1,845
Wakefield
nitroz.org
Finally! A kernel we can rely on :) Thanks alot mate, looking forward to further developments on this. I remember FuguMod fondly on the SGSII
 

j.go

Senior Member
Nov 18, 2010
351
51
I'm not entirely sure how accurate setcpu is at reading frequencies, but it seems to be stuck at 700mhz after a reboot. Moving the sliders a bit allows the cpu to use the entire range of 350-1200mhz as intended. I'm on AOKP milestone 2 if it matters and using r26.
 

beekay201

Senior Member
Nov 8, 2010
5,225
1,221
Haven't yet tried this, but maybe min frequency when booting is set to 700mhz?
when you open setcpu, is the min slider at 350mhz?
What governor are you using? Not sure it matters though, but it might so.
 
Last edited:

j.go

Senior Member
Nov 18, 2010
351
51
Yes, min and max are set at 350/1200 on the sliders, but the green text says it's at 700/1200. Governor is the default interactive. Right now, I'm only using setcpu as a tool to view my frequencies as everything is "under observation" as I've only had this phone for a week. I did a reboot last night before going to bed. When I woke up 6 hours later, batt was down to 92%. Which is a quite fast considering I only had 5 hours of sleep. That's when I noticed that frequency was pegged at 700mhz the whole time. I tried opening other apps that should ramp up the speed, but as far as I can tell, it was still at 700.

Now, as I said, I'm only using setcpu to check my frequencies so "set at boot" isn't applied. When I apply "set at boot," min/max is at 350/1200 after a reboot and CPU scales up and down properly. So does this mean the default setting of the kernel is 700/1200? The thing is, even with max at 1200. I can't seem to make it scale up to 1200.

EDIT:
maybe try using cpuspy to read the usage. Also, there may be something in your init.rd limiting the frequencies

Sent from a Nexus
I don't seem to have an init.rd file anywhere. I did a search using root explorer.

Edit 2:
CPUSpy says I'm only using 700 and DeepSleep even after running Asphalt 6. This is after a reboot without setting anything at boot with setcpu.
 
Last edited:
  • Like
Reactions: renaud

renaud

Inactive Recognized Developer
Aug 18, 2010
2,332
2,212
Braine-l'Alleud
Yes, min and max are set at 350/1200 on the sliders, but the green text says it's at 700/1200. Governor is the default interactive. Right now, I'm only using setcpu as a tool to view my frequencies as everything is "under observation" as I've only had this phone for a week. I did a reboot last night before going to bed. When I woke up 6 hours later, batt was down to 92%. Which is a quite fast considering I only had 5 hours of sleep. That's when I noticed that frequency was pegged at 700mhz the whole time. I tried opening other apps that should ramp up the speed, but as far as I can tell, it was still at 700.

Now, as I said, I'm only using setcpu to check my frequencies so "set at boot" isn't applied. When I apply "set at boot," min/max is at 350/1200 after a reboot and CPU scales up and down properly. So does this mean the default setting of the kernel is 700/1200? The thing is, even with max at 1200. I can't seem to make it scale up to 1200.

EDIT:
I don't seem to have an init.rd file anywhere. I did a search using root explorer.

Edit 2:
CPUSpy says I'm only using 700 and DeepSleep even after running Asphalt 6. This is after a reboot without setting anything at boot with setcpu.

OK, 4.0.3 init.rc I have been given is the one from Francisco Franco and it limits the minimum frequency to 700mhz. This will be solved in next build, in a few minutes. Although you should be able to go over 700Mhz
 

j.go

Senior Member
Nov 18, 2010
351
51
OK, 4.0.3 init.rc I have been given is the one from Francisco Franco and it limits the minimum frequency to 700mhz. This will be solved in next build, in a few minutes. Although you should be able to go over 700Mhz
Ah, well that's good to hear. Maybe the conditions needed to raise the frequency are not being met. Not that I know anything about kernels...
 

renaud

Inactive Recognized Developer
Aug 18, 2010
2,332
2,212
Braine-l'Alleud
I think I will be upgrading my phone to 4.0.3. This would mean I would not support 4.0.2 as I would not be able to test it properly. Are there users here who need the 4.0.2 version?
 
  • Like
Reactions: zurchpet

beekay201

Senior Member
Nov 8, 2010
5,225
1,221
aosp kang built today, flashed R43 just now. booted fine first try, wifi/bluetooth are fine, data call as well, rebooted, set scheduler/gov to deadline/ondemand, min/max freq to 1.2ghz, score on antutu maxing out around 5200, 5300. with my modified stock, i hit 6200+ in those conditions.
switch back to cfq/interactive, sd write speed goes up a bit to 10.4mb/s (deadline was just under 9.4mb/s), cpu integer 1304, float 1099, pushes score up a bit but still not reaching 5400 (this is with all tests selected, 2d/3d, database..). tweaked lowmemorykiller, antutu score jumps to 5600+.
but benchmarks mean almost nothing, i know. overall it's pretty smooth, fast on bootup, ocasional "lag" here and there (but that may be Mr. Android's fault).

will report more as the kernel settles in.

thanks nikademus. :D

edit: just re-installed gta. it seems i have no in-game sounds at all? it's fine until it gets to the main menu though. anybody else seeing this? happening on stock kernel too, wth..

edit2: jumping on r44.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 123
    FuguMod kernel is now available for the Galaxy Nexus.

    It has been reported to work both on GSM and CDMA versions. But I can only test it on GSM version myself.

    You can download them at:
    http://fugumod.org/galaxy_nexus/

    Source and changelog can be found here:
    https://github.com/renaudallard/gnexus_kernel

    IRC channel:
    irc.freenode.net #fugumod

    To install, just download the appropriate version for your ROM (4.0.x) and flash it with fastboot (RAW version: fastboot flash boot kernel-$VERSION.img) or flash it with CWM (CWM/zip version).
    Please note that not all versions exist in CWM format.

    4.0.2 version is based on official google initramfs + init.d support (is now in deprecated state, no future updates will be brought)
    4.0.3 version is based on the initramfs of AOSP + init.d support. it is compatible with 4.0.4
    4.0.4 version is based on the initramfs of AOSP + init.d support. it is compatible with 4.0.3
    4.1.x version is based on the initramfs of AOSP + init.d support.
    4.2.x version is based on the initramfs of stock kernel
    4.3 version is based on the initramfs of stock kernel (use that one for CM, not reco)
    4.3-reco version is based on the initramfs of stock kernel, even with install-recovery.sh enabled (so supersu can work, but if you don't have supersu, don't use it)

    for experimental versions, do not flash if you are not ready for big troubles, they may not even boot, burn your phone and eat your cat.

    Features:
    - stackprotector
    - various security enhancements
    - RCU boost
    - Automatic process grouping
    - TUN (compiled in kernel)
    - latest 3.0 linux kernel
    - newer wifi driver
    - gamma/color hack
    - CM9 compatibility
    - PaX (from r333)
    - grsec (from r624)
    - TouchWake from Ezekeel (from r778)

    Versions
    Kernels are based on the below version scheme
    kernel_FuguMod_20120111_r20-4.0.3.img
    20120111 is the date it has been packaged
    r20 is the release number
    4.0.3 is the ROM it is compatible with

    Color offsets
    In CM9, just use the built in function.
    For other ROMs, the settings offsets are in
    /sys/class/misc/samoled_color/
    For example green_v1_offset
    Just edit the three green red and blue color settings. Default value is 60.
    It can be done on the console with a command like this: echo 55> /sys/class/misc/samoled_color/green_v1_offset

    Stable vs Testing
    There are sometimes kernels in testing folder. These may be very stable or may not boot at all. Be sure to have an USB cable and fastboot under the hand if you try one of these. That said, in general, if they stay into testing folder for more than 15 min, they should at least boot and work more or less. I tend to remove non booting kernels from testing folder in less than 10 min (depending a little bit on the speed testers take them), and so if you see them one hour later, you should assume they are safe enough to flash.
    So, in general Stable is the safest bet, but Testing may be the best. I, myself, generally run testing one.

    Deprecated folder
    In general, unless you really know what you are doing, you should avoid flashing those, they are mainly there for historical reasons.

    Radio drops and blueish/faded screens
    Please ensure you are running the correct firmware for bootloader and baseband, like in the matrix in bottom of that page: http://source.android.com/source/building-devices.html
    For those where problems persist after flashing recommended versions, try "echo 0 > /sys/kernel/debug/smartreflex/sr_core/autocomp"

    OTG unmounting internal SD
    Please see http://forum.xda-developers.com/showpost.php?p=24040652&postcount=174

    Mirrors
    bootloaders: http://fugumod.org/bootloaders-gn/
    basebands: http://fugumod.org/modem/galaxy_nexus/

    Check for vulnerabilities
    http://www.xray.io

    Compatibility with hackish style apps
    All apps which require direct memory write, access to symbols or memory offsets or modules will NOT work. And, no, don't ask they won't be supported in the future.

    Security
    If you want good security when your phone is stolen, in addition to encryption, don't forget to turn debugging off. Also, use enpasschanger to change your encryption password, any short PIN encryption can be cracked in a few minutes easily (for example, using my script at http://pastebin.com/Mdu06RZN)

    Redistribution
    As per GPL, you are authorized to redistribute this kernel with any of your custom ROMs provided you give out the source code like I do. You can link to my github in your distribution site.
    However, if you modify the kernel yourself, whatever the modification is (compiling it yourself with a different compiler is a modification), you are not authorized to name it FuguMod, although you can credit me and tell the base comes from FuguMod but you cannot call the kernel itself FuguMod.

    Touchwake
    to enable it "echo 1 > /sys/devices/virtual/misc/touchwake/enabled"
    to make it always on: "echo 1 > /sys/devices/virtual/misc/touchwake/always"
    Beware, touchwake is known to sometimes produce screen locks

    PGM
    See "Compatibility with hackish style apps". Use touchwake instead.

    Lost root
    Use supersu instead of superuser from chainsDD (superuser from koush seems to work fine too). Change the setting in SuperSU to ignore CM root setting if you are running CM.

    Updater app
    https://play.google.com/store/apps/details?id=my.zin.rashidi.android.fugumod

    root on 4.3
    Currently only reco version has support for root access with supersu. Keep in mind that su access is now (as of 4.3) provided by a daemon, which may drain your battery or worse. Please think about your uses for root to see what is better fit for you.
    15
    r1138 features linux 3.0.81 and a patch to ashmem from google

    Code:
        ashmem: avoid deadlock between read and mmap calls
        
        Avoid holding ashmem_mutex across code that can page fault.  Page faults
        grab the mmap_sem for the process, which are also held by mmap calls
        prior to calling ashmem_mmap, which locks ashmem_mutex.  The reversed
        order of locking between the two can deadlock.
        
        The calls that can page fault are read() and the ASHMEM_SET_NAME and
        ASHMEM_GET_NAME ioctls.  Move the code that accesses userspace pages
        outside the ashmem_mutex.
    14
    r1142 is out with linux 3.0.83
    14
    Fugu is the best kernel because renaud is a fantastic developer ...

    Sent from my Nexus 4 using Tapatalk 4 Beta
    13
    r1133 is out with linux 3.0.79 and some wifi patches from google