From 0a17acae18022adf38d4f960e2bff013705adfeb Mon Sep 17 00:00:00 2001 From: Lucas Wei Date: Wed, 23 Oct 2024 08:35:26 +0000 Subject: [PATCH] Introduce dump_chip_info module Introduce dump_chip_info dumper to dump driver information of chip-info and required sepolicy. [ 9819.206787][ T335] type=1400 audit(1729750876.372:4710): avc: denied { execute_no_trans } for comm="android.hardwar" path="/vendor/bin/dump/dump_chip_info" dev="dm-11" ino=79 scontext=u:r:hal_dumpstate_default:s0 tcontext=u:object_r:vendor_file:s0 tclass=file permissive=1 [ 9819.231374][ T335] type=1400 audit(1729750876.384:4711): avc: denied { getattr } for comm="dump_chip_info" path="pipe:[1038881]" dev="pipefs" ino=1038881 scontext=u:r:hal_dumpstate_default:s0 tcontext=u:r:shell:s0 tclass=fifo_file permissive=1 Flag: EXEMPT, change source of chipid Bug: 298883728 Change-Id: I0ff6edf98548de4b93c9eeee005ab2e7b365cf7f --- dump_chip_info/Android.bp | 20 +++++++++++++++++++ dump_chip_info/chip_info.mk | 3 +++ dump_chip_info/dump_chip_info.cpp | 24 +++++++++++++++++++++++ dump_chip_info/sepolicy/dump_chip_info.te | 3 +++ dump_chip_info/sepolicy/file.te | 2 ++ dump_chip_info/sepolicy/file_contexts | 1 + dump_chip_info/sepolicy/genfs_contexts | 2 ++ 7 files changed, 55 insertions(+) create mode 100644 dump_chip_info/Android.bp create mode 100644 dump_chip_info/chip_info.mk create mode 100644 dump_chip_info/dump_chip_info.cpp create mode 100644 dump_chip_info/sepolicy/dump_chip_info.te create mode 100644 dump_chip_info/sepolicy/file.te create mode 100644 dump_chip_info/sepolicy/file_contexts create mode 100644 dump_chip_info/sepolicy/genfs_contexts diff --git a/dump_chip_info/Android.bp b/dump_chip_info/Android.bp new file mode 100644 index 0000000..4a13160 --- /dev/null +++ b/dump_chip_info/Android.bp @@ -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", +} diff --git a/dump_chip_info/chip_info.mk b/dump_chip_info/chip_info.mk new file mode 100644 index 0000000..a0d8317 --- /dev/null +++ b/dump_chip_info/chip_info.mk @@ -0,0 +1,3 @@ +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/dump_chip_info/sepolicy + +PRODUCT_PACKAGES += dump_chip_info diff --git a/dump_chip_info/dump_chip_info.cpp b/dump_chip_info/dump_chip_info.cpp new file mode 100644 index 0000000..dd83743 --- /dev/null +++ b/dump_chip_info/dump_chip_info.cpp @@ -0,0 +1,24 @@ +/* + * 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 +#include + +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"); + + return 0; +} diff --git a/dump_chip_info/sepolicy/dump_chip_info.te b/dump_chip_info/sepolicy/dump_chip_info.te new file mode 100644 index 0000000..936d425 --- /dev/null +++ b/dump_chip_info/sepolicy/dump_chip_info.te @@ -0,0 +1,3 @@ +# +pixel_bugreport(dump_chip_info) +allow dump_chip_info sysfs_chip_info:file r_file_perms; diff --git a/dump_chip_info/sepolicy/file.te b/dump_chip_info/sepolicy/file.te new file mode 100644 index 0000000..80900b0 --- /dev/null +++ b/dump_chip_info/sepolicy/file.te @@ -0,0 +1,2 @@ +# +type sysfs_chip_info, sysfs_type, fs_type; diff --git a/dump_chip_info/sepolicy/file_contexts b/dump_chip_info/sepolicy/file_contexts new file mode 100644 index 0000000..b9f4b21 --- /dev/null +++ b/dump_chip_info/sepolicy/file_contexts @@ -0,0 +1 @@ +/vendor/bin/dump/dump_chip_info u:object_r:dump_chip_info_exec:s0 diff --git a/dump_chip_info/sepolicy/genfs_contexts b/dump_chip_info/sepolicy/genfs_contexts new file mode 100644 index 0000000..3fda2de --- /dev/null +++ b/dump_chip_info/sepolicy/genfs_contexts @@ -0,0 +1,2 @@ +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