Development [KERNEL] [blu_spark r136] [A13 Sep 2023]

Search This thread

zyonee

Senior Member
Nov 13, 2009
904
481
Stockholm
OnePlus 6
OnePlus 8 Pro
Yeah I personally don't have it disabled either, vbmeta patch works nicely.
But some people have issues without messing with the flags, there's some particular stuff to some setups that sometimes triggers verity/verification.
Less common nowadays but stil happens form time to time.

Also: my bet A13 stable is coming next week 🥳
@eng.stk Yeah, trying to patch vbmeta gave me the famous "system corrupted" screen. Solved by reflashing without wipe of course, but still a dead end for me. But like I said, disabling dm-verity without touching the verification flag did it for me.

On another note, would it be possible to implement doubletap2wake in the kernel? It's really needed for this device imo, as single tap and/or lift to wake keeps activating the screen in my pocket.
 

capntrips

Senior Member
Aug 29, 2020
336
772
OnePlus 6T
Google Pixel 6
@cultofluna Can you please explain what the the difference between --disable-verity and --disable-verification is? I'd like to understand this better.

--disable-verity only affects the hashtree (verity) devices, whereas --disable-verification affects all of Verified Boot.

On Pixel 6 at least, during the initial boot, Verified Boot loads the vbmeta partition, which contains hash descriptors for abl, bl1, bl2, bl31, dtbo, gsa, ldfw, pbl, pvmfw, tzsw, and vendor_boot. It also has a hashtree descriptor for vendor_dlkm and chain descriptors for boot (which contains its own embedded vbmeta image), vbmeta_system, and vbmeta_vendor. When verification is disabled, it only loads the top level vbmeta and none of the chained ones. When the device is unlocked it ignores the hashes in the various descriptors. I think the hashes are also similarly ignored when verification is disabled, but I can't confirm that, as I've never done any testing on a locked device.

As for the vendor_dlkm verity device, its hashtree descriptor, and the issues some people have booting on custom kernels, I'll quote myself from another thread:

The issue is Magisk 24303+ no longer strips avb from fstab, so when the phone boots, first stage mount looks at the fstab entry for vendor_dlkm, which references vbmeta, so it looks at the hashtree descriptor for vendor_dlkm in vbmeta and tries to setup a verity device using those values, but vendor_dlkm for the kernel is different from stock, so those values are incorrect, mounting fails, and the device bootloops.

If you have verity or verification disabled, first stage mount ignores avb in the fstab entry and mounts the partition directly.

I cut the bits about how AK3 and Hashtree Patcher deal it from the quote, so follow it back for more detail on that.
 

zyonee

Senior Member
Nov 13, 2009
904
481
Stockholm
OnePlus 6
OnePlus 8 Pro
--disable-verity only affects the hashtree (verity) devices, whereas --disable-verification affects all of Verified Boot.

On Pixel 6 at least, during the initial boot, Verified Boot loads the vbmeta partition, which contains hash descriptors for abl, bl1, bl2, bl31, dtbo, gsa, ldfw, pbl, pvmfw, tzsw, and vendor_boot. It also has a hashtree descriptor for vendor_dlkm and chain descriptors for boot (which contains its own embedded vbmeta image), vbmeta_system, and vbmeta_vendor. When verification is disabled, it only loads the top level vbmeta and none of the chained ones. When the device is unlocked it ignores the hashes in the various descriptors. I think the hashes are also similarly ignored when verification is disabled, but I can't confirm that, as I've never done any testing on a locked device.

As for the vendor_dlkm verity device, its hashtree descriptor, and the issues some people have booting on custom kernels, I'll quote myself from another thread:



I cut the bits about how AK3 and Hashtree Patcher deal it from the quote, so follow it back for more detail on that.
Thank you very much for the detailed explanation!
 

ctfrommn

Senior Member
May 25, 2011
7,439
10,773
Minnesota
Question for one of the developer minded on here......Im trying to build my kernel for Bluejay (Pixel 6a) which is extremely similar to the Pixel 6/6 Pro and am using Googles/Androids method (https://source.android.com/setup/build/building-kernels). It seems very straight forward and Ive built literally thousands of kernels & Roms over the years but for some reason even building this bone stock results in a non boot situation.

Is there something Im missing with this device or method I should be aware of or is there a simpler way to do this? Ive historically just used my own build scripts but the repo structure of these devices is so different and there are so many modules loading that I figured I would try the AOSP approved method first

Thanks for any insight.
 
  • Like
Reactions: Slim2none4u

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
blu_spark_r84 (A13 beta)

New build is up!

Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
For flashing and easy of install logging, Kernel Flasher by @capntrips is recommended

You can use FKM download kernel feature, just import the link bellow in the app flash section.
FKM download config: HERE


Changelog:
  • Merge android-gs-raviole-5.10-t-beta-4 (android-t-beta-4_r0.5)
  • drivers: google-modules: Merge branch android-gs-raviole-5.10-t-beta-4 (android-t-beta-4_r0.5)
  • defconfig: update from TPB4.220624.008
  • AnyKernel3 updates (v20220802)
  • For root, Magisk 25.1 or newer is mandatory


Keep in mind: I will give no active support for custom ROMs (including stock based ones).
I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


No mirrors please
Don't forget to hit like, it's free :)
 

