Android 15.0.0 Release 21 (BP1A.250305.020)

-----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8fKCAAKCRDorT+BmrEO
 eMs3AJ95J96e0Kv/3dVWOrkTI5HXZjn+7QCfT8gs70sr9lbjAIKOoMKAueJM8y0=
 =K75U
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgPpdpjxPACTIhnlvYz0GM4BR7FJ
 +rYv3jMbfxNKD3JvcAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
 AAAAQIRhGQGF/72GaYamROts4zqtuErZfylD49Os+O2IaHyRthj2oyNc/vzf6y6vE1EYic
 QnXbtRPS7ocAjwTM2oGgY=
 -----END SSH SIGNATURE-----

Merge tag 'android-15.0.0_r21' into staging/lineage-22.2_merge-android-15.0.0_r21

Android 15.0.0 Release 21 (BP1A.250305.020)

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ8fKCAAKCRDorT+BmrEO
# eMs3AJ95J96e0Kv/3dVWOrkTI5HXZjn+7QCfT8gs70sr9lbjAIKOoMKAueJM8y0=
# =K75U
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed Mar  5 05:50:32 2025 EET
# gpg:                using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [ultimate]

# By timmyli (6) and others
# Via Android (Google) Code Review (65) and others
* tag 'android-15.0.0_r21': (87 commits)
  Revert "Add amm experiment."
  Reduce the trace instance irq_gia_google's buffer size
  Remove code that just re-enables IRQ and GIA events
  Add amm experiment.
  storage: add missing bug_map
  Add apf experiment.
  modem_svc: add modem_svc_sit to solve sepolicy conflicts arising from different device versions
  modem_svc: move shared_modem_platform related sepolicy to gs-common
  Add Intelligence rc
  Always include camera calibration tools in debug builds.
  Add kswapd experiment.
  Add Proc Vendor Sched Sepolicy Fix
  Add recovery support for perf experiments.
  Revert "Allow tachyon service to make binder calls to GCA"
  Allow tachyon service to make binder calls to GCA
  Add libg3a logging initrc files.
  Rename aocx.IAoc to aocx.IAoc/default to support stable AIDL
  dump_chip_info: dump more tables from chip-info driver
  Introduce interrupts module for debug and trace
  Revert^2 "gs-common: Move cpufreq perf settings to gs-common"
  ...

 Conflicts:
	aoc/aoc.mk
	camera/lyric.mk

Change-Id: Ifd45cd3aa7799789ded7db2b0f24207c39367067
This commit is contained in:
Michael Bestas 2025-03-09 10:58:51 +02:00
commit afe59287ff
165 changed files with 1426 additions and 112 deletions

View file

@ -4,16 +4,15 @@ PRODUCT_PACKAGES += dump_aoc \
aocd \ aocd \
aocxd aocxd
ifeq (,$(filter aosp_% lineage_%,$(TARGET_PRODUCT)))
# IAudioMetricExt HIDL
PRODUCT_PACKAGES += \
vendor.google.audiometricext@1.0-service-vendor
endif
# If AoC Daemon is not present on this build, load firmware at boot via rc # If AoC Daemon is not present on this build, load firmware at boot via rc
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
device/google/gs-common/aoc/conf/init.aoc.daemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.aoc.rc device/google/gs-common/aoc/conf/init.aoc.daemon.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.aoc.rc
ifneq ($(wildcard vendor/google/whitechapel/aoc/aocx/aidl/aocx/framework_compatibility_matrix.xml),)
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += \
vendor/google/whitechapel/aoc/aocx/aidl/aocx/framework_compatibility_matrix.xml
endif
# AoC debug support # AoC debug support
PRODUCT_PACKAGES_ENG += \ PRODUCT_PACKAGES_ENG += \
aocdump \ aocdump \

View file

@ -34,6 +34,9 @@
/dev/acd-chre_bt_offload_ctl u:object_r:aoc_device:s0 /dev/acd-chre_bt_offload_ctl u:object_r:aoc_device:s0
/dev/acd-chre_bt_offload_data_tx u:object_r:aoc_device:s0 /dev/acd-chre_bt_offload_data_tx u:object_r:aoc_device:s0
/dev/acd-chre_bt_offload_data_rx u:object_r:aoc_device:s0 /dev/acd-chre_bt_offload_data_rx u:object_r:aoc_device:s0
/dev/acd-chre_ctl u:object_r:aoc_device:s0
/dev/acd-chre_data_tx u:object_r:aoc_device:s0
/dev/acd-chre_data_rx u:object_r:aoc_device:s0
# AoC vendor binaries # AoC vendor binaries
/vendor/bin/aocd u:object_r:aocd_exec:s0 /vendor/bin/aocd u:object_r:aocd_exec:s0

View file

@ -1 +1 @@
aocx.IAocx u:object_r:aocx:s0 aocx.IAocx/default u:object_r:aocx:s0

View file

@ -16,7 +16,11 @@ PRODUCT_PACKAGES += \
libhapticgeneratoraidl \ libhapticgeneratoraidl \
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/aidl BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/aidl
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio ifeq ($(AUDIO_USE_DPTX_SEPOLICY),true)
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio/dptx
else
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio/drmdp
endif
include device/google/gs-common/audio/common.mk include device/google/gs-common/audio/common.mk
@ -27,4 +31,11 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_SYSTEM_EXT_PROPERTIES += \ PRODUCT_SYSTEM_EXT_PROPERTIES += \
ro.audio.ihaladaptervendorextension_enabled=true ro.audio.ihaladaptervendorextension_enabled=true
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
$(call soong_config_set,aoc_audio_func,record_tuning_keys,true)
$(call soong_config_set,aoc_audio_func,aidl_command_interface,true)
endif
$(call soong_config_set,pixel_audio_hal_type,aidl_build,true) $(call soong_config_set,pixel_audio_hal_type,aidl_build,true)

View file

@ -1,15 +1,7 @@
<compatibility-matrix version="1.0" type="framework"> <compatibility-matrix version="1.0" type="framework">
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
<hal format="aidl"> <hal format="aidl">
<name>vendor.google.whitechapel.audio.extension</name> <name>vendor.google.whitechapel.audio.extension</name>
<version>3</version> <version>4</version>
<interface> <interface>
<name>IAudioExtension</name> <name>IAudioExtension</name>
<instance>default</instance> <instance>default</instance>

View file

@ -1,11 +1,2 @@
<manifest version="1.0" type="device"> <manifest version="1.0" type="device">
<hal format="hidl">
<name>vendor.google.audiometricext</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAudioMetricExt</name>
<instance>default</instance>
</interface>
</hal>
</manifest> </manifest>

View file

@ -32,8 +32,14 @@ PRODUCT_PACKAGES += \
libamcsextfile \ libamcsextfile \
audio_amcs_ext \ audio_amcs_ext \
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
# IAudioMetricExt HIDL
PRODUCT_PACKAGES += \
vendor.google.audiometricext@1.0-service-vendor
endif
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
include device/google/gs-common/audio/common.mk include device/google/gs-common/audio/common.mk
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product_gs101.xml DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product_gs101.xml

View file

@ -32,6 +32,12 @@ PRODUCT_PACKAGES += \
audio_spk_35l41 \ audio_spk_35l41 \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM) sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
# IAudioMetricExt HIDL
PRODUCT_PACKAGES += \
vendor.google.audiometricext@1.0-service-vendor
endif
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
include device/google/gs-common/audio/common.mk include device/google/gs-common/audio/common.mk

View file

@ -35,8 +35,14 @@ PRODUCT_PACKAGES += \
audio_hdmi_aoc \ audio_hdmi_aoc \
sound_trigger.primary.$(TARGET_BOARD_PLATFORM) sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
# IAudioMetricExt HIDL
PRODUCT_PACKAGES += \
vendor.google.audiometricext@1.0-service-vendor
endif
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio/drmdp
include device/google/gs-common/audio/common.mk include device/google/gs-common/audio/common.mk

View file

@ -15,6 +15,7 @@ allow hal_audio_default amcs_device:chr_file rw_file_perms;
allow hal_audio_default sysfs_pixelstats:file rw_file_perms; allow hal_audio_default sysfs_pixelstats:file rw_file_perms;
allow hal_audio_default sysfs_extcon:dir search; allow hal_audio_default sysfs_extcon:dir search;
allow hal_audio_default sysfs_extcon:file r_file_perms; allow hal_audio_default sysfs_extcon:file r_file_perms;
allow hal_audio_default vendor_usb_debugfs:dir search;
#allow access to aoc and kernel boottime #allow access to aoc and kernel boottime
allow hal_audio_default sysfs_aoc:dir { search }; allow hal_audio_default sysfs_aoc:dir { search };

