Add umfw_stat_dump

Bug: 272323547
Test: Verified UmfwStat tables are dumped in bug report.
Change-Id: Ib21c380cd25787ccd8b72f4f7a347e8d28bd4f16
This commit is contained in:
Erik Staats 2023-03-08 20:25:11 +00:00
parent e02ea35ef4
commit 7af3dca98d
6 changed files with 166 additions and 0 deletions

36
umfw_stat/Android.bp Normal file
View File

@ -0,0 +1,36 @@
//
// Copyright (C) 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.
//
// Package defs.
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
// UmfwStat dump tool binary.
cc_binary {
name: "dump_umfw_stat",
srcs: ["dump_umfw_stat.cpp"],
cflags: [
"-Wall",
"-Werror",
"-Wextra",
],
shared_libs: [
"libdump",
],
vendor: true,
relative_install_path: "dump",
}

View File

@ -0,0 +1,33 @@
//
// Copyright (C) 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.
//
//
// UmfwStat dump tool.
//
#include <dump/pixel_dump.h>
int main() {
// Set stdout to be unbuffered.
setbuf(stdout, NULL);
// Dump AoC statistics.
// TODO(b/272300997): Add timeouts for requests.
runCommand("AoC statistics", "timeout 5 /vendor/bin/umfw_stat_tool get_all");
return 0;
}

View File

@ -0,0 +1,27 @@
#
# Copyright (C) 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.
#
#
# UmfwStat dump tool type enforcing file.
#
pixel_bugreport(dump_umfw_stat)
allow dump_umfw_stat aoc_device:chr_file rw_file_perms;
allow dump_umfw_stat device:dir r_dir_perms;
allow dump_umfw_stat vendor_shell_exec:file execute_no_trans;
allow dump_umfw_stat vendor_umfw_stat_tool:file execute_no_trans;
allow dump_umfw_stat vendor_toolbox_exec:file execute_no_trans;

View File

@ -0,0 +1,21 @@
#
# Copyright (C) 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.
#
#
# UmfwStat type enforcing file.
#
type vendor_umfw_stat_tool, vendor_file_type, file_type;

View File

@ -0,0 +1,22 @@
#
# Copyright (C) 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.
#
#
# UmfwStat security contexts.
#
/vendor/bin/dump/dump_umfw_stat u:object_r:dump_umfw_stat_exec:s0
/vendor/bin/umfw_stat_tool u:object_r:vendor_umfw_stat_tool:s0

27
umfw_stat/umfw_stat.mk Normal file
View File

@ -0,0 +1,27 @@
#
# Copyright (C) 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.
#
#
# UmfwStat product makefile.
#
# Add UmfwStat product packages.
PRODUCT_PACKAGES += dump_umfw_stat
PRODUCT_PACKAGES += umfw_stat_tool
# Add UmfwStat SELinx policy.
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/umfw_stat/sepolicy