19 Commits
bka ... vic

Author SHA1 Message Date
Apelete Seketeli
01ea91a46a 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-10-06 12:32:54 +02:00
Apelete Seketeli
9c7d306015 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-10-03 02:55:49 +02:00
Apelete Seketeli
7e1154aba4 sunfish: Remove space reserved for user gapps install 2025-10-03 02:55:47 +02:00
Apelete Seketeli
a54e429eb5 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-10-03 02:55:43 +02:00
Apelete Seketeli
5d6729110c 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-10-03 02:55:39 +02:00
Apelete Seketeli
7fbf81c5b6 sunfish: Remove xml permissions file from PRODUCT_COPY_FILES
This addresses the following build error:

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-10-03 02:55:32 +02:00
Apelete Seketeli
d11f67ec7f sunfish: Initialise Evolution X 10.x 2025-10-03 02:55:29 +02:00
Chi Zhang
20c9226644 sunfish: sepolicy: Don't audit PowerStats access on legacy devices.
Bug: 317734530
Test: build
Change-Id: Id8c908c56ee2aea99ab0786d387a1105658b67e0
2025-09-19 01:16:43 +03:00
Nolen Johnson
01f5783943 sunfish: sepolicy: Add Google Camera sepolicy
Change-Id: I6aed9e65852875df380d781e4704232f4bcadb21
2025-09-19 01:16:43 +03:00
Nolen Johnson
8fe87ba469 sunfish: sepolicy: Allow cameraserver to read more properties
Change-Id: I557b54790de6d1adec3847095c8045794870c0a6
2025-09-19 01:16:43 +03:00
Nolen Johnson
45926e200e sunfish: sepolicy: Allow sensors to create fifo_file as well
Change-Id: If071ba896db12cc7071737a7bd52b9ecc484ca9b
2025-09-19 01:16:43 +03:00
Nolen Johnson
a7a9ea645e sunfish: sepolicy: Label gralloc.qcom as same_process_hal_file
Change-Id: Icaf41166fbed739233bcaad6402a69e389eb8977
2025-09-18 21:53:36 +03:00
Michael Bestas
4ed2544fd4 sunfish: Drop pixelstats policy
Change-Id: I81ce5905dd87106237400a68e12a0cfb8d5075bd
2025-09-18 21:53:36 +03:00
Michael Bestas
16f0e10a0e sunfish: Remove pixelstats-vendor
This does not build with the current hardware/google/pixel dependencies
so drop it.

Change-Id: Ifcbf49fb482164bd72ad0e1f05fa2d48ca2fbc98
2025-09-18 21:53:36 +03:00
Michael Bestas
3b0b55ad9e sunfish: Remove userdebug/eng configuration
Change-Id: I8a37c788060a4aae5a7585ea8142a6fbfec8cba4
2025-09-14 19:09:11 +00:00
Michael Bestas
7d0fd84ab1 sunfish: Drop unused AndroidBoard.mk
Change-Id: I6149ebbec9ebb3687819d8c72c31ebf124056644
2025-09-14 19:09:11 +00:00
Michael Bestas
722436009a sunfish: Migrate mount point creation out of AndroidBoard.mk
Change-Id: Id5986b8a740e45f864eecdd2bd82d9455f128d6b
2025-09-14 19:09:11 +00:00
Alexander Koskovich
85f1daee61 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 21:38:36 +00:00
Michael Bestas
4e1eab53e1 sunfish: Update display flags & packages
Required after display HAL blueprint conversion

Change-Id: Ifc4e10703d3424607b9dc8bcc8e417d1c88cc2f3
2025-09-10 18:23:20 +03:00
30 changed files with 73 additions and 477 deletions

View File

@@ -181,16 +181,6 @@ AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
AUDIO_FEATURE_ENABLED_CS35L41 := true
AUDIO_FEATURE_ENABLED_CS35L41_CALIBRATION_TOOL := true
# Graphics
TARGET_USES_GRALLOC1 := true
TARGET_USES_HWC2 := true
TARGET_USES_NV21_CAMERA_PREVIEW := true
# Display
TARGET_USES_DISPLAY_RENDER_INTENTS := true
TARGET_USES_COLOR_METADATA := true
TARGET_USES_DRM_PP := true
# Vendor Interface Manifest
DEVICE_MANIFEST_FILE := device/google/sunfish/manifest.xml
DEVICE_MATRIX_FILE := device/google/sunfish/compatibility_matrix.xml