View file

@ -0,0 +1 @@
genfscon sysfs /devices/platform/dwc_dptx-audio/extcon/hdmi_audio u:object_r:sysfs_extcon:s0

16
bluetooth/bluetooth.mk Normal file
View file

@ -0,0 +1,16 @@
PRODUCT_SOONG_NAMESPACES += vendor/google/connectivity/bluetooth/common
PRODUCT_PACKAGES += \
android.hardware.bluetooth-V1-ndk.so \
android.hardware.bluetooth.finder-V1-ndk.so \
android.hardware.bluetooth.ranging-V1-ndk.so \
android.hardware.bluetooth-service.pixel \
vendor.google.bluetooth_ext-V1-ndk.so \
bt_vendor.conf \
android.hardware.bluetooth.prebuilt.xml \
android.hardware.bluetooth_le.prebuilt.xml
BOARD_SEPOLICY_DIRS += device/google/gs-common/bluetooth/sepolicy
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/powerstats
DEVICE_MANIFEST_FILE += device/google/gs-common/bluetooth/manifest_bluetooth.xml
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/bluetooth/compatibility_matrix.xml

View file

@ -0,0 +1,30 @@
<compatibility-matrix version="1.0" type="framework">
<hal format="aidl" optional="true">
<name>vendor.google.bluetooth_ext</name>
<version>1</version>
<interface>
<name>IBluetoothFinder</name>
<instance>default</instance>
</interface>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
<interface>
<name>IBTChannelAvoidance</name>
<instance>default</instance>
</interface>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
<interface>
<name>IBluetoothExt</name>
<instance>default</instance>
</interface>
<interface>
<name>IBluetoothEwp</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

20
bluetooth/dump/Android.bp Normal file
View file

@ -0,0 +1,20 @@
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_binary {
name: "dump_bt",
srcs: ["dump.cpp"],
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
shared_libs: [
"libbase",
"libdump",
"liblog",
],
vendor: true,
relative_install_path: "dump",
}

44
bluetooth/dump/dump.cpp Normal file
View file

@ -0,0 +1,44 @@
/*
* Copyright 2023 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.
*/
#include <dump/pixel_dump.h>
#include <android-base/file.h>
#define PIXELBT_ACTIVITY_LOG_DIRECTORY "/data/vendor/bluetooth"
#define PIXELBT_SNOOP_LOG_DIRECTORY "/data/vendor/bluetooth"
#define PIXELBT_FW_LOG_DIRECTORY "/data/vendor/ssrdump/coredump"
#define PIXELBT_SNOOP_LOG_PREFIX "btsnoop_hci_vnd"
#define PIXELBT_BACKUP_SNOOP_LOG_PREFIX "backup_btsnoop_hci_vnd"
#define PIXELBT_FW_DUMP_LOG_PREFIX "coredump_bt_socdump_"
#define PIXELBT_CHRE_DUMP_LOG_PREFIX "coredump_bt_chredump_"
#define PIXELBT_HAL_DUMP_LOG_PREFIX "coredump_bt_"
#define PIXELBT_ACTIVITY_LOG_PREFIX "bt_activity_"
int main() {
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "bt");
if (mkdir(outputDir.c_str(), 0777) == -1) {
printf("Unable to create folder: %s\n", outputDir.c_str());
return 0;
}
dumpLogs(PIXELBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 4,
PIXELBT_SNOOP_LOG_PREFIX);
dumpLogs(PIXELBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 2, PIXELBT_BACKUP_SNOOP_LOG_PREFIX);
dumpLogs(PIXELBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, PIXELBT_FW_DUMP_LOG_PREFIX);
dumpLogs(PIXELBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, PIXELBT_CHRE_DUMP_LOG_PREFIX);
dumpLogs(PIXELBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, PIXELBT_HAL_DUMP_LOG_PREFIX);
dumpLogs(PIXELBT_ACTIVITY_LOG_DIRECTORY, outputDir.c_str(), 10, PIXELBT_ACTIVITY_LOG_PREFIX);
return 0;
}

View file

@ -0,0 +1,3 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/bluetooth/dump/sepolicy/
PRODUCT_PACKAGES_DEBUG += dump_bt

View file

@ -0,0 +1,12 @@
# pixel bluetooth common hal service
pixel_bugreport(dump_bt)
allow hal_dumpstate_default vendor_bt_data_file:dir { open read search };
allow hal_dumpstate_default vendor_bt_data_file:file read;
allow dump_bt radio_vendor_data_file:dir create_dir_perms;
allow dump_bt radio_vendor_data_file:file create_file_perms;
allow dump_bt vendor_bt_data_file:dir r_dir_perms;
allow dump_bt vendor_bt_data_file:file r_file_perms;
allow dump_bt sscoredump_vendor_data_crashinfo_file:dir search;
allow dump_bt sscoredump_vendor_data_coredump_file:dir r_dir_perms;
allow dump_bt sscoredump_vendor_data_coredump_file:file r_file_perms;

View file

@ -0,0 +1,2 @@
# bt common hal dump_bt service
/vendor/bin/dump/dump_bt u:object_r:dump_bt_exec:s0

View file

@ -0,0 +1,27 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.bluetooth</name>
<version>1</version>
<fqname>IBluetoothHci/default</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.bluetooth.finder</name>
<version>1</version>
<fqname>IBluetoothFinder/default</fqname>
</hal>
<hal format="aidl">
<name>android.hardware.bluetooth.ranging</name>
<version>1</version>
<fqname>IBluetoothChannelSounding/default</fqname>
</hal>
<hal format="aidl">
<name>vendor.google.bluetooth_ext</name>
<version>1</version>
<fqname>IBTChannelAvoidance/default</fqname>
<fqname>IBluetoothCcc/default</fqname>
<fqname>IBluetoothEwp/default</fqname>
<fqname>IBluetoothExt/default</fqname>
<fqname>IBluetoothFinder/default</fqname>
<fqname>IBluetoothSar/default</fqname>
</hal>
</manifest>

View file

@ -0,0 +1,3 @@
# Bt Wifi Coexistence device
type wb_coexistence_dev, dev_type;

View file

@ -0,0 +1,6 @@
# Bluetooth
/vendor/bin/hw/android\.hardware\.bluetooth-service\.pixel u:object_r:hal_bluetooth_btlinux_exec:s0
/dev/wbrc u:object_r:wb_coexistence_dev:s0
/dev/ttySAC16 u:object_r:hci_attach_dev:s0

View file

@ -0,0 +1,8 @@
# Bluetooth pin control device node
genfscon sysfs /devices/platform/odm/odm:btbcm/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
genfscon sysfs /devices/platform/odm/odm:btbcm/rfkill/rfkill2/state u:object_r:sysfs_bluetooth_writable:s0
genfscon proc /bluetooth/sleep/lpm u:object_r:proc_bluetooth_writable:s0
genfscon proc /bluetooth/sleep/btwrite u:object_r:proc_bluetooth_writable:s0
genfscon proc /bluetooth/sleep/btwake u:object_r:proc_bluetooth_writable:s0
genfscon proc /bluetooth/timesync u:object_r:proc_bluetooth_writable:s0

View file

