[KERNEL][03/13/2022] fsociety tribute for Google Pixel 4a [A11-A12/L]

Search This thread

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
7IatM5l.png

Hello, friend.

Inspired by @wrongway213's original custom kernel for Pixel 4/XL, I decided to make my own project once I grab my hand on a Google device myself. The naming is a tribute to both his ideas and Mr. Robot. fsociety tribute's goal is to give the device a set of useful features while ensuring its stability for a daily life usage. Those features and changes are pulled from different places like blu.spark, Sultan kernel, Kirisakura and many more.

Features

General features

  • Built with Google Clang version 14.0.2 + LLD linker
  • Full -O3 build with chipset's flags included (thanks to @eng.stk and @Sultanxda)
  • AnyKernel3 powered installation to stay OTA and flashers (EXKM, FKM...) friendly
  • ARM64 architecture optimization and performance patches
  • Merged security and code fixes from Google and Qualcomm - CAF
  • Filesystem (ext4/f2fs) optimizations
  • Scheduler code improvements for better CPU tasks assigning
  • Disabled several debugging cruft
  • WireGuard support
Memory related features
  • Merge zRAM and zRAM's compression algorithm code updates
  • Increase zRAM's disksize to 4GB (from the stock 2GB). Apps can be easily memory intensive nowadays...
  • Swap 1 page at a time instead of the default's 8, so that it may help in case "the device is under extreme memory pressure"
    (source: https://source.android.com/devices/tech/perf/low-ram)
  • Reduce memory and CPU time usage by avoiding dynamic memory allocations in different kernel components (thanks to @arter97 and @Sultanxda)
Network related features
  • Set BBR as the default TCP network congestion control and switch to fq_codel queue discipline
    (this combination improves network speed and reliability - thanks to @kdrag0n)
  • Enable support for TTL spoofing
  • Update Wireguard to its latest release
Power-saving related features
  • The processor uses freq-energy-model with calculated capacities for power efficiency
  • Some of the main kernel parts (such as the audio drivers and the WLAN driver's delayed work/tasks) now use power-efficient workqueues (thanks to @Freak07)
  • Display "power-saving tweaks" merged-in (from Proton kernel - Pixel 4a 5G/Pixel 5)
  • Reduce the GPU idle timeout set to 58 ms and implement GPU power-saving changes from Sultan kernel
  • battery: Tweak QG SOC to be more linear/monotonic (from Proton kernel)
    That fixes the stock kernel's unlinear battery level curve, especially between 100% and 90%. The device will need a few charge-discharge cycles to take it into consideration
Performance related features
  • Implement LRNG for better performance
  • Disable the GPU memory usage tracing (which was enabled for debugging purposes)
  • Return before thermal trip evaluates (it is a workaround for the lag occurring when the device is low on battery and automatically switches to battery saving mode)
  • Other under the hood changes
Extra features
  • KCAL Color Control with KLAPSE v5.0 support (thanks to @savoca, @tbalden, @flar2 and @eng.stk)
  • Backlight min. brightness and HBM option (thanks to @flar2)
  • Boeffla Wakelock Blocker (to use with caution, and only if it is necessary)
Download & Links

Credits go to
  • @eng.stk for their clean sourcedrops' bases, their personal pieces of advice and also for their contributions
  • @wrongway213 for inspiring me to achieve this project, their precious free time and also for their contributions (especially this thread template)
  • @Freak07 for his guidance in solving my first kernel compiling issues and for his amazing contributions
  • @arter97 for his contributions
  • @kdrag0n for Proton kernel and their innovative contributions
  • @osm0sis for AnyKernel3 and his contributions
  • @Sultanxda for their outstanding contributions
  • @Kaz205 for their contributions
  • @flar2 for his contributions
  • @HolyAngel for HolyDragon kernel and their contributions
  • @pkgnex for his tuning script and contributions
  • @nathanchance for his compilation guides and repos

Thanks to
  • @badaas, @beeshyams and all my Telegram's group members for being the awesome testers they are
  • Every person that submitted a donation and showed me their support!

XDA:DevDB Information
fsociety tribute for Pixel 4a, Kernel for the Google Pixel 4a

Contributors
momojuro
Source code: Github repository

Kernel Special Features: Boeffla Wakelock Blocker, KCAL, KLAPSE, Wireguard

Version Information
Status:
Stable
Current Stable Version: 2.66 (A12) - 2.62 (A11)
Stable Release Date: 2022-03-13

Created 2021-04-06
Last Updated 2022-03-13
 
Last edited:

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Changelog

alpha#1.00
  • Initial release
alpha#1.01
  • Reverted some under the hood commits to prepare for future updates
  • Different cpuidle fixes and optimizations (thanks to @wrongway213)

    Thanks to @eng.stk for these changes:
  • Merge branch android-msm-sunfish-4.14-android11-qpr2 (Apr 2021.1)
  • BACKPORT: GKI: hwtracing: Add a driver for disabling coresight clocks (backport from Pixel 5, less idle draw)
  • Revert the latest merged CAF patches and fixes applied to the KGSL graphic driver
  • Revert "AIO: Don't plug the I/O queue in do_io_submit()"
  • power: smb5: Disable debug logging
  • Revert "f2fs: Fix deadlock between f2fs_quota_sync and block_operation"
  • f2fs: shrink node_write lock coverage
  • Revert "kbuild: disable clang's default use of -fmerge-all-constants"
  • techpack: data: don't build emac-dwc-eqos
  • Remove some logspam in net/sched
alpha#1.02
  • A bunch of optimization commits used in Kirisakura included. Huge respect to @Freak07.
    These changes mainly concern the GPU and the CPU architecture.
  • In addition to this, normal grace periods are now preferred to reduce power usage (Thanks a lot to @kdrag0n for his approach).
  • Finally, boeffla wakelock blocker doesn't block any wakelock by default for now, but you can add your own to the blocklist.
alpha#1.03
  • BBR v2 set as the default TCP network congestion control instead of Westwood (thanks to @Freak07).
  • Thanks to @LazerL0rd for having these changes imported :
- Imported upstream Bluetooth fixes.
- fs: ext4: fsync: optimize double-fsync() a bunch.
- Initialize ata before graphics.
- Re-enabled BPF JIT compiler to improve gaming and overall system performance
(thanks to @Sultanxda).
- arm64: lib: memory utilities optimization.

alpha#1.04
  • defconfig: Don't pre-create any loop devices (speeds up the booting process slightly)
  • defconfig: Disable UFS logging
  • sched: fair: Stop running idle_balance on active migration kick
  • cpufreq: Avoid leaving stale IRQ work items during CPU offline
  • Different CAF fixes and patches (thanks to @arter97 for providing the CAF repo mirror)
  • Revert "fs: ext4: fsync: optimize double-fsync() a bunch"
  • Revert "msm: kgsl: Increase worker thread priority"
  • Revert: "defconfig: Enable the BPF JIT compiler"
beta #1.00
  • drivers: char: mem: Reroute random fops to urandom
  • defconfig: Boot with schedutil
  • Revert "linux: blkdev: Set nr_requests to 64"
  • include: linux: Update nr_requests and read-ahead values (to stock 128, and 512 respectively)
  • defconfig: Reduce timer frequency to 100 Hz (for less power consumption)
  • block: Disable I/O stats accounting by default (to reduce approximate 0.5/1% overhead for block devices)
  • defconfig: Disable debug and some unused drivers config
  • net: add WireGuard from wireguard-linux-compat
  • Different scheduler improvement commits cherry-picked from Sultan kernel
  • More CAF patches and fixes for the KGSL graphic driver
beta#1.01
  • wireguard: Update to version 1.0.20210219
  • Revert "defconfig: Reduce PELT half-life from 32 ms to 16 ms"
beta#1.02
  • Revert the latest merged CAF patches and fixes applied to the KGSL graphic driver
  • Revert "AIO: Don't plug the I/O queue in do_io_submit()"
  • power: smb5: Disable debug logging
beta#1.03

Thanks to Sultanxda and kdrag0n for the following changes:
  • disp: msm: Don't clear dim layers when there aren't any applied
  • defconfig: Enable the BPF JIT compiler (again)
  • defconfig: Enable ZSTD
  • defconfig: Omit CPU and PID from console printk
  • defconfig: Disable GPU memory usage tracing
  • scsi: ufs: Only create one pm_qos object for the IRQ
  • scsi: ufs: Only apply pm_qos to the CPU servicing UFS interrupts
  • scsi: ufs: Remove 10 ms CPU idle latency unvote timeout
  • Revert "mutex: Add a delay into the SPIN_ON_OWNER wait loop."
  • Revert "usb: gadget: mtp: Increase RX transfer length to 1M"
  • Revert "usb: gadget: f_mtp: Increase default TX buffer size"
  • scatterlist: Don't allocate sg lists using __get_free_page
  • mm: kmemleak: Don't die when memory allocation fails
  • mm: kmemleak: Don't require global debug options or debugfs
  • pinctrl: msm: Remove explicit barriers from mmio ops where unneeded
  • dma-buf/sync_file: Speed up ioctl by omitting debug names
  • msm: camera: Stub out the camera_debug_util API and compile it out
  • locking/rwsem: Don't hog RCU read lock while optimistically spinning
  • locking/mutex: Don't hog RCU read lock while optimistically spinning
  • cpuidle: Mark CPUs idle as late as possible to avoid unneeded IPIs
  • cpuidle: Optimize pm_qos notifier callback and IPI semantics
  • arm64: Allow IPI_WAKEUP to be used outside of the ACPI parking protocol
  • kernel: Only set one CPU in the default IRQ affinity mask
  • kernel: Don't allow IRQ affinity masks to have more than one CPU
  • qos: Don't allow userspace to impose restrictions on CPU idle levels
  • msm: kgsl: Wake GPU upon receiving an ioctl rather than upon touch input
beta#1.04

Thanks to Sultanxda and engstk for the following changes:
  • msm: kgsl: Don't allocate memory dynamically for drawobj sync structs
  • bpf: Avoid allocating small buffers for map keys and values
  • defconfig: Reduce PELT half-life from 32 ms to 16 ms (again, and correctly this time)
  • defconfig: Enable USB2 Fast Charge
  • drivers: misc: power: implement usb2 fast charge mode
beta#1.05

Revert the following changes:
  • msm: kgsl: Don't allocate memory dynamically for drawobj sync structs
  • bpf: Avoid allocating small buffers for map keys and values
  • defconfig: Reduce PELT half-life from 32 ms to 16 ms (again, and correctly this time)
stable#1.00

Thanks to everyone involved in the following changes, and to my testers from the Telegram group:
  • sched: Import sched_irq_work_queue()
  • cpufreq: schedutil: Queue sugov irq work on policy online cpu
  • cpufreq: schedutil: Fix the incorrect average capacity calculation
  • drivers: binder: silence logging
  • mm: Increase vmstat interval to 1 minute
  • msm: ipa: add check to see if pm client is not NULL
  • drm/msm/sde: Skip heavy autorefresh checks when it's not enabled
  • do accept() in LIFO order for cache efficiency
  • power: Reduce debug logging if logbuffer is still enabled
  • defconfig: Unset CONFIG_SCHEDSTATS
  • defconfig: Set timer frequency to 250 Hz
  • defconfig: Disable some crufts
  • defconfig: Disable SLUB per-CPU partial caches
  • defconfig: Disable unnecessary errata
  • Kbuild: Optimize more crypto drivers with crypto extensions
  • kbuild: Proper CPU optimization flags for Clang and GCC
  • scsi: ufs: Keep UniPro in FASTMODE
  • scsi: ufs: Fix ufshcd_probe_hba() return value when fails to reinit
  • scsi: ufs: handle error to avoid kernel panic
  • usb: dwc3: gadget: Issue soft reset as part of composition switch
  • UPSTREAM: sched/rt: Disable RT_RUNTIME_SHARE by default
  • Revert "msm_geni_serial: reduce wakelock timeout from ISR to 100ms"
  • Revert "msm: camera: Stub out the camera_debug_util API and compile it out"
  • Revert "msm: camera: disable debug logging"
  • Revert "msm: camera: Fix memory leak"
  • dts: fix missing frequency on sd730
  • arm64: Makefile: Proper CPU optimization flags for Clang and GCC
  • arm64: dts: sdmmagpie: Allow big cluster to idle in USB perf mode
  • arm64: dts: sdmmagpie: Power off DSI PHY during idle PC
  • arm64: Kconfig: disable some tracers
  • ARM64: sdmmagpie: fix a few freq inconsistencies
  • ARM64: sdmmagpie: add lower freq to llcc-bw bus
  • ARM64: dst: sdmmagpie-idp: scale SSOC with BSOS
  • ARM64: dts: sdmmagpie: fix max frequencies
  • ARM64: dts: magpie: Remove unused conflicting disp_rdump_memory region
stable#1.01

Thanks to everyone involved in the following changes:
  • drivers: thermal: Return zero on success for qmi_tmd_send_state_request.
  • drivers: thermal: step_wise: Handle the temperature stable trend.
  • drivers: thermal: step_wise: Clear mitigation on reaching clear threshold
  • sched/core: fix preemption disable tracking during context switch to idle
  • cpumask: Add cpumasks for big and LITTLE CPU clusters
  • defconfig: Configure big and LITTLE CPU masks
  • defconfig: set exfat-linux options
  • fs: exfat: add version 2.2.0-3arter97 (like it is the case with CAF latest changes)
  • kernel: Add API to mark IRQs and kthreads as performance critical
  • drm/msm: Offload commit cleanup onto an unbound worker
  • workqueue: Affine unbound workqueues to little CPUs by default
  • msm: ipa: Do not acquire wakelocks
  • msm: vidc: Disable msm_vidc_fw_debug_mode
  • msm: kgsl: Mark IRQ as performance critical
  • drm: Mark IRQ as performance critical
  • msm: adreno: Set GPU timeout to 64 ms
  • ARM64: dts: sdmmagpie: Set GPU idle timeout to 64 ms
  • ARM64: dts: qcom: Delete CDSP sec memory region
  • arm64: dts: sdmmagpie: Avoid run-time IPIs from expedited grace periods
stable#1.02

Thanks to everyone involved in the following changes:
  • sched/core: Free dead mm structs asynchronously in finish_task_switch()
  • sched/core: Free dead tasks asynchronously in finish_task_switch()
  • kgsl: msm: Prevent userspace from changing the GPU idle timeout
  • scsi: ufs: use WQ_HIGHPRI for gating work
  • sched: fair: placement optimization for heavy load
  • sched: Improve the scheduler
  • sched: fair: Improve the scheduler
  • sched/fair: Add timeout for detach_tasks() in load balance
  • ARM64: sdmmagpie: switch to calculated capacities
  • kernel: sched: Checkout energy to Common kernel
  • schedutil: Tune the down rate limits for better battery life using PK's tuning script v9 values (thanks to pkgnex and also engstk for the tuning method)
stable#1.03

Thanks to everyone involved in the following changes:
  • ext4: optimize file overwrites
  • lib/lz4: explicitly support in-place decompression
  • mmap() backports for better performance
  • mm, truncate: do not check mapping for every page being truncated
  • zsmalloc: switch from alloc_vm_area to get_vm_area
  • mm/zsmalloc.c: rework the list_add code in insert_zspage()
  • mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
  • mm/zsmalloc.c: fix duplicated words
  • mm/zswap: fix passing zero to 'PTR_ERR' warning
  • mm/zswap: make struct kernel_param_ops definitions const
  • arm64: Add missing dependency for ARM erratum 1188873 workaround
  • arm64: dts: sdmmagpie: Implement RHEL's Low Latency Kernel cmdline
  • arm64: dts: sdmmagpie: Set silver cluster qos-cores for msm_fastrpc
  • arm64: dts: sdmmagpie-sde: Configure PM-QoS IRQ latency
  • arm64: dts: sdmmagpie: remove pm qos latency overrides
  • arm64: dts: sdmmagpie: use 67us latency for cdsp
  • drm/msm/sde: Remove redundant write memory barriers from IRQ routines
  • drm/msm/sde: Consolidate IRQ status reads into IRQ dispatcher
  • drm/msm/sde: Don't read and clear VBIF errors upon commit
  • disp: msm: Use the PM_QOS_REQ_AFFINE_IRQ feature to control SDE PM QoS
  • disp: msm: sde: add dt based support for pm qos irq latency
  • disp: msm: sde: modify Qos vote for irq latency during idle cases
  • disp: msm: sde: add pm QoS vote on CPU receiving display IRQ
  • sde: rotator: Remove PM-QOS usage
  • sched/rt: Optimize checking group RT scheduler constraints
  • scsi: ufs: Add simple IRQ-affined PM QoS operations
  • scsi: ufs: Scrap Qualcomm's PM QoS implementation
stable#1.04

Thanks to everyone involved in the following changes, especially to @eng.stk:
  • Merge branch android-msm-sunfish-4.14-android11-qpr2 (May 2021.1)
  • Android: Implement Sony LowMemoryKiller TNG from 55.0.A.11.25
  • net/wireguard: merge v1.0.20210424
  • lib/lzo: implement run-length encoding (set as zRAM default's compression algorithm)
  • ext4: remove additional tracings added by CAF
  • mm: oom_kill: Reduce some verbose logging
  • bpf: Eliminate CONFIG_MODULES limitation from JIT for arm64
  • scripts/kallsyms: set relative_base more effectively
  • scripts/kallsyms: shrink table before sorting it
  • scripts/kallsyms: remove unneeded #ifndef ARRAY_SIZE
  • block: Disable preemption during IPI consideration
  • block: Track DISCARD statistics and output them in stat and diskstat
  • block: Add and use op_stat_group() for indexing disk_stat fields.
  • block: Define and use STAT_READ and STAT_WRITE
  • block: Add part_stat_read_accum to read across field entries.
  • block: make bdev_ops->rw_page() take a REQ_OP instead of bool
  • defconfig: further disable audit
  • kbuild: Don't try to add '-fcatch-undefined-behavior' flag
  • Makefile: add -fno-builtin-stpcpy
  • Revert "kernel: Add API to mark IRQs and kthreads as performance critical"
  • Revert "msm: kgsl: Mark IRQ as performance critical"
  • Revert "drm: Mark IRQ as performance critical"
stable#1.05

Thanks to everyone involved in the following changes, especially to kerneltoast:
  • include: linux: Set nr_requests and read-ahead values to 64 and 256 respectively
    (thanks to pkgnex and HolyAngel)
  • cpufreq: Ensure the minimal frequency is lower than the maximal frequency
  • usb: gadget: f_mass_storage: Add Drivedroid Support
  • arm64: dts: msm: disable kpti on sdmmagpie
  • arm64: dts: sdmmagpie: Enable freq-energy-model
  • tcp: change pingpong threshold to 3
  • tcp: Refactor pingpong code
  • sched/fair: Compile out NUMA code entirely when NUMA is disabled
  • sched: Resolve sched_feat() at compile time to improve code optimization
  • sched: Add API to migrate the current process to a given cpumask
  • sched/idle: Micro-optimize the idle loop
  • sched/fair: Kill spam about max cpu_capacity
  • sched: core: silence no longer affine to cpu logspam
  • mm: Perform PID map reads on the little CPU cluster
  • scsi: ufs: Enable NO_FASTAUTO quirk for all vendor
  • BACKPORT: crypto: arm64/aes-modes - get rid of literal load of addend vector
  • crypto: arm64/aes-blk - add 4 way interleave to CBC-MAC encrypt path
  • crypto: arm64/aes-blk - add 4 way interleave to CBC encrypt path
  • crypto: arm64/aes-blk - remove configurable interleave
  • crypto: arm64/aes-blk - move kernel mode neon en/disable into loop
  • mm: compaction: avoid 100% CPU usage during compaction when a task is killed
  • BACKPORT: mm: process_reclaim: consider compound pages
  • Revert "sched: fair: placement optimization for heavy load"
  • Revert "qos: Execute notifier callbacks atomically"
  • Revert "drm/msm/sde: Wait for ctl_start asynchronously on cmd mode panels
  • Revert "disp: msm: Don't clear dim layers when there aren't any applied"
  • Revert "disp: msm: Use the PM_QOS_REQ_AFFINE_IRQ feature to control SDE PM QoS"
  • Revert "mmc: disable SPI CRC"
  • bpf: fix subprog verifier bypass by div/mod by 0 exception
  • bpf: fix net.core.bpf_jit_enable race
  • bpf, lpm: make longest_prefix_match() faster
  • msm: camera: utils: Demote unwanted logging to debug
  • msm: vidc: Silence video instance logging
- Commits reverted until the kernel version gets upstreamed:
  • Revert "block: Disable preemption during IPI consideration"
  • Revert "block: Track DISCARD statistics and output them in stat and diskstat"
  • Revert "block: Add and use op_stat_group() for indexing disk_stat fields."
  • Revert "block: Define and use STAT_READ and STAT_WRITE"
  • Revert "block: Add part_stat_read_accum to read across field entries."
  • Revert "block: make bdev_ops->rw_page() take a REQ_OP instead of bool"
stable#1.10

Thanks to everyone involved in the following changes:
  • qcacld-3.0: Free a bunch of pkts at once (to reduce CPU consumption)
  • qcacld: disable qcom_rx_wakelock (to reduce power consumption)
  • fs: Override default relatime mount flag for noatime (to improve FS performance)
  • Revert "usb: gadget: f_mass_storage: Add Drivedroid Support"
stable#1.11

Thanks to everyone involved in the following changes:
  • Revert changes from the recent updates that were causing possible stability issues
  • Cherry-pick last chipset patches from CAF
  • sched: fair: Modify capacity margins for sm7150ab.
  • Revert "ARM64: dts: magpie: Remove unused conflicting disp_rdump_memory region"
  • android: binder: add rate limit for possible excessive log
  • defconfig: Don't initialize early random pool
  • include: linux: Set nr_requests and read-ahead values back to default
    (thanks to eng.stk for their tuning approach)
  • sched: fair: Cover more WALT balancing cases.
  • diag: disable DIAG_DEBUG
stable#1.50

Thanks to everyone involved in the following changes:
  • Full source rebase from scratch
  • sched: fair: Fix load balancing for big tasks
  • msm: ipa: Add an option to allow IPA wakelocks (disabled by default)
  • msm: ipa_v3: Do not acquire wakelocks
  • msm: ipa_v3: block ipa_ws wakelocks
  • blkdev: Set QUEUE_FLAG_NONROT
stable#1.65

Thanks to everyone involved in the following changes:
  • treewide: Merge tag 'android-11.0.0_r0.85' of
    https://android.googlesource.com/kernel/msm (June 2021 security patch)
  • Merge fixes from CAF
  • Merge security fixes from GrapheneOS
  • wireguard: Update to version 1.0.20210606
  • Implement josenk's srandom driver (faster than random and urandom - https://github.com/josenk/srandom)
  • Implement zRAM deduplication with arter97's changes
  • mm: compaction: Add automatic compaction mechanism
  • techpack: audio: Merge last update
  • mbcache: Speed up cache entry creation
  • msm/sde/rotator: Remove unneeded PM QoS requests
  • drm/msm/sde: Remove unneeded PM QoS requests
  • msm: kgsl: Remove L2PC PM QoS feature
  • scsi: ufs: Add sultanxda's simple IRQ-affined PM QoS operations
  • scsi: ufs: Scrap Qualcomm's PM QoS implementation
  • qcacld-3.0: use power efficient workingqueue
  • qcacld-3.0: Nuke as much debug bloat as possible
  • qcacmn: Disable all of qdf_trace when WLAN_DEBUG is disabled
  • sched: fair: consider all running tasks in cpu for load balance
  • cpuidle: don't disable cpuidle when entering suspend
  • defconfig: Disable EDAC
 
Last edited:

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Hello everyone, new update!

Changelog

fsociety tribute alpha#1.01
  • Reverted some under the hood commits to prepare for future updates
  • Different cpuidle fixes and optimizations (thanks to @wrongway213)

    Thanks to @eng.stk for these changes:
  • Merge branch android-msm-sunfish-4.14-android11-qpr2 (Apr 2021.1)
  • BACKPORT: GKI: hwtracing: Add a driver for disabling coresight clocks (backport from Pixel 5, less idle draw)
  • Revert "f2fs: Fix deadlock between f2fs_quota_sync and block_operation"
  • f2fs: shrink node_write lock coverage
  • Revert "kbuild: disable clang's default use of -fmerge-all-constants"
  • techpack: data: don't build emac-dwc-eqos
  • Remove some logspam in net/sched
Download & Links
 

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Based on bluespark kernel? imagine it doesn't have support for usb dacs right?
It has got major blu.spark's elements in it, yes. It also uses @eng.stk's excellent soucedrops from Google. The latest update from blu.spark and fsociety tribute has got a change related to your issue. You should try and let us know if the problem got fixed!
  • techpack: data: don't build emac-dwc-eqos
 

Chrisnetika

Member
Jan 16, 2021
37
11
Google Pixel 4a
It has got major blu.spark's elements in it, yes. It also uses @eng.stk's excellent soucedrops from Google. The latest update from blu.spark and fsociety tribute has got a change related to your issue. You should try and let us know if the problem got fixed!
I can give it a try tomm, just flashed the new release bluspark put out yesterday and my DAC unit seems to work with the changes he made.Just testing it for stability for now.Good to see more developers making kernels for this device.
 

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Hello friend. Hello friend?

Can you build in wireless monitor mode and usb keyboard support for use with nethunter?

Hello friend,

I will try to compile a version containing those specific changes when I have some free time and send you the zip file. However, they will not be incorporated to the main version. If you have a Linux powered computer/laptop, I will be glad to show you how I did it and how you could compile it yourself, so that you may add them for each new version.
 

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Hello everyone, new promising update!

Changelog

fsociety tribute alpha#1.02
  • A bunch of optimization commits used in Kirisakura included. Huge respect to @Freak07.
    These changes mainly concern the GPU and the CPU architecture.
  • In addition to this, normal grace periods are now preferred to reduce power usage (Thanks a lot to @kdrag0n for his approach).
  • Finally, boeffla wakelock blocker doesn't block any wakelock by default for now, but you can add your own ones to the blocklist.
Download & Links
 
  • Like
Reactions: EriecTan and kkjb

d33dvb

Senior Member
Sep 30, 2007
751
180
Google Pixel 4a
Samsung Galaxy S21
Hello friend,

I will try to compile a version containing those specific changes when I have some free time and send you the zip file. However, they will not be incorporated to the main version. If you have a Linux powered computer/laptop, I will be glad to show you how I did it and how you could compile it yourself, so that you may add them for each new version.
Thanks a bunch man I have tried and failed several times to get it working.
 
  • Like
Reactions: momojuro

Chrisnetika

Member
Jan 16, 2021
37
11
Google Pixel 4a
As promised I tried it,so far it works ok.My USB DAC works fine and everything inc mqa,dsd play no issues.Noticed with 1.01 it was running bit warmer my device with normal use like surfing when it usually never did,however 1.02 seems fine? Possible it is nothing.
If I may ask,what is the changes/differences between this and bluespark? Looking at the description for both kernels they look about the same.OC is not enabled by default right?
 
  • Like
Reactions: momojuro

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
As promised I tried it,so far it works ok.My USB DAC works fine and everything inc mqa,dsd play no issues.Noticed with 1.01 it was running bit warmer my device with normal use like surfing when it usually never did,however 1.02 seems fine? Possible it is nothing.
If I may ask,what is the changes/differences between this and bluespark? Looking at the description for both kernels they look about the same.OC is not enabled by default right?
I am glad it is working as it should be.
I would say that fsociety tribute is on its way to become more and more distinct.

It is true that it is based on @eng.stk's excellent initial building setup and his Google sourcedrops, as I was not knowledgeable enough to do it by myself (they have my gratitude). Some features to me were appealing, like its incorporation of KLAPSE and KCAL or its choice for Zen v2 as the default I/O scheduler. However, according to my own preferences, I did not pick up the USB Fast Charge and the FS fsync's tweaking support features for example or compile the kernel with the -O2 optimization flag.
The next build will use BBR v2 instead of Westwood as the default TCP congestion control.

I am still at the beginning of my journey to explore and learn what would be appealing to my vision for fsociety tribute, hence the alpha stage it is under right now. Feel free to choose whatever suits you!
 
Last edited:
  • Like
Reactions: EriecTan

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Hello everyone, another update! It is temporarily uploaded on GIthub until Sourceforge stops being buggy.

Changelog

fsociety tribute alpha#1.03
  • BBR v2 set as the default TCP network congestion control instead of Westwood (thanks to @Freak07).
  • Thanks to @LazerL0rd for having these changes imported :
- Imported upstream Bluetooth fixes.
- fs: ext4: fsync: optimize double-fsync() a bunch.
- Initialize ata before graphics.
- Re-enabled BPF JIT compiler to improve gaming and overall system performance
(thanks to @Sultanxda).
- arm64: lib: memory utilities optimization.

Download & Links
 
Last edited:
  • Like
Reactions: EriecTan and nss357

momojuro

Senior Member
Jan 15, 2014
595
1,078
Samsung Galaxy A30
Google Pixel 4a
Hello everyone, last update before reaching the beta stage!

Changelog

fsociety tribute alpha#1.04
  • defconfig: Don't pre-create any loop devices (speeds up the booting process slightly, thanks to @kdrag0n)
  • defconfig: Disable UFS logging
  • sched: fair: Stop running idle_balance on active migration kick
  • cpufreq: Avoid leaving stale IRQ work items during CPU offline
  • Different CAF fixes and patches (thanks to @arter97 for providing the CAF repo mirror)
  • Revert "fs: ext4: fsync: optimize double-fsync() a bunch"
  • Revert "msm: kgsl: Increase worker thread priority"
  • Revert: "defconfig: Enable the BPF JIT compiler"

Download & Links
 

Top Liked Posts

  • There are no posts matching your filters.
  • 17
    7IatM5l.png

    Hello, friend.

    Inspired by @wrongway213's original custom kernel for Pixel 4/XL, I decided to make my own project once I grab my hand on a Google device myself. The naming is a tribute to both his ideas and Mr. Robot. fsociety tribute's goal is to give the device a set of useful features while ensuring its stability for a daily life usage. Those features and changes are pulled from different places like blu.spark, Sultan kernel, Kirisakura and many more.

    Features

    General features

    • Built with Google Clang version 14.0.2 + LLD linker
    • Full -O3 build with chipset's flags included (thanks to @eng.stk and @Sultanxda)
    • AnyKernel3 powered installation to stay OTA and flashers (EXKM, FKM...) friendly
    • ARM64 architecture optimization and performance patches
    • Merged security and code fixes from Google and Qualcomm - CAF
    • Filesystem (ext4/f2fs) optimizations
    • Scheduler code improvements for better CPU tasks assigning
    • Disabled several debugging cruft
    • WireGuard support
    Memory related features
    • Merge zRAM and zRAM's compression algorithm code updates
    • Increase zRAM's disksize to 4GB (from the stock 2GB). Apps can be easily memory intensive nowadays...
    • Swap 1 page at a time instead of the default's 8, so that it may help in case "the device is under extreme memory pressure"
      (source: https://source.android.com/devices/tech/perf/low-ram)
    • Reduce memory and CPU time usage by avoiding dynamic memory allocations in different kernel components (thanks to @arter97 and @Sultanxda)
    Network related features
    • Set BBR as the default TCP network congestion control and switch to fq_codel queue discipline
      (this combination improves network speed and reliability - thanks to @kdrag0n)
    • Enable support for TTL spoofing
    • Update Wireguard to its latest release
    Power-saving related features
    • The processor uses freq-energy-model with calculated capacities for power efficiency
    • Some of the main kernel parts (such as the audio drivers and the WLAN driver's delayed work/tasks) now use power-efficient workqueues (thanks to @Freak07)
    • Display "power-saving tweaks" merged-in (from Proton kernel - Pixel 4a 5G/Pixel 5)
    • Reduce the GPU idle timeout set to 58 ms and implement GPU power-saving changes from Sultan kernel
    • battery: Tweak QG SOC to be more linear/monotonic (from Proton kernel)
      That fixes the stock kernel's unlinear battery level curve, especially between 100% and 90%. The device will need a few charge-discharge cycles to take it into consideration
    Performance related features
    • Implement LRNG for better performance
    • Disable the GPU memory usage tracing (which was enabled for debugging purposes)
    • Return before thermal trip evaluates (it is a workaround for the lag occurring when the device is low on battery and automatically switches to battery saving mode)
    • Other under the hood changes
    Extra features
    • KCAL Color Control with KLAPSE v5.0 support (thanks to @savoca, @tbalden, @flar2 and @eng.stk)
    • Backlight min. brightness and HBM option (thanks to @flar2)
    • Boeffla Wakelock Blocker (to use with caution, and only if it is necessary)
    Download & Links

    Credits go to
    • @eng.stk for their clean sourcedrops' bases, their personal pieces of advice and also for their contributions
    • @wrongway213 for inspiring me to achieve this project, their precious free time and also for their contributions (especially this thread template)
    • @Freak07 for his guidance in solving my first kernel compiling issues and for his amazing contributions
    • @arter97 for his contributions
    • @kdrag0n for Proton kernel and their innovative contributions
    • @osm0sis for AnyKernel3 and his contributions
    • @Sultanxda for their outstanding contributions
    • @Kaz205 for their contributions
    • @flar2 for his contributions
    • @HolyAngel for HolyDragon kernel and their contributions
    • @pkgnex for his tuning script and contributions
    • @nathanchance for his compilation guides and repos

    Thanks to
    • @badaas, @beeshyams and all my Telegram's group members for being the awesome testers they are
    • Every person that submitted a donation and showed me their support!

    XDA:DevDB Information
    fsociety tribute for Pixel 4a, Kernel for the Google Pixel 4a

    Contributors
    momojuro
    Source code: Github repository

    Kernel Special Features: Boeffla Wakelock Blocker, KCAL, KLAPSE, Wireguard

    Version Information
    Status:
    Stable
    Current Stable Version: 2.66 (A12) - 2.62 (A11)
    Stable Release Date: 2022-03-13

    Created 2021-04-06
    Last Updated 2022-03-13
    11
    Hello friends,

    First of all, my apologies for those who gave me their requests/questions above. I was not able to answer them on time, but I am glad that blu_spark and HolyDragon kernels' maintainers were able to give you their replies.
    It's with bitterness that I am writing the following words as I decided to stop working on the project. Due to personal reasons, I am no longer able to maintain it updated. I am keeping the source code available, and I am open to any discussion related to the Pixel 4a's kernel development. The Telegram group will also stay open if needed. Finally, I would like to thank everyone that has been involved in fsociety tribute, from the developers, to the testers and the donators.
    9
    Hello friends,

    New update is up! Thanks to my Telegram testers for their useful feedback and reports.

    Changelog

    fsociety tribute stable#1.80

    Thanks to everyone involved in the following changes:
    • Fix an occasional kernel panic that had been affecting the previous versions
    • Revert "mm: compaction: Add automatic compaction mechanism"
    • Revert "qcacld-3.0: use power efficient workingqueue"
      (was causing higher idle battery drain due to its conflict with qcom_rx_wakelock disable)
    • Remove USB2 Fast Charge support
    • Add Haptic Feedback level Control w/ FPR Haptic Feedback Control support
      (thanks to engstk for their original work)
    • dsi: panel: add in-driver ULPS enabling (thanks to tbalden for their original work)
    • gpu: msm: Remove tracing
    • msm: camera: Stub out the camera_debug_util API and compile it out
    • cpuidle: enter_state: Don't needlessly calculate diff time
    • Revert "power: Reduce debug logging if logbuffer is still enabled"
    • defconfig: Disable Google logbuffer
    • defconfig: Set DISABLE_TRACE_PRINTK
    • defconfig: Disable Memory Dump driver
    • defconfig: Disable unnecessary errata
    • defconfig: Unset a bunch of debugging options
    • defconfig: Disable some sleep states debugging configs
      (thanks to Freak07 for their work)
    • qcacmn: Remove leftover debug function
    • arm64: vdso: Compile vDSO at O3 with Clang
    • arm64: dts: sdmmagpie: Disable debug monitoring
    • arm64: dts: sdmmagpie: Disable expedited RCU grace periods
    • arm64: dts: msm: disable kpti on sdmmagpie
    • arm64/dts: qcom: Disable CoreSight DT entries for sdmmagpie
    • hwtracing: coresight: Add entries from sdmmagpie-coresight
    Download & Links
    8
    Hello friends,

    I don't even know where to start, but I would like firstly to express my gratitude to my testers on the Telegram that have been giving me their support, and also their suggestions and feedback. I would also thank @eng.stk because his consistent work allowed me to gain back my motivation, and do my best for this new release.

    Changelog

    fsociety tribute stable#2.00
    • fsociety tribute has got now separate releases for Android 12 and Android 11 (thanks to engstk for providing the kernel sources)
    • Android 12 build has December 2021 security patches merged-in
    • Update AnyKernel3 to its latest release
    • Implement power management and code fixes for the UFS driver from CAF
    • Implement Adreno GPU drivers' security and code fixes from CAF
    • Wireguard's updates are checked and done automatically during the kernel's compilation (thanks to Freak07)
    • Set BBR as the default TCP compression algorithm and switch to fq_codel queue discipline
      (this combination improves network performance)
    • block: Replace zen I/O scheduler with cfq I/O scheduler
    • block: use ktime_get_ns() instead of sched_clock() for cfq and bfq
    • block: Set slice_idle to 0 on cfq (mobile devices are non-rotational)
    • block: blkdev: Set QUEUE_FLAG_NONROT by default
    • Revert the upstream ARM64 architecture patches because they ended up causing the device to bootloop,
      but safe patches were added; To cite a few:
    • arm64: Align __arch_clear_user() to 16 bytes as per upstream
    • arm64: Use 16 bytes optimized memcmp
    • arm64: bpf: optimize modulo operation
    • arm64: crypto: Correct march to 8.2-a
    • Revert the read-ahead and nr_requests' values to stock (less latency is preferred over statistical performance)
    • Change fsociety tribute tuning script's execution delay to 60 seconds during post-boot time for better reliability
    • Set back the timer frequency to 300Hz and adapt f2fs' uncongestion timeout accordingly
    • Fix stock's suspend errors and avoid a kernel crash from possible excessive logging of the binder driver
    • Use buffer from the stack space in different components of the kernel to avoid overhead (thanks to sultanxda and arter97)
    • msm: camera: Kill the vsync notification driver
      (it was responsible for 30% kernel CPU usage while using the camera - thanks to sultanxda)
    • Revert sultanxda's kernel components (ashmem, iommu, ion) rewrites
    • Revert arter97's zRAM optimizations
    Download & Links
    8
    Hello friends,

    FIrst of all, I would like to thank @Chrisnetika for their kind donation. It was heartwarming and definitely helped to cheer myself up. I would also like to thank my testers on Telegram, especially @beeshyams who has been working with me the whole month to make sure of today's update stability.

    Changelog

    fsociety tribute stable#1.65

    Thanks to everyone involved in the following changes:
    • treewide: Merge tag 'android-11.0.0_r0.85' of
      https://android.googlesource.com/kernel/msm (June 2021 security patch)
    • Merge fixes from CAF
    • Merge security fixes from GrapheneOS
    • wireguard: Update to version 1.0.20210606
    • Implement josenk's srandom driver (faster than random and urandom - https://github.com/josenk/srandom)
    • Implement zRAM deduplication with arter97's changes
    • mm: compaction: Add automatic compaction mechanism
    • techpack: audio: Merge last update
    • mbcache: Speed up cache entry creation
    • msm/sde/rotator: Remove unneeded PM QoS requests
    • drm/msm/sde: Remove unneeded PM QoS requests
    • msm: kgsl: Remove L2PC PM QoS feature
    • scsi: ufs: Add sultanxda's simple IRQ-affined PM QoS operations
    • scsi: ufs: Scrap Qualcomm's PM QoS implementation
    • qcacld-3.0: use power efficient workingqueue
    • qcacld-3.0: Nuke as much debug bloat as possible
    • qcacmn: Disable all of qdf_trace when WLAN_DEBUG is disabled
    • sched: fair: consider all running tasks in cpu for load balance
    • cpuidle: don't disable cpuidle when entering suspend
    • defconfig: Disable EDAC
    Download & Links