View File

@@ -19,9 +19,6 @@ AB_OTA_PARTITIONS += \
vendor
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
# Reserve space for gapps install
-include vendor/lineage/config/BoardConfigReservedSize.mk
# SELinux
BOARD_SEPOLICY_DIRS += device/google/sunfish/sepolicy-lineage/dynamic
BOARD_SEPOLICY_DIRS += device/google/sunfish/sepolicy-lineage/vendor

View File

@@ -52,9 +52,6 @@ ifneq (REL,$(PLATFORM_VERSION_CODENAME))
PRODUCT_PACKAGES += com.android.vndk.current.on_vendor
endif
# Don't build super.img.
PRODUCT_BUILD_SUPER_PARTITION := false
# STOPSHIP deal with Qualcomm stuff later
# PRODUCT_RESTRICT_VENDOR_FILES := all

File diff suppressed because one or more lines are too long

View File

@@ -112,19 +112,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml
# Set the default property of tcpdump_logger on eng ROM.
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.tcpdump.log.alwayson=false \
persist.vendor.tcpdump.log.br_num=5
endif
# Disable Rescue Party on eng build
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PRODUCT_PROPERTIES += \
persist.sys.disable_rescue=true
endif
# Enable Incremental on the device via kernel module
PRODUCT_PROPERTY_OVERRIDES += \
ro.incremental.enable=module:/vendor/lib/modules/incrementalfs.ko

View File

@@ -77,6 +77,8 @@ PRODUCT_PACKAGES += \
disable_configstore
# Display
$(call soong_config_set,qtidisplay,drmpp,true)
$(call soong_config_set,qtidisplay,gralloc4,true)
$(call soong_config_set,qtidisplay,gralloc_handle_has_reserved_size,true)
# GPS

View File

@@ -78,10 +78,6 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/cs35l41/EVT1.1/cs35l41-revB2-dsp1-spk-prot.wmfw:$(TARGET_COPY_OUT_VENDOR)/firmware/cs35l41-revB2-dsp1-spk-prot.wmfw \
$(LOCAL_PATH)/audio/cs35l41/EVT1.1/R-cs35l41-revB2-dsp1-spk-prot.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/R-cs35l41-revB2-dsp1-spk-prot.bin \
# Audio CS35L41 speaker calibration tool
PRODUCT_PACKAGES_DEBUG += \
crus_sp_cal
# Audio effects
PRODUCT_PACKAGES += \
libqcomvoiceprocessingdescriptors
@@ -98,12 +94,6 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/acdbdata/Headset_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Headset_cal.acdb \
$(LOCAL_PATH)/audio/acdbdata/Speaker_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Speaker_cal.acdb \
$(LOCAL_PATH)/audio/acdbdata/adsp_avs_config.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/adsp_avs_config.acdb
# Audio ACDB workspace files for QACT
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/acdbdata/workspaceFile.qwsp:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/workspaceFile.qwsp
endif
endif
# Settings overlay packages for regulatory_info

142
device.mk
View File