@ -0,0 +1,19 @@
# coexistence device file node
add_hwservice(hal_bluetooth_btlinux, hal_bluetooth_coexistence_hwservice);
add_service(hal_bluetooth_btlinux, hal_bluetooth_coexistence_service);
allow hal_bluetooth_btlinux wb_coexistence_dev:chr_file rw_file_perms;
# power stats
allow hal_bluetooth_btlinux hal_power_stats_vendor_service:service_manager find;
binder_call(hal_bluetooth_btlinux, hal_power_stats_default)
# bt firmware dump
allow hal_bluetooth_btlinux aconfig_storage_metadata_file:dir search;
allow hal_bluetooth_btlinux sscoredump_vendor_data_crashinfo_file:dir rw_dir_perms;
allow hal_bluetooth_btlinux sscoredump_vendor_data_crashinfo_file:file rw_file_perms;
userdebug_or_eng(`
allow hal_bluetooth_btlinux sscoredump_vendor_data_coredump_file:dir create_dir_perms;
allow hal_bluetooth_btlinux sscoredump_vendor_data_coredump_file:file create_file_perms;
allow hal_bluetooth_btlinux logbuffer_device:chr_file r_file_perms;
')

View file

@ -0,0 +1,3 @@
# Bluetooth HAL extension
type hal_bluetooth_coexistence_hwservice, hwservice_manager_type, vendor_hwservice_type;

View file

@ -0,0 +1,6 @@
# Bluetooth HAL extension
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
hardware.google.bluetooth.ccc::IBluetoothCcc u:object_r:hal_bluetooth_coexistence_hwservice:s0
hardware.google.bluetooth.ewp::IBluetoothEwp u:object_r:hal_bluetooth_coexistence_hwservice:s0
hardware.google.bluetooth.ext::IBluetoothExt u:object_r:hal_bluetooth_coexistence_hwservice:s0

View file

@ -0,0 +1,2 @@
# Bluetooth HAL extension
type hal_bluetooth_coexistence_service, hal_service_type, service_manager_type;

View file

@ -0,0 +1,7 @@
# Bluetooth HAL extension
vendor.google.bluetooth_ext.IBTChannelAvoidance/default u:object_r:hal_bluetooth_coexistence_service:s0
vendor.google.bluetooth_ext.IBluetoothSar/default u:object_r:hal_bluetooth_coexistence_service:s0
vendor.google.bluetooth_ext.IBluetoothCcc/default u:object_r:hal_bluetooth_coexistence_service:s0
vendor.google.bluetooth_ext.IBluetoothEwp/default u:object_r:hal_bluetooth_coexistence_service:s0
vendor.google.bluetooth_ext.IBluetoothExt/default u:object_r:hal_bluetooth_coexistence_service:s0
vendor.google.bluetooth_ext.IBluetoothFinder/default u:object_r:hal_bluetooth_coexistence_service:s0

View file

@ -34,3 +34,27 @@ prebuilt_etc {
src: "com.google.pixel.camera.concurrent_foldable_dual_front.xml", src: "com.google.pixel.camera.concurrent_foldable_dual_front.xml",
sub_dir: "permissions", sub_dir: "permissions",
} }
prebuilt_etc {
name: "libg3a_standalone_gabc_rc",
vendor: true,
proprietary: true,
init_rc: ["libg3a_gabc.rc"],
src: "libg3a_gabc.rc",
}
prebuilt_etc {
name: "libg3a_standalone_gaf_rc",
vendor: true,
proprietary: true,
init_rc: ["libg3a_gaf.rc"],
src: "libg3a_gaf.rc",
}
prebuilt_etc {
name: "libg3a_standalone_ghawb_rc",
vendor: true,
proprietary: true,
init_rc: ["libg3a_ghawb.rc"],
src: "libg3a_ghawb.rc",
}

28
camera/libg3a_gabc.rc Normal file
View file

@ -0,0 +1,28 @@
# override default log levels.
on boot
setprop log.tag.GABC E
# backward-compatible system props.
on property:persist.vendor.camera.gabc.debug_level=0
setprop log.tag.GABC S
on property:persist.vendor.camera.gabc.debug_level=1
setprop log.tag.GABC V
on property:persist.vendor.camera.gabc.debug_level=2
setprop log.tag.GABC V
on property:persist.vendor.camera.gabc.debug_level=3
setprop log.tag.GABC D
on property:persist.vendor.camera.gabc.debug_level=4
setprop log.tag.GABC I
on property:persist.vendor.camera.gabc.debug_level=5
setprop log.tag.GABC W
on property:persist.vendor.camera.gabc.debug_level=6
setprop log.tag.GABC E
on property:persist.vendor.camera.gabc.debug_level=7
setprop log.tag.GABC A

83
camera/libg3a_gaf.rc Normal file
View file

@ -0,0 +1,83 @@
# override default log levels.
on boot
setprop log.tag.GAF E
# backward-compatible system props.
on property:persist.vendor.camera.af.debug_level=0
setprop log.tag.GAF S
on property:persist.vendor.camera.af.debug_level=1
setprop log.tag.GAF V
on property:persist.vendor.camera.af.debug_level=2
setprop log.tag.GAF V
on property:persist.vendor.camera.af.debug_level=3
setprop log.tag.GAF D
on property:persist.vendor.camera.af.debug_level=4
setprop log.tag.GAF I
on property:persist.vendor.camera.af.debug_level=5
setprop log.tag.GAF W
on property:persist.vendor.camera.af.debug_level=6
setprop log.tag.GAF E
on property:persist.vendor.camera.af.debug_level=7
setprop log.tag.GAF A
on property:persist.vendor.camera.af.video_debug_enable=2
setprop vendor.camera.3a.log_level 1
setprop log.tag.3a.gcrd.af.parser.input V
setprop log.tag.3a.gcrd.af.parser.output V
setprop log.tag.3a.gcrd.af.processor V
setprop log.tag.3a.gcrd.af.engine V
setprop log.tag.3a.gcrd.dtm V
on property:persist.vendor.camera.af.video_debug_enable=0
setprop vendor.camera.3a.log_level 6
setprop log.tag.3a.gcrd.af.parser.input E
setprop log.tag.3a.gcrd.af.parser.output E
setprop log.tag.3a.gcrd.af.processor E
setprop log.tag.3a.gcrd.af.engine E
setprop log.tag.3a.gcrd.dtm E
on property:persist.vendor.camera.af.default_focus_only=false
setprop persist.vendor.camera.af.ignore_ctrl_focus_region false
setprop persist.vendor.camera.af.ignore_face 0
setprop persist.vendor.camera.af.force_saliency_consumption ""
on property:persist.vendor.camera.af.default_focus_only=true
setprop persist.vendor.camera.af.ignore_ctrl_focus_region true
setprop persist.vendor.camera.af.ignore_face 1
setprop persist.vendor.camera.af.force_saliency_consumption false
# Reset every related properties
on property:persist.vendor.camera.af.standalone_searchlet=reset
setprop persist.vendor.camera.af.ignore_pd \"\"
setprop persist.vendor.camera.af.ignore_tof \"\"
setprop persist.vendor.camera.af.ignore_cdaf \"\"
setprop persist.vendor.camera.af.ignore_gyro \"\"
setprop persist.vendor.camera.af.ignore_3a \"\"
setprop vendor.camera.debug.enable_saliency \"\"
# Standalone framework: PDAF
on property:persist.vendor.camera.af.standalone_searchlet=pdaf
setprop persist.vendor.camera.af.ignore_tof 1
setprop persist.vendor.camera.af.ignore_gyro 1
setprop persist.vendor.camera.af.ignore_3a 1
setprop vendor.camera.debug.enable_saliency 0
# Standalone framework: LDAF
on property:persist.vendor.camera.af.standalone_searchlet=ldaf
setprop persist.vendor.camera.af.ignore_pd 7
setprop persist.vendor.camera.af.ignore_gyro 1
setprop persist.vendor.camera.af.ignore_3a 1
setprop vendor.camera.debug.enable_saliency 0
# Standalone framework: CDAF
on property:persist.vendor.camera.af.standalone_searchlet=cdaf
setprop persist.vendor.camera.af.ignore_pd 7
setprop persist.vendor.camera.af.ignore_tof 1
setprop vendor.camera.debug.enable_saliency 0

28
camera/libg3a_ghawb.rc Normal file
View file

@ -0,0 +1,28 @@
# override default log levels.
on boot
setprop log.tag.GHAWB E
# backward-compatible system props.
on property:persist.vendor.camera.ghawb.debug_level=0
setprop log.tag.GHAWB S
on property:persist.vendor.camera.ghawb.debug_level=1
setprop log.tag.GHAWB V
on property:persist.vendor.camera.ghawb.debug_level=2
setprop log.tag.GHAWB V
on property:persist.vendor.camera.ghawb.debug_level=3
setprop log.tag.GHAWB D
on property:persist.vendor.camera.ghawb.debug_level=4
setprop log.tag.GHAWB I
on property:persist.vendor.camera.ghawb.debug_level=5
setprop log.tag.GHAWB W
on property:persist.vendor.camera.ghawb.debug_level=6
setprop log.tag.GHAWB E
on property:persist.vendor.camera.ghawb.debug_level=7
setprop log.tag.GHAWB A

View file

@ -20,8 +20,20 @@ endif
# All shipping releases will switch to prebuilts (trunk+) # All shipping releases will switch to prebuilts (trunk+)
# if this condition is not true, then build from source. # if this condition is not true, then build from source.
ifneq ($(RELEASE_PIXEL_CAMERA_ENABLE_PREBUILT),true) # Fallback if the prebuilts directory does not exist, then we must
# build from source no matter what, so we log a warning
ifeq ($(RELEASE_PIXEL_CAMERA_ENABLE_PREBUILT),true)
ifeq ($(wildcard vendor/google/services/LyricCameraHAL/prebuilt),)
$(warning Lyric prebuilt directory is missing, it will be built from source)
BUILD_LYRIC_FROM_SOURCE := true
else
BUILD_LYRIC_FROM_SOURCE := false
endif
else
BUILD_LYRIC_FROM_SOURCE := true
endif # RELEASE_PIXEL_CAMERA_ENABLE_PREBUILT
ifeq ($(BUILD_LYRIC_FROM_SOURCE),true)
PRODUCT_SOONG_NAMESPACES += \ PRODUCT_SOONG_NAMESPACES += \
vendor/google/camera \ vendor/google/camera \
vendor/google/camera/google_3a/libs_v4 \ vendor/google/camera/google_3a/libs_v4 \
@ -37,11 +49,7 @@ PRODUCT_SOONG_NAMESPACES += \
vendor/google/camera/google_3a/libs_v4/gAF \ vendor/google/camera/google_3a/libs_v4/gAF \
vendor/google/camera/google_3a/libs_v4/gafd \ vendor/google/camera/google_3a/libs_v4/gafd \
vendor/google/camera/google_3a/libs_v4/gHAWB/native_coverage vendor/google/camera/google_3a/libs_v4/gHAWB/native_coverage
endif # BUILD_LYRIC_FROM_SOURCE
# Calibration tool for debug builds
PRODUCT_PACKAGES_ENG += tarasque_test
PRODUCT_PACKAGES_ENG += ProtoCalibGenerator
endif # RELEASE_PIXEL_CAMERA_ENABLE_PREBUILT check
# Init-time log settings for Google 3A # Init-time log settings for Google 3A
PRODUCT_PACKAGES += libg3a_standalone_gabc_rc PRODUCT_PACKAGES += libg3a_standalone_gabc_rc
@ -61,3 +69,7 @@ DEVICE_MATRIX_FILE += \
# sepolicy dir is added in dump.mk. # sepolicy dir is added in dump.mk.
# Make doesn't deduplicate sepolicy dirs, so including it here causes build errors. # Make doesn't deduplicate sepolicy dirs, so including it here causes build errors.
# Calibration tools for debug builds
PRODUCT_PACKAGES_DEBUG += tarasque_test
PRODUCT_PACKAGES_DEBUG += ProtoCalibGenerator

View file

@ -44,3 +44,13 @@ Example:
$(call soong_config_set,google3a_config,target_device,oriole) $(call soong_config_set,google3a_config,target_device,oriole)
``` ```
A mixture of `camera_hardware` and `tuning_product` used by 3A. A mixture of `camera_hardware` and `tuning_product` used by 3A.
## `radioext_interface_type`
Example:
```
$(call soong_config_set,lyric,radioext_interface_type,aidl)
```
Specifies which interface type to use in the RadioExt client when communicating
with the RadioExt service. The possible values are "hidl" and "aidl".
Devices launching with Android 15 no longer support HIDL.

View file

@ -35,3 +35,6 @@ allow hal_contexthub_default self:global_capability2_class_set block_suspend;
# Allow binder calls with clients # Allow binder calls with clients
binder_call(hal_contexthub_default, hal_sensors_default) binder_call(hal_contexthub_default, hal_sensors_default)
# Allow access for AoC properties.
get_prop(hal_contexthub_default, vendor_aoc_prop)

View file

@ -16,15 +16,15 @@
#include <dump/pixel_dump.h> #include <dump/pixel_dump.h>
#include <android-base/file.h> #include <android-base/file.h>
int main() { int main() {
setbuf(stdout, NULL); setbuf(stdout, NULL);
dumpFileContent("DECON-0 counters /sys/class/drm/card0/device/decon0/counters", "/sys/class/drm/card0/device/decon0/counters"); dumpFileContent("DECON-0 counters /sys/class/drm/card0/device/decon0/counters", "/sys/class/drm/card0/device/decon0/counters");
dumpFileContent("CRTC-0 event log", "/sys/kernel/debug/dri/0/crtc-0/event"); dumpFileContent("CRTC-0 event log", "/sys/kernel/debug/dri/0/crtc-0/event");
runCommand("libdisplaycolor", "/vendor/bin/dumpsys displaycolor -v"); runCommand("libdisplaycolor", "/vendor/bin/dumpsys displaycolor -v");
dumpFileContent("Primary panel name", "/sys/devices/platform/exynos-drm/primary-panel/panel_name");
dumpFileContent("Primary panel extra info", "/sys/devices/platform/exynos-drm/primary-panel/panel_extinfo"); dumpFileContent("Primary panel name", "/sys/class/drm/card0/device/primary-panel/panel_name");
dumpFileContent("Primary panel power Vreg", "/sys/devices/platform/exynos-drm/primary-panel/panel_pwr_vreg"); dumpFileContent("Primary panel extra info", "/sys/class/drm/card0/device/primary-panel/panel_extinfo");
dumpFileContent("Primary panel power mode register", "/sys/devices/platform/exynos-drm/primary-panel/power_mode"); dumpFileContent("Primary panel power Vreg", "/sys/class/drm/card0/device/primary-panel/panel_pwr_vreg");
dumpFileContent("Primary panel power mode register", "/sys/class/drm/card0/device/primary-panel/power_mode");
return 0; return 0;
} }

View file

@ -1,4 +1,8 @@
#!/vendor/bin/sh #!/vendor/bin/sh
display_trace_path="/sys/kernel/tracing/instances/pixel-display/trace"
echo "------ Display Trace ($display_trace_path)------"
cat $display_trace_path
echo "------ HWC Fence States ------" echo "------ HWC Fence States ------"
for f in $(ls /data/vendor/log/hwc/*_hwc_fence_state*.txt) for f in $(ls /data/vendor/log/hwc/*_hwc_fence_state*.txt)
do do

View file

@ -18,9 +18,9 @@
int main() { int main() {
dumpFileContent("DECON-1 counters /sys/class/drm/card0/device/decon1/counters", "/sys/class/drm/card0/device/decon1/counters"); dumpFileContent("DECON-1 counters /sys/class/drm/card0/device/decon1/counters", "/sys/class/drm/card0/device/decon1/counters");
dumpFileContent("CRTC-1 event log", "/sys/kernel/debug/dri/0/crtc-1/event"); dumpFileContent("CRTC-1 event log", "/sys/kernel/debug/dri/0/crtc-1/event");
dumpFileContent("Secondary panel name", "/sys/devices/platform/exynos-drm/secondary-panel/panel_name");
dumpFileContent("Secondary panel extra info", "/sys/devices/platform/exynos-drm/secondary-panel/panel_extinfo"); dumpFileContent("Secondary panel name", "/sys/class/drm/card0/device/secondary-panel/panel_name");
dumpFileContent("Secondary panel power mode register", "/sys/devices/platform/exynos-drm/secondary-panel/power_mode"); dumpFileContent("Secondary panel extra info", "/sys/class/drm/card0/device/secondary-panel/panel_extinfo");
dumpFileContent("Secondary panel power mode register", "/sys/class/drm/card0/device/secondary-panel/power_mode");
return 0; return 0;
} }

View file

@ -1,3 +1,4 @@
# Display (dump for bugreport)
pixel_bugreport(dump_display) pixel_bugreport(dump_display)
allow dump_display sysfs_display:file r_file_perms; allow dump_display sysfs_display:file r_file_perms;

View file

@ -1,3 +1,4 @@
# Display eng/userdebug (dump for bugreport)
pixel_bugreport(dump_display_userdebug) pixel_bugreport(dump_display_userdebug)
userdebug_or_eng(` userdebug_or_eng(`
@ -5,4 +6,6 @@ userdebug_or_eng(`
allow dump_display_userdebug vendor_log_file:dir search; allow dump_display_userdebug vendor_log_file:dir search;
allow dump_display_userdebug vendor_hwc_log_file:dir r_dir_perms; allow dump_display_userdebug vendor_hwc_log_file:dir r_dir_perms;
allow dump_display_userdebug vendor_hwc_log_file:file r_file_perms; allow dump_display_userdebug vendor_hwc_log_file:file r_file_perms;
allow dump_display_userdebug debugfs_tracing_instances:dir search;
allow dump_display_userdebug debugfs_tracing_instances:file r_file_perms;
') ')

20
dump_chip_info/Android.bp Normal file
View file

@ -0,0 +1,20 @@
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_binary {
name: "dump_chip_info",
srcs: ["dump_chip_info.cpp"],
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
shared_libs: [
"libbase",
"libdump",
"liblog",
],
vendor: true,
relative_install_path: "dump",
}

View file

@ -0,0 +1,3 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/dump_chip_info/sepolicy
PRODUCT_PACKAGES += dump_chip_info

View file

@ -0,0 +1,28 @@
/*
* Copyright 2024 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.
*/
#include <dump/pixel_dump.h>
#include <android-base/file.h>
int main() {
dumpFileContent("ap_rom_patch_ver", "/sys/devices/system/goog-chip-info/ap_rom_patch_ver");
dumpFileContent("gpcm_asic_id", "/sys/devices/system/goog-chip-info/gpcm_asic_id");
dumpFileContent("device_table", "/sys/devices/system/goog-chip-info/device_table");
dumpFileContent("dvfs_table", "/sys/devices/system/goog-chip-info/dvfs_table");
dumpFileContent("hw_feature_table", "/sys/devices/system/goog-chip-info/hw_feature_table");
dumpFileContent("ids_table", "/sys/devices/system/goog-chip-info/ids_table");
return 0;
}

View file

@ -0,0 +1,3 @@
#
pixel_bugreport(dump_chip_info)
allow dump_chip_info sysfs_chip_info:file r_file_perms;

View file

@ -0,0 +1,2 @@
#
type sysfs_chip_info, sysfs_type, fs_type;

View file

@ -0,0 +1 @@
/vendor/bin/dump/dump_chip_info u:object_r:dump_chip_info_exec:s0

View file

@ -0,0 +1,6 @@
genfscon sysfs /devices/system/goog-chip-info/ap_rom_patch_ver u:object_r:sysfs_chip_info:s0
genfscon sysfs /devices/system/goog-chip-info/gpcm_asic_id u:object_r:sysfs_chip_info:s0
genfscon sysfs /devices/system/goog-chip-info/device_table u:object_r:sysfs_chip_info:s0
genfscon sysfs /devices/system/goog-chip-info/dvfs_table u:object_r:sysfs_chip_info:s0
genfscon sysfs /devices/system/goog-chip-info/hw_feature_table u:object_r:sysfs_chip_info:s0
genfscon sysfs /devices/system/goog-chip-info/ids_table u:object_r:sysfs_chip_info:s0

View file

@ -19,10 +19,6 @@ PRODUCT_PACKAGES += \
# TPU TFlite Delegate # TPU TFlite Delegate
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libedgetpu_util libedgetpu_util
# TPU DBA AIDL HAL service
PRODUCT_PACKAGES += com.google.edgetpu.dba-service
# TPU DBA C API library
PRODUCT_PACKAGES += libedgetpu_dba.google
# TPU Tachyon HAL service # TPU Tachyon HAL service
PRODUCT_PACKAGES += com.google.edgetpu.tachyon-service PRODUCT_PACKAGES += com.google.edgetpu.tachyon-service
# TPU Tachyon C API library # TPU Tachyon C API library

View file

@ -42,7 +42,7 @@ allow edgetpu_tachyon_server proc_version:file r_file_perms;
# Allow Tachyon service to send trace packets to Perfetto with SELinux enabled # Allow Tachyon service to send trace packets to Perfetto with SELinux enabled
# under userdebug builds. # under userdebug builds.
userdebug_or_eng(`perfetto_producer(edgetpu_tachyon_server)') perfetto_producer(edgetpu_tachyon_server)
# Allow Tachyon service to read tflite DarwiNN delegate properties # Allow Tachyon service to read tflite DarwiNN delegate properties
get_prop(edgetpu_tachyon_server, vendor_tflite_delegate_prop) get_prop(edgetpu_tachyon_server, vendor_tflite_delegate_prop)
@ -65,6 +65,4 @@ userdebug_or_eng(`
') ')
# For shell level testing # For shell level testing
userdebug_or_eng(` binder_call(edgetpu_tachyon_server, shell);
binder_call(edgetpu_tachyon_server, shell);
')

View file

@ -1,5 +1,10 @@
## Configuration for eSIM bootstrap
# Enable eSIM bootstrap by default
PRODUCT_PRODUCT_PROPERTIES += setupwizard.feature.provisioning_profile_mode=true
# init.rc and sepolcy to conditionally disable eSIM bootstrap
PRODUCT_PACKAGES += init.esim-gs.rc PRODUCT_PACKAGES += init.esim-gs.rc
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/vendor BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/vendor
# system_ext
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/system_ext/public SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/system_ext/public
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/system_ext/private SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/system_ext/private

View file

@ -2,6 +2,10 @@
on property:ro.build.type=user && property:ro.boot.flash.locked=0 on property:ro.build.type=user && property:ro.boot.flash.locked=0
setprop setupwizard.feature.provisioning_profile_mode false setprop setupwizard.feature.provisioning_profile_mode false
# Disable bootstrap for UGS devices
on property:ro.boot.warranty.sku=UGS
setprop setupwizard.feature.provisioning_profile_mode false
# Disable bootstrap for DVT devices shipping to non-US carriers # Disable bootstrap for DVT devices shipping to non-US carriers
on property:ro.boot.warranty.sku=BOF on property:ro.boot.warranty.sku=BOF
setprop setupwizard.feature.provisioning_profile_mode false setprop setupwizard.feature.provisioning_profile_mode false

View file

@ -1,2 +1,2 @@
# Allow to read setupwizard_feature_prop # Allow to read setupwizard_feature_prop
get_prop(priv_app, setupwizard_feature_prop) get_prop(gmscore_app, setupwizard_feature_prop)

View file

@ -0,0 +1,2 @@
# Fingerprint HAL extension
vendor.goodix.hardware.biometrics.fingerprint.IGoodixFingerprintDaemon/default u:object_r:hal_fingerprint_service:s0

View file

@ -1,28 +1,16 @@
# GCANext and GCAEng. # GCANext and GCAEng.
# b/363018500
typeattribute debug_camera_app coredomain; typeattribute debug_camera_app coredomain;
userdebug_or_eng(` userdebug_or_eng(`
app_domain(debug_camera_app) app_domain(debug_camera_app)
net_domain(debug_camera_app) net_domain(debug_camera_app)
allow debug_camera_app activity_service:service_manager find; allow debug_camera_app app_api_service:service_manager find;
allow debug_camera_app activity_task_service:service_manager find;
allow debug_camera_app audioserver_service:service_manager find; allow debug_camera_app audioserver_service:service_manager find;
allow debug_camera_app batterystats_service:service_manager find;
allow debug_camera_app cameraserver_service:service_manager find; allow debug_camera_app cameraserver_service:service_manager find;
allow debug_camera_app device_policy_service:service_manager find;
allow debug_camera_app device_state_service:service_manager find;
allow debug_camera_app gpu_service:service_manager find;
allow debug_camera_app mediaextractor_service:service_manager find; allow debug_camera_app mediaextractor_service:service_manager find;
allow debug_camera_app mediametrics_service:service_manager find; allow debug_camera_app mediametrics_service:service_manager find;
allow debug_camera_app mediaserver_service:service_manager find; allow debug_camera_app mediaserver_service:service_manager find;
allow debug_camera_app powerstats_service:service_manager find;
allow debug_camera_app sensorservice_service:service_manager find;
allow debug_camera_app thermal_service:service_manager find;
allow debug_camera_app trust_service:service_manager find;
allow debug_camera_app vibrator_manager_service:service_manager find;
allow debug_camera_app virtual_device_native_service:service_manager find;
# Allows GCA_Eng & GCA-Next to access the PowerHAL. # Allows GCA_Eng & GCA-Next to access the PowerHAL.
hal_client_domain(debug_camera_app, hal_power) hal_client_domain(debug_camera_app, hal_power)

View file

@ -3,12 +3,12 @@ typeattribute google_camera_app coredomain;
app_domain(google_camera_app) app_domain(google_camera_app)
net_domain(google_camera_app) net_domain(google_camera_app)
#allow google_camera_app app_api_service:service_manager find; allow google_camera_app app_api_service:service_manager find;
#allow google_camera_app audioserver_service:service_manager find; allow google_camera_app audioserver_service:service_manager find;
#allow google_camera_app cameraserver_service:service_manager find; allow google_camera_app cameraserver_service:service_manager find;
#allow google_camera_app mediaextractor_service:service_manager find; allow google_camera_app mediaextractor_service:service_manager find;
#allow google_camera_app mediametrics_service:service_manager find; allow google_camera_app mediametrics_service:service_manager find;
#allow google_camera_app mediaserver_service:service_manager find; allow google_camera_app mediaserver_service:service_manager find;
# Allows GCA to access the PowerHAL. # Allows GCA to access the PowerHAL.
hal_client_domain(google_camera_app, hal_power) hal_client_domain(google_camera_app, hal_power)

View file

@ -1,2 +0,0 @@
# GCA-Eng and GCA-Next
type debug_camera_app, domain;

View file

@ -1,2 +0,0 @@
# GCA-Release and GCA-Dogfood
type google_camera_app, domain;

View file

@ -1,12 +1,12 @@
# GCARelease and GCADogfood. # GCARelease and GCADogfood.
# Allows GCA to acccess the GXP device & properties. # Allows GCA to acccess the GXP device & properties.
#allow google_camera_app gxp_device:chr_file rw_file_perms; allow google_camera_app gxp_device:chr_file rw_file_perms;
get_prop(google_camera_app, vendor_gxp_prop) get_prop(google_camera_app, vendor_gxp_prop)
# Allows GCA to find and access the EdgeTPU. # Allows GCA to find and access the EdgeTPU.
#allow google_camera_app edgetpu_app_service:service_manager find; allow google_camera_app edgetpu_app_service:service_manager find;
#allow google_camera_app edgetpu_device:chr_file { getattr read write ioctl map }; allow google_camera_app edgetpu_device:chr_file { read write ioctl };
# Allows GCA to access the hw_jpeg /dev/video12. # Allows GCA to access the hw_jpeg /dev/video12.
#allow google_camera_app hw_jpg_device:chr_file rw_file_perms; #allow google_camera_app hw_jpg_device:chr_file rw_file_perms;

View file

@ -5,3 +5,8 @@ allow hal_dumpstate_default radio_vendor_data_file:file create_file_perms;
allow hal_dumpstate_default shell_data_file:file getattr; allow hal_dumpstate_default shell_data_file:file getattr;
set_prop(hal_dumpstate_default, vendor_logger_prop) set_prop(hal_dumpstate_default, vendor_logger_prop)
# All dumps that are executed via hal_dumpstate_default should use their
# own domain to request their permissions to achieve compartmentalization.
# go/pixel-bugreport has examples on how to do that.
neverallow hal_dumpstate_default { vendor_file_type -vendor_toolbox_exec }:file execute_no_trans;

View file

@ -13,13 +13,17 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
#include <unistd.h>
#include <dump/pixel_dump.h>
#include <android-base/properties.h>
#include <android-base/file.h> #include <android-base/file.h>
#include <android-base/properties.h>
#include <dirent.h>
#include <dump/pixel_dump.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#define GPS_LOG_NUMBER_PROPERTY "persist.vendor.gps.aol.log_num" #define GPS_LOG_NUMBER_PROPERTY "persist.vendor.gps.aol.log_num"
#define GPS_LOG_DIRECTORY "/data/vendor/gps/logs" #define GPS_LOG_DIRECTORY "/data/vendor/gps/logs"
#define GPS_RESOURCE_DIRECTORY "/data/vendor/gps/resource"
#define GPS_TMP_LOG_DIRECTORY "/data/vendor/gps/logs/.tmp" #define GPS_TMP_LOG_DIRECTORY "/data/vendor/gps/logs/.tmp"
#define GPS_LOG_PREFIX "gl-" #define GPS_LOG_PREFIX "gl-"
#define GPS_MCU_LOG_PREFIX "esw-" #define GPS_MCU_LOG_PREFIX "esw-"
@ -29,6 +33,92 @@
#define GPS_RAWLOG_PREFIX "rawbin" #define GPS_RAWLOG_PREFIX "rawbin"
#define GPS_MEMDUMP_LOG_PREFIX "memdump_" #define GPS_MEMDUMP_LOG_PREFIX "memdump_"
static void copyDirectory(const std::string &source,
const std::string &outputDir) {
DIR *dir = opendir(source.c_str());
if (dir == nullptr) {
return;
}
if (mkdir(outputDir.c_str(), 0777) == -1) {
closedir(dir);
return;
}
struct dirent *entry;
while ((entry = readdir(dir)) != nullptr) {
std::string entryName = entry->d_name;
if (entryName == "." || entryName == "..") {
continue;
}
std::string sourcePath = source + "/" + entryName;
std::string destPath = outputDir + "/" + entryName;
struct stat st;
if (stat(sourcePath.c_str(), &st) == 0) {
if (S_ISDIR(st.st_mode))
copyDirectory(sourcePath, destPath);
else
copyFile(sourcePath.c_str(), destPath.c_str());
}
}
closedir(dir);
return;
}
int compareFileExtensions(const struct dirent **a, const struct dirent **b) {
int num_a, num_b;
sscanf((*a)->d_name, "rawbinlog.out.%d", &num_a);
sscanf((*b)->d_name, "rawbinlog.out.%d", &num_b);
return num_a - num_b;
}
void dumpLogsAscending(const char* SrcDir, const char* DestDir, int limit, const char* prefix) {
struct dirent **dirent_list = NULL;
int num_entries = scandir(SrcDir, &dirent_list, 0, (int (*)(const struct dirent **, const struct dirent **)) alphasort);
if (!dirent_list) {
printf("Unable to scan dir: %s.\n", SrcDir);
return;
} else if (num_entries <= 0) {
printf("No file is found.\n");
return;
}
if (access(DestDir, R_OK)) {
printf("Unable to find folder: %s\n", DestDir);
return;
}
qsort(dirent_list, num_entries, sizeof(struct dirent *), (int (*)(const void *, const void *)) compareFileExtensions);
int copiedFiles = 0;
for (int i = 0 ; i < num_entries; i++) {
if (0 != strncmp(dirent_list[i]->d_name, prefix, strlen(prefix))) {
continue;
}
if ((copiedFiles >= limit) && (limit != -1)) {
printf("Skipped %s\n", dirent_list[i]->d_name);
continue;
}
copiedFiles++;
copyFile(concatenatePath(SrcDir, dirent_list[i]->d_name).c_str(), concatenatePath(DestDir, dirent_list[i]->d_name).c_str());
}
while (num_entries--) {
free(dirent_list[num_entries]);
}
free(dirent_list);
return;
}
int main() { int main() {
if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) { if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
printf("vendor.gps.aol.enabled is false. gps logging is not running.\n"); printf("vendor.gps.aol.enabled is false. gps logging is not running.\n");
@ -48,8 +138,8 @@ int main() {
if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) { if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) {
copyFile(GPS_VENDOR_CHIP_INFO, concatenatePath(outputDir.c_str(), "chip.info").c_str()); copyFile(GPS_VENDOR_CHIP_INFO, concatenatePath(outputDir.c_str(), "chip.info").c_str());
} }
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), maxFileNum, GPS_RAWLOG_PREFIX); dumpLogsAscending(GPS_LOG_DIRECTORY, outputDir.c_str(), 5, GPS_RAWLOG_PREFIX);
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 18, GPS_MEMDUMP_LOG_PREFIX); dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 18, GPS_MEMDUMP_LOG_PREFIX);
copyDirectory(GPS_RESOURCE_DIRECTORY, concatenatePath(outputDir.c_str(), "resource"));
return 0; return 0;
} }

View file

@ -24,3 +24,6 @@ allow hal_gnss_pixel vendor_gps_file:fifo_file create_file_perms;
# Allow access ssrdump information # Allow access ssrdump information
allow hal_gnss_pixel sscoredump_vendor_data_crashinfo_file:file r_file_perms; allow hal_gnss_pixel sscoredump_vendor_data_crashinfo_file:file r_file_perms;
allow hal_gnss_pixel sscoredump_vendor_data_crashinfo_file:dir r_dir_perms; allow hal_gnss_pixel sscoredump_vendor_data_crashinfo_file:dir r_dir_perms;
# Allow pixel gnss access vendor_gps_file
allow hal_gnss_pixel vendor_gps_file:file create_file_perms;

View file

@ -0,0 +1,10 @@
<compatibility-matrix version="1.0" type="framework">
<hal format="aidl" optional="true">
<name>vendor.google.radio_ext</name>
<version>3</version>
<interface>
<name>IRadioExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View file

@ -0,0 +1,4 @@
PRODUCT_PACKAGES += vendor.google.radioext@1.0-service
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/gril/aidl/2.1/compatibility_matrix.xml
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gril/aidl/2.1/sepolicy
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gril/common/sepolicy

View file

@ -0,0 +1 @@
/vendor/bin/hw/vendor\.google\.radioext@1\.0-service u:object_r:hal_aidl_radio_ext_exec:s0

View file

@ -0,0 +1,4 @@
# allow grilservice_app to find hal_radio_ext_service
allow grilservice_app hal_radio_ext_service:service_manager find;
binder_call(grilservice_app, hal_aidl_radio_ext)
binder_call(grilservice_app, twoshay)

View file

@ -0,0 +1,36 @@
# hal_aidl_radio_ext domain
type hal_aidl_radio_ext, domain;
type hal_aidl_radio_ext_exec, vendor_file_type, exec_type, file_type;
init_daemon_domain(hal_aidl_radio_ext)
get_prop(hal_aidl_radio_ext, hwservicemanager_prop)
get_prop(hal_aidl_radio_ext, telephony_modemtype_prop)
set_prop(hal_aidl_radio_ext, vendor_gril_prop)
binder_call(hal_aidl_radio_ext, servicemanager)
binder_call(hal_aidl_radio_ext, grilservice_app)
binder_call(hal_aidl_radio_ext, hal_bluetooth_btlinux)
add_service(hal_aidl_radio_ext, hal_radio_ext_service)
# RW /dev/oem_ipc0
allow hal_aidl_radio_ext radio_device:chr_file rw_file_perms;
# RW MIPI Freq files
allow hal_aidl_radio_ext radio_vendor_data_file:dir create_dir_perms;
allow hal_aidl_radio_ext radio_vendor_data_file:file create_file_perms;
# Bluetooth
allow hal_aidl_radio_ext hal_bluetooth_coexistence_hwservice:hwservice_manager find;
allow hal_aidl_radio_ext hal_bluetooth_coexistence_service:service_manager find;
# Allow access to the backlight driver to set ssc_mode
allow hal_aidl_radio_ext sysfs_leds:dir search;
allow hal_aidl_radio_ext sysfs_leds:file rw_file_perms;
# legacy/zuma/vendor
allow hal_aidl_radio_ext sysfs_display:file rw_file_perms;
# Allow access to read display port info
allow hal_aidl_radio_ext sysfs:file r_file_perms;

View file

@ -0,0 +1,2 @@
# allow hal_camera_default to binder call hal_aidl_radio_ext
binder_call(hal_camera_default, hal_aidl_radio_ext);

View file

@ -0,0 +1,2 @@
# allow twoshay to binder call hal_aidl_radio_ext
binder_call(twoshay, hal_aidl_radio_ext)

View file

@ -2,3 +2,5 @@
allow grilservice_app hal_radio_ext_service:service_manager find; allow grilservice_app hal_radio_ext_service:service_manager find;
# allow grilservice_app to binder call hal_radioext_default # allow grilservice_app to binder call hal_radioext_default
binder_call(grilservice_app, hal_radioext_default) binder_call(grilservice_app, hal_radioext_default)
# allow grilservice_app to binder call twoshay
binder_call(grilservice_app, twoshay)

View file

@ -1,3 +1,4 @@
# Dump GXP logs to bugreport.
pixel_bugreport(dump_gxp) pixel_bugreport(dump_gxp)
userdebug_or_eng(` userdebug_or_eng(`
@ -7,7 +8,5 @@ userdebug_or_eng(`
allow dump_gxp sscoredump_vendor_data_coredump_file:file r_file_perms; allow dump_gxp sscoredump_vendor_data_coredump_file:file r_file_perms;
allow dump_gxp sscoredump_vendor_data_crashinfo_file:dir r_dir_perms; allow dump_gxp sscoredump_vendor_data_crashinfo_file:dir r_dir_perms;
allow dump_gxp sscoredump_vendor_data_crashinfo_file:file r_file_perms; allow dump_gxp sscoredump_vendor_data_crashinfo_file:file r_file_perms;
# Allow dump_gxp to access gxp properties.
get_prop(google_camera_app, vendor_gxp_prop)
') ')

View file

@ -1,3 +1,7 @@
# Allow Tachyon service to access the GXP device and read GXP properties. # Allow Tachyon service to access the GXP device and read GXP properties.
allow edgetpu_tachyon_server gxp_device:chr_file rw_file_perms; allow edgetpu_tachyon_server gxp_device:chr_file rw_file_perms;
get_prop(edgetpu_tachyon_server, vendor_gxp_prop) get_prop(edgetpu_tachyon_server, vendor_gxp_prop)
# Allow tachyon service to log to stats service for reporting metrics.
allow edgetpu_tachyon_server fwk_stats_service:service_manager find;
binder_call(edgetpu_tachyon_server, system_server);

View file

@ -0,0 +1,10 @@
<compatibility-matrix type="framework" version="1.0">
<hal format="aidl" optional="true">
<name>com.google.input.gia.core</name>
<interface>
<name>IGiaService</name>
<instance>default</instance>
</interface>
<version>1</version>
</hal>
</compatibility-matrix>

View file

@ -0,0 +1,10 @@
<manifest type="device" version="1.0">
<hal format="aidl" optional="true">
<name>com.google.input.gia.core</name>
<interface>
<name>IGiaService</name>
<instance>default</instance>
</interface>
<version>1</version>
</hal>
</manifest>

11
input/gia/gia.mk Normal file
View file

@ -0,0 +1,11 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/input/gia/sepolicy
PRODUCT_PACKAGES += gia
PRODUCT_PACKAGES += com.google.input.gia.giaservicemanager
PRODUCT_SOONG_NAMESPACES += vendor/google/interfaces
PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core
PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core-servicemanager
DEVICE_MANIFEST_FILE += device/google/gs-common/input/gia/aidl/manifest.xml
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/input/gia/aidl/compatibility_matrix.xml

View file

@ -0,0 +1,2 @@
# This macro produces: define hal_gia, hal_gia_client, hal_gia_server
hal_attribute(gia)

View file

@ -0,0 +1,2 @@
# chmod +x in SEPolicy language
/vendor/bin/gia u:object_r:gia_exec:s0

18
input/gia/sepolicy/gia.te Normal file
View file

@ -0,0 +1,18 @@
# SEPolicies for GIA (Google Input interface Abstraction layer)
type gia, domain;
type gia_exec, exec_type, vendor_file_type, file_type;
# Macro transferring gia_exec to the gia domain
init_daemon_domain(gia)
# let this domain use the hal service
hal_client_domain(gia, hal_gia)
# allow binder communication with service_manager
binder_use(gia)
# let this domain serve the hal service
hal_server_domain(gia, hal_gia)
# allow gia for accessing touch related system file-nodes
allow gia sysfs_touch_gti:dir r_dir_perms;
allow gia sysfs_touch_gti:file rw_file_perms;

View file

@ -0,0 +1,8 @@
# allow binder connection from client to server
binder_call(hal_gia_client, hal_gia_server)
# allow client to find the service & allow server to register the service
hal_attribute_service(hal_gia, hal_gia_service)
# allow binder communication from server to service_manager
binder_use(hal_gia_server)

View file

@ -0,0 +1,2 @@
# Declares GIA related services
type hal_gia_service, hal_service_type, protected_service, service_manager_type;

View file

@ -0,0 +1,2 @@
# Attaches GIA services to the cooresponding SEPolicy group
com.google.input.gia.core.IGiaService/default u:object_r:hal_gia_service:s0

View file

@ -1,11 +1,11 @@
#!/vendor/bin/sh #!/vendor/bin/sh
############################################################# ###################################################################
### init.insmod.cfg format: ### ### init.insmod.cfg format: ###
### ----------------------------------------------------- ### ### ----------------------------------------------------------- ###
### [insmod|setprop|enable/moprobe|wait] [path|prop name] ### ### [insmod|setprop|enable|moprobe|rmmod|wait] [path|prop name] ###
### ... ### ### ... ###
############################################################# ###################################################################
modules_dir= modules_dir=
system_modules_dir= system_modules_dir=
@ -96,6 +96,7 @@ if [ -f $cfg_file ]; then
modprobe -a -d "${modules_dir}" $arg modprobe -a -d "${modules_dir}" $arg
fi fi
;; ;;
"rmmod") rmmod $arg ;;
"wait") wait_for_file $arg ;; "wait") wait_for_file $arg ;;
esac esac
done < $cfg_file done < $cfg_file