snake218

Senior Member
Nov 1, 2012
590
153
A noob question:

Using kernel flasher, pixel 6, i see there are 2 kernel slots, but only slot B gives me the option "flash".
So all i have to do is select flash in slot B, select latest blu spark kernel file and flash it, it's that correct?
 
A noob question:

Using kernel flasher, pixel 6, i see there are 2 kernel slots, but only slot B gives me the option "flash".
So all i have to do is select flash in slot B, select latest blu spark kernel file and flash it, it's that correct?
If slot b is where your os is installed, then yes. But, as you mention, slot a does not give you the option to flash, so you are good to go flashing on slot b.
 
  • Like
Reactions: snake218

snake218

Senior Member
Nov 1, 2012
590
153
If slot b is where your os is installed, then yes. But, as you mention, slot a does not give you the option to flash, so you are good to go flashing on slot b.
Thanks for your reply, flashed successfully to Slot B.

Zram is set to 3gb, should I need to enable it to 4gb on kernel manager?
 
Last edited:
Can i flash over despair kernel?
I've read that some have had success, but it is best practice to reflash the factory image (or appropriate images, boot, vbmeta and dklm), then flash new kernel.

When reflashing factory image, you'll lose root; so you will have to reflash patched image prior to flashing new kernel.
 
Last edited:
  • Like
Reactions: liver20

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
blu_spark_r85 (A13)

New build is up!

Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
For flashing and easy of install logging, Kernel Flasher by @capntrips is recommended

You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
Download config: HERE


Changelog:
  • ThinLTO build with custom upstream LLVM 14.x (Clang 14.0.6 + LLD linker + IAS)
  • Sync with oriole-tp1a.220624.021
  • For root, Magisk 25.2 or newer is mandatory


Keep in mind: I will give no active support for custom ROMs (including stock based ones).
I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


No mirrors please
Don't forget to hit like, it's free :)
 
Last edited:

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
Seems like google saved a surprise for the modders yet again.

Word of advice: flash A13 to both slots before any modding or tinkering with the device.
There's seems to be cases where if the phone fail to boot, reverts to the previous slot and if it's A12 the device get's stuck and utterly bricked.
I just sideloaded the OTA twice to cover A and B slot, better safe than sorrow...
 
Last edited:

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
blu_spark_r87 (A13)

New build is up!

Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
For flashing and easy of install logging, Kernel Flasher by @capntrips is recommended

You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
Download config: HERE


Changelog:
  • ThinLTO build with custom upstream LLVM 14.x (Clang 14.0.6 + LLD linker + IAS)
  • google-modules: add some missing build flags
  • wireguard updates
  • AnyKernel3 updates (v20220827) for better flashing support after OTA/sideload
  • For root, Magisk 25.2 or newer is mandatory


Keep in mind: I will give no active support for custom ROMs (including stock based ones).
I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


No mirrors please
Don't forget to hit like, it's free :)
 

snake218

Senior Member
Nov 1, 2012
590
153
blu_spark_r87 (A13)

New build is up!

Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
For flashing and easy of install logging, Kernel Flasher by @capntrips is recommended

You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
Download config: HERE


Changelog:



Keep in mind:
I will give no active support for custom ROMs (including stock based ones).
I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


No mirrors please
Don't forget to hit like, it's free :)
Sorry for the newbie question, but it's safe to flash in latest beta version T1B1 Pixel 6? And related to first question, if this Kernel is based on A13, can be flashed on any version of android 13 that will come, or we always should wait and flash a new Kernel version for every A13 update? Thanks.
 

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
Sorry for the newbie question, but it's safe to flash in latest beta version T1B1 Pixel 6? And related to first question, if this Kernel is based on A13, can be flashed on any version of android 13 that will come, or we always should wait and flash a new Kernel version for every A13 update? Thanks.
Kernel is made for stable patchset by the monthly update.
Sometimes there's changes in betas and new updates that make kernel not compatible/unstable.
I don't recommend running in other than stable releases.
 

Zaxx32

Senior Member
Mar 23, 2019
522
200
Morgantown
Moto G5 Plus
Moto G7
Another noob-ish question...

