36 Commits
vic ... bka

Author SHA1 Message Date
Apelete Seketeli
7c5c12e46a sunfish: Explicitly disable "Enable GL comp backpressure"
When blur is enabled there is severe lag while scrolling apps in App
drawer, scrolling through recents and occasionally on QS pull down.

Explicitly disabling the "Enable GL comp backpressure" prop seems to
slove the issue.

Lag & janks are gone now, even with blur.
2025-12-24 04:12:31 +01:00
Apelete Seketeli
e0f37a9cb3 sunfish: Enable ADPF CPU hints for improved UI performance
Turns on `debug.sf.enable_adpf_cpu_hint` to allow SurfaceFlinger to
utilize Android Dynamic Performance Framework CPU hints, improving
overall UI responsiveness and frame pacing on Snapdragon devices.
2025-12-24 04:11:36 +01:00
Apelete Seketeli
89ab1db3e5 sunfish: Enable full ART optimizations with VDEX/ODEX
Enable comprehensive ART optimizations including VDEX and ODEX
generation for all system components to improve first-boot performance
and reduce application startup latency.

Configuration:
- WITH_DEXPREOPT := true          # Global dexpreopt enable
- DEX_PREOPT_DEFAULT := generate-vdex-and-image  # VDEX+ODEX gen
- WITH_DEXPREOPT_DEBUG_INFO := false  # Exclude debug symbols

Results:
- Verified generation of .odex files (optimized dex)
- Verified generation of .vdex files (verification dex)
- ART images created for core system components
- First boot time significantly reduced
- Application startup latency improved