21
interrupts/Android.bp Normal file
View file

@ -0,0 +1,21 @@
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_binary {
name: "dump_interrupts_traces",
srcs: ["traces/dump_interrupts_traces.cpp"],
init_rc: ["init.interrupts.rc"],
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
shared_libs: [
"libbase",
"libdump",
"liblog",
],
vendor: true,
relative_install_path: "dump",
}

View file

@ -0,0 +1,16 @@
on init
# Create the directory for the trace instance during early init
chmod 666 /sys/kernel/tracing/instances/irq_gia_google
chmod 666 /sys/kernel/tracing/instances/irq_gia_google/trace
chown system system /sys/kernel/tracing/instances/irq_gia_google
chown system system /sys/kernel/tracing/instances/irq_gia_google/trace
# There are some very high frequency IRQ events happening all the time. Tracing
# them is not absolute necessity, but a flood of them is noise for more interesting
# events that we want to capture. All these high frequency IRQs have virq < 11.
write /sys/kernel/tracing/instances/irq_gia_google/events/irq/filter "irq > 11"
# Keep the buffer size small. This size is practically enough for debug purpose.
# Having low size helps because this entire buffer gets dumped in bugreport.
# Having a large size can impact bugreport size and time it takes to pack/unpack.
write /sys/kernel/tracing/instances/irq_gia_google/buffer_size_kb 64

