Compare commits
107 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
811212e505 | ||
|
|
9992b27bee | ||
|
|
0e948f4412 | ||
|
|
a9d1fe5846 | ||
|
|
682713dca6 | ||
|
|
2e79d80e69 | ||
|
|
698d44854d | ||
|
|
6030812881 | ||
|
|
62ef9bc30c | ||
|
|
f59aba6e76 | ||
|
|
586b231ff2 | ||
|
|
e91a9c1b48 | ||
|
|
a18580dbb5 | ||
|
|
925347d2a4 | ||
|
|
85b66936ad | ||
|
|
7c2dc442f4 | ||
|
|
1aaf45b1ed | ||
|
|
9e0d8cd6b7 | ||
|
|
0c80c4903d | ||
|
|
e4589f5ccf | ||
|
|
b0e6bce970 | ||
|
|
b9ef3fddd1 | ||
|
|
806b6aaee6 | ||
|
|
4f5fe230f2 | ||
|
|
6bac540c02 | ||
|
|
a584da96f2 | ||
|
|
2e7113927a | ||
|
|
df679ed3cf | ||
|
|
f26e0bac02 | ||
|
|
078e72ab9f | ||
|
|
c987628f27 | ||
|
|
fdd3c90659 | ||
|
|
e82679c455 | ||
|
|
cdd927d8e0 | ||
|
|
3ab92e37b9 | ||
|
|
b897e29741 | ||
|
|
f1fefdc888 | ||
|
|
b7ba453284 | ||
|
|
c2cc4f62f9 | ||
|
|
1d25c9c521 | ||
|
|
7efec67260 | ||
|
|
8c0965a28c | ||
|
|
0ce9e3d2f1 | ||
|
|
d54ca5c7df | ||
|
|
794823ecbe | ||
|
|
1ae1ccbfd2 | ||
|
|
414899f348 | ||
|
|
858bb94eef | ||
|
|
9376b65823 | ||
|
|
9120529f33 | ||
|
|
b359595163 | ||
|
|
5dfee3a28e | ||
|
|
50097cd5c9 | ||
|
|
09650065e3 | ||
|
|
42524769ab | ||
|
|
889573baa3 | ||
|
|
32125364bc | ||
|
|
5061169979 | ||
|
|
4f5bfe740e | ||
|
|
3c38b05eb0 | ||
|
|
2d30d4b027 | ||
|
|
cba8011730 | ||
|
|
9c9900f4b2 | ||
|
|
3061bf4bfe | ||
|
|
f84a1c12f4 | ||
|
|
ca8594108d | ||
|
|
024e81aedc | ||
|
|
ff101f820c | ||
|
|
2d6d35a8cb | ||
|
|
cd40f734c3 | ||
|
|
7fca0a83f3 | ||
|
|
a6e604b620 | ||
|
|
16ed198209 | ||
|
|
1ad4c21e49 | ||
|
|
dd7a17f10d | ||
|
|
3fdd9f4d0d | ||
|
|
96408a6a49 | ||
|
|
f5574ef8b6 | ||
|
|
245eda2788 | ||
|
|
495e45fc44 | ||
|
|
e9b06768dd | ||
|
|
3bead41faf | ||
|
|
b9a968f68f | ||
|
|
85671ae04b | ||
|
|
b4cc77e5d1 | ||
|
|
5bf11c24ca | ||
|
|
5f86e31fff | ||
|
|
bc3e2ad1fd | ||
|
|
36f7b99b3e | ||
|
|
8e33fb0f1a | ||
|
|
c942c2e518 | ||
|
|
06010a506d | ||
|
|
8554bb1558 | ||
|
|
a4f51cbe34 | ||
|
|
43c1d7c4f2 | ||
|
|
1839dbc346 | ||
|
|
281914698e | ||
|
|
81be8c2c02 | ||
|
|
63b9be2525 | ||
|
|
2b6074a998 | ||
|
|
559c4ef103 | ||
|
|
6c01eae7be | ||
|
|
b8906beecc | ||
|
|
e2f2da2364 | ||
|
|
5215a858c8 | ||
|
|
e1fd6efa40 | ||
|
|
8cd4c361f5 |
22
16kb/16kb.mk
22
16kb/16kb.mk
@@ -1,22 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2025 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.
|
||||
#
|
||||
|
||||
#######################################################################
|
||||
# WARNING: Any rule defined here automatically gets inherited for
|
||||
# *BOTH* 4 KB and 16 KB targets where this file is included.
|
||||
#######################################################################
|
||||
|
||||
PRODUCT_PACKAGES += copy_efs_files_to_data
|
||||
@@ -1,13 +0,0 @@
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
// Filesystem: Copy efs/efs_backup/modem_userdata to /data partition
|
||||
// so that they can be accessed under 16K mode. By default, these partitions
|
||||
// are 4K F2FS , which can't be mounted under 16K mode.
|
||||
// (b/293313353)
|
||||
sh_binary {
|
||||
name: "copy_efs_files_to_data",
|
||||
src: "copy_efs_files_to_data.sh",
|
||||
vendor: true,
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
// Copyright (C) 2025 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package {
|
||||
default_applicable_licenses: ["device_google_gs-common_license"],
|
||||
}
|
||||
|
||||
java_test_host {
|
||||
name: "CopyEfsTest",
|
||||
// Include all test java files
|
||||
srcs: ["src/**/*.java"],
|
||||
static_libs: [
|
||||
"junit",
|
||||
"platform-test-annotations",
|
||||
"truth",
|
||||
],
|
||||
libs: [
|
||||
"tradefed",
|
||||
"compatibility-host-util",
|
||||
"compatibility-tradefed",
|
||||
],
|
||||
test_suites: [
|
||||
"device-tests",
|
||||
"device-pixel-tests",
|
||||
],
|
||||
test_config: "AndroidTest.xml",
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
~ Copyright (C) 2025 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.
|
||||
-->
|
||||
|
||||
<configuration description="Runs 16K developer option test.">
|
||||
<option name="test-suite-tag" value="apct"/>
|
||||
|
||||
<target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
|
||||
<option name="force-root" value="true" />
|
||||
</target_preparer>
|
||||
|
||||
<test class="com.android.compatibility.common.tradefed.testtype.JarHostTest" >
|
||||
<option name="jar" value="CopyEfsTest.jar" />
|
||||
</test>
|
||||
|
||||
<target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
|
||||
<!-- Unlock screen -->
|
||||
<option name="run-command" value="input keyevent KEYCODE_WAKEUP" />
|
||||
<!-- Dismiss keyguard, in case it's set as "Swipe to unlock" -->
|
||||
<option name="run-command" value="wm dismiss-keyguard" />
|
||||
<!-- Collapse notifications -->
|
||||
<option name="run-command" value="cmd statusbar collapse" />
|
||||
<!-- dismiss all system dialogs before launch test -->
|
||||
<option name="run-command" value="am broadcast -a android.intent.action.CLOSE_SYSTEM_DIALOGS" />
|
||||
</target_preparer>
|
||||
|
||||
</configuration>
|
||||
@@ -1,130 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2025 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 com.android.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assume.assumeTrue;
|
||||
import org.junit.Before;
|
||||
import org.junit.After;
|
||||
|
||||
import android.platform.test.annotations.AppModeFull;
|
||||
|
||||
import com.android.tradefed.device.DeviceNotAvailableException;
|
||||
import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
|
||||
import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
|
||||
import com.android.tradefed.testtype.junit4.DeviceTestRunOptions;
|
||||
import com.android.tradefed.util.CommandResult;
|
||||
import com.android.tradefed.util.RunUtil;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.StringReader;
|
||||
|
||||
@RunWith(DeviceJUnit4ClassRunner.class)
|
||||
public class CopyEfsTest extends BaseHostJUnit4Test {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
getDevice().enableAdbRoot();
|
||||
|
||||
getDevice().executeShellCommand("rm -rf /data/local/tmp/efs_test");
|
||||
getDevice().executeShellCommand("mkdir -p /data/local/tmp/efs_test/mnt");
|
||||
getDevice().executeShellCommand("mkdir -p /data/local/tmp/efs_test/dump");
|
||||
}
|
||||
|
||||
@Test
|
||||
@AppModeFull
|
||||
public void copyEfsTest() throws Exception {
|
||||
assumeTrue(getDevice().executeShellCommand("getconf PAGESIZE").trim().equals("4096"));
|
||||
|
||||
testDumpF2FS("efs");
|
||||
testDumpF2FS("efs_backup");
|
||||
testDumpF2FS("modem_userdata");
|
||||
testDumpF2FS("persist");
|
||||
}
|
||||
|
||||
private CommandResult RunAndCheckAdbCmd(String cmd) throws DeviceNotAvailableException {
|
||||
CommandResult r = getDevice().executeShellV2Command(cmd);
|
||||
assertEquals("Failed to run " + cmd, Integer.valueOf(0), r.getExitCode());
|
||||
return r;
|
||||
}
|
||||
|
||||
// Remove timestamps because ls on device does not support --time-style.
|
||||
// Format is [permissions] [links] [uid] [gid] [size] time [name/symlink]
|
||||
// time may vary greatly in formatting
|
||||
// symlinks will be of the form a -> b
|
||||
// So we can check for -> in the second to last spot to determine what position the timestamp ends at
|
||||
// Remove totals because on disk block usage may change depending on filesystem
|
||||
private String removeTimestamps(String input) {
|
||||
StringBuilder output = new StringBuilder();
|
||||
for (String line : input.split("\n")) {
|
||||
String[] tokens = line.split("(?<![\\\\])\\s+");
|
||||
if (tokens[0].equals("total"))
|
||||
continue;
|
||||
if (tokens.length < 3) {
|
||||
output.append(line + "\n");
|
||||
continue;
|
||||
}
|
||||
int name_offset = 1;
|
||||
if (tokens[tokens.length - 2].equals("->"))
|
||||
name_offset = 3;
|
||||
for (int i=0; i<tokens.length; i++) {
|
||||
if (i >= 5 && i < tokens.length - name_offset)
|
||||
continue;
|
||||
if (i != 0)
|
||||
output.append(" ");
|
||||
output.append(tokens[i]);
|
||||
}
|
||||
output.append("\n");
|
||||
}
|
||||
return output.toString();
|
||||
}
|
||||
|
||||
private void testDumpF2FS(String name) throws Exception {
|
||||
RunAndCheckAdbCmd(String.format("cp /dev/block/by-name/%s /data/local/tmp/efs_test/%s.img", name, name));
|
||||
|
||||
// The device was mounted r/w. To get a clean image, we run fsck, and then mount to allow mount time fixes to happen.
|
||||
// We can then dump and mount read only to ensure the contents should be the same.
|
||||
RunAndCheckAdbCmd(String.format("fsck.f2fs -f /data/local/tmp/efs_test/%s.img", name));
|
||||
RunAndCheckAdbCmd(String.format("mount /data/local/tmp/efs_test/%s.img /data/local/tmp/efs_test/mnt", name));
|
||||
RunAndCheckAdbCmd("umount /data/local/tmp/efs_test/mnt");
|
||||
|
||||
RunAndCheckAdbCmd(String.format("dump.f2fs -rfPLo /data/local/tmp/efs_test/dump /data/local/tmp/efs_test/%s.img", name));
|
||||
RunAndCheckAdbCmd(String.format("mount -r /data/local/tmp/efs_test/%s.img /data/local/tmp/efs_test/mnt", name));
|
||||
|
||||
CommandResult r = RunAndCheckAdbCmd("diff -rq --no-dereference /data/local/tmp/efs_test/mnt /data/local/tmp/efs_test/dump");
|
||||
assertEquals(r.getStdout(), "");
|
||||
|
||||
String ls_cmd = "cd /data/local/tmp/efs_test/%s;ls -AlnR .";
|
||||
CommandResult mnt_ls = RunAndCheckAdbCmd(String.format(ls_cmd, "mnt"));
|
||||
CommandResult dump_ls = RunAndCheckAdbCmd(String.format(ls_cmd, "dump"));
|
||||
assertEquals(removeTimestamps(mnt_ls.getStdout()), removeTimestamps(dump_ls.getStdout()));
|
||||
|
||||
getDevice().executeShellCommand("umount /data/local/tmp/efs_test/mnt");
|
||||
getDevice().executeShellCommand("rm -rf /data/local/tmp/efs_test/dump/*");
|
||||
getDevice().executeShellCommand("rm /data/local/tmp/efs_test/" + name + ".img");
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
getDevice().executeShellCommand("umount /data/local/tmp/efs_test/mnt");
|
||||
getDevice().executeShellCommand("rm -rf /data/local/tmp/efs_test");
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/vendor/bin/sh
|
||||
|
||||
CHECKPOINT_DIR=/data/vendor/copied
|
||||
|
||||
export BIN_DIR=/vendor/bin
|
||||
|
||||
$BIN_DIR/mkdir -p $CHECKPOINT_DIR
|
||||
|
||||
function copy_files_to_data()
|
||||
{
|
||||
block_device=$1
|
||||
partition_name=$(basename $1)
|
||||
mount_point=$2
|
||||
tmpdir=$CHECKPOINT_DIR/$partition_name.img
|
||||
build_checkpoint=$CHECKPOINT_DIR/$partition_name
|
||||
if [ ! -e $build_checkpoint ]; then
|
||||
$BIN_DIR/rm -rf $tmpdir
|
||||
$BIN_DIR/mkdir -p $tmpdir
|
||||
$BIN_DIR/dump.f2fs -rfPLo $tmpdir $block_device
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to $BIN_DIR/dump.f2fs -rfPLo $tmpdir $block_device"
|
||||
return
|
||||
fi
|
||||
$BIN_DIR/mv $tmpdir $build_checkpoint
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "mv $tmpdir $build_checkpoint"
|
||||
return
|
||||
fi
|
||||
$BIN_DIR/fsync `dirname $build_checkpoint`
|
||||
fi
|
||||
echo "Successfully copied $mount_point to $build_checkpoint"
|
||||
}
|
||||
|
||||
copy_files_to_data "/dev/block/by-name/efs" "/mnt/vendor/efs"
|
||||
copy_files_to_data "/dev/block/by-name/efs_backup" "/mnt/vendor/efs_backup"
|
||||
copy_files_to_data "/dev/block/by-name/modem_userdata" "/mnt/vendor/modem_userdata"
|
||||
copy_files_to_data "/dev/block/by-name/persist" "/mnt/vendor/persist"
|
||||
|
||||
$BIN_DIR/fsync /data/vendor/copied
|
||||
11
FSTAB_OWNERS
11
FSTAB_OWNERS
@@ -1,11 +0,0 @@
|
||||
# NOTE: CHANGE THIS FILE WITH CAUTIOUS
|
||||
# - this file is referenced by other OWNERS file, e.g. device/google/*/OWNERS
|
||||
# - changing this file might break the function, check go/gerrit-code-owners-syntax first
|
||||
|
||||
jaegeuk@google.com
|
||||
huangrandall@google.com
|
||||
bvanassche@google.com
|
||||
daehojeong@google.com
|
||||
chullee@google.com
|
||||
vkon@google.com
|
||||
thomasyen@google.com
|
||||
20
MK_OWNERS
20
MK_OWNERS
@@ -1,20 +0,0 @@
|
||||
# NOTE: CHANGE THIS FILE WITH CAUTIOUS
|
||||
# - this file is referenced by other OWNERS file, e.g. device/google/*/OWNERS
|
||||
# - changing this file might break the function, check go/gerrit-code-owners-syntax first
|
||||
#
|
||||
# Makefile Review Guide for OWNERS: go/pixel-device-mk-owner-checklist
|
||||
|
||||
aaronding@google.com
|
||||
rurumihong@google.com
|
||||
adamshih@google.com
|
||||
wilsonsung@google.com
|
||||
cyanhsieh@google.com
|
||||
cyuanjen@google.com
|
||||
robinpeng@google.com
|
||||
achant@google.com
|
||||
etam@google.com
|
||||
pattjin@google.com
|
||||
bkhalife@google.com
|
||||
lokeshgoel@google.com
|
||||
jainne@google.com
|
||||
pscovanner@google.com
|
||||
5
OWNERS
5
OWNERS
@@ -1,5 +1,6 @@
|
||||
|
||||
per-file *.te,*_contexts,te_macros,global_macros=set noparent
|
||||
per-file *.te,*_contexts,te_macros,global_macros=file:/sepolicy/OWNERS
|
||||
per-file *.mk,{**/,}Android.bp=set noparent
|
||||
per-file *.mk,{**/,}Android.bp=file:MK_OWNERS
|
||||
per-file *.mk=set noparent
|
||||
per-file *.mk=aaronding@google.com,rurumihong@google.com,adamshih@google.com,wilsonsung@google.com,cyanhsieh@google.com,cyuanjen@google.com,robinpeng@google.com,achant@google.com,etam@google.com,pattjin@google.com,bkhalife@google.com,lokeshgoel@google.com,jainne@google.com,pscovanner@google.com
|
||||
|
||||
|
||||
16
aoc/aoc.mk
16
aoc/aoc.mk
@@ -4,6 +4,22 @@ PRODUCT_PACKAGES += dump_aoc \
|
||||
aocd \
|
||||
aocxd
|
||||
|
||||
ifeq (,$(filter aosp_%,$(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
|
||||
|
||||
# AoC debug support
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
aocdump \
|
||||
aocutil \
|
||||
aoc_audio_cfg \
|
||||
vp_util \
|
||||
aocx_tool
|
||||
endif
|
||||
|
||||
3
aoc/conf/init.aoc.nodaemon.rc
Normal file
3
aoc/conf/init.aoc.nodaemon.rc
Normal file
@@ -0,0 +1,3 @@
|
||||
# Load AoC firmware and boot
|
||||
on property:vendor.all.modules.ready=1
|
||||
write /sys/devices/platform/19000000.aoc/firmware aoc.bin
|
||||
@@ -29,10 +29,9 @@ int main() {
|
||||
runCommand("AoC logging wake", "timeout 0.1 cat /sys/devices/platform/*.aoc/control/logging_wakeup");
|
||||
runCommand("AoC hotword wake", "timeout 0.1 cat /sys/devices/platform/*.aoc/control/hotword_wakeup");
|
||||
runCommand("AoC memory exception wake", "timeout 0.1 cat /sys/devices/platform/*.aoc/control/memory_exception");
|
||||
runCommand("AoC memory votes", "timeout 0.5 cat /sys/devices/platform/*.aoc/control/memory_votes_a32");
|
||||
runCommand("AoC memory votes", "timeout 0.5 cat /sys/devices/platform/*.aoc/control/memory_votes_ff1");
|
||||
runCommand("AoC memory votes", "timeout 0.1 cat /sys/devices/platform/*.aoc/control/memory_votes_a32");
|
||||
runCommand("AoC memory votes", "timeout 0.1 cat /sys/devices/platform/*.aoc/control/memory_votes_ff1");
|
||||
runCommand("clean AoC buffer","echo ' ' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
|
||||
runCommand("AoC DVFS (A32)", "echo 'dbg info -c 1 DVFSA32' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
|
||||
runCommand("AoC DVFS (FF1)", "echo 'dbg info -c 2 DVFSFF1' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
|
||||
runCommand("AoC Monitor Mode Status", "echo 'monitor_mode status' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
|
||||
return 0;
|
||||
|
||||
@@ -26,6 +26,3 @@ add_service(aocxd, aocx);
|
||||
|
||||
# allow managing thread priority
|
||||
allow aocxd self:global_capability_class_set sys_nice;
|
||||
|
||||
allow aocxd dumpstate:fd use;
|
||||
allow aocxd dumpstate:fifo_file write;
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# Allow dumpstate to talk to aocxd over binder
|
||||
binder_call(dumpstate, aocxd)
|
||||
@@ -28,15 +28,7 @@
|
||||
/dev/acd-audio_ap_offload_tx u:object_r:aoc_device:s0
|
||||
/dev/acd-mel_processor u:object_r:aoc_device:s0
|
||||
/dev/acd-aocx_control u:object_r:aoc_device:s0
|
||||
/dev/acd-aocx_inject[0-9]* u:object_r:aoc_device:s0
|
||||
/dev/acd-aocx_tapout[0-9]* u:object_r:aoc_device:s0
|
||||
/dev/acd-mc_headpos 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_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 +0,0 @@
|
||||
type aocx, service_manager_type;
|
||||
@@ -1 +0,0 @@
|
||||
aocx.IAocx/default u:object_r:aocx:s0
|
||||
1
aoc/sepolicy/vndservice.te
Normal file
1
aoc/sepolicy/vndservice.te
Normal file
@@ -0,0 +1 @@
|
||||
type aocx, vndservice_manager_type;
|
||||
1
aoc/sepolicy/vndservice_contexts
Normal file
1
aoc/sepolicy/vndservice_contexts
Normal file
@@ -0,0 +1 @@
|
||||
aocx.IAocx u:object_r:aocx:s0
|
||||
@@ -6,6 +6,9 @@ PRODUCT_PACKAGES += \
|
||||
android.hardware.audio.service-aidl.aoc \
|
||||
vendor.google.whitechapel.audio.hal.parserservice \
|
||||
|
||||
# AIDL software effects. These are the effects supporting in all projects.
|
||||
# For the project-specific effects, such as haptic generator, please add them
|
||||
# to makefile in the project's device folder.
|
||||
PRODUCT_PACKAGES += \
|
||||
libvisualizeraidl \
|
||||
libbundleaidl \
|
||||
@@ -13,14 +16,9 @@ PRODUCT_PACKAGES += \
|
||||
libdynamicsprocessingaidl \
|
||||
libloudnessenhanceraidl \
|
||||
libdownmixaidl \
|
||||
libhapticgeneratoraidl \
|
||||
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/aidl
|
||||
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
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio
|
||||
|
||||
include device/google/gs-common/audio/common.mk
|
||||
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
<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>4-5</version>
|
||||
<version>1</version>
|
||||
<interface>
|
||||
<name>IAudioExtension</name>
|
||||
<instance>default</instance>
|
||||
|
||||
@@ -1,2 +1,11 @@
|
||||
<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>
|
||||
|
||||
@@ -3,15 +3,8 @@ BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/common
|
||||
#Audio Vendor libraries
|
||||
PRODUCT_PACKAGES += \
|
||||
libfvsam_prm_parser \
|
||||
libmahalcontroller
|
||||
|
||||
ifeq ($(USE_MAM_V4_ABOVE),true)
|
||||
PRODUCT_PACKAGES += \
|
||||
libMAM_Google_Pixel_Android
|
||||
else
|
||||
PRODUCT_PACKAGES += \
|
||||
libmahalcontroller \
|
||||
libAlgFx_HiFi3z
|
||||
endif
|
||||
|
||||
ifneq ($(USE_AUDIO_HAL_AIDL),true)
|
||||
## AudioHAL Configurations
|
||||
@@ -27,4 +20,9 @@ PRODUCT_COPY_FILES += \
|
||||
|
||||
endif
|
||||
|
||||
## TODO(b/271958194): separate for hidl and aidl.
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google/whitechapel/audio/hal \
|
||||
vendor/google/whitechapel/audio/interfaces
|
||||
|
||||
$(call soong_config_set,aoc_audio_board,platform,$(TARGET_BOARD_PLATFORM))
|
||||
|
||||
@@ -32,14 +32,8 @@ 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
|
||||
|
||||
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
|
||||
|
||||
@@ -32,12 +32,6 @@ 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
|
||||
|
||||
43
audio/hidl_zuma.mk
Normal file
43
audio/hidl_zuma.mk
Normal file
@@ -0,0 +1,43 @@
|
||||
DEVICE_MANIFEST_FILE += device/google/gs-common/audio/hidl/manifest.xml
|
||||
|
||||
# Audio HAL Server & Default Implementations
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.audio.service \
|
||||
android.hardware.audio@7.1-impl \
|
||||
android.hardware.audio.effect@7.0-impl \
|
||||
android.hardware.soundtrigger@2.3-impl \
|
||||
vendor.google.whitechapel.audio.audioext@4.0-impl \
|
||||
android.hardware.bluetooth.audio-impl \
|
||||
|
||||
#Audio HAL libraries
|
||||
PRODUCT_PACKAGES += \
|
||||
audio.primary.$(TARGET_BOARD_PLATFORM) \
|
||||
audio.platform.aoc \
|
||||
audio_tunnel_aoc \
|
||||
aoc_aud_ext \
|
||||
libaoctuningdecoder \
|
||||
liboffloadeffect \
|
||||
audio_bt_aoc \
|
||||
audio_waves_aoc \
|
||||
audio_fortemedia_aoc \
|
||||
audio_bluenote_aoc \
|
||||
audio_usb_aoc \
|
||||
audio_cca_aoc \
|
||||
audio_compensation_aoc \
|
||||
libamcsextfile \
|
||||
audio_amcs_ext \
|
||||
audio.usb.default \
|
||||
audio.usbv2.default \
|
||||
audio.bluetooth.default \
|
||||
audio.r_submix.default \
|
||||
audio_spk_35l41 \
|
||||
audio_spk_tas25xx \
|
||||
audio_hdmi_aoc \
|
||||
sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
|
||||
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hidl
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/audio/sepolicy/hdmi_audio
|
||||
|
||||
include device/google/gs-common/audio/common.mk
|
||||
|
||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/audio/hidl/device_framework_matrix_product.xml
|
||||
@@ -1,4 +1 @@
|
||||
add_service(hal_audio_default, hal_audio_ext_service)
|
||||
# Allow audio-hal to register battery_mitigation service
|
||||
allow hal_audio_default hal_battery_mitigation_service:service_manager find;
|
||||
binder_call(hal_audio_default, battery_mitigation)
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# Allow access to audio HAL.
|
||||
binder_call(hal_sensors_default, hal_audio_default)
|
||||
allow hal_sensors_default hal_audio_ext_service:service_manager find;
|
||||
@@ -21,4 +21,3 @@ genfscon sysfs /devices/platform/audiometrics/call_count u:ob
|
||||
genfscon sysfs /devices/platform/audiometrics/offload_effects_id u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/offload_effects_duration u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/bt_usage u:object_r:sysfs_pixelstats:s0
|
||||
genfscon sysfs /devices/platform/audiometrics/speaker_version u:object_r:sysfs_pixelstats:s0
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# allow access to folders
|
||||
allow hal_audio_default audio_vendor_data_file:dir rw_dir_perms;
|
||||
allow hal_audio_default audio_vendor_data_file:file create_file_perms;
|
||||
|
||||
@@ -13,9 +12,6 @@ allow hal_audio_default aoc_device:chr_file rw_file_perms;
|
||||
allow hal_audio_default amcs_device:file rw_file_perms;
|
||||
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 };
|
||||
@@ -25,7 +21,6 @@ allow hal_audio_default sysfs_aoc_boottime:file r_file_perms;
|
||||
allow hal_audio_default dmabuf_heap_device:chr_file r_file_perms;
|
||||
|
||||
set_prop(hal_audio_default, vendor_audio_prop);
|
||||
set_prop(hal_audio_default, vendor_audio_prop_restricted);
|
||||
|
||||
hal_client_domain(hal_audio_default, hal_health);
|
||||
hal_client_domain(hal_audio_default, hal_thermal);
|
||||
|
||||
@@ -1,5 +1,2 @@
|
||||
# Audio
|
||||
vendor_internal_prop(vendor_audio_prop)
|
||||
|
||||
# The property for Audio App
|
||||
vendor_restricted_prop(vendor_audio_prop_restricted)
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
# for serial no
|
||||
vendor.audio_hal.device.serialno u:object_r:vendor_audio_prop:s0
|
||||
|
||||
# for audio
|
||||
vendor.audio_hal.period_multiplier u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.enable u:object_r:vendor_audio_prop:s0
|
||||
@@ -12,6 +9,3 @@ vendor.audiodump.encode.disable u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.log.cca.updated u:object_r:vendor_audio_prop:s0
|
||||
vendor.audiodump.cca.config u:object_r:vendor_audio_prop:s0
|
||||
vendor.audio_hal.aidl.enable u:object_r:vendor_audio_prop:s0
|
||||
|
||||
# for audio app
|
||||
persist.vendor.app.audio. u:object_r:vendor_audio_prop_restricted:s0
|
||||
|
||||
@@ -1,5 +1,2 @@
|
||||
# Audio property
|
||||
set_prop(vendor_init, vendor_audio_prop)
|
||||
|
||||
# Audio App property
|
||||
set_prop(vendor_init, vendor_audio_prop_restricted)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
genfscon sysfs /devices/platform/dwc_dptx-audio/extcon/hdmi_audio u:object_r:sysfs_extcon:s0
|
||||
@@ -1,11 +1,19 @@
|
||||
ifeq (,$(filter factory_%,$(TARGET_PRODUCT)))
|
||||
PRODUCT_PACKAGES += battery_mitigation
|
||||
endif
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
ifeq (,$(filter factory_%,$(TARGET_PRODUCT)))
|
||||
PRODUCT_PACKAGES += BrownoutDetection
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(RELEASE_PIXEL_AIDL_BATTERY_MITIGATION_HAL), true)
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
vendor.battery_mitigation.aidl.enable=true
|
||||
endif
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += device/google/gs-common/battery_mitigation
|
||||
PRODUCT_SOONG_NAMESPACES += device/google/gs-common/battery_mitigation \
|
||||
vendor/google/battery_mitigation
|
||||
PRODUCT_PACKAGES += vendor.google.battery_mitigation-default
|
||||
PRODUCT_PACKAGES += vendor.google.battery_mitigation.service_static
|
||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/battery_mitigation/compatibility_matrix.xml
|
||||
|
||||
@@ -24,8 +24,6 @@ allow battery_mitigation sysfs_bcl:lnk_file r_file_perms;
|
||||
allow battery_mitigation sysfs_thermal:lnk_file r_file_perms;
|
||||
allow battery_mitigation mitigation_vendor_data_file:dir rw_dir_perms;
|
||||
allow battery_mitigation mitigation_vendor_data_file:file create_file_perms;
|
||||
allow battery_mitigation dumpstate:fd use;
|
||||
allow battery_mitigation dumpstate:fifo_file rw_file_perms;
|
||||
|
||||
# Allow battery_mitigation to use Binder IPC so that service manager can notify it for callbacks
|
||||
binder_use(battery_mitigation)
|
||||
@@ -33,6 +31,3 @@ binder_use(battery_mitigation)
|
||||
wakelock_use(battery_mitigation)
|
||||
# Allow battery_mitigation to run aidl service
|
||||
add_service(battery_mitigation, hal_battery_mitigation_service)
|
||||
# Allow battery_mitigation to run audio mitigation callback
|
||||
binder_call(battery_mitigation, hal_audio_default)
|
||||
binder_call(battery_mitigation, servicemanager)
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# To call battery_mitigation hal
|
||||
allow dumpstate hal_battery_mitigation_service:service_manager find;
|
||||
binder_call(dumpstate, battery_mitigation);
|
||||
@@ -1 +1 @@
|
||||
type hal_battery_mitigation_service, hal_service_type, service_manager_type;
|
||||
type hal_battery_mitigation_service, protected_service, hal_service_type, service_manager_type;
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/broadcom/bluetooth
|
||||
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.bcmbtlinux \
|
||||
vendor.google.bluetooth_ext-V3-ndk.so \
|
||||
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/bcmbt/sepolicy
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/powerstats
|
||||
|
||||
DEVICE_MANIFEST_FILE += device/google/gs-common/bcmbt/manifest_bluetooth.xml
|
||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/bcmbt/compatibility_matrix.xml
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<compatibility-matrix version="1.0" type="framework">
|
||||
<hal format="aidl" optional="true">
|
||||
<name>vendor.google.bluetooth_ext</name>
|
||||
<version>1-3</version>
|
||||
<version>1</version>
|
||||
<interface>
|
||||
<name>IBluetoothFinder</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<fqname>IBluetoothFinder/default</fqname>
|
||||
<interface>
|
||||
<name>IBluetoothCcc</name>
|
||||
<instance>default</instance>
|
||||
@@ -26,9 +27,5 @@
|
||||
<name>IBluetoothEwp</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<interface>
|
||||
<name>IBluetoothCco</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</compatibility-matrix>
|
||||
|
||||
@@ -3,9 +3,8 @@ package {
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_mailbox",
|
||||
srcs: ["dump/dump_mailbox.cpp"],
|
||||
init_rc: ["init.mailbox.rc"],
|
||||
name: "dump_bcmbt",
|
||||
srcs: ["dump_bcmbt.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
@@ -13,8 +12,8 @@ cc_binary {
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"libdump",
|
||||
"liblog",
|
||||
"libdump",
|
||||
"liblog",
|
||||
],
|
||||
vendor: true,
|
||||
relative_install_path: "dump",
|
||||
44
bcmbt/dump/dump_bcmbt.cpp
Normal file
44
bcmbt/dump/dump_bcmbt.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/properties.h>
|
||||
#include <android-base/file.h>
|
||||
|
||||
#define BCMBT_ACTIVITY_LOG_DIRECTORY "/data/vendor/bluetooth"
|
||||
#define BCMBT_SNOOP_LOG_DIRECTORY "/data/vendor/bluetooth"
|
||||
#define BCMBT_FW_LOG_DIRECTORY "/data/vendor/ssrdump/coredump"
|
||||
#define BCMBT_SNOOP_LOG_PREFIX "btsnoop_hci_vnd"
|
||||
#define BCMBT_BACKUP_SNOOP_LOG_PREFIX "backup_btsnoop_hci_vnd"
|
||||
#define BCMBT_FW_DUMP_LOG_PREFIX "coredump_bt_socdump_"
|
||||
#define BCMBT_CHRE_DUMP_LOG_PREFIX "coredump_bt_chredump_"
|
||||
#define BCMBT_HAL_DUMP_LOG_PREFIX "coredump_bt_"
|
||||
#define BCMBT_ACTIVITY_LOG_PREFIX "bt_activity_"
|
||||
|
||||
int main() {
|
||||
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "bcmbt");
|
||||
if (mkdir(outputDir.c_str(), 0777) == -1) {
|
||||
printf("Unable to create folder: %s\n", outputDir.c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
dumpLogs(BCMBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 2, BCMBT_SNOOP_LOG_PREFIX);
|
||||
dumpLogs(BCMBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 2, BCMBT_BACKUP_SNOOP_LOG_PREFIX);
|
||||
dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_FW_DUMP_LOG_PREFIX);
|
||||
dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_CHRE_DUMP_LOG_PREFIX);
|
||||
dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_HAL_DUMP_LOG_PREFIX);
|
||||
dumpLogs(BCMBT_ACTIVITY_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_ACTIVITY_LOG_PREFIX);
|
||||
return 0;
|
||||
}
|
||||
@@ -1 +1,5 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/bcmbt/dump/sepolicy/
|
||||
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += dump_bcmbt
|
||||
endif
|
||||
|
||||
@@ -4,25 +4,14 @@
|
||||
<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>2</version>
|
||||
<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>
|
||||
<fqname>IBluetoothCco/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
||||
@@ -5,4 +5,3 @@ vendor.google.bluetooth_ext.IBluetoothCcc/default u:o
|
||||
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
|
||||
vendor.google.bluetooth_ext.IBluetoothCco/default u:object_r:hal_bluetooth_coexistence_service:s0
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# When neither AOSP nor factory targets
|
||||
ifeq (,$(filter aosp_% factory_% lineage_%, $(TARGET_PRODUCT)))
|
||||
PRODUCT_PACKAGES += BetterBugStub
|
||||
endif
|
||||
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/betterbug/sepolicy/product/public
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/betterbug/sepolicy/product/private
|
||||
@@ -1,47 +0,0 @@
|
||||
typeattribute better_bug_app coredomain;
|
||||
|
||||
app_domain(better_bug_app)
|
||||
net_domain(better_bug_app)
|
||||
|
||||
allow better_bug_app app_api_service:service_manager find;
|
||||
allow better_bug_app mediaserver_service:service_manager find;
|
||||
allow better_bug_app radio_service:service_manager find;
|
||||
allow better_bug_app system_api_service:service_manager find;
|
||||
|
||||
allow better_bug_app privapp_data_file:file execute;
|
||||
allow better_bug_app privapp_data_file:lnk_file r_file_perms;
|
||||
allow better_bug_app shell_data_file:file r_file_perms;
|
||||
allow better_bug_app shell_data_file:dir r_dir_perms;
|
||||
|
||||
# Allow traceur to pass file descriptors through a content provider to betterbug
|
||||
allow better_bug_app trace_data_file:file { getattr read };
|
||||
|
||||
# Allow betterbug to read profile reports generated by profcollect.
|
||||
userdebug_or_eng(`
|
||||
allow better_bug_app profcollectd_data_file:file r_file_perms;
|
||||
')
|
||||
|
||||
# Allow BetterBug access to WM traces attributes
|
||||
allow better_bug_app wm_trace_data_file:dir r_dir_perms;
|
||||
allow better_bug_app wm_trace_data_file:file getattr;
|
||||
|
||||
# Allow the bug reporting frontend to read the presence and timestamp of the
|
||||
# trace attached to the bugreport (but not its contents, which will go in the
|
||||
# usual bugreport .zip file). This is used by the bug reporting UI to tell if
|
||||
# the bugreport will contain a system trace or not while the bugreport is still
|
||||
# in progress.
|
||||
allow better_bug_app perfetto_traces_bugreport_data_file:dir r_dir_perms;
|
||||
allow better_bug_app perfetto_traces_bugreport_data_file:file { getattr };
|
||||
|
||||
# Allow BetterBug to receive Perfetto traces through the framework
|
||||
# (i.e. TracingServiceProxy) and sendfile them into their private
|
||||
# directories for reporting when network and battery conditions are
|
||||
# appropriate.
|
||||
allow better_bug_app perfetto:fd use;
|
||||
allow better_bug_app perfetto_traces_data_file:file { read getattr };
|
||||
|
||||
# Allow BetterBug to set property to start vendor.touch_dumpstate
|
||||
set_prop(better_bug_app, ctl_start_prop)
|
||||
|
||||
# Allow BetterBug to read system boot reason
|
||||
get_prop(better_bug_app, system_boot_reason_prop)
|
||||
@@ -1,2 +0,0 @@
|
||||
# BetterBug
|
||||
user=_app isPrivApp=true name=com.google.android.apps.internal.betterbug domain=better_bug_app type=privapp_data_file levelFrom=user
|
||||
@@ -1 +0,0 @@
|
||||
type better_bug_app, domain;
|
||||
@@ -1,15 +0,0 @@
|
||||
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
|
||||
@@ -1,30 +0,0 @@
|
||||
<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>
|
||||
@@ -1 +0,0 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/bluetooth/dump/sepolicy/
|
||||
@@ -1,12 +0,0 @@
|
||||
# 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;
|
||||
@@ -1,2 +0,0 @@
|
||||
# bt common hal dump_bt service
|
||||
/vendor/bin/dump/dump_bt u:object_r:dump_bt_exec:s0
|
||||
@@ -1,27 +0,0 @@
|
||||
<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>
|
||||
@@ -1,3 +0,0 @@
|
||||
# Bt Wifi Coexistence device
|
||||
type wb_coexistence_dev, dev_type;
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# 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
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# 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
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# 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;
|
||||
')
|
||||
@@ -1,3 +0,0 @@
|
||||
# Bluetooth HAL extension
|
||||
type hal_bluetooth_coexistence_hwservice, hwservice_manager_type, vendor_hwservice_type;
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# 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
|
||||
@@ -1,2 +0,0 @@
|
||||
# Bluetooth HAL extension
|
||||
type hal_bluetooth_coexistence_service, hal_service_type, service_manager_type;
|
||||
@@ -1,7 +0,0 @@
|
||||
# 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
|
||||
@@ -19,7 +19,6 @@
|
||||
#include "BootControl.h"
|
||||
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/unique_fd.h>
|
||||
#include <bootloader_message/bootloader_message.h>
|
||||
#include <cutils/properties.h>
|
||||
@@ -255,15 +254,16 @@ static bool blowAR_gs101() {
|
||||
}
|
||||
|
||||
static bool blowAR() {
|
||||
const auto& platform = ::android::base::GetProperty("ro.boot.hardware.platform", "");
|
||||
char platform[PROPERTY_VALUE_MAX];
|
||||
property_get("ro.boot.hardware.platform", platform, "");
|
||||
|
||||
if (platform == "gs101") {
|
||||
if (std::string(platform) == "gs101") {
|
||||
return blowAR_gs101();
|
||||
} else if (platform == "gs201" || platform == "zuma" || platform == "zumapro") {
|
||||
} else if (std::string(platform) == "gs201" || std::string(platform) == "zuma") {
|
||||
return blowAR_zuma();
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android-base/unique_fd.h>
|
||||
#include <bootloader_message/bootloader_message.h>
|
||||
#include <cutils/properties.h>
|
||||
@@ -252,15 +251,16 @@ static bool blowAR_gs101() {
|
||||
}
|
||||
|
||||
static bool blowAR() {
|
||||
const auto& platform = ::android::base::GetProperty("ro.boot.hardware.platform", "");
|
||||
char platform[PROPERTY_VALUE_MAX];
|
||||
property_get("ro.boot.hardware.platform", platform, "");
|
||||
|
||||
if (platform == "gs101") {
|
||||
if (std::string(platform) == "gs101") {
|
||||
return blowAR_gs101();
|
||||
} else if (platform == "gs201" || platform == "zuma" || platform == "zumapro") {
|
||||
} else if (std::string(platform) == "gs201" || std::string(platform) == "zuma") {
|
||||
return blowAR_zuma();
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
static constexpr MergeStatus ToAIDLMergeStatus(HIDLMergeStatus status) {
|
||||
@@ -384,7 +384,7 @@ ScopedAStatus BootControl::isSlotMarkedSuccessful(int32_t in_slot, bool* _aidl_r
|
||||
*_aidl_return = true;
|
||||
return ScopedAStatus::ok();
|
||||
}
|
||||
if (in_slot < 0 || in_slot >= slots)
|
||||
if (in_slot >= slots)
|
||||
return ScopedAStatus::fromServiceSpecificErrorWithMessage(
|
||||
INVALID_SLOT, (std::string("Invalid slot ") + std::to_string(in_slot)).c_str());
|
||||
|
||||
|
||||
@@ -2,6 +2,23 @@ package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_camera",
|
||||
srcs: ["dump_camera.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"libdump",
|
||||
"liblog",
|
||||
],
|
||||
vendor: true,
|
||||
relative_install_path: "dump",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "lyric_preview_dis_xml",
|
||||
vendor: true,
|
||||
@@ -9,43 +26,3 @@ prebuilt_etc {
|
||||
src: "vendor.android.hardware.camera.preview-dis.xml",
|
||||
sub_dir: "permissions",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "concurrent_foldable_dual_front_xml",
|
||||
vendor: true,
|
||||
filename: "com.google.pixel.camera.concurrent_foldable_dual_front.xml",
|
||||
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",
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "vendor-apex-allowlist-lyric.xml",
|
||||
src: "vendor-apex-allowlist-lyric.xml",
|
||||
vendor: true,
|
||||
sub_dir: "sysconfig",
|
||||
filename_from_src: true,
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- The feature on Pixel devices which supports concurrent foldable
|
||||
dual front streaming -->
|
||||
<permissions>
|
||||
<feature name="com.google.pixel.camera.concurrent_foldable_dual_front" />
|
||||
</permissions>
|
||||
@@ -1,3 +1,7 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/camera/sepolicy/vendor
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/gs-common/camera/sepolicy/product/public
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/camera/sepolicy/product/private
|
||||
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += dump_camera
|
||||
endif
|
||||
|
||||
53
camera/dump_camera.cpp
Normal file
53
camera/dump_camera.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2022 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 <android-base/file.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <dump/pixel_dump.h>
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr std::string_view kCameraLogDir = "/data/vendor/camera/profiler";
|
||||
constexpr std::string_view kGraphStateDumpDir = "/data/vendor/camera";
|
||||
|
||||
} // namespace
|
||||
|
||||
int main() {
|
||||
if (!::android::base::GetBoolProperty(
|
||||
"vendor.camera.debug.camera_performance_analyzer.attach_to_bugreport",
|
||||
true)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const std::string cameraDestDir =
|
||||
concatenatePath(BUGREPORT_PACKING_DIR, "camera");
|
||||
|
||||
if (mkdir(cameraDestDir.c_str(), 0777) == -1) {
|
||||
printf("Unable to create folder: %s\n", cameraDestDir.c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Attach multiple latest sessions (in case the user is running concurrent
|
||||
// sessions or starts a new session after the one with performance issues).
|
||||
dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 10, "session-ended-");
|
||||
dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "high-drop-rate-");
|
||||
dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "watchdog-");
|
||||
dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "camera-ended-");
|
||||
dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "fatal-error-");
|
||||
dumpLogs(kGraphStateDumpDir.data(), cameraDestDir.c_str(), 5,
|
||||
"hal_graph_state_");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
# 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
|
||||
@@ -1,83 +0,0 @@
|
||||
# override default log levels.
|
||||
on boot
|
||||
setprop log.tag.GAF I
|
||||
|
||||
# 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
|
||||
@@ -1,28 +0,0 @@
|
||||
# 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
|
||||
@@ -5,8 +5,41 @@ $(call soong_config_set,lyric,use_lyric_camera_hal,true)
|
||||
$(call soong_config_set,google3a_config,gcam_awb,true)
|
||||
$(call soong_config_set,google3a_config,ghawb_truetone,true)
|
||||
|
||||
# Flag controls whether Lyric apex can be located in the dist-directory.
|
||||
$(call soong_config_set, lyric, dist_lyric_apex, $(RELEASE_PIXEL_DIST_LYRIC_APEX))
|
||||
# Select GCH backend.
|
||||
# TODO(b/192681010): This dependency inversion should be removed.
|
||||
ifneq ($(wildcard vendor/google/services/LyricCameraHAL/src),)
|
||||
$(call soong_config_set,gch,hwl_library,lyric)
|
||||
endif
|
||||
|
||||
# Check if we're in PDK build
|
||||
ifeq ($(wildcard vendor/google/camera),)
|
||||
# If vendor/google/camera doesn't exist, it's a PDK build.
|
||||
$(call soong_config_set,lyric,pdk_build,true)
|
||||
else
|
||||
# Otherwise, it's an internal Google build.
|
||||
$(call soong_config_set,lyric,pdk_build,false)
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google/camera \
|
||||
vendor/google/camera/google_3a/libs_v4 \
|
||||
vendor/google/camera/rlsservice
|
||||
|
||||
# TODO(b/257379485): 3A is incrementally enabling cuttlefish build for native
|
||||
# code coverage support, temporary require separate namespace for folders that
|
||||
# can be built successfully.
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google/camera/common/g3_shared \
|
||||
vendor/google/camera/google_3a/libs_v4/g3ABase \
|
||||
vendor/google/camera/google_3a/libs_v4/gABC/native_coverage \
|
||||
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_DEBUG += tarasque_test
|
||||
PRODUCT_PACKAGES_DEBUG += ProtoCalibGenerator
|
||||
|
||||
endif # vendor/google/camera check
|
||||
|
||||
# Init-time log settings for Google 3A
|
||||
PRODUCT_PACKAGES += libg3a_standalone_gabc_rc
|
||||
@@ -15,7 +48,6 @@ PRODUCT_PACKAGES += libg3a_standalone_ghawb_rc
|
||||
|
||||
# Vendor APEX which contains the camera HAL
|
||||
PRODUCT_PACKAGES += com.google.pixel.camera.hal
|
||||
PRODUCT_PACKAGES += venodr-apex-allowlist-lyric.xml
|
||||
PRODUCT_PACKAGES += init.camera.set-interrupts-ownership
|
||||
PRODUCT_PACKAGES += lyric_preview_dis_xml
|
||||
|
||||
|
||||
@@ -44,13 +44,3 @@ 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.
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
com.google.pixel.camera.services.binder.IServiceBinder/default u:object_r:camera_binder_service:s0
|
||||
|
||||
com.google.pixel.camera.services.cameraidremapper.ICameraIdRemapper/default u:object_r:camera_cameraidremapper_service:s0
|
||||
|
||||
com.google.pixel.camera.services.lyricconfigprovider.ILyricConfigProvider/default u:object_r:camera_lyricconfigprovider_service:s0
|
||||
com.google.pixel.camera.services.binder.IServiceBinder/default u:object_r:camera_binder_service:s0
|
||||
@@ -9,10 +9,4 @@ allow vendor_pbcs_app app_api_service:service_manager find;
|
||||
allow vendor_pbcs_app cameraserver_service:service_manager find;
|
||||
|
||||
# Allow PBCS to add the ServiceBinder service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_binder_service);
|
||||
|
||||
# Allow PBCS to add the CameraIdRemapper service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_cameraidremapper_service);
|
||||
|
||||
# Allow PBCS to add the LyricConfigProvider service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_lyricconfigprovider_service);
|
||||
add_service(vendor_pbcs_app, camera_binder_service);
|
||||
@@ -8,8 +8,6 @@ allow vendor_pcs_app {
|
||||
app_api_service
|
||||
audioserver_service
|
||||
cameraserver_service
|
||||
camera_cameraidremapper_service
|
||||
camera_lyricconfigprovider_service
|
||||
drmserver_service
|
||||
mediametrics_service
|
||||
mediaserver_service
|
||||
|
||||
@@ -1,5 +1 @@
|
||||
type camera_binder_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
type camera_cameraidremapper_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
type camera_lyricconfigprovider_service, hal_service_type, protected_service, service_manager_type;
|
||||
type camera_binder_service, hal_service_type, protected_service, service_manager_type;
|
||||
6
camera/sepolicy/vendor/hal_camera_default.te
vendored
6
camera/sepolicy/vendor/hal_camera_default.te
vendored
@@ -1,6 +1,6 @@
|
||||
allow hal_camera_default camera_binder_service:service_manager find;
|
||||
# Allow Lyric Hal to find the LyricConfigProvider service through ServiceManager.
|
||||
allow hal_camera_default camera_lyricconfigprovider_service:service_manager find;
|
||||
allow hal_camera_default vendor_camera_lyricconfigprovider_service:service_manager find;
|
||||
|
||||
allow hal_camera_default hal_pixel_remote_camera_service:service_manager find;
|
||||
|
||||
@@ -8,5 +8,5 @@ binder_call(hal_camera_default, vendor_pbcs_app);
|
||||
|
||||
binder_call(hal_camera_default, vendor_pcs_app);
|
||||
|
||||
# Allow Lyric HAL to start Image Processing HAL
|
||||
add_service(hal_camera_default, vendor_image_processing_hal_service)
|
||||
# Allow Lyric HAL to start ISP Service
|
||||
add_service(hal_camera_default, vendor_camera_isp_service)
|
||||
|
||||
6
camera/sepolicy/vendor/service.te
vendored
6
camera/sepolicy/vendor/service.te
vendored
@@ -1,3 +1,7 @@
|
||||
type hal_pixel_remote_camera_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
type vendor_image_processing_hal_service, hal_service_type, protected_service, service_manager_type;
|
||||
type vendor_camera_lyricconfigprovider_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
type vendor_camera_isp_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
type vendor_camera_cameraidremapper_service, hal_service_type, protected_service, service_manager_type;
|
||||
|
||||
6
camera/sepolicy/vendor/service_contexts
vendored
6
camera/sepolicy/vendor/service_contexts
vendored
@@ -1,3 +1,7 @@
|
||||
com.google.pixel.camera.connectivity.hal.provider.ICameraProvider/default u:object_r:hal_pixel_remote_camera_service:s0
|
||||
|
||||
com.google.android.imageprocessing.hal.IImageProcessingHal/default u:object_r:vendor_image_processing_hal_service:s0
|
||||
com.google.pixel.camera.services.lyricconfigprovider.ILyricConfigProvider/default u:object_r:vendor_camera_lyricconfigprovider_service:s0
|
||||
|
||||
com.google.pixel.camera.isp.IIspService/default u:object_r:vendor_camera_isp_service:s0
|
||||
|
||||
com.google.pixel.camera.services.cameraidremapper.ICameraIdRemapper/default u:object_r:vendor_camera_cameraidremapper_service:s0
|
||||
|
||||
4
camera/sepolicy/vendor/vendor_pbcs_app.te
vendored
4
camera/sepolicy/vendor/vendor_pbcs_app.te
vendored
@@ -1,9 +1,9 @@
|
||||
# Allow PBCS to add the ServiceBinder service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_binder_service);
|
||||
# Allow PBCS to add the LyricConfigProvider service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_lyricconfigprovider_service);
|
||||
add_service(vendor_pbcs_app, vendor_camera_lyricconfigprovider_service);
|
||||
# Allow PBCS to add the CameraIdRemapper service to ServiceManager.
|
||||
add_service(vendor_pbcs_app, camera_cameraidremapper_service);
|
||||
add_service(vendor_pbcs_app, vendor_camera_cameraidremapper_service);
|
||||
|
||||
# Allow PBCS to read debug system properties of the form vendor.camera.pbcs.debug.*
|
||||
# and persist.vendor.camera.pbcs.debug.*
|
||||
|
||||
4
camera/sepolicy/vendor/vendor_pcs_app.te
vendored
4
camera/sepolicy/vendor/vendor_pcs_app.te
vendored
@@ -1,6 +1,6 @@
|
||||
allow vendor_pcs_app {
|
||||
camera_lyricconfigprovider_service
|
||||
camera_cameraidremapper_service
|
||||
vendor_camera_lyricconfigprovider_service
|
||||
vendor_camera_cameraidremapper_service
|
||||
edgetpu_app_service
|
||||
}:service_manager find;
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
This XML file declares the vendor apex package names eligible for installation.
|
||||
-->
|
||||
|
||||
<config>
|
||||
<allowed-vendor-apex package="com.google.pixel.camera.hal" installerPackage="com.google.android.GoogleCamera" />
|
||||
</config>
|
||||
@@ -1,32 +0,0 @@
|
||||
PIXEL_PREBUILT_SYMLINK_PATH=$(OUT_DIR)/pixel
|
||||
$(shell rm -rf pixel_current_*)
|
||||
$(shell rm -rf $(PIXEL_PREBUILT_SYMLINK_PATH)/pixel_current_*)
|
||||
$(shell mkdir -p $(PIXEL_PREBUILT_SYMLINK_PATH))
|
||||
|
||||
# Create symlink for bootloader
|
||||
$(shell rm -f "pixel_current_bootloader")
|
||||
ifdef BOOTLOADER_FILE_PATH
|
||||
$(shell ln -sf ../../${BOOTLOADER_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_bootloader")
|
||||
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
||||
$(shell ln -sf ../../${BOOTLOADER_RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_bootloader")
|
||||
endif
|
||||
|
||||
# Create symlink for kernel
|
||||
$(shell rm -f "pixel_current_kernel")
|
||||
ifdef TARGET_KERNEL_DIR
|
||||
$(shell ln -sf ../../${TARGET_KERNEL_DIR} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_kernel")
|
||||
endif
|
||||
|
||||
# Create symlink for radio
|
||||
$(shell rm -f "pixel_current_radio")
|
||||
ifdef RADIO_FILE_PATH
|
||||
$(shell ln -sf ../../${RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radio")
|
||||
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
||||
$(shell ln -sf ../../${BOOTLOADER_RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radio")
|
||||
endif
|
||||
|
||||
# Create symlink for radiocfg
|
||||
$(shell rm -f "pixel_current_radiocfg")
|
||||
ifdef SRC_MDM_CFG_DIR
|
||||
$(shell ln -sf ../../${SRC_MDM_CFG_DIR} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radiocfg")
|
||||
endif
|
||||
@@ -35,6 +35,3 @@ 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)
|
||||
|
||||
@@ -1,2 +1,26 @@
|
||||
# Dauntless
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/dauntless/sepolicy
|
||||
ifneq ($(wildcard vendor),)
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_nos/init/dauntless
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
citadeld \
|
||||
citadel_updater \
|
||||
android.hardware.weaver-service.citadel \
|
||||
android.hardware.authsecret-service.citadel \
|
||||
android.hardware.oemlock-service.citadel \
|
||||
android.hardware.identity@1.0-service.citadel \
|
||||
init_citadel \
|
||||
android.hardware.strongbox_keystore.xml \
|
||||
android.hardware.security.keymint-service.citadel \
|
||||
dump_gsc.sh
|
||||
|
||||
# USERDEBUG ONLY: Install test packages
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += citadel_integration_tests \
|
||||
pwntest \
|
||||
nugget_targeted_tests \
|
||||
CitadelProvision \
|
||||
nugget_aidl_test_weaver
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -30,6 +30,3 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/developer_gsi_keys.mk)
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.software.ipsec_tunnel_migration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnel_migration.xml
|
||||
|
||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += \
|
||||
device/google/gs-common/vintf/framework_compatibility_matrix.xml
|
||||
|
||||
@@ -2,9 +2,16 @@ package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
sh_binary {
|
||||
name: "dump_display_userdebug.sh",
|
||||
src: "dump_display_userdebug.sh",
|
||||
vendor: true,
|
||||
sub_dir: "dump",
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_exynos_display",
|
||||
srcs: ["exynos/dump_display.cpp"],
|
||||
name: "dump_display",
|
||||
srcs: ["dump_display.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
@@ -19,8 +26,8 @@ cc_binary {
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_exynos_second_display",
|
||||
srcs: ["exynos/dump_second_display.cpp"],
|
||||
name: "dump_second_display",
|
||||
srcs: ["dump_second_display.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
@@ -33,33 +40,3 @@ cc_binary {
|
||||
relative_install_path: "dump",
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_pixel_display",
|
||||
srcs: ["pixel/dump_display.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"libdump",
|
||||
],
|
||||
vendor: true,
|
||||
relative_install_path: "dump",
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "dump_pixel_second_display",
|
||||
srcs: ["pixel/dump_second_display.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-Werror",
|
||||
],
|
||||
shared_libs: [
|
||||
"libdump",
|
||||
],
|
||||
vendor: true,
|
||||
relative_install_path: "dump",
|
||||
}
|
||||
|
||||
6
display/dump.mk
Normal file
6
display/dump.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy
|
||||
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += dump_display_userdebug.sh
|
||||
endif
|
||||
PRODUCT_PACKAGES += dump_display
|
||||
@@ -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");
|
||||
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/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");
|
||||
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");
|
||||
return 0;
|
||||
}
|
||||
|
||||
22
display/dump_display_userdebug.sh
Normal file
22
display/dump_display_userdebug.sh
Normal file
@@ -0,0 +1,22 @@
|
||||
#!/vendor/bin/sh
|
||||
echo "------ HWC Fence States ------"
|
||||
for f in $(ls /data/vendor/log/hwc/*_hwc_fence_state*.txt)
|
||||
do
|
||||
echo $f
|
||||
cat $f
|
||||
done
|
||||
|
||||
echo "------ HWC Error Logs ------"
|
||||
for f in $(ls /data/vendor/log/hwc/*_hwc_error_log*.txt)
|
||||
do
|
||||
echo $f
|
||||
cat $f
|
||||
done
|
||||
|
||||
echo "------ HWC Debug Dumps ------"
|
||||
for f in $(ls /data/vendor/log/hwc/*_hwc_debug*.dump)
|
||||
do
|
||||
echo $f
|
||||
cat $f
|
||||
done
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy/exynos
|
||||
|
||||
PRODUCT_PACKAGES += dump_exynos_display
|
||||
@@ -1,3 +0,0 @@
|
||||
PRODUCT_PACKAGES += dump_exynos_second_display
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display/exynos
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
PRODUCT_PACKAGES += dump_pixel_second_display
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display/pixel
|
||||
|
||||
@@ -16,11 +16,10 @@
|
||||
#include <dump/pixel_dump.h>
|
||||
|
||||
int main() {
|
||||
dumpFileContent("DECON-1 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("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");
|
||||
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");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy/pixel
|
||||
PRODUCT_PACKAGES += dump_second_display
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display
|
||||
|
||||
PRODUCT_PACKAGES += dump_pixel_display
|
||||
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright 2022 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() {
|
||||
setbuf(stdout, NULL);
|
||||
dumpFileContent("CRTC-0 status", "/sys/kernel/debug/dri/0/crtc-0/status");
|
||||
dumpFileContent("DRM State", "/sys/kernel/debug/dri/0/state");
|
||||
runCommand("libdisplaycolor", "/vendor/bin/dumpsys displaycolor -v");
|
||||
|
||||
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;
|
||||
}
|
||||
14
display/sepolicy/dump_display.te
Normal file
14
display/sepolicy/dump_display.te
Normal file
@@ -0,0 +1,14 @@
|
||||
pixel_bugreport(dump_display)
|
||||
|
||||
allow dump_display sysfs_display:file r_file_perms;
|
||||
allow dump_display vendor_displaycolor_service:service_manager find;
|
||||
binder_call(dump_display, hal_graphics_composer_default)
|
||||
allow dump_display vendor_dumpsys:file execute_no_trans;
|
||||
allow dump_display vendor_shell_exec:file execute_no_trans;
|
||||
|
||||
userdebug_or_eng(`
|
||||
allow dump_display vendor_dri_debugfs:dir r_dir_perms;
|
||||
allow dump_display vendor_dri_debugfs:file r_file_perms;
|
||||
')
|
||||
vndbinder_use(dump_display)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user