Test procedure:
1. Full system build with 'm evolution' command
2. Verified artifacts in:
   - system/framework/oat/arm64/*.odex
   - system/framework/oat/arm64/*.vdex
   - system/app/*/oat/arm64/*.odex
   - system/priv-app/*/oat/arm64/*.vdex
3. Confirmed valid ART runtime loading during boot
2025-12-24 02:55:17 +01:00
Apelete Seketeli
a492424c9b sunfish: Speed profile services and wifi-service to reduce RAM and storage
- PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile

  Specifies the compiler filter used for system server code in Android
  builds. This setting ensures that system server components are
  optimized for performance using profile-guided compilation, which
  can improve runtime efficiency.

  https://source.android.com/docs/core/runtime/configure
2025-12-24 02:55:15 +01:00
Apelete Seketeli
a74e860f97 sunfish: Enable ScrollOptimizer
- persist.sys.perf.scroll_opt=true : enhances touch responsiveness and
  reduces rendering latency during UI scroll and fling operations by
  optimizing frame pacing and buffer handling,
- persist.sys.perf.scroll_opt.heavy_app=1 : used with previous
  setting, enables dynamic detection of heavy apps based on frame
  duration and buffer load.
2025-12-24 02:55:13 +01:00
Apelete Seketeli
c224b04a54 sunfish: Fix lag while app opening and QS lags
Optimizations :
- ro.hwui.render_ahead=5 : improve handling of QS pull-down animations
                           by prefetching frames,
- debug.hwui.use_hint_manager=true : send timing hints for better CPU
                                     scheduling,
- debug.hwui.target_cpu_time_percent=30 : percentage of frame time
                                          used for CPU work ; rest is
                                          reserved for GPU work.
2025-12-24 02:55:11 +01:00
Apelete Seketeli
a8883a4daf sunfish: Enable support for backround blur
Optimization change, allowing hardware accelerated rendering of window
blur to be turned on/off in developer settngs.
https://source.android.com/docs/core/display/window-blurs
2025-12-24 02:55:09 +01:00
Apelete Seketeli
b6ae0f1767 sunfish: Fetch vendor from personal repo
Forking vendor tree into Evolution X org repositories requires
privileged rights, and pushing fails due to git lfs:

batch request: git@lfs.undocumented.software: Permission denied (publickey).: exit status 255
error: failed to push some refs to 'github.com:Evolution-X-Devices/vendor_google_sunfish.git'

Fetching vendor tree from personal repo as a work-around.
2025-12-24 02:55:07 +01:00
Apelete Seketeli
095a47f833 sunfish: Select apps based on WITH_GMS flag
Selectively build with or without GAPPS and allow files to live in
specified root path depending on WITH_GMS flag.
2025-12-24 02:55:05 +01:00
Apelete Seketeli
b06c163aff sunfish: Remove space reserved for user gapps install 2025-12-24 02:55:04 +01:00
Apelete Seketeli
fea78e3060 sunfish: Allow files to live in specified root path
Accoridng to
https://codeberg.org/petefoths-projects/unofficial-l4m-builds/wiki/Build-errors,-fixes-and-work-arounds,
this seems the correct way to address following errors:

FAILED:
build/make/core/artifact_path_requirements.mk:31: warning:  device/google/sunfish/lineage_sunfish.mk produces files inside build/make/target/product/generic_system.mks artifact path requirement.
Offending entries:
system/priv-app/OmniStyle/OmniStyle.apk
system/app/GoogleExtShared/GoogleExtShared.apk
system/app/GooglePrintRecommendationService/GooglePrintRecommendationService.apk
system/etc/permissions/privapp-permissions-google.xml
system/priv-app/DocumentsUIGoogle/DocumentsUIGoogle.apk
system/priv-app/TagGoogle/TagGoogle.apk
In file included from build/make/core/main.mk:1173:
build/make/core/artifact_path_requirements.mk:31: error: Build failed.
2025-12-24 02:55:02 +01:00
Apelete Seketeli
76572d9c9a sunfish: Select mini gapps package instead of default gapps
This addresses the following build error:

[0620/164226.950272:ERROR:payload_generation_config.cc(270)] Sum of sizes in google_dynamic_partitions_partition_list is 5195177984, which is greater than google_dynamic_partitions_size (4873781248)
[0620/164226.950297:FATAL:generate_delta_main.cc(711)] Check failed: payload_config.target.ValidateDynamicPartitionMetadata().
out/host/linux-x86/bin/../lib64/libchrome.so(base::debug::StackTrace::StackTrace(unsigned long)+0x1b) [0x7face6bfb23b]
out/host/linux-x86/bin/../lib64/libchrome.so(logging::LogMessage::~LogMessage()+0x8c) [0x7face6b89cfc]
out/host/linux-x86/bin/delta_generator(+0x10e328) [0x555d10c12328]
/lib/x86_64-linux-gnu/libc.so.6(+0x2724a) [0x7face66a124a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7face66a1305]
out/host/linux-x86/bin/delta_generator(+0x10bce9) [0x555d10c0fce9]
2025-12-24 02:55:00 +01:00
Apelete Seketeli
017e023d65 sunfish: Remove xml permissions file from PRODUCT_COPY_FILES
This addresses the following build error:

[100% 166/166] writing legacy Make module rules ...
FAILED:
build/make/core/Makefile:161: error: overriding commands for target `out/target/product/sunfish/product/etc/default-permissions/default-permissions.xml', previously defined at out/soong/installs-lineage_sunfish.mk:127365
2025-12-24 02:54:58 +01:00
Apelete Seketeli
606dffa539 sunfish: Initialise Evolution X 11.x 2025-12-24 02:54:54 +01:00
basamaryan
6cbd0ebbb1 sunfish: Bump kernel BPF version override to 5.4.299
This matches android12-5.4

Test: atest netd_integration_test
Change-Id: I9b811c05610c11718d64289f10ab88c8c67df3c5
2025-10-10 16:11:48 +03:00
basamaryan
c17461c22f sunfish: Override kernel BPF version
Change-Id: I3c581f3120b6258b3b45020c5ba12f6bf5b0ee27
2025-10-10 16:11:41 +03:00
Michael Bestas
efb2cd3e1a sunfish: Enable UFFD GC
Kernel has support for it now.

Change-Id: I3863ee71477f321fe47646571b857fdc39a1902b
2025-10-10 16:11:32 +03:00
Michael Bestas
5d5d35adf4 sunfish: Drop android.hardware.power.stats@1.0-service.pixel for now
It's not compatible with FCM 6, so disable it until it's converted to
AIDL.

Change-Id: I2bea87ea39b0b626850ec123bc160fd0f5eaa072
2025-09-19 01:20:16 +03:00
Yumi Yukimura
f0209caf8a sunfish: manifest: Bump target-level to 6
Change-Id: I8d419d248f29b7d316a87d55e19ae7ff141e19a5
2025-09-19 01:20:16 +03:00
Roopesh Nataraja
67c99995c5 sunfish: Remove schedulerservice from device compatibility matrix
android.frameworks.schedulerservice is deprecated and limited to
max-level=5 in framework manifest. Hence, remove it from device
compatibility matrix to allow super image generation.

Change-Id: Icbeeeb07c9ba8c094a1c531e0a67bd1dbac8b926
2025-09-19 01:20:16 +03:00
Michael Bestas
1622de528a sunfish: Switch to AIDL health storage HAL
Change-Id: I0ae30e7480c3249eb2c70c17c3388bc1ff06ae82
2025-09-19 01:20:16 +03:00
Michael Bestas
e72c788d20 sunfish: Shim libsecureuisvc_jni with libgui_shim
Change-Id: Ic6261ee33f1b46a21c02eca9ec0d169bfd9613d2
2025-09-19 01:20:16 +03:00
Michael Bestas
590ab618d2 sunfish: Include qcom wlan namespace
Change-Id: Icccc76db58e96df48a605c5933b79cd523f7a424
2025-09-19 01:20:16 +03:00
Chi Zhang
ec6a9999f3 sunfish: sepolicy: Don't audit PowerStats access on legacy devices.
Bug: 317734530
Test: build
Change-Id: Id8c908c56ee2aea99ab0786d387a1105658b67e0
2025-09-19 01:20:16 +03:00
Nolen Johnson
afc7cf8d54 sunfish: sepolicy: Add Google Camera sepolicy
Change-Id: I6aed9e65852875df380d781e4704232f4bcadb21
2025-09-19 01:20:16 +03:00
Nolen Johnson
7c44c2e67d sunfish: sepolicy: Allow cameraserver to read more properties
Change-Id: I557b54790de6d1adec3847095c8045794870c0a6
2025-09-19 01:20:16 +03:00
Nolen Johnson
ae9bd7c527 sunfish: sepolicy: Allow sensors to create fifo_file as well
Change-Id: If071ba896db12cc7071737a7bd52b9ecc484ca9b
2025-09-19 01:20:16 +03:00
Nolen Johnson
15a7ebe23d sunfish: sepolicy: Label gralloc.qcom as same_process_hal_file
Change-Id: Icaf41166fbed739233bcaad6402a69e389eb8977
2025-09-19 01:20:16 +03:00
Michael Bestas
144b3bce57 sunfish: Drop pixelstats policy
Change-Id: I81ce5905dd87106237400a68e12a0cfb8d5075bd
2025-09-19 01:19:27 +03:00
Michael Bestas
59f210071b sunfish: Remove pixelstats-vendor
This does not build with the current hardware/google/pixel dependencies
so drop it.

Change-Id: Ifcbf49fb482164bd72ad0e1f05fa2d48ca2fbc98
2025-09-19 01:19:27 +03:00
Michael Bestas
06decba58d sunfish: Remove userdebug/eng configuration
Change-Id: I8a37c788060a4aae5a7585ea8142a6fbfec8cba4
2025-09-14 23:35:53 +03:00
Michael Bestas
1a6fc89ab1 sunfish: Drop unused AndroidBoard.mk
Change-Id: I6149ebbec9ebb3687819d8c72c31ebf124056644
2025-09-14 23:35:35 +03:00
Michael Bestas
41b6b4bd66 sunfish: Migrate mount point creation out of AndroidBoard.mk
Change-Id: Id5986b8a740e45f864eecdd2bd82d9455f128d6b
2025-09-14 23:35:35 +03:00
Alexander Koskovich
8f499e8315 sunfish: Drop PRODUCT_BUILD_SUPER_PARTITION
* Super image is not generated by a default 'm' build,
   but we at least want it for dist builds.

Change-Id: Ia12a5314632509fcd309d51ddf757efdc37499c3
2025-09-12 06:56:53 +00:00
Michael Bestas
c88379197a sunfish: Update display flags & packages
Required after display HAL blueprint conversion

Change-Id: Ifc4e10703d3424607b9dc8bcc8e417d1c88cc2f3
2025-09-10 21:19:54 +03:00
LuK1337
0bcbc16afc sunfish: Remove vendor/lineage device framework matrix inclusion
See: I78da6340f38b93fdc4c3694cb8f431f387d16c0d
Change-Id: I0b9f527de50ca02082be9b92375559f4893b2688
2025-08-24 02:00:46 +00:00
11 changed files with 32 additions and 30 deletions

View File

@@ -11,9 +11,6 @@ TARGET_KERNEL_CONFIG := sunfish_defconfig
TARGET_KERNEL_SOURCE := kernel/google/msm-4.14
TARGET_NEEDS_DTBOIMAGE := true
# Manifests
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += vendor/lineage/config/device_framework_matrix.xml
# Partitions
AB_OTA_PARTITIONS += \
vendor

View File

@@ -1,12 +1,4 @@
<compatibility-matrix version="1.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>

View File

@@ -124,3 +124,9 @@ PRODUCT_PROPERTY_OVERRIDES += \
# Enable zygote critical window.
PRODUCT_PROPERTY_OVERRIDES += \
zygote.critical_window.minute=10
# ART
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
WITH_DEXPREOPT := true
DEX_PREOPT_DEFAULT := generate-vdex-and-image
WITH_DEXPREOPT_DEBUG_INFO := false

View File

@@ -41,6 +41,9 @@ PRODUCT_PRODUCT_PROPERTIES += ro.opa.eligible_device=true
PRODUCT_PACKAGES += \
HbmSVManagerOverlay
# Kernel
PRODUCT_ENABLE_UFFD_GC := true
# Lineage Health
include hardware/google/pixel/lineage_health/device.mk

View File

@@ -26,6 +26,7 @@ PRODUCT_SOONG_NAMESPACES += \
hardware/google/pixel \
hardware/qcom/sm8150/display \
hardware/qcom/sm8150/gps \
hardware/qcom/wlan \
hardware/qcom/wlan/legacy \
hardware/qcom-caf/bootctrl \
system/chre/host/hal_generic \
@@ -355,7 +356,7 @@ PRODUCT_PACKAGES += \
# Storage health HAL
PRODUCT_PACKAGES += \
android.hardware.health.storage@1.0-service
android.hardware.health.storage-service.default
# Create input surface on the framework side
PRODUCT_PROPERTY_OVERRIDES += \
@@ -569,9 +570,9 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=13500000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=21000000
# Enable backpressure for GL comp
# Disable backpressure for GL comp to fix lag when blur is enabled
PRODUCT_PROPERTY_OVERRIDES += \
debug.sf.enable_gl_backpressure=1
debug.sf.enable_gl_backpressure=0
# Do not skip init trigger by default
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
@@ -611,10 +612,6 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall
# powerstats HAL
PRODUCT_PACKAGES += \
android.hardware.power.stats@1.0-service.pixel
# Recovery
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.recovery.device.rc:recovery/root/init.recovery.sunfish.rc

View File

@@ -7,7 +7,7 @@
"repository": "apelete/proprietary_vendor_google_sunfish",
"target_path": "vendor/google/sunfish",
"remote" : "github-non-los",
"branch": "lineage-22.2"
"branch": "lineage-23.0"
},
{
"repository": "kernel_google_msm-4.14",

View File

@@ -25,7 +25,7 @@ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<manifest version="1.0" type="device" target-level="5">
<manifest version="1.0" type="device" target-level="6">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
@@ -397,15 +397,6 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<transport>hwbinder</transport>
<fqname>@4.0::IKeymasterDevice/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.power.stats</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IPowerStats</name>
<instance>default</instance>
</interface>
</hal>
<!-- light HAL -->
<hal format="hidl">
<name>android.hardware.light</name>

View File

@@ -119,3 +119,6 @@ bluetooth.profile.pan.nap.enabled?=true
bluetooth.profile.pan.panu.enabled?=true
bluetooth.profile.pbap.server.enabled?=true
bluetooth.profile.sap.server.enabled?=true
# eBPF
ro.bpf.kver_override=5.4.299

View File

@@ -51,6 +51,8 @@ blob_fixups: blob_fixups_user_type = {
.patch_file('osaifu-keitai.patch'),
'product/etc/sysconfig/nexus.xml': blob_fixup()
.regex_replace('qulacomm', 'qualcomm'),
'system_ext/lib64/libsecureuisvc_jni.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/priv-app/HbmSVManager/HbmSVManager.apk': blob_fixup()
.apktool_patch('HbmSVManager.patch'),
(

View File

@@ -145,7 +145,7 @@ system_ext/priv-app/EuiccSupportPixelPermissions/EuiccSupportPixelPermissions.ap
system_ext/priv-app/RilConfigService/RilConfigService.apk
# SecureUI - from barbet AP2A.240805.005
system_ext/lib64/libsecureuisvc_jni.so;SYMLINK=system_ext/app/com.qualcomm.qti.services.secureui/lib/arm64/libsecureuisvc_jni.so|f90a20ddbf58c75d811f2637bd43662aab653653
system_ext/lib64/libsecureuisvc_jni.so;SYMLINK=system_ext/app/com.qualcomm.qti.services.secureui/lib/arm64/libsecureuisvc_jni.so|f90a20ddbf58c75d811f2637bd43662aab653653|27f5d0a332ab03b07fea46bc613289d913510e69
# SecureUI
system_ext/app/com.qualcomm.qti.services.secureui/com.qualcomm.qti.services.secureui.apk

View File

@@ -5,3 +5,14 @@ media.mediadrmservice.enable=true
# Graphics
ro.hardware.egl=adreno
ro.hardware.vulkan=adreno
ro.surface_flinger.supports_background_blur=1
debug.sf.enable_adpf_cpu_hint=true
# HWUI
ro.hwui.render_ahead=5
debug.hwui.use_hint_manager=true
debug.hwui.target_cpu_time_percent=30
# ScrollOptimizer
persist.sys.perf.scroll_opt=true
persist.sys.perf.scroll_opt.heavy_app=1