3
interrupts/interrupts.mk Normal file
View file

@ -0,0 +1,3 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/interrupts/traces/sepolicy
PRODUCT_PACKAGES += dump_interrupts_traces

View file

@ -0,0 +1,30 @@
/*
* Copyright 2024 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.
*/
#include <dump/pixel_dump.h>
#include <android-base/file.h>
int main() {
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "interrupts");
if (mkdir(outputDir.c_str(), 0777) == -1) {
printf("Unable to create folder: %s\n", outputDir.c_str());
return 0;
}
copyFile("/sys/kernel/tracing/instances/irq_gia_google/trace",
concatenatePath(outputDir.c_str(), "interrupts_trace").c_str());
return 0;
}

View file

@ -0,0 +1,7 @@
#
pixel_bugreport(dump_interrupts_traces)
allow dump_interrupts_traces radio_vendor_data_file:dir { search add_name create write };
allow dump_interrupts_traces radio_vendor_data_file:file { getattr create write open };
allow dump_interrupts_traces debugfs_tracing_instances:dir search;
allow dump_interrupts_traces tracefs_instances_interrupts:file { getattr read open };

View file

@ -0,0 +1,2 @@
#
type tracefs_instances_interrupts, sysfs_type, fs_type;

View file

@ -0,0 +1 @@
/vendor/bin/dump/dump_interrupts_traces u:object_r:dump_interrupts_traces_exec:s0