@@ -44,7 +44,6 @@ PRODUCT_PRODUCT_PROPERTIES += \
masterclear.allow_retain_esim_profiles_after_fdr=true
PRODUCT_COPY_FILES += \
device/google/sunfish/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \
device/google/sunfish/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml
@@ -87,26 +86,17 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/ueventd.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc \
$(LOCAL_PATH)/init.ramoops.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.ramoops.sh \
# Partitions
PRODUCT_PACKAGES += \
vendor_firmware_mnt_mountpoint
MSM_VIDC_TARGET_LIST := sm6150 # Get the color format from kernel headers
MASTER_SIDE_CP_TARGET_LIST := sm6150 # ION specific settings
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).diag.rc
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.mpssrfs.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).mpssrfs.rc
else
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).diag.rc
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.mpssrfs.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).mpssrfs.rc
endif
# Enable DIAG issue debug
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.diagdebug.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.diagdebug.rc
endif
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.diag.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).diag.rc
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.hardware.mpssrfs.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).mpssrfs.rc
# A/B support
PRODUCT_PACKAGES += \
@@ -136,10 +126,6 @@ AB_OTA_POSTINSTALL_CONFIG += \
PRODUCT_PACKAGES += \
update_engine_sideload
PRODUCT_PACKAGES_DEBUG += \
f2fs_io \
check_f2fs
AB_OTA_POSTINSTALL_CONFIG += \
RUN_POSTINSTALL_vendor=true \
POSTINSTALL_PATH_vendor=bin/checkpoint_gc \
@@ -153,12 +139,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PACKAGES += \
checkpoint_gc
# The following modules are included in debuggable builds only.
PRODUCT_PACKAGES_DEBUG += \
bootctl \
r.vendor \
update_engine_client
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
@@ -311,26 +291,29 @@ PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.radio.snapshot_timer=0
PRODUCT_PACKAGES += \
hwcomposer.sm6150 \
hwcomposer.qcom \
android.hardware.graphics.composer@2.4-service-sm8150 \
gralloc.sm6150 \
gralloc.qcom \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
vendor.qti.hardware.display.allocator-service
PRODUCT_PROPERTY_OVERRIDES += \
ro.hardware.gralloc=qcom \
ro.hardware.hwcomposer=qcom
# Light HAL
PRODUCT_PACKAGES += \
lights.sm6150 \
lights.qcom \
hardware.google.light@1.1-service
PRODUCT_PROPERTY_OVERRIDES += \
ro.hardware.lights=qcom
# Memtrack HAL
PRODUCT_PACKAGES += \
vendor.qti.hardware.memtrack-service
#Bluetooth SAR HAL
PRODUCT_PACKAGES_DEBUG += \
bluetooth_sar_test
# Bluetooth SoC
PRODUCT_PROPERTY_OVERRIDES += \
vendor.qcom.bluetooth.soc=cherokee
@@ -396,13 +379,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.7-service-google
# Google Camera HAL test libraries in debug builds
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES_DEBUG += \
libgoogle_camera_hal_proprietary_tests \
libgoogle_camera_hal_tests
endif
PRODUCT_PACKAGES += \
android.hardware.sensors@2.0-service.multihal
@@ -414,13 +390,6 @@ PRODUCT_PACKAGES += \
PRODUCT_PACKAGES += \
android.hardware.contexthub-service.generic
# CHRE tools
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
chre_power_test_client \
chre_test_client
endif
# Boot control HAL
PRODUCT_PACKAGES += \
android.hardware.boot-service.qti \
@@ -464,19 +433,12 @@ ENABLE_VENDOR_RIL_SERVICE := true
USE_QCRIL_OEMHOOK := true
HOSTAPD := hostapd
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
HOSTAPD += hostapd_cli
endif
PRODUCT_PACKAGES += $(HOSTAPD)
WPA := wpa_supplicant.conf
WPA += wpa_supplicant
PRODUCT_PACKAGES += $(WPA)
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += wpa_cli
endif
# Wifi
PRODUCT_PACKAGES += \
android.hardware.wifi-service \
@@ -511,27 +473,6 @@ PRODUCT_PACKAGES += \
android.hardware.bluetooth.audio@2.0-impl \
android.hardware.audio.service
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
tinyplay \
tinycap \
tinymix \
tinypcminfo \
cplay
endif
# Audio hal xmls
# Audio Policy tables
# Audio ACDB data
# Audio ACDB workspace files for QACT
# Audio speaker tunning config data
# Audio audiozoom config data
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
@@ -540,24 +481,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.snd_card.open.retries=50
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
# Subsystem ramdump
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.ssr.enable_ramdumps=1
endif
# Subsystem silent restart
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.ssr.restart_level=modem,adsp,slpi
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
# Sensor debug flag
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.debug.ash.logger=0 \
persist.vendor.debug.ash.logger.time=0
endif
# setup dalvik vm configs
$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
@@ -565,16 +492,6 @@ $(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
PRODUCT_PACKAGES += \
charger_res_images
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
# b/36703476: Set default log size to 1M
PRODUCT_PROPERTY_OVERRIDES += \
ro.logd.size=1M
# b/114766334: persist all logs by default rotating on 30 files of 1MiB
PRODUCT_PROPERTY_OVERRIDES += \
logd.logpersistd=logcatd \
logd.logpersistd.size=30
endif
# Dumpstate HAL
PRODUCT_PACKAGES += \
android.hardware.dumpstate@1.1-service.sunfish
@@ -620,13 +537,8 @@ PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.radio.log_prefix="modem_log_"
# Enable modem logging for debug
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.modem.diag.mdlog=true
else
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.modem.diag.mdlog=false
endif
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.sys.modem.diag.mdlog_br_num=5
@@ -641,12 +553,6 @@ PRODUCT_PROPERTY_OVERRIDES += \
# Enable stats logging in LMKD
TARGET_LMKD_STATS_LOG := true
# default usb oem functions
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.usb.usbradio.config=diag
endif
# Enable app/sf phase offset as durations. The numbers below are translated from the existing
# positive offsets by finding the duration app/sf will have with the offsets.
# For SF the previous value was 6ms which under 16.6ms vsync time (60Hz) will leave SF with ~10.5ms
@@ -688,10 +594,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
# Reliability reporting
PRODUCT_PACKAGES += \
pixelstats-vendor
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# insmod files
@@ -736,13 +638,8 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
# Vendor verbose logging default property
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.verbose_logging_enabled=true
else
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.verbose_logging_enabled=false
endif
-include vendor/qcom/sm8150/proprietary/commonsys-intf/data/data_commonsys-intf_system_product.mk
-include vendor/qcom/sm8150/proprietary/commonsys-intf/data/data_commonsys-intf_vendor_product.mk
@@ -764,9 +661,6 @@ include hardware/google/pixel/citadel/citadel.mk
-include vendor/qcom/sm8150/proprietary/securemsm/config/smcinvoke_vendor_proprietary_product.mk
-include vendor/qcom/sm8150/proprietary/commonsys/securemsm/securemsm_system_product.mk
# storage
-include hardware/google/pixel/pixelstats/device.mk
# power HAL
-include hardware/google/pixel/power-libperfmgr/aidl/device.mk

16
evolution.dependencies Normal file
View File

@@ -0,0 +1,16 @@
[
{
"repository": "device_google_gs-common",
"target_path": "device/google/gs-common"
},
{
"repository": "apelete/proprietary_vendor_google_sunfish",
"target_path": "vendor/google/sunfish",
"remote" : "github-non-los",
"branch": "lineage-22.2"
},
{
"repository": "kernel_google_msm-4.14",
"target_path": "kernel/google/msm-4.14"
}
]

View File

@@ -1,20 +0,0 @@
#
# Copyright (C) 2020 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Trigger ramdump when property on
on property:vendor.radio.diag_debug=true
write /dev/kmsg "RIL Diag Issue Detected!"
write /proc/sysrq-trigger "c"

View File

@@ -1,108 +0,0 @@
#
# Copyright (C) 2018 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
on init
chmod 666 /dev/diag
on post-fs-data
# Modem logging collection
mkdir /data/vendor/radio 0777 radio radio
mkdir /data/vendor/radio/diag_logs 0777 system system
rm /data/vendor/radio/diag_logs/logs/diag_poweron_log.qmdl
# WLAN logging collection
mkdir /data/vendor/wifi 0777 system system
mkdir /data/vendor/wifi/cnss_diag 0777 system system
service diag_mdlog_start /vendor/bin/diag_mdlog
class late_start
user shell
group system diag media_rw
socket diag_router stream 0666 system system
disabled
oneshot
service diag_mdlog_stop /vendor/bin/diag_mdlog -k
class late_start
user shell
group system diag media_rw
disabled
oneshot
on boot && property:persist.vendor.sys.modem.diag.mdlog=*
rm /data/vendor/radio/diag_logs/diag_mdlog_pid
setprop vendor.sys.modem.diag.mdlog ${persist.vendor.sys.modem.diag.mdlog}
on property:vendor.sys.modem.diag.mdlog=true && property:persist.vendor.verbose_logging_enabled=true
start diag_mdlog_start
on property:vendor.sys.modem.diag.mdlog=false
start diag_mdlog_stop
on property:persist.vendor.sys.cnss.diag_qxdm=true
start vendor.cnss_diag
on property:persist.vendor.sys.cnss.diag_qxdm=false
stop vendor.cnss_diag
on property:persist.vendor.sys.cnss.diag_txt=true
start vendor.cnss_diag_txt
on property:persist.vendor.sys.cnss.diag_txt=false
stop vendor.cnss_diag_txt
service vendor.cnss_diag /vendor/bin/cnss_diag -q -u -w
class late_start
user system
group system
disabled
oneshot
service vendor.cnss_diag_txt /vendor/bin/cnss_diag -s -f -P -m /data/vendor/wifi/cnss_diag/cnss_diag.conf -t HELIUM
class late_start
user system
group system
disabled
oneshot
on property:vendor.debug.ramdump.force_crash=true
write /proc/sysrq-trigger "c"
on property:ro.vendor.bluetooth.ftm_enabled=true
start ftmd
service ftmd /vendor/bin/ftmdaemon
class late_start
user root
group bluetooth net_bt_admin misc diag net_bt
disabled
oneshot
on property:vendor.sys.logger.bluetooth=true
setprop persist.vendor.service.bdroid.snooplog true
setprop persist.vendor.service.bdroid.fwsnoop true
on property:vendor.sys.logger.bluetooth=false
setprop persist.vendor.service.bdroid.snooplog false
setprop persist.vendor.service.bdroid.fwsnoop false
on property:persist.bluetooth.btsnoopenable=true
setprop persist.vendor.service.bdroid.soclog true
on property:persist.bluetooth.btsnoopenable=false
setprop persist.vendor.service.bdroid.soclog false
on property:vendor.usb.config=*
start usbd

View File

@@ -1,11 +0,0 @@
on post-fs-data
# Modem Remote FS
mkdir /data/vendor/rfs 0770 vendor_rfs vendor_rfs
mkdir /data/vendor/rfs/mpss 0770 vendor_rfs vendor_rfs
mkdir /data/vendor/tombstones/rfs 0770 vendor_rfs vendor_rfs
write /data/vendor/rfs/mpss/mcfg_nv_list_flag "1"
chown vendor_rfs vendor_rfs /data/vendor/rfs/mpss/mcfg_nv_list_flag
chmod 0700 /data/vendor/rfs/mpss/mcfg_nv_list_flag
on property:vendor.sys.modem.diag.efsdump=true
chmod 0660 /data/vendor/rfs/mpss/modem_efs

View File

@@ -1,10 +0,0 @@
[
{
"repository": "android_device_google_gs-common",
"target_path": "device/google/gs-common"
},
{
"repository": "android_kernel_google_msm-4.14",
"target_path": "kernel/google/msm-4.14"
}
]

View File

@@ -26,4 +26,20 @@ PRODUCT_BUILD_PROP_OVERRIDES += \
BuildFingerprint=google/sunfish/sunfish:13/TQ3A.230805.001.S1/10786265:user/release-keys \
DeviceProduct=sunfish
ifeq ($(WITH_GMS),false)
PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
system/priv-app/OmniStyle/OmniStyle.apk
else
# Gapps
TARGET_USES_MINI_GAPPS := true
PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \
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
endif
$(call inherit-product, vendor/google/sunfish/sunfish-vendor.mk)

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2025 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<string name="build_maintainer_summary" translatable="false">apelete</string>
<string name="build_maintainer_donate_url" translatable="false">https://apelete.missene.com</string>
</resources>

View File

@@ -1,35 +0,0 @@
//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_binary {
name: "pixelstats-vendor",
init_rc: ["pixelstats-vendor.sunfish.rc"],
srcs: [
"service.cpp",
],
shared_libs: [
"libbase",
"liblog",
"libutils",
"libpixelstats",
],
proprietary: true,
static_libs: ["chre_client"],
header_libs: ["chre_api"],
}