I was a big fan of bluspark on my P4a but alas it went back to google for $300 of my P6a (they wouldn't lemme put it towards a
P6 😞 ) My Q: Is there anyway to make b-s for the 6a just based on what u gleaned from making the 6's kernel and what the 6a source code tells you...or do u need a 6a in-hand to do it? I'm guessing u need a 6a in hand. Had to ask cuz it's slim pickins for a 6a kernel. Saoorry for strayni...
 

eng.stk

Senior Member
Mar 29, 2011
7,280
61,510
Google Pixel 4a
OnePlus 9 Pro
blu_spark_r94 (A13)

New build is up!

Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
For flashing and easy of install logging, Kernel Flasher is recommended

You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
Download config: HERE


Changelog:
  • drivers: google-modules: Merge branch android-gs-raviole-5.10-android13 (android-13.0.0_r0.14)
  • drivers: google-modules/vendor: fix build errors for clang-15
  • arm64 module: remove (NOLOAD)
  • Sync with oriole-ota-tp1a.220905.004
  • For root, Magisk 25.2 or newer is mandatory


Keep in mind: I will give no active support for custom ROMs (including stock based ones).
I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


No mirrors please
Don't forget to hit like, it's free :)
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    blu_spark_r136 (A13)

    New build is up!

    Build is unified for raviole 13.0.0 (TQ3A.230901.001, Sep 2023), should work both on Pixel 6 (tested) and Pro variant.
    Tested on lineage-20.0-20230920-nightly for oriole.

    For easy flashing and install logging, Kernel Flasher is recommended
    You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
    Download config: HERE


    Changelog:
    • Couple build improvements
    • Better support for erofs ready ROMs (should work with evo x, etc - untested)
    • exfat updates
    • wireguard updates
    • Anykernel3 updates (v20230918)
    • For root, Magisk 26.3 or newer is mandatory


    Keep in mind: I will give no active support for custom ROMs (including stock based ones) besides LineageOS.
    I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


    No mirrors please
    Don't forget to hit like, it's free :)
  • 70
    DWHxIK

    Kernel features:
    • Build with custom upstream LLVM 14.x (Clang 14.0.6 + LLD linker + IAS)
    • ThinLTO full -O2 build with device and target flags enhanced, build improvements and compiler fixes, etc
    • Less is more: stockish kernel+modules builds based on Google latest sourcedrop for max stability (android-gs-raviole-5.10-android13-qpr3)
    • Full kernel tree with OEM integrated drivers, for minimal build overhead and fast deploy
    • Systemless installer (doesn't touch system/vendor partition, OTA friendly), AnyKernel3 backend (compatible with autoflash apps)
    • Removed some debug and logging options
    • Misc ARM performance and battery patches
    • CVE security patches, general upstream and fixes for important subsystems when applicable
    • No OC, use 250HZ base timer frequency
    • Enhanced TCP methods (westwood is default, BBR and others available)
    • Some I/O tweaks (SSG added), advanced filesystems enabled (ExFAT upstreamed, , CIFS & NFS)
    • ZRAM set at 3G (default lz77eh with lzo-rle, zstd, etc available)
    • WIP: Vibrator Strength tunable and Gesture Haptic Feedback control (touchpanel and FPR)
    • Gamepad support enabled (xbox, ps4, switch)
    • USB2 Fast Charge (force USB CDP mode up to 1500mA with MTP on)
    • TWRP Support(LZMA/LZ4 Ramdisk)
    • Wireguard updates
    • Compatible with Kernel Flasher, EXKM, FKM , Kernel Adiutor and others


    DOWNLOAD KERNEL ZIP
    Kernel Flasher/FKM download configs: HERE
    (No mirrors please)​


    Setup and troubleshoot: To install just flash the zip on a stock setup with either TWRP or autoflash kernel app.
    If you come from other kernel or have any issues, you should restore your stock setup or dirty flash your ROM before flashing blu_spark zip to avoid problems. Also uninstall or clean data of any kernel control app you're using.
    If you are upgrading between blu_spark versions, just flash the kernel zip.

    About bugs and reports: don't bother to post if a log isn't ready or without steps so the behavior can be replicated. I only active support stock ROM with NO mods whatsoever (apart from root). That includes NO support if using xposed, Magisk with added modules, etc.
    If you're using custom ROMs (including stock based ones) you're much on your own. I'm mostly interested on debugging stuff in stock and stable ROM.
    Also try not to spam the thread with too much OT. There's threads for all kind of stuff, use them.

    Going back to stock: This kernel installer doesn't change your filesystem. You can backup your boot.img/vendor_boot.img/vendor_dlkm.img with TWRP or kernel app before flashing blu_spark if you want to go back to full stock. You can also flash boot.img/vendor_boot.img/vbmeta.img in fastboot and vendor_dlkm.img in fastbootd from you stock ROM. Or just dirty flash your full OTA ROM zip.


    Source Code: https://github.com/engstk/pxl6
    Don't forget to hit thanks, it's free ;)
    37
    blu_spark_r29 (A12)

    So here's blu_spark for the oriole (and probably raven ;p)

    Been cracking around on this since I got the device a couple weeks ago.
    The new GKI kernel stuff(which imo will kill custom kerneling in the future) and the "let's use 10GB of garbage device tree to build a kernel" is not really for me.
    So I decided to put on an full tree with all the vendor stuff on it, with less that 5% of what Google proposes we can play with the device just fine.

    My primary objective was also to make a full builtin kernel, but seems like init expects modules and other stuff to be in place so it's a no go, at least for now (maybe with some further init stages crack it's possible, idk)
    So kernel output is splitted across boot.img, vendor_boot.img and vendor_dlkm.img.

    I also take the time to make AK3 basic hdr v4 compliant (big shouts to @osm0sis for being the best wingman, as always). Because fastboot is tedious and since it's 2021 there's no room for that in my builds.
    You can flash the AK3 kernel zip in your favorite kernel app with autoflash functions or with TWRP when/if available. If you want/need to go stock again, instructions are on OP.
    Besides Pixel 6, this should work on Pro also, but I can only test on Oriole, let me know how it goes on Raven if you're brave enough.

    You can use FKM download kernel feature, just import the link bellow in the app flash section.
    FKM download config: HERE


    Changelog:
    • Build with Google Clang 12.0.5 + LLD linker
    • Full kernel based from kernel/gs+google-modules @ android-gs-raviole-5.10-android12-d1 (android-12.0.0_r0.17) (Nov 2021.1)
    • Several build fixes and improvements (check git for details)
    • drivers: google-modules: make it build and additional fixes, remove cruft
    • Disable some debug and logging
    • FS and F2FS improvements
    • Enable advanced TCP congestion control (westwood default)
    • Add wakelock blocker framework
    • Tuned a couple IO and ZRAM runtime stuff
    • AK3 updates (v20211118) plus my own additional fixes for hdrv4 flashing (big shouts @osm0sis for the help)
    • For root, canary Magisk 23015 or newer is mandatory


    Keep in mind: I will give no active support for custom ROMs (including stock based ones).
    I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


    No mirrors please
    Don't forget to hit thanks, it's free :)
    15
    blu_spark_r85 (A13)

    New build is up!

    Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
    For flashing and easy of install logging, Kernel Flasher by @capntrips is recommended

    You can use Kernel Flasher/FKM download kernel feature, just import the link bellow in the app updates/flash section.
    Download config: HERE


    Changelog:
    • ThinLTO build with custom upstream LLVM 14.x (Clang 14.0.6 + LLD linker + IAS)
    • Sync with oriole-tp1a.220624.021
    • For root, Magisk 25.2 or newer is mandatory


    Keep in mind: I will give no active support for custom ROMs (including stock based ones).
    I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


    No mirrors please
    Don't forget to hit like, it's free :)
    14
    blu_spark_r45 (A12)

    New build is up!

    Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
    You can use FKM download kernel feature, just import the link bellow in the app flash section.
    FKM download config: HERE


    Changelog:
    • Merge branch android-gs-raviole-5.10-android12-qpr1-d (android-12.0.0_r0.36) (Jan 2022.1)
    • Rebase and cleanup
    • Wireguard updates (linux-5.10.y)
    • For root, Magisk 23016 or newer is mandatory


    Keep in mind: I will give no active support for custom ROMs (including stock based ones).
    I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


    No mirrors please
    Don't forget to hit thanks, it's free :)
    14
    blu_spark_r81 (A13 beta)

    New build is up!

    Build is unified for raviole, should work both on Pixel 6 (tested) and Pro variant.
    You can use FKM download kernel feature, just import the link bellow in the app flash section.
    FKM download config: HERE


    Changelog:
    • ThinLTO build with custom upstream LLVM 14.x (Clang 14.0.5 + LLD linker + IAS)
    • Rebase to branch android-gs-raviole-5.10-t-beta-4 (android-t-beta-4_r0.4)
    • Additional build/google-modules/vendor fixes
    • wireguard and exfat updates
    • Couple cleanup reverts
    • For root, Magisk 25.1 or newer is mandatory


    Keep in mind: I will give no active support for custom ROMs (including stock based ones).
    I am mostly interested on debugging stuff in stock ROM (with logs and reproducible steps to replicate the issue).


    No mirrors please
    Don't forget to hit like, it's free :)