View file

@ -0,0 +1 @@
genfscon tracefs /instances/irq_gia_google/trace u:object_r:tracefs_instances_interrupts:s0

21
mailbox/Android.bp Normal file
View file

@ -0,0 +1,21 @@
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
cc_binary {
name: "dump_mailbox",
srcs: ["dump/dump_mailbox.cpp"],
init_rc: ["init.mailbox.rc"],
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
shared_libs: [
"libbase",
"libdump",
"liblog",
],
vendor: true,
relative_install_path: "dump",
}

View file

@ -0,0 +1,32 @@
/*
* Copyright 2024 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.
*/
#include <dump/pixel_dump.h>
#include <android-base/file.h>
int main() {
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "mailbox");
if (mkdir(outputDir.c_str(), 0777) == -1) {
printf("Unable to create folder: %s\n", outputDir.c_str());
return 0;
}
copyFile("/sys/kernel/tracing/instances/goog_cpm_mailbox/trace",
concatenatePath(outputDir.c_str(), "goog_cpm_mailbox_trace").c_str());
copyFile("/sys/kernel/tracing/instances/goog_nq_mailbox/trace",
concatenatePath(outputDir.c_str(), "goog_nq_mailbox_trace").c_str());
return 0;
}

View file

@ -0,0 +1,7 @@
#
pixel_bugreport(dump_mailbox)
allow dump_mailbox radio_vendor_data_file:dir create_dir_perms;
allow dump_mailbox radio_vendor_data_file:file create_file_perms;
allow dump_mailbox debugfs_tracing_instances:file r_file_perms;
allow dump_mailbox debugfs_tracing_instances:dir search;
allow dump_mailbox debugfs_tracing_instances_mailbox:file r_file_perms;