View File

@@ -1,4 +0,0 @@
service vendor.pixelstats_vendor /vendor/bin/pixelstats-vendor
class hal
user system
group system context_hub readproc

View File

@@ -1,74 +0,0 @@
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define LOG_TAG "pixelstats"
#include <android-base/logging.h>
#include <utils/StrongPointer.h>
#include <pixelstats/DropDetect.h>
#include <pixelstats/SysfsCollector.h>
#include <pixelstats/UeventListener.h>
using android::sp;
using android::hardware::google::pixel::DropDetect;
using android::hardware::google::pixel::SysfsCollector;
using android::hardware::google::pixel::UeventListener;
#define BLOCK_STATS_LENGTH 11
#define UFSHC_PATH(filename) "/dev/sys/block/bootdevice/" #filename
const struct SysfsCollector::SysfsPaths sysfs_paths = {
.SlowioReadCntPath = UFSHC_PATH(slowio_read_cnt),
.SlowioWriteCntPath = UFSHC_PATH(slowio_write_cnt),
.SlowioUnmapCntPath = UFSHC_PATH(slowio_unmap_cnt),
.SlowioSyncCntPath = UFSHC_PATH(slowio_sync_cnt),
.CycleCountBinsPath = "/sys/class/power_supply/battery/cycle_counts",
.ImpedancePath = "/sys/devices/platform/codec_detect/resistance_left_right",
.CodecPath = "/sys/devices/platform/codec_detect/codec_state",
.SpeechDspPath = "/sys/devices/platform/codec_detect/wdsp_stat",
.Codec1Path = "/sys/devices/platform/codec_detect/headset_codec_state",
.UFSLifetimeA = UFSHC_PATH(health/lifetimeA),
.UFSLifetimeB = UFSHC_PATH(health/lifetimeB),
.UFSLifetimeC = UFSHC_PATH(health/lifetimeC),
.F2fsStatsPath = "/sys/fs/f2fs/",
.EEPROMPath = "/dev/battery_history",
.UFSErrStatsPath = {
UFSHC_PATH(err_stats/err_host_reset)
}
};
const char *const kAudioUevent = "/kernel/q6audio/q6voice_uevent";
const char *const kSSOCDetailsPath = "/sys/class/power_supply/battery/ssoc_details";
int main() {
LOG(INFO) << "starting PixelStats";
// b/118713028 Expect failure until drop detect nanoapp is enabled
sp<DropDetect> dropDetector = DropDetect::start();
if (!dropDetector) {
LOG(ERROR) << "Unable to launch drop detection";
return 1;
}
UeventListener ueventListener(kAudioUevent, kSSOCDetailsPath);
std::thread listenThread(&UeventListener::ListenForever, &ueventListener);
listenThread.detach();
SysfsCollector collector(sysfs_paths);
collector.collect(); // This blocks forever.
return 0;
}

