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:
commit
afe59287ff
165 changed files with 1426 additions and 112 deletions
11
aoc/aoc.mk
11
aoc/aoc.mk
|
@ -4,16 +4,15 @@ PRODUCT_PACKAGES += dump_aoc \
|
|||
aocd \
|
||||
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
|
||||
PRODUCT_COPY_FILES += \
|
||||
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
|
||||
PRODUCT_PACKAGES_ENG += \
|
||||
aocdump \
|
||||
|
|
|
@ -34,6 +34,9 @@
|
|||
/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_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
|
||||
/vendor/bin/aocd u:object_r:aocd_exec:s0
|
||||
|
|
|
@ -1 +1 @@
|
|||
aocx.IAocx u:object_r:aocx:s0
|
||||
aocx.IAocx/default u:object_r:aocx:s0
|
||||
|
|
|
@ -16,7 +16,11 @@ PRODUCT_PACKAGES += \
|
|||
libhapticgeneratoraidl \
|
||||
|
||||
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
|
||||
|
||||
|
@ -27,4 +31,11 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
|||
PRODUCT_SYSTEM_EXT_PROPERTIES += \
|
||||
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)
|
||||
|
|
|
@ -1,15 +1,7 @@
|
|||
<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">
|
||||
<name>vendor.google.whitechapel.audio.extension</name>
|
||||
<version>3</version>
|
||||
<version>4</version>
|
||||
<interface>
|
||||
<name>IAudioExtension</name>
|
||||
<instance>default</instance>
|
||||
|
|
|
@ -1,11 +1,2 @@
|
|||
<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>
|
||||
|
|
|
@ -32,6 +32,12 @@ PRODUCT_PACKAGES += \
|
|||
libamcsextfile \
|
||||
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
|
||||
|
||||
include device/google/gs-common/audio/common.mk
|
||||
|
|
|
@ -32,6 +32,12 @@ PRODUCT_PACKAGES += \
|
|||
audio_spk_35l41 \
|
||||
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
|
||||
|
||||
include device/google/gs-common/audio/common.mk
|
||||
|
|
|
@ -35,8 +35,14 @@ PRODUCT_PACKAGES += \
|
|||
audio_hdmi_aoc \
|
||||
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/hdmi_audio
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio/drmdp
|
||||
|
||||
include device/google/gs-common/audio/common.mk
|
||||
|
||||
|
|
|
@ -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_extcon:dir search;
|
||||
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 hal_audio_default sysfs_aoc:dir { search };
|
||||
|
|
1
audio/sepolicy/hdmi_audio/dptx/genfs_contexts
Normal file
1
audio/sepolicy/hdmi_audio/dptx/genfs_contexts
Normal 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
16
bluetooth/bluetooth.mk
Normal 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
|
30
bluetooth/compatibility_matrix.xml
Normal file
30
bluetooth/compatibility_matrix.xml
Normal 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
20
bluetooth/dump/Android.bp
Normal 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
44
bluetooth/dump/dump.cpp
Normal 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;
|
||||
}
|
3
bluetooth/dump/dumplog.mk
Normal file
3
bluetooth/dump/dumplog.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/bluetooth/dump/sepolicy/
|
||||
|
||||
PRODUCT_PACKAGES_DEBUG += dump_bt
|
12
bluetooth/dump/sepolicy/dump.te
Normal file
12
bluetooth/dump/sepolicy/dump.te
Normal 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;
|
2
bluetooth/dump/sepolicy/file_contexts
Normal file
2
bluetooth/dump/sepolicy/file_contexts
Normal file
|
@ -0,0 +1,2 @@
|
|||
# bt common hal dump_bt service
|
||||
/vendor/bin/dump/dump_bt u:object_r:dump_bt_exec:s0
|
27
bluetooth/manifest_bluetooth.xml
Normal file
27
bluetooth/manifest_bluetooth.xml
Normal 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>
|
3
bluetooth/sepolicy/device.te
Normal file
3
bluetooth/sepolicy/device.te
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Bt Wifi Coexistence device
|
||||
type wb_coexistence_dev, dev_type;
|
||||
|
6
bluetooth/sepolicy/file_contexts
Normal file
6
bluetooth/sepolicy/file_contexts
Normal 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
|
||||
|
8
bluetooth/sepolicy/genfs_contexts
Normal file
8
bluetooth/sepolicy/genfs_contexts
Normal 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
|
||||
|
19
bluetooth/sepolicy/hal_bluetooth_btlinux.te
Normal file
19
bluetooth/sepolicy/hal_bluetooth_btlinux.te
Normal 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;
|
||||
')
|
3
bluetooth/sepolicy/hwservice.te
Normal file
3
bluetooth/sepolicy/hwservice.te
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Bluetooth HAL extension
|
||||
type hal_bluetooth_coexistence_hwservice, hwservice_manager_type, vendor_hwservice_type;
|
||||
|
6
bluetooth/sepolicy/hwservice_contexts
Normal file
6
bluetooth/sepolicy/hwservice_contexts
Normal 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
|
2
bluetooth/sepolicy/service.te
Normal file
2
bluetooth/sepolicy/service.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Bluetooth HAL extension
|
||||
type hal_bluetooth_coexistence_service, hal_service_type, service_manager_type;
|
7
bluetooth/sepolicy/service_contexts
Normal file
7
bluetooth/sepolicy/service_contexts
Normal 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
|
|
@ -34,3 +34,27 @@ prebuilt_etc {
|
|||
src: "com.google.pixel.camera.concurrent_foldable_dual_front.xml",
|
||||
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
28
camera/libg3a_gabc.rc
Normal 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
83
camera/libg3a_gaf.rc
Normal 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
28
camera/libg3a_ghawb.rc
Normal 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
|
|
@ -20,8 +20,20 @@ endif
|
|||
# All shipping releases will switch to prebuilts (trunk+)
|
||||
# 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 += \
|
||||
vendor/google/camera \
|
||||
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/gafd \
|
||||
vendor/google/camera/google_3a/libs_v4/gHAWB/native_coverage
|
||||
|
||||
# Calibration tool for debug builds
|
||||
PRODUCT_PACKAGES_ENG += tarasque_test
|
||||
PRODUCT_PACKAGES_ENG += ProtoCalibGenerator
|
||||
endif # RELEASE_PIXEL_CAMERA_ENABLE_PREBUILT check
|
||||
endif # BUILD_LYRIC_FROM_SOURCE
|
||||
|
||||
# Init-time log settings for Google 3A
|
||||
PRODUCT_PACKAGES += libg3a_standalone_gabc_rc
|
||||
|
@ -61,3 +69,7 @@ DEVICE_MATRIX_FILE += \
|
|||
|
||||
# sepolicy dir is added in dump.mk.
|
||||
# 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
|
||||
|
|
|
@ -44,3 +44,13 @@ Example:
|
|||
$(call soong_config_set,google3a_config,target_device,oriole)
|
||||
```
|
||||
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.
|
||||
|
|
|
@ -35,3 +35,6 @@ allow hal_contexthub_default self:global_capability2_class_set block_suspend;
|
|||
|
||||
# Allow binder calls with clients
|
||||
binder_call(hal_contexthub_default, hal_sensors_default)
|
||||
|
||||
# Allow access for AoC properties.
|
||||
get_prop(hal_contexthub_default, vendor_aoc_prop)
|
||||
|
|
|
@ -16,15 +16,15 @@
|
|||
#include <dump/pixel_dump.h>
|
||||
#include <android-base/file.h>
|
||||
|
||||
|
||||
int main() {
|
||||
setbuf(stdout, NULL);
|
||||
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");
|
||||
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 power Vreg", "/sys/devices/platform/exynos-drm/primary-panel/panel_pwr_vreg");
|
||||
dumpFileContent("Primary panel power mode register", "/sys/devices/platform/exynos-drm/primary-panel/power_mode");
|
||||
|
||||
dumpFileContent("Primary panel name", "/sys/class/drm/card0/device/primary-panel/panel_name");
|
||||
dumpFileContent("Primary panel extra info", "/sys/class/drm/card0/device/primary-panel/panel_extinfo");
|
||||
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;
|
||||
}
|
|
@ -1,4 +1,8 @@
|
|||
#!/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 ------"
|
||||
for f in $(ls /data/vendor/log/hwc/*_hwc_fence_state*.txt)
|
||||
do
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
int main() {
|
||||
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("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 power mode register", "/sys/devices/platform/exynos-drm/secondary-panel/power_mode");
|
||||
|
||||
dumpFileContent("Secondary panel name", "/sys/class/drm/card0/device/secondary-panel/panel_name");
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# Display (dump for bugreport)
|
||||
pixel_bugreport(dump_display)
|
||||
|
||||
allow dump_display sysfs_display:file r_file_perms;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# Display eng/userdebug (dump for bugreport)
|
||||
pixel_bugreport(dump_display_userdebug)
|
||||
|
||||
userdebug_or_eng(`
|
||||
|
@ -5,4 +6,6 @@ userdebug_or_eng(`
|
|||
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: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
20
dump_chip_info/Android.bp
Normal 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",
|
||||
}
|
3
dump_chip_info/chip_info.mk
Normal file
3
dump_chip_info/chip_info.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/dump_chip_info/sepolicy
|
||||
|
||||
PRODUCT_PACKAGES += dump_chip_info
|
28
dump_chip_info/dump_chip_info.cpp
Normal file
28
dump_chip_info/dump_chip_info.cpp
Normal 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;
|
||||
}
|
3
dump_chip_info/sepolicy/dump_chip_info.te
Normal file
3
dump_chip_info/sepolicy/dump_chip_info.te
Normal file
|
@ -0,0 +1,3 @@
|
|||
#
|
||||
pixel_bugreport(dump_chip_info)
|
||||
allow dump_chip_info sysfs_chip_info:file r_file_perms;
|
2
dump_chip_info/sepolicy/file.te
Normal file
2
dump_chip_info/sepolicy/file.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
#
|
||||
type sysfs_chip_info, sysfs_type, fs_type;
|
1
dump_chip_info/sepolicy/file_contexts
Normal file
1
dump_chip_info/sepolicy/file_contexts
Normal file
|
@ -0,0 +1 @@
|
|||
/vendor/bin/dump/dump_chip_info u:object_r:dump_chip_info_exec:s0
|
6
dump_chip_info/sepolicy/genfs_contexts
Normal file
6
dump_chip_info/sepolicy/genfs_contexts
Normal 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
|
|
@ -19,10 +19,6 @@ PRODUCT_PACKAGES += \
|
|||
# TPU TFlite Delegate
|
||||
PRODUCT_PACKAGES += \
|
||||
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
|
||||
PRODUCT_PACKAGES += com.google.edgetpu.tachyon-service
|
||||
# TPU Tachyon C API library
|
||||
|
|
|
@ -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
|
||||
# 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
|
||||
get_prop(edgetpu_tachyon_server, vendor_tflite_delegate_prop)
|
||||
|
@ -65,6 +65,4 @@ userdebug_or_eng(`
|
|||
')
|
||||
|
||||
# For shell level testing
|
||||
userdebug_or_eng(`
|
||||
binder_call(edgetpu_tachyon_server, shell);
|
||||
')
|
||||
binder_call(edgetpu_tachyon_server, shell);
|
||||
|
|
|
@ -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
|
||||
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_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/esim/sepolicy/system_ext/private
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
on property:ro.build.type=user && property:ro.boot.flash.locked=0
|
||||
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
|
||||
on property:ro.boot.warranty.sku=BOF
|
||||
setprop setupwizard.feature.provisioning_profile_mode false
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# Allow to read setupwizard_feature_prop
|
||||
get_prop(priv_app, setupwizard_feature_prop)
|
||||
get_prop(gmscore_app, setupwizard_feature_prop)
|
||||
|
|
2
fingerprint/sepolicy/service_contexts
Normal file
2
fingerprint/sepolicy/service_contexts
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Fingerprint HAL extension
|
||||
vendor.goodix.hardware.biometrics.fingerprint.IGoodixFingerprintDaemon/default u:object_r:hal_fingerprint_service:s0
|
|
@ -1,28 +1,16 @@
|
|||
# GCANext and GCAEng.
|
||||
# b/363018500
|
||||
typeattribute debug_camera_app coredomain;
|
||||
|
||||
userdebug_or_eng(`
|
||||
app_domain(debug_camera_app)
|
||||
net_domain(debug_camera_app)
|
||||
|
||||
allow debug_camera_app activity_service:service_manager find;
|
||||
allow debug_camera_app activity_task_service:service_manager find;
|
||||
allow debug_camera_app app_api_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 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 mediametrics_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.
|
||||
hal_client_domain(debug_camera_app, hal_power)
|
||||
|
|
|
@ -3,12 +3,12 @@ typeattribute google_camera_app coredomain;
|
|||
app_domain(google_camera_app)
|
||||
net_domain(google_camera_app)
|
||||
|
||||
#allow google_camera_app app_api_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 mediaextractor_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 app_api_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 mediaextractor_service:service_manager find;
|
||||
allow google_camera_app mediametrics_service:service_manager find;
|
||||
allow google_camera_app mediaserver_service:service_manager find;
|
||||
|
||||
# Allows GCA to access the PowerHAL.
|
||||
hal_client_domain(google_camera_app, hal_power)
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
# GCA-Eng and GCA-Next
|
||||
type debug_camera_app, domain;
|
|
@ -1,2 +0,0 @@
|
|||
# GCA-Release and GCA-Dogfood
|
||||
type google_camera_app, domain;
|
|
@ -1,12 +1,12 @@
|
|||
# GCARelease and GCADogfood.
|
||||
|
||||
# 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)
|
||||
|
||||
# Allows GCA to find and access the EdgeTPU.
|
||||
#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_app_service:service_manager find;
|
||||
allow google_camera_app edgetpu_device:chr_file { read write ioctl };
|
||||
|
||||
# Allows GCA to access the hw_jpeg /dev/video12.
|
||||
#allow google_camera_app hw_jpg_device:chr_file rw_file_perms;
|
||||
|
|
|
@ -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;
|
||||
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;
|
||||
|
||||
|
|
|
@ -13,13 +13,17 @@
|
|||
* See the License for the specific language governing permissions and
|
||||
* 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/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_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_LOG_PREFIX "gl-"
|
||||
#define GPS_MCU_LOG_PREFIX "esw-"
|
||||
|
@ -29,6 +33,92 @@
|
|||
#define GPS_RAWLOG_PREFIX "rawbin"
|
||||
#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() {
|
||||
if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
|
||||
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) {
|
||||
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);
|
||||
copyDirectory(GPS_RESOURCE_DIRECTORY, concatenatePath(outputDir.c_str(), "resource"));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,3 +24,6 @@ allow hal_gnss_pixel vendor_gps_file:fifo_file create_file_perms;
|
|||
# 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:dir r_dir_perms;
|
||||
|
||||
# Allow pixel gnss access vendor_gps_file
|
||||
allow hal_gnss_pixel vendor_gps_file:file create_file_perms;
|
||||
|
|
10
gril/aidl/2.1/compatibility_matrix.xml
Normal file
10
gril/aidl/2.1/compatibility_matrix.xml
Normal 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>
|
4
gril/aidl/2.1/gril_aidl.mk
Normal file
4
gril/aidl/2.1/gril_aidl.mk
Normal 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
|
1
gril/aidl/2.1/sepolicy/file_contexts
Normal file
1
gril/aidl/2.1/sepolicy/file_contexts
Normal file
|
@ -0,0 +1 @@
|
|||
/vendor/bin/hw/vendor\.google\.radioext@1\.0-service u:object_r:hal_aidl_radio_ext_exec:s0
|
4
gril/aidl/2.1/sepolicy/grilservice_app.te
Normal file
4
gril/aidl/2.1/sepolicy/grilservice_app.te
Normal 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)
|
36
gril/aidl/2.1/sepolicy/hal_aidl_radio_ext.te
Normal file
36
gril/aidl/2.1/sepolicy/hal_aidl_radio_ext.te
Normal 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;
|
2
gril/aidl/2.1/sepolicy/hal_camera_default.te
Normal file
2
gril/aidl/2.1/sepolicy/hal_camera_default.te
Normal 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);
|
2
gril/aidl/2.1/sepolicy/twoshay.te
Normal file
2
gril/aidl/2.1/sepolicy/twoshay.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
# allow twoshay to binder call hal_aidl_radio_ext
|
||||
binder_call(twoshay, hal_aidl_radio_ext)
|
|
@ -2,3 +2,5 @@
|
|||
allow grilservice_app hal_radio_ext_service:service_manager find;
|
||||
# allow grilservice_app to binder call hal_radioext_default
|
||||
binder_call(grilservice_app, hal_radioext_default)
|
||||
# allow grilservice_app to binder call twoshay
|
||||
binder_call(grilservice_app, twoshay)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# Dump GXP logs to bugreport.
|
||||
pixel_bugreport(dump_gxp)
|
||||
|
||||
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_crashinfo_file:dir r_dir_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)
|
||||
')
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
# Allow Tachyon service to access the GXP device and read GXP properties.
|
||||
allow edgetpu_tachyon_server gxp_device:chr_file rw_file_perms;
|
||||
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);
|
||||
|
|
10
input/gia/aidl/compatibility_matrix.xml
Normal file
10
input/gia/aidl/compatibility_matrix.xml
Normal 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>
|
10
input/gia/aidl/manifest.xml
Normal file
10
input/gia/aidl/manifest.xml
Normal 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
11
input/gia/gia.mk
Normal 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
|
2
input/gia/sepolicy/attributes
Normal file
2
input/gia/sepolicy/attributes
Normal file
|
@ -0,0 +1,2 @@
|
|||
# This macro produces: define hal_gia, hal_gia_client, hal_gia_server
|
||||
hal_attribute(gia)
|
2
input/gia/sepolicy/file_contexts
Normal file
2
input/gia/sepolicy/file_contexts
Normal 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
18
input/gia/sepolicy/gia.te
Normal 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;
|
8
input/gia/sepolicy/hal_gia.te
Normal file
8
input/gia/sepolicy/hal_gia.te
Normal 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)
|
2
input/gia/sepolicy/service.te
Normal file
2
input/gia/sepolicy/service.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Declares GIA related services
|
||||
type hal_gia_service, hal_service_type, protected_service, service_manager_type;
|
2
input/gia/sepolicy/service_contexts
Normal file
2
input/gia/sepolicy/service_contexts
Normal 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
|
|
@ -1,11 +1,11 @@
|
|||
#!/vendor/bin/sh
|
||||
|
||||
#############################################################
|
||||
### init.insmod.cfg format: ###
|
||||
### ----------------------------------------------------- ###
|
||||
### [insmod|setprop|enable/moprobe|wait] [path|prop name] ###
|
||||
### ... ###
|
||||
#############################################################
|
||||
###################################################################
|
||||
### init.insmod.cfg format: ###
|
||||
### ----------------------------------------------------------- ###
|
||||
### [insmod|setprop|enable|moprobe|rmmod|wait] [path|prop name] ###
|
||||
### ... ###
|
||||
###################################################################
|
||||
|
||||
modules_dir=
|
||||
system_modules_dir=
|
||||
|
@ -96,6 +96,7 @@ if [ -f $cfg_file ]; then
|
|||
modprobe -a -d "${modules_dir}" $arg
|
||||
fi
|
||||
;;
|
||||
"rmmod") rmmod $arg ;;
|
||||
"wait") wait_for_file $arg ;;
|
||||
esac
|
||||
done < $cfg_file
|
||||
|
|
21
interrupts/Android.bp
Normal file
21
interrupts/Android.bp
Normal 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",
|
||||
}
|
16
interrupts/init.interrupts.rc
Normal file
16
interrupts/init.interrupts.rc
Normal 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
3
interrupts/interrupts.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/interrupts/traces/sepolicy
|
||||
|
||||
PRODUCT_PACKAGES += dump_interrupts_traces
|
30
interrupts/traces/dump_interrupts_traces.cpp
Normal file
30
interrupts/traces/dump_interrupts_traces.cpp
Normal 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;
|
||||
}
|
7
interrupts/traces/sepolicy/dump_interrupts_traces.te
Normal file
7
interrupts/traces/sepolicy/dump_interrupts_traces.te
Normal 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 };
|
2
interrupts/traces/sepolicy/file.te
Normal file
2
interrupts/traces/sepolicy/file.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
#
|
||||
type tracefs_instances_interrupts, sysfs_type, fs_type;
|
1
interrupts/traces/sepolicy/file_contexts
Normal file
1
interrupts/traces/sepolicy/file_contexts
Normal file
|
@ -0,0 +1 @@
|
|||
/vendor/bin/dump/dump_interrupts_traces u:object_r:dump_interrupts_traces_exec:s0
|
1
interrupts/traces/sepolicy/genfs_contexts
Normal file
1
interrupts/traces/sepolicy/genfs_contexts
Normal file
|
@ -0,0 +1 @@
|
|||
genfscon tracefs /instances/irq_gia_google/trace u:object_r:tracefs_instances_interrupts:s0
|
21
mailbox/Android.bp
Normal file
21
mailbox/Android.bp
Normal 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",
|
||||
}
|
32
mailbox/dump/dump_mailbox.cpp
Normal file
32
mailbox/dump/dump_mailbox.cpp
Normal 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;
|
||||
}
|
7
mailbox/dump/sepolicy/dump_mailbox.te
Normal file
7
mailbox/dump/sepolicy/dump_mailbox.te
Normal 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;
|
2
mailbox/dump/sepolicy/file.te
Normal file
2
mailbox/dump/sepolicy/file.te
Normal file
|
@ -0,0 +1,2 @@
|
|||
#
|
||||
type debugfs_tracing_instances_mailbox, sysfs_type, fs_type;
|
1
mailbox/dump/sepolicy/file_contexts
Normal file
1
mailbox/dump/sepolicy/file_contexts
Normal file
|
@ -0,0 +1 @@
|
|||
/vendor/bin/dump/dump_mailbox u:object_r:dump_mailbox_exec:s0
|
2
mailbox/dump/sepolicy/genfs_contexts
Normal file
2
mailbox/dump/sepolicy/genfs_contexts
Normal 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
8
mailbox/init.mailbox.rc
Normal 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
3
mailbox/mailbox.mk
Normal file
|
@ -0,0 +1,3 @@
|
|||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/mailbox/dump/sepolicy
|
||||
|
||||
PRODUCT_PACKAGES += dump_mailbox
|
|
@ -7,10 +7,12 @@ PRODUCT_PACKAGES += \
|
|||
libgc2_vdi_vpu \
|
||||
libgc2_log \
|
||||
libgc2_utils \
|
||||
libgc2_dec \
|
||||
libgc2_av1_dec \
|
||||
libgc2_vp9_dec \
|
||||
libgc2_hevc_dec \
|
||||
libgc2_avc_dec \
|
||||
libgc2_enc \
|
||||
libgc2_av1_enc \
|
||||
libgc2_hevc_enc \
|
||||
libgc2_avc_enc \
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# Google Mediacodec
|
||||
type mediacodec_google, domain;
|
||||
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)
|
||||
|
||||
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 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
|
||||
neverallow mediacodec_google { file_type fs_type }:file execute_no_trans;
|
||||
|
|
11
modem/modem_svc_sit/compatibility_matrix.xml
Normal file
11
modem/modem_svc_sit/compatibility_matrix.xml
Normal 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
Loading…
Add table
Add a link
Reference in a new issue