View file

@ -0,0 +1,2 @@
#
type debugfs_tracing_instances_mailbox, sysfs_type, fs_type;

View file

@ -0,0 +1 @@
/vendor/bin/dump/dump_mailbox u:object_r:dump_mailbox_exec:s0

View file

@ -0,0 +1,2 @@
genfscon tracefs /instances/goog_cpm_mailbox/trace u:object_r:debugfs_tracing_instances_mailbox:s0
genfscon tracefs /instances/goog_nq_mailbox/trace u:object_r:debugfs_tracing_instances_mailbox:s0

8
mailbox/init.mailbox.rc Normal file
View file

@ -0,0 +1,8 @@
on property:sys.boot_completed=1
chown system system /sys/kernel/tracing/instances/goog_cpm_mailbox
chown system system /sys/kernel/tracing/instances/goog_cpm_mailbox/trace
write /sys/kernel/tracing/instances/goog_cpm_mailbox/buffer_size_kb 512
chown system system /sys/kernel/tracing/instances/goog_nq_mailbox
chown system system /sys/kernel/tracing/instances/goog_nq_mailbox/trace
write /sys/kernel/tracing/instances/goog_nq_mailbox/buffer_size_kb 512

3
mailbox/mailbox.mk Normal file
View file

@ -0,0 +1,3 @@
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/mailbox/dump/sepolicy
PRODUCT_PACKAGES += dump_mailbox