View File

@@ -5,7 +5,6 @@ hal_health_default unlabeled file b/156200409
hal_neuralnetworks_default default_prop file b/159570217
hal_vibrator_default default_prop file b/162700134
init_qti_chg_policy sysfs_charge file b/162702119
pixelstats_vendor sysfs file b/161875858
platform_app default_android_hwservice hwservice_manager b/156059972
shell device_config_runtime_native_boot_prop file b/175106535
shell sysfs file b/175106535

View File

@@ -10,7 +10,6 @@
/dev/qg_battery u:object_r:qg_device:s0
# system binaries
/system/bin/hw/hardware\.google\.pixelstats@1\.0-service u:object_r:pixelstats_system_exec:s0
/vendor/bin/easelmanagerd u:object_r:easel_exec:s0
/dev/battery_history u:object_r:battery_history_device:s0

View File

@@ -13,3 +13,6 @@ binder_call(grilservice_app, hal_wifi_ext)
# this denial on grilservice_app since this AudioMetric functionality is not used in legacy device.
dontaudit grilservice_app hal_audiometricext_hwservice:hwservice_manager find;
# this denial on grilservice_app since ODPM isn't accessed / available on legacy devices.
dontaudit grilservice_app hal_power_stats_service:service_manager find;

View File

@@ -23,6 +23,11 @@ allow hal_camera_default mnt_vendor_file:dir search;
allow hal_camera_default persist_camera_file:dir search;
allow hal_camera_default persist_camera_file:file r_file_perms;
# For camera hal to talk with statsd
allow hal_camera_default statsdw_socket:sock_file write;
# Silence annoying spam from Google Camera
dontaudit hal_camera_default statsd:unix_dgram_socket sendto;
# For camera hal to use system property
set_prop(hal_camera_default, camera_prop)
get_prop(hal_camera_default, camera_ro_prop)

View File

@@ -1,4 +1,3 @@
type hal_pixelstats_hwservice, hwservice_manager_type, vendor_hwservice_type;
type hal_darwinn_hwservice, hwservice_manager_type, vendor_hwservice_type;
type hal_radioext_hwservice, hwservice_manager_type, vendor_hwservice_type;
type hal_wifi_ext_hwservice, hwservice_manager_type, vendor_hwservice_type;

View File

@@ -1,4 +1,3 @@
hardware.google.pixelstats::IPixelStats u:object_r:hal_pixelstats_hwservice:s0
hardware.google.light::ILight u:object_r:hal_light_hwservice:s0
hardware.google.bluetooth.bt_channel_avoidance::IBTChannelAvoidance u:object_r:hal_bluetooth_coexistence_hwservice:s0
hardware.google.bluetooth.sar::IBluetoothSar u:object_r:hal_bluetooth_coexistence_hwservice:s0

View File

@@ -1,2 +0,0 @@
hal_attribute(pixelstats)type pixelstats_system, domain, coredomain;
init_daemon_domain(pixelstats_system)type pixelstats_system_exec, exec_type, file_type, system_file_type;

View File

@@ -1,18 +0,0 @@
unix_socket_connect(pixelstats_vendor, chre, chre)
get_prop(pixelstats_vendor, hwservicemanager_prop)
hwbinder_use(pixelstats_vendor)
allow pixelstats_vendor hal_pixelstats_hwservice:hwservice_manager find;
binder_call(pixelstats_vendor, pixelstats_system)
allow pixelstats_vendor fwk_stats_hwservice:hwservice_manager find;
binder_use(pixelstats_vendor)
allow pixelstats_vendor fwk_stats_service:service_manager find;
allow pixelstats_vendor sysfs_scsi_devices_0000:file rw_file_perms;
allow pixelstats_vendor battery_history_device:chr_file r_file_perms;
# UeventListener
r_dir_file(pixelstats_vendor, sysfs_pixelstats)
r_dir_file(pixelstats_vendor, sysfs_typec_info)