View file

@ -7,10 +7,12 @@ PRODUCT_PACKAGES += \
libgc2_vdi_vpu \ libgc2_vdi_vpu \
libgc2_log \ libgc2_log \
libgc2_utils \ libgc2_utils \
libgc2_dec \
libgc2_av1_dec \ libgc2_av1_dec \
libgc2_vp9_dec \ libgc2_vp9_dec \
libgc2_hevc_dec \ libgc2_hevc_dec \
libgc2_avc_dec \ libgc2_avc_dec \
libgc2_enc \
libgc2_av1_enc \ libgc2_av1_enc \
libgc2_hevc_enc \ libgc2_hevc_enc \
libgc2_avc_enc \ libgc2_avc_enc \

View file

@ -1,3 +1,4 @@
# Google Mediacodec
type mediacodec_google, domain; type mediacodec_google, domain;
type mediacodec_google_exec, exec_type, vendor_file_type, file_type; type mediacodec_google_exec, exec_type, vendor_file_type, file_type;
@ -8,9 +9,11 @@ hal_server_domain(mediacodec_google, hal_codec2)
hal_client_domain(mediacodec_google, hal_graphics_allocator) hal_client_domain(mediacodec_google, hal_graphics_allocator)
add_service(mediacodec_google, eco_service) add_service(mediacodec_google, eco_service)
binder_call(mediacodec_google, hal_camera_default)
allow mediacodec_google dmabuf_system_heap_device:chr_file r_file_perms; allow mediacodec_google dmabuf_system_heap_device:chr_file r_file_perms;
allow mediacodec_google video_device:chr_file { read write open ioctl map }; allow mediacodec_google video_device:chr_file { read write open ioctl map };
allow mediacodec_google gpu_device:chr_file rw_file_perms;
# mediacodec_google should never execute any executable without a domain transition # mediacodec_google should never execute any executable without a domain transition
neverallow mediacodec_google { file_type fs_type }:file execute_no_trans; neverallow mediacodec_google { file_type fs_type }:file execute_no_trans;

View file

@ -0,0 +1,11 @@
<compatibility-matrix version="1.0" type="framework">
<!-- Optional since older devices will not register any services. -->
<hal format="aidl" optional="true">
<name>com.google.pixel.shared_modem_platform</name>
<version>3</version>
<interface>
<name>ISharedModemPlatform</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

Some files were not shown because too many files have changed in this diff Show more