View File

@@ -1,5 +1,7 @@
# Camera service uses gralloc, gralloc mapper wants to talk to the GPU
# and use debug properties
get_prop(cameraserver, camera_prop)
get_prop(cameraserver, camera_ro_prop)
get_prop(cameraserver, vendor_display_prop)
# It's confirmed that all attempts of access gpu_device by the gralloc mapper

View File

@@ -14,5 +14,6 @@ r_dir_file(sensors, sysfs_msm_subsys)
allow sensors sysfs_ssr:file r_file_perms;
allow sensors sensors_vendor_data_file:dir rw_dir_perms;
allow sensors sensors_vendor_data_file:file create_file_perms;
allow sensors sensors_vendor_data_file:fifo_file create_file_perms;
dontaudit sensors sysfs_esoc:dir r_dir_perms;

View File

@@ -40,5 +40,5 @@
/dev/block/platform/soc/1d84000\.ufshc/by-name/vbmeta_system_[ab] u:object_r:custom_ab_block_device:s0
/dev/block/platform/soc/1d84000\.ufshc/by-name/multiimgoem_[ab] u:object_r:custom_ab_block_device:s0
/vendor/lib(64)?/hw/gralloc\.sm6150\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/hw/gralloc\.qcom\.so u:object_r:same_process_hal_file:s0
/vendor/lib(64)?/hw/vulkan\.adreno\.so u:object_r:same_process_hal_file:s0

View File

@@ -1,26 +0,0 @@
LOCAL_PATH := $(call my-dir)
#A/B builds require us to create the mount points at compile time.
#Just creating it for all cases since it does not hurt.
FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT)
$(FIRMWARE_MOUNT_POINT):
@echo "Creating $(FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
# copy kernel headers to the build tree
$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr: $(wildcard $(PRODUCT_VENDOR_KERNEL_HEADERS)/*)
rm -rf $@
mkdir -p $@/include
cp -a $(PRODUCT_VENDOR_KERNEL_HEADERS)/. $@/include
#----------------------------------------------------------------------
# build and sign the final stage of bootloader
#----------------------------------------------------------------------
.PHONY: aboot
ifeq ($(USESECIMAGETOOL), true)
aboot: gensecimage_target gensecimage_install
else
aboot: $(INSTALLED_BOOTLOADER_MODULE)
endif