aml_tz6_351400020 (13155446,com.google.android.go.tzdata6,com.google.android.tzdata6)
-----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ9i73wAKCRDorT+BmrEO eCi5AKCHAzJVFdsm++eJGXcPb6LbaKIGTQCcDiWODLyLOWCK64nt7tfCwTgUFCE= =3OQU -----END PGP SIGNATURE----- gpgsig -----BEGIN SSH SIGNATURE----- U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgPpdpjxPACTIhnlvYz0GM4BR7FJ +rYv3jMbfxNKD3JvcAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5 AAAAQGzx1CwS4pcfih6dNJzdvsHLng+4M9qD8N/OatGRRJF0ck6x3Qwifdp45ItOlU7d0T 52HZvmRrb/FCpQQR9Z/QE= -----END SSH SIGNATURE----- Merge tag 'aml_tz6_351400020' into staging/lineage-23.0_merge-aml_tz6_351400020 aml_tz6_351400020 (13155446,com.google.android.go.tzdata6,com.google.android.tzdata6) # -----BEGIN PGP SIGNATURE----- # # iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ9i73wAKCRDorT+BmrEO # eCi5AKCHAzJVFdsm++eJGXcPb6LbaKIGTQCcDiWODLyLOWCK64nt7tfCwTgUFCE= # =3OQU # -----END PGP SIGNATURE----- # gpg: Signature made Tue Mar 18 02:18:39 2025 EET # gpg: using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78 # gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [ultimate] # By Jaegeuk Kim (6) and others # Via Android (Google) Code Review (55) and others * tag 'aml_tz6_351400020': (74 commits) Fix comment Adjust the version set in manifest xml and matrix xml Add astd sepolicy to gs-common for P26 factory builds Allow tachyon service to make binder calls to gca display: add drm_atomic_state to debug-build bugreport init.pixel-perf.rc: Setup default rampup multiplier and util_est Allow write for restorecon Dump F2FS disk_map and UFS phy version Fix UFS err_stats Fix selinux permission denials move common init perf settings to gs_common Revert "Set up access control rule for aocxd" 16KB: Move CopyEfsTest to device/google/gs-common Revert^2 "Add Bluetooth extension HAL - CCO" gs-common: wlc: add tx update permission for hal_googlebattery Revert "Add Bluetooth extension HAL - CCO" storage: fix userdata_exp.ai partition selinux error Revert "move common init perf settings to gs_common" insmod-sh: Allow writing to kmsg RamdumpService: Fix the SELinux errors from introducing Firebase Analytics. ... Conflicts: display/dump_pixel_display.mk Change-Id: Iaa05ef7e62a7b8320f320ad4db482998863fe136
This commit is contained in:
commit
50929e081f
116 changed files with 1087 additions and 146 deletions
22
16kb/16kb.mk
Normal file
22
16kb/16kb.mk
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#
|
||||||
|
# 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
|
13
16kb/Android.bp
Normal file
13
16kb/Android.bp
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
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,
|
||||||
|
}
|
38
16kb/CopyEfsTest/Android.bp
Normal file
38
16kb/CopyEfsTest/Android.bp
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
// 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",
|
||||||
|
}
|
40
16kb/CopyEfsTest/AndroidTest.xml
Normal file
40
16kb/CopyEfsTest/AndroidTest.xml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?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>
|
130
16kb/CopyEfsTest/src/com/android/test/CopyEfsTest.java
Normal file
130
16kb/CopyEfsTest/src/com/android/test/CopyEfsTest.java
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
/*
|
||||||
|
* 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");
|
||||||
|
}
|
||||||
|
}
|
39
16kb/copy_efs_files_to_data.sh
Normal file
39
16kb/copy_efs_files_to_data.sh
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/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
|
9
astd/astd.mk
Normal file
9
astd/astd.mk
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# This module is only for factory targets, please include this makefile
|
||||||
|
# with check:
|
||||||
|
#
|
||||||
|
# ifneq ($(filter factory_%,$(TARGET_PRODUCT)),)
|
||||||
|
# include device/google/gs-common/astd/astd.mk
|
||||||
|
# endif
|
||||||
|
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/gs-common/astd/sepolicy
|
||||||
|
|
||||||
|
PRODUCT_PACKAGES_DEBUG += astd
|
10
astd/sepolicy/astd.te
Normal file
10
astd/sepolicy/astd.te
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# astd service
|
||||||
|
type astd, domain;
|
||||||
|
type astd_exec, exec_type, file_type, system_file_type;
|
||||||
|
|
||||||
|
typeattribute astd coredomain;
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
init_daemon_domain(astd)
|
||||||
|
')
|
||||||
|
|
3
astd/sepolicy/file_contexts
Normal file
3
astd/sepolicy/file_contexts
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
/system_ext/bin/astc u:object_r:astd_exec:s0
|
||||||
|
/system_ext/bin/astd u:object_r:astd_exec:s0
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<compatibility-matrix version="1.0" type="framework">
|
<compatibility-matrix version="1.0" type="framework">
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>vendor.google.whitechapel.audio.extension</name>
|
<name>vendor.google.whitechapel.audio.extension</name>
|
||||||
<version>4</version>
|
<version>4-5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IAudioExtension</name>
|
<name>IAudioExtension</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -4,7 +4,7 @@ PRODUCT_PACKAGES += \
|
||||||
android.hardware.bluetooth.finder-V1-ndk.so \
|
android.hardware.bluetooth.finder-V1-ndk.so \
|
||||||
android.hardware.bluetooth.ranging-V1-ndk.so \
|
android.hardware.bluetooth.ranging-V1-ndk.so \
|
||||||
android.hardware.bluetooth-service.bcmbtlinux \
|
android.hardware.bluetooth-service.bcmbtlinux \
|
||||||
vendor.google.bluetooth_ext-V1-ndk.so \
|
vendor.google.bluetooth_ext-V3-ndk.so \
|
||||||
bt_vendor.conf \
|
bt_vendor.conf \
|
||||||
android.hardware.bluetooth.prebuilt.xml \
|
android.hardware.bluetooth.prebuilt.xml \
|
||||||
android.hardware.bluetooth_le.prebuilt.xml
|
android.hardware.bluetooth_le.prebuilt.xml
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<compatibility-matrix version="1.0" type="framework">
|
<compatibility-matrix version="1.0" type="framework">
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>vendor.google.bluetooth_ext</name>
|
<name>vendor.google.bluetooth_ext</name>
|
||||||
<version>1</version>
|
<version>1-3</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IBluetoothFinder</name>
|
<name>IBluetoothFinder</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
@ -26,5 +26,9 @@
|
||||||
<name>IBluetoothEwp</name>
|
<name>IBluetoothEwp</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
</interface>
|
</interface>
|
||||||
|
<interface>
|
||||||
|
<name>IBluetoothCco</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
</compatibility-matrix>
|
</compatibility-matrix>
|
||||||
|
|
|
@ -16,12 +16,13 @@
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>vendor.google.bluetooth_ext</name>
|
<name>vendor.google.bluetooth_ext</name>
|
||||||
<version>1</version>
|
<version>3</version>
|
||||||
<fqname>IBTChannelAvoidance/default</fqname>
|
<fqname>IBTChannelAvoidance/default</fqname>
|
||||||
<fqname>IBluetoothCcc/default</fqname>
|
<fqname>IBluetoothCcc/default</fqname>
|
||||||
<fqname>IBluetoothEwp/default</fqname>
|
<fqname>IBluetoothEwp/default</fqname>
|
||||||
<fqname>IBluetoothExt/default</fqname>
|
<fqname>IBluetoothExt/default</fqname>
|
||||||
<fqname>IBluetoothFinder/default</fqname>
|
<fqname>IBluetoothFinder/default</fqname>
|
||||||
<fqname>IBluetoothSar/default</fqname>
|
<fqname>IBluetoothSar/default</fqname>
|
||||||
|
<fqname>IBluetoothCco/default</fqname>
|
||||||
</hal>
|
</hal>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
@ -5,3 +5,4 @@ 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.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.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.IBluetoothFinder/default u:object_r:hal_bluetooth_coexistence_service:s0
|
||||||
|
vendor.google.bluetooth_ext.IBluetoothCco/default u:object_r:hal_bluetooth_coexistence_service:s0
|
||||||
|
|
|
@ -58,3 +58,11 @@ prebuilt_etc {
|
||||||
init_rc: ["libg3a_ghawb.rc"],
|
init_rc: ["libg3a_ghawb.rc"],
|
||||||
src: "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,
|
||||||
|
}
|
||||||
|
|
|
@ -58,6 +58,7 @@ PRODUCT_PACKAGES += libg3a_standalone_ghawb_rc
|
||||||
|
|
||||||
# Vendor APEX which contains the camera HAL
|
# Vendor APEX which contains the camera HAL
|
||||||
PRODUCT_PACKAGES += com.google.pixel.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 += init.camera.set-interrupts-ownership
|
||||||
PRODUCT_PACKAGES += lyric_preview_dis_xml
|
PRODUCT_PACKAGES += lyric_preview_dis_xml
|
||||||
|
|
||||||
|
|
9
camera/vendor-apex-allowlist-lyric.xml
Normal file
9
camera/vendor-apex-allowlist-lyric.xml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<?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,27 +1,32 @@
|
||||||
|
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
|
# Create symlink for bootloader
|
||||||
$(shell rm -f "pixel_current_bootloader")
|
$(shell rm -f "pixel_current_bootloader")
|
||||||
ifdef BOOTLOADER_FILE_PATH
|
ifdef BOOTLOADER_FILE_PATH
|
||||||
$(shell ln -sf ${BOOTLOADER_FILE_PATH} "pixel_current_bootloader")
|
$(shell ln -sf ../../${BOOTLOADER_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_bootloader")
|
||||||
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
||||||
$(shell ln -sf ${BOOTLOADER_RADIO_FILE_PATH} "pixel_current_bootloader")
|
$(shell ln -sf ../../${BOOTLOADER_RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_bootloader")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Create symlink for kernel
|
# Create symlink for kernel
|
||||||
$(shell rm -f "pixel_current_kernel")
|
$(shell rm -f "pixel_current_kernel")
|
||||||
ifdef TARGET_KERNEL_DIR
|
ifdef TARGET_KERNEL_DIR
|
||||||
$(shell ln -sf ${TARGET_KERNEL_DIR} "pixel_current_kernel")
|
$(shell ln -sf ../../${TARGET_KERNEL_DIR} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_kernel")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Create symlink for radio
|
# Create symlink for radio
|
||||||
$(shell rm -f "pixel_current_radio")
|
$(shell rm -f "pixel_current_radio")
|
||||||
ifdef RADIO_FILE_PATH
|
ifdef RADIO_FILE_PATH
|
||||||
$(shell ln -sf ${RADIO_FILE_PATH} "pixel_current_radio")
|
$(shell ln -sf ../../${RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radio")
|
||||||
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
else ifdef BOOTLOADER_RADIO_FILE_PATH
|
||||||
$(shell ln -sf ${BOOTLOADER_RADIO_FILE_PATH} "pixel_current_radio")
|
$(shell ln -sf ../../${BOOTLOADER_RADIO_FILE_PATH} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radio")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Create symlink for radiocfg
|
# Create symlink for radiocfg
|
||||||
$(shell rm -f "pixel_current_radiocfg")
|
$(shell rm -f "pixel_current_radiocfg")
|
||||||
ifdef SRC_MDM_CFG_DIR
|
ifdef SRC_MDM_CFG_DIR
|
||||||
$(shell ln -sf ${SRC_MDM_CFG_DIR} "pixel_current_radiocfg")
|
$(shell ln -sf ../../${SRC_MDM_CFG_DIR} $(PIXEL_PREBUILT_SYMLINK_PATH)/"pixel_current_radiocfg")
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -4,14 +4,14 @@ package {
|
||||||
|
|
||||||
sh_binary {
|
sh_binary {
|
||||||
name: "dump_display_userdebug.sh",
|
name: "dump_display_userdebug.sh",
|
||||||
src: "dump_display_userdebug.sh",
|
src: "common/dump_display_userdebug.sh",
|
||||||
vendor: true,
|
vendor: true,
|
||||||
sub_dir: "dump",
|
sub_dir: "dump",
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_binary {
|
cc_binary {
|
||||||
name: "dump_display",
|
name: "dump_exynos_display",
|
||||||
srcs: ["dump_display.cpp"],
|
srcs: ["exynos/dump_display.cpp"],
|
||||||
cflags: [
|
cflags: [
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Wextra",
|
"-Wextra",
|
||||||
|
@ -26,8 +26,8 @@ cc_binary {
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_binary {
|
cc_binary {
|
||||||
name: "dump_second_display",
|
name: "dump_exynos_second_display",
|
||||||
srcs: ["dump_second_display.cpp"],
|
srcs: ["exynos/dump_second_display.cpp"],
|
||||||
cflags: [
|
cflags: [
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Wextra",
|
"-Wextra",
|
||||||
|
@ -40,3 +40,33 @@ cc_binary {
|
||||||
relative_install_path: "dump",
|
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",
|
||||||
|
}
|
||||||
|
|
4
display/dump_exynos_display.mk
Normal file
4
display/dump_exynos_display.mk
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy/exynos
|
||||||
|
|
||||||
|
PRODUCT_PACKAGES_DEBUG += dump_display_userdebug.sh
|
||||||
|
PRODUCT_PACKAGES += dump_exynos_display
|
3
display/dump_exynos_second_display.mk
Normal file
3
display/dump_exynos_second_display.mk
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
PRODUCT_PACKAGES += dump_exynos_second_display
|
||||||
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display/exynos
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy/pixel
|
||||||
|
|
||||||
PRODUCT_PACKAGES_ENG += dump_display_userdebug.sh
|
PRODUCT_PACKAGES_ENG += dump_display_userdebug.sh
|
||||||
PRODUCT_PACKAGES += dump_display
|
PRODUCT_PACKAGES += dump_pixel_display
|
3
display/dump_pixel_second_display.mk
Normal file
3
display/dump_pixel_second_display.mk
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
PRODUCT_PACKAGES += dump_pixel_second_display
|
||||||
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display/pixel
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
PRODUCT_PACKAGES += dump_second_display
|
|
||||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/display/sepolicy_second_display
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
setbuf(stdout, NULL);
|
setbuf(stdout, NULL);
|
||||||
dumpFileContent("DECON-0 counters /sys/class/drm/card0/device/decon0/counters", "/sys/class/drm/card0/device/decon0/counters");
|
dumpFileContent("DECON-0 counters", "/sys/class/drm/card0/device/decon0/counters");
|
||||||
dumpFileContent("CRTC-0 event log", "/sys/kernel/debug/dri/0/crtc-0/event");
|
dumpFileContent("CRTC-0 event log", "/sys/kernel/debug/dri/0/crtc-0/event");
|
||||||
runCommand("libdisplaycolor", "/vendor/bin/dumpsys displaycolor -v");
|
runCommand("libdisplaycolor", "/vendor/bin/dumpsys displaycolor -v");
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
#include <dump/pixel_dump.h>
|
#include <dump/pixel_dump.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
dumpFileContent("DECON-1 counters /sys/class/drm/card0/device/decon1/counters", "/sys/class/drm/card0/device/decon1/counters");
|
dumpFileContent("DECON-1 counters", "/sys/class/drm/card0/device/decon1/counters");
|
||||||
dumpFileContent("CRTC-1 event log", "/sys/kernel/debug/dri/0/crtc-1/event");
|
dumpFileContent("CRTC-1 event log", "/sys/kernel/debug/dri/0/crtc-1/event");
|
||||||
|
|
||||||
dumpFileContent("Secondary panel name", "/sys/class/drm/card0/device/secondary-panel/panel_name");
|
dumpFileContent("Secondary panel name", "/sys/class/drm/card0/device/secondary-panel/panel_name");
|
30
display/pixel/dump_display.cpp
Normal file
30
display/pixel/dump_display.cpp
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* 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;
|
||||||
|
}
|
25
display/pixel/dump_second_display.cpp
Normal file
25
display/pixel/dump_second_display.cpp
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* 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>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
dumpFileContent("CRTC-1 status", "/sys/kernel/debug/dri/0/crtc-1/status");
|
||||||
|
|
||||||
|
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,15 +0,0 @@
|
||||||
# Display (dump for bugreport)
|
|
||||||
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)
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
# Display eng/userdebug (dump for bugreport)
|
|
||||||
pixel_bugreport(dump_display_userdebug)
|
|
||||||
|
|
||||||
userdebug_or_eng(`
|
|
||||||
allow dump_display_userdebug vendor_toolbox_exec:file execute_no_trans;
|
|
||||||
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;
|
|
||||||
')
|
|
15
display/sepolicy/exynos/dump_display.te
Normal file
15
display/sepolicy/exynos/dump_display.te
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Display (dump for bugreport)
|
||||||
|
pixel_bugreport(dump_exynos_display)
|
||||||
|
|
||||||
|
allow dump_exynos_display sysfs_display:file r_file_perms;
|
||||||
|
allow dump_exynos_display vendor_displaycolor_service:service_manager find;
|
||||||
|
binder_call(dump_exynos_display, hal_graphics_composer_default)
|
||||||
|
allow dump_exynos_display vendor_dumpsys:file execute_no_trans;
|
||||||
|
allow dump_exynos_display vendor_shell_exec:file execute_no_trans;
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_exynos_display vendor_dri_debugfs:dir r_dir_perms;
|
||||||
|
allow dump_exynos_display vendor_dri_debugfs:file r_file_perms;
|
||||||
|
')
|
||||||
|
vndbinder_use(dump_exynos_display)
|
||||||
|
|
11
display/sepolicy/exynos/dump_display_userdebug.te
Normal file
11
display/sepolicy/exynos/dump_display_userdebug.te
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Display eng/userdebug (dump for bugreport)
|
||||||
|
pixel_bugreport(dump_exynos_display_userdebug)
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_exynos_display_userdebug vendor_toolbox_exec:file execute_no_trans;
|
||||||
|
allow dump_exynos_display_userdebug vendor_log_file:dir search;
|
||||||
|
allow dump_exynos_display_userdebug vendor_hwc_log_file:dir r_dir_perms;
|
||||||
|
allow dump_exynos_display_userdebug vendor_hwc_log_file:file r_file_perms;
|
||||||
|
allow dump_exynos_display_userdebug debugfs_tracing_instances:dir search;
|
||||||
|
allow dump_exynos_display_userdebug debugfs_tracing_instances:file r_file_perms;
|
||||||
|
')
|
5
display/sepolicy/exynos/file_contexts
Normal file
5
display/sepolicy/exynos/file_contexts
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
/vendor/bin/dump/dump_display_userdebug\.sh u:object_r:dump_exynos_display_userdebug_exec:s0
|
||||||
|
/vendor/bin/dump/dump_exynos_display u:object_r:dump_exynos_display_exec:s0
|
||||||
|
|
||||||
|
/data/vendor/log/hwc(/.*)? u:object_r:vendor_hwc_log_file:s0
|
||||||
|
|
3
display/sepolicy/exynos/hal_graphics_composer_default.te
Normal file
3
display/sepolicy/exynos/hal_graphics_composer_default.te
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
allow hal_graphics_composer_default dump_exynos_display:fifo_file { append write };
|
||||||
|
allow hal_graphics_composer_default dump_exynos_display:fd use;
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
allow hal_graphics_composer_default dump_display:fifo_file { append write };
|
|
||||||
allow hal_graphics_composer_default dump_display:fd use;
|
|
||||||
|
|
15
display/sepolicy/pixel/dump_display.te
Normal file
15
display/sepolicy/pixel/dump_display.te
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# Display (dump for bugreport)
|
||||||
|
pixel_bugreport(dump_pixel_display)
|
||||||
|
|
||||||
|
allow dump_pixel_display sysfs_display:file r_file_perms;
|
||||||
|
allow dump_pixel_display vendor_displaycolor_service:service_manager find;
|
||||||
|
binder_call(dump_pixel_display, hal_graphics_composer_default)
|
||||||
|
allow dump_pixel_display vendor_dumpsys:file execute_no_trans;
|
||||||
|
allow dump_pixel_display vendor_shell_exec:file execute_no_trans;
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_pixel_display vendor_dri_debugfs:dir r_dir_perms;
|
||||||
|
allow dump_pixel_display vendor_dri_debugfs:file r_file_perms;
|
||||||
|
')
|
||||||
|
vndbinder_use(dump_pixel_display)
|
||||||
|
|
11
display/sepolicy/pixel/dump_display_userdebug.te
Normal file
11
display/sepolicy/pixel/dump_display_userdebug.te
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Display eng/userdebug (dump for bugreport)
|
||||||
|
pixel_bugreport(dump_pixel_display_userdebug)
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_pixel_display_userdebug vendor_toolbox_exec:file execute_no_trans;
|
||||||
|
allow dump_pixel_display_userdebug vendor_log_file:dir search;
|
||||||
|
allow dump_pixel_display_userdebug vendor_hwc_log_file:dir r_dir_perms;
|
||||||
|
allow dump_pixel_display_userdebug vendor_hwc_log_file:file r_file_perms;
|
||||||
|
allow dump_pixel_display_userdebug debugfs_tracing_instances:dir search;
|
||||||
|
allow dump_pixel_display_userdebug debugfs_tracing_instances:file r_file_perms;
|
||||||
|
')
|
3
display/sepolicy/pixel/file.te
Normal file
3
display/sepolicy/pixel/file.te
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
type vendor_hwc_log_file, file_type, data_file_type;
|
||||||
|
type vendor_dri_debugfs, fs_type, debugfs_type;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/vendor/bin/dump/dump_display_userdebug\.sh u:object_r:dump_display_userdebug_exec:s0
|
/vendor/bin/dump/dump_display_userdebug\.sh u:object_r:dump_pixel_display_userdebug_exec:s0
|
||||||
/vendor/bin/dump/dump_display u:object_r:dump_display_exec:s0
|
/vendor/bin/dump/dump_pixel_display u:object_r:dump_pixel_display_exec:s0
|
||||||
|
|
||||||
/data/vendor/log/hwc(/.*)? u:object_r:vendor_hwc_log_file:s0
|
/data/vendor/log/hwc(/.*)? u:object_r:vendor_hwc_log_file:s0
|
||||||
|
|
4
display/sepolicy/pixel/genfs_contexts
Normal file
4
display/sepolicy/pixel/genfs_contexts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
genfscon debugfs /dri/0/crtc- u:object_r:vendor_dri_debugfs:s0
|
||||||
|
genfscon debugfs /dri/0/state u:object_r:vendor_dri_debugfs:s0
|
||||||
|
genfscon sysfs /module/drm/parameters/debug u:object_r:sysfs_display:s0
|
3
display/sepolicy/pixel/hal_graphics_composer_default.te
Normal file
3
display/sepolicy/pixel/hal_graphics_composer_default.te
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
allow hal_graphics_composer_default dump_pixel_display:fifo_file { append write };
|
||||||
|
allow hal_graphics_composer_default dump_pixel_display:fd use;
|
||||||
|
|
2
display/sepolicy/pixel/vndservice.te
Normal file
2
display/sepolicy/pixel/vndservice.te
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
type vendor_displaycolor_service, vndservice_manager_type;
|
||||||
|
|
2
display/sepolicy/pixel/vndservice_contexts
Normal file
2
display/sepolicy/pixel/vndservice_contexts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
displaycolor u:object_r:vendor_displaycolor_service:s0
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
pixel_bugreport(dump_second_display)
|
|
||||||
|
|
||||||
allow dump_second_display sysfs_display:file r_file_perms;
|
|
||||||
|
|
||||||
userdebug_or_eng(`
|
|
||||||
allow dump_second_display vendor_dri_debugfs:dir r_dir_perms;
|
|
||||||
allow dump_second_display vendor_dri_debugfs:file r_file_perms;
|
|
||||||
')
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
pixel_bugreport(dump_exynos_second_display)
|
||||||
|
|
||||||
|
allow dump_exynos_second_display sysfs_display:file r_file_perms;
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_exynos_second_display vendor_dri_debugfs:dir r_dir_perms;
|
||||||
|
allow dump_exynos_second_display vendor_dri_debugfs:file r_file_perms;
|
||||||
|
')
|
||||||
|
|
2
display/sepolicy_second_display/exynos/file_contexts
Normal file
2
display/sepolicy_second_display/exynos/file_contexts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/vendor/bin/dump/dump_exynos_second_display u:object_r:dump_exynos_second_display_exec:s0
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
/vendor/bin/dump/dump_second_display u:object_r:dump_second_display_exec:s0
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
pixel_bugreport(dump_pixel_second_display)
|
||||||
|
|
||||||
|
allow dump_pixel_second_display sysfs_display:file r_file_perms;
|
||||||
|
|
||||||
|
userdebug_or_eng(`
|
||||||
|
allow dump_pixel_second_display vendor_dri_debugfs:dir r_dir_perms;
|
||||||
|
allow dump_pixel_second_display vendor_dri_debugfs:file r_file_perms;
|
||||||
|
')
|
||||||
|
|
2
display/sepolicy_second_display/pixel/file_contexts
Normal file
2
display/sepolicy_second_display/pixel/file_contexts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/vendor/bin/dump/dump_pixel_second_display u:object_r:dump_pixel_second_display_exec:s0
|
||||||
|
|
|
@ -24,4 +24,4 @@ get_prop(euiccpixel_app, dck_prop)
|
||||||
|
|
||||||
# b/265286368 framework UI rendering properties and file access
|
# b/265286368 framework UI rendering properties and file access
|
||||||
dontaudit euiccpixel_app default_prop:file { read };
|
dontaudit euiccpixel_app default_prop:file { read };
|
||||||
dontaudit euiccpixel_app sysfs_gpu_uevent:file { read open getattr };
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
# type for gpu uevent
|
|
||||||
type sysfs_gpu_uevent, sysfs_type, fs_type;
|
|
|
@ -1 +0,0 @@
|
||||||
genfscon sysfs /devices/platform/34f00000.gpu0/uevent u:object_r:sysfs_gpu_uevent:s0
|
|
3
gcam_app/sepolicy/vendor/debug_camera_app.te
vendored
3
gcam_app/sepolicy/vendor/debug_camera_app.te
vendored
|
@ -12,5 +12,8 @@ userdebug_or_eng(`
|
||||||
|
|
||||||
# Allows GCA_Eng & GCA-Next to access the hw_jpeg /dev/video12.
|
# Allows GCA_Eng & GCA-Next to access the hw_jpeg /dev/video12.
|
||||||
# allow debug_camera_app hw_jpg_device:chr_file rw_file_perms;
|
# allow debug_camera_app hw_jpg_device:chr_file rw_file_perms;
|
||||||
|
|
||||||
|
# Allows tachyon_service to communicate with GCA-Eng via binder.
|
||||||
|
binder_call(edgetpu_tachyon_server, debug_camera_app);
|
||||||
')
|
')
|
||||||
|
|
||||||
|
|
|
@ -11,3 +11,5 @@ allow google_camera_app edgetpu_device:chr_file { read write ioctl };
|
||||||
# Allows GCA to access the hw_jpeg /dev/video12.
|
# Allows GCA to access the hw_jpeg /dev/video12.
|
||||||
#allow google_camera_app hw_jpg_device:chr_file rw_file_perms;
|
#allow google_camera_app hw_jpg_device:chr_file rw_file_perms;
|
||||||
|
|
||||||
|
# Allows tachyon service to communicate with google_camera_app via binder.
|
||||||
|
binder_call(edgetpu_tachyon_server, google_camera_app);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
service vendor.dumpstate-default /vendor/bin/hw/android.hardware.dumpstate-service
|
service vendor.dumpstate-default /vendor/bin/hw/android.hardware.dumpstate-service
|
||||||
class hal
|
class hal
|
||||||
user system
|
user system
|
||||||
group system shell
|
group system shell readtracefs
|
||||||
interface aidl android.hardware.dumpstate.IDumpstateDevice/default
|
interface aidl android.hardware.dumpstate.IDumpstateDevice/default
|
||||||
|
|
|
@ -39,8 +39,9 @@ static void copyDirectory(const std::string &source,
|
||||||
if (dir == nullptr) {
|
if (dir == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
struct stat st;
|
||||||
if (mkdir(outputDir.c_str(), 0777) == -1) {
|
if (!(stat(outputDir.c_str(), &st) == 0 && S_ISDIR(st.st_mode)) &&
|
||||||
|
mkdir(outputDir.c_str(), 0777) == -1) {
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -54,8 +55,6 @@ static void copyDirectory(const std::string &source,
|
||||||
|
|
||||||
std::string sourcePath = source + "/" + entryName;
|
std::string sourcePath = source + "/" + entryName;
|
||||||
std::string destPath = outputDir + "/" + entryName;
|
std::string destPath = outputDir + "/" + entryName;
|
||||||
|
|
||||||
struct stat st;
|
|
||||||
if (stat(sourcePath.c_str(), &st) == 0) {
|
if (stat(sourcePath.c_str(), &st) == 0) {
|
||||||
if (S_ISDIR(st.st_mode))
|
if (S_ISDIR(st.st_mode))
|
||||||
copyDirectory(sourcePath, destPath);
|
copyDirectory(sourcePath, destPath);
|
||||||
|
@ -119,6 +118,46 @@ void dumpLogsAscending(const char* SrcDir, const char* DestDir, int limit, const
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void deleteRecursively(const char* dest_dir) {
|
||||||
|
struct dirent **dirent_list;
|
||||||
|
int num_entries = scandir(dest_dir, &dirent_list, 0, alphasort);
|
||||||
|
if (num_entries < 0) {
|
||||||
|
printf("Unable to scan dir: %s.\n", dest_dir);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < num_entries; i++) {
|
||||||
|
char path[1024];
|
||||||
|
snprintf(path, sizeof(path), "%s/%s", dest_dir, dirent_list[i]->d_name);
|
||||||
|
|
||||||
|
if (strcmp(dirent_list[i]->d_name, ".") == 0 || strcmp(dirent_list[i]->d_name, "..") == 0) {
|
||||||
|
free(dirent_list[i]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct stat statbuf;
|
||||||
|
if (stat(path, &statbuf) == 0) {
|
||||||
|
if (S_ISDIR(statbuf.st_mode)) {
|
||||||
|
deleteRecursively(path);
|
||||||
|
} else {
|
||||||
|
printf("Delete %s\n", path);
|
||||||
|
if (unlink(path) != 0) {
|
||||||
|
printf("Unable to delete file: %s\n", path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
printf("Unable to get file status: %s\n", path);
|
||||||
|
}
|
||||||
|
free(dirent_list[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(dirent_list);
|
||||||
|
|
||||||
|
if (rmdir(dest_dir) != 0) {
|
||||||
|
printf("Unable to delete directory: %s\n", dest_dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
|
if(!::android::base::GetBoolProperty("vendor.gps.aol.enabled", false)) {
|
||||||
printf("vendor.gps.aol.enabled is false. gps logging is not running.\n");
|
printf("vendor.gps.aol.enabled is false. gps logging is not running.\n");
|
||||||
|
@ -126,20 +165,39 @@ int main() {
|
||||||
}
|
}
|
||||||
int maxFileNum = ::android::base::GetIntProperty(GPS_LOG_NUMBER_PROPERTY, 20);
|
int maxFileNum = ::android::base::GetIntProperty(GPS_LOG_NUMBER_PROPERTY, 20);
|
||||||
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "gps");
|
std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "gps");
|
||||||
|
|
||||||
|
struct stat statbuf;
|
||||||
|
if (stat(outputDir.c_str(), &statbuf) == 0) {
|
||||||
|
printf("Directory %s already exists, delete\n", outputDir.c_str());
|
||||||
|
deleteRecursively(outputDir.c_str());
|
||||||
|
}
|
||||||
if (mkdir(outputDir.c_str(), 0777) == -1) {
|
if (mkdir(outputDir.c_str(), 0777) == -1) {
|
||||||
printf("Unable to create folder: %s\n", outputDir.c_str());
|
printf("Unable to create folder: %s\n", outputDir.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (!::android::base::GetBoolProperty("vendor.gps.aol.collect.thinmd",
|
||||||
|
false)) {
|
||||||
|
printf("vendor.gps.aol.collect.thinmd is false. Collecting fils as "
|
||||||
|
"legacy Pixel.\n");
|
||||||
dumpLogs(GPS_TMP_LOG_DIRECTORY, outputDir.c_str(), 1, GPS_LOG_PREFIX);
|
dumpLogs(GPS_TMP_LOG_DIRECTORY, outputDir.c_str(), 1, GPS_LOG_PREFIX);
|
||||||
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 3, GPS_MCU_LOG_PREFIX);
|
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 3, GPS_MCU_LOG_PREFIX);
|
||||||
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), maxFileNum, GPS_LOG_PREFIX);
|
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), maxFileNum,
|
||||||
dumpLogs(GPS_MALLOC_LOG_DIRECTORY, outputDir.c_str(), 1, GPS_MALLOC_LOG_PREFIX);
|
GPS_LOG_PREFIX);
|
||||||
if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) {
|
dumpLogs(GPS_MALLOC_LOG_DIRECTORY, outputDir.c_str(), 1,
|
||||||
copyFile(GPS_VENDOR_CHIP_INFO, concatenatePath(outputDir.c_str(), "chip.info").c_str());
|
GPS_MALLOC_LOG_PREFIX);
|
||||||
|
dumpLogsAscending(GPS_LOG_DIRECTORY, outputDir.c_str(), 5,
|
||||||
|
GPS_RAWLOG_PREFIX);
|
||||||
|
dumpLogs(GPS_LOG_DIRECTORY, outputDir.c_str(), 18,
|
||||||
|
GPS_MEMDUMP_LOG_PREFIX);
|
||||||
|
} else {
|
||||||
|
printf("vendor.gps.aol.collect.thinmd is true. Collecting fils as thin "
|
||||||
|
"modem.\n");
|
||||||
|
copyDirectory(GPS_LOG_DIRECTORY, outputDir.c_str());
|
||||||
|
}
|
||||||
|
if (access(GPS_VENDOR_CHIP_INFO, F_OK) == 0) {
|
||||||
|
copyFile(GPS_VENDOR_CHIP_INFO,
|
||||||
|
concatenatePath(outputDir.c_str(), "chip.info").c_str());
|
||||||
}
|
}
|
||||||
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"));
|
copyDirectory(GPS_RESOURCE_DIRECTORY, concatenatePath(outputDir.c_str(), "resource"));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ cc_binary {
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Wextra",
|
"-Wextra",
|
||||||
"-Werror",
|
"-Werror",
|
||||||
"-pedantic",
|
|
||||||
],
|
],
|
||||||
shared_libs: [
|
shared_libs: [
|
||||||
"libdump",
|
"libdump",
|
||||||
|
|
|
@ -1,11 +1,19 @@
|
||||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/input/gia/sepolicy
|
# When not AOSP target
|
||||||
|
ifeq (,$(filter aosp_%, $(TARGET_PRODUCT)))
|
||||||
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/input/gia/sepolicy
|
||||||
|
|
||||||
PRODUCT_PACKAGES += gia
|
# When not factory target
|
||||||
PRODUCT_PACKAGES += com.google.input.gia.giaservicemanager
|
ifeq (,$(filter factory_%, $(TARGET_PRODUCT)))
|
||||||
|
BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/input/gia/sepolicy-pixelsystemservice
|
||||||
|
endif
|
||||||
|
|
||||||
PRODUCT_SOONG_NAMESPACES += vendor/google/interfaces
|
PRODUCT_PACKAGES += gia
|
||||||
PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core
|
PRODUCT_PACKAGES += com.google.input.gia.giaservicemanager
|
||||||
PRODUCT_SOONG_NAMESPACES += vendor/google/input/gia/core-servicemanager
|
|
||||||
|
|
||||||
DEVICE_MANIFEST_FILE += device/google/gs-common/input/gia/aidl/manifest.xml
|
PRODUCT_SOONG_NAMESPACES += vendor/google/interfaces
|
||||||
DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/gs-common/input/gia/aidl/compatibility_matrix.xml
|
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
|
||||||
|
endif
|
||||||
|
|
8
input/gia/sepolicy-pixelsystemservice/gia.te
Normal file
8
input/gia/sepolicy-pixelsystemservice/gia.te
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# SEPolicies to be configured only if and only if Pixel System Service exists on the device
|
||||||
|
|
||||||
|
# allow pixelsystemservice_app to communicate with gia
|
||||||
|
binder_use(pixelsystemservice_app)
|
||||||
|
hal_client_domain(pixelsystemservice_app, hal_gia)
|
||||||
|
|
||||||
|
# allow gia to execute callback for pixelsystemservice_app
|
||||||
|
binder_call(gia, pixelsystemservice_app)
|
|
@ -16,3 +16,7 @@ hal_server_domain(gia, hal_gia)
|
||||||
# allow gia for accessing touch related system file-nodes
|
# allow gia for accessing touch related system file-nodes
|
||||||
allow gia sysfs_touch_gti:dir r_dir_perms;
|
allow gia sysfs_touch_gti:dir r_dir_perms;
|
||||||
allow gia sysfs_touch_gti:file rw_file_perms;
|
allow gia sysfs_touch_gti:file rw_file_perms;
|
||||||
|
|
||||||
|
# allow gia for collecting device stats
|
||||||
|
allow gia fwk_stats_service:service_manager find;
|
||||||
|
binder_call(gia, stats_service_server);
|
||||||
|
|
|
@ -8,3 +8,4 @@ service insmod_sh /vendor/bin/insmod.sh /vendor/etc/init.common.cfg
|
||||||
group root system
|
group root system
|
||||||
disabled
|
disabled
|
||||||
oneshot
|
oneshot
|
||||||
|
file /dev/kmsg w
|
||||||
|
|
|
@ -52,10 +52,10 @@ if [ $# -eq 1 ]; then
|
||||||
else
|
else
|
||||||
# Set property even if there is no insmod config
|
# Set property even if there is no insmod config
|
||||||
# to unblock early-boot trigger
|
# to unblock early-boot trigger
|
||||||
setprop vendor.common.modules.ready
|
setprop vendor.common.modules.ready 1
|
||||||
setprop vendor.device.modules.ready
|
setprop vendor.device.modules.ready 1
|
||||||
setprop vendor.all.modules.ready
|
setprop vendor.all.modules.ready 1
|
||||||
setprop vendor.all.devices.ready
|
setprop vendor.all.devices.ready 1
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -12,3 +12,6 @@ allow insmod-sh vendor_toolbox_exec:file execute_no_trans;
|
||||||
set_prop(insmod-sh, vendor_device_prop)
|
set_prop(insmod-sh, vendor_device_prop)
|
||||||
|
|
||||||
dontaudit insmod-sh proc_cmdline:file r_file_perms;
|
dontaudit insmod-sh proc_cmdline:file r_file_perms;
|
||||||
|
|
||||||
|
# Allow modprobe to log to kmsg.
|
||||||
|
allow insmod-sh kmsg_device:chr_file w_file_perms;
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
on init
|
on init
|
||||||
# Create the directory for the trace instance during early init
|
# With permissions 666, trace was not captured in the bugreport.
|
||||||
chmod 666 /sys/kernel/tracing/instances/irq_gia_google
|
# Apply relaxed permissions.
|
||||||
chmod 666 /sys/kernel/tracing/instances/irq_gia_google/trace
|
chmod 777 /sys/kernel/tracing/instances/irq_gia_google
|
||||||
|
chmod 777 /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
|
||||||
chown system system /sys/kernel/tracing/instances/irq_gia_google/trace
|
chown system system /sys/kernel/tracing/instances/irq_gia_google/trace
|
||||||
|
|
||||||
|
@ -13,4 +14,9 @@ on init
|
||||||
# Keep the buffer size small. This size is practically enough for debug purpose.
|
# 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 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.
|
# 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
|
write /sys/kernel/tracing/instances/irq_gia_google/buffer_size_kb 16
|
||||||
|
|
||||||
|
# Reduce some GIA events from interrupt handler
|
||||||
|
write /sys/kernel/tracing/instances/irq_gia_google/events/irq_gia/gia_get_power/enable 0
|
||||||
|
write /sys/kernel/tracing/instances/irq_gia_google/events/irq_gia/gia_put_power/enable 0
|
||||||
|
write /sys/kernel/tracing/instances/irq_gia_google/events/irq_gia/gia_irq_eoi/enable 0
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
use std::fs;
|
use std::fs;
|
||||||
|
|
||||||
const MODEM_STAT: &str = "/data/vendor/modem_stat/debug.txt";
|
const MODEM_STAT: &str = "/data/vendor/modem_stat/debug.txt";
|
||||||
|
const MODEM_UART: &str = "/data/vendor/radio/modem_uart_logs.txt";
|
||||||
const SSRDUMP_DIR: &str = "/data/vendor/ssrdump";
|
const SSRDUMP_DIR: &str = "/data/vendor/ssrdump";
|
||||||
const RFSD_ERR_LOG_DIR: &str = "/data/vendor/log/rfsd";
|
const RFSD_ERR_LOG_DIR: &str = "/data/vendor/log/rfsd";
|
||||||
const WAKEUP_EVENTS: &str = "/sys/devices/platform/cpif/wakeup_events";
|
const WAKEUP_EVENTS: &str = "/sys/devices/platform/cpif/wakeup_events";
|
||||||
|
@ -64,6 +65,13 @@ fn modem_stat() {
|
||||||
println!();
|
println!();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Capture modem uart log if it exists
|
||||||
|
fn modem_uart() {
|
||||||
|
println!("------ Modem UART ------");
|
||||||
|
print_file_and_handle_error(MODEM_UART);
|
||||||
|
println!();
|
||||||
|
}
|
||||||
|
|
||||||
// Capture crash signatures from all modem crashes
|
// Capture crash signatures from all modem crashes
|
||||||
fn modem_ssr_history() {
|
fn modem_ssr_history() {
|
||||||
println!("------ Modem SSR history ------");
|
println!("------ Modem SSR history ------");
|
||||||
|
@ -101,6 +109,7 @@ fn pcie_event_stats() {
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
modem_stat();
|
modem_stat();
|
||||||
|
modem_uart();
|
||||||
modem_ssr_history();
|
modem_ssr_history();
|
||||||
rfsd_error_log();
|
rfsd_error_log();
|
||||||
wakeup_events();
|
wakeup_events();
|
||||||
|
|
10
modem/pixel_modem_service/pixel_modem_service.mk
Normal file
10
modem/pixel_modem_service/pixel_modem_service.mk
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# This file is not included in `modem.mk` since this is included at the
|
||||||
|
# beginning of each `device.mk` file, and so will be called before
|
||||||
|
# `PIXEL_MODEM_SERVICE_FLAVOUR` is defined later in the file.
|
||||||
|
|
||||||
|
SOONG_CONFIG_NAMESPACES += pixel_modem_service
|
||||||
|
SOONG_CONFIG_pixel_modem_service += \
|
||||||
|
flavour
|
||||||
|
SOONG_CONFIG_pixel_modem_service_flavour := $(PIXEL_MODEM_SERVICE_FLAVOUR)
|
||||||
|
|
||||||
|
PRODUCT_PACKAGES += PixelModemService
|
2
modem/shared_modem_platform/sepolicy/file.te
Normal file
2
modem/shared_modem_platform/sepolicy/file.te
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Define the type which declare in genfs_contexts
|
||||||
|
type sysfs_kernel_metrics, sysfs_type, fs_type;
|
6
modem/shared_modem_platform/sepolicy/genfs_contexts
Normal file
6
modem/shared_modem_platform/sepolicy/genfs_contexts
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/modem_boot_duration u:object_r:sysfs_kernel_metrics:s0
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/modem_wakeup_ap u:object_r:sysfs_kernel_metrics:s0
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/pcie_link_state u:object_r:sysfs_kernel_metrics:s0
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/pcie_link_duration u:object_r:sysfs_kernel_metrics:s0
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/pcie_link_stats u:object_r:sysfs_kernel_metrics:s0
|
||||||
|
genfscon sysfs /kernel/pixel_metrics/modem/pcie_link_updown u:object_r:sysfs_kernel_metrics:s0
|
|
@ -1,2 +1,5 @@
|
||||||
# Shared modem platform will register the default instance of the AIDL ISharedModemPlatform hal.
|
# Shared modem platform will register the default instance of the AIDL ISharedModemPlatform hal.
|
||||||
hal_server_domain(shared_modem_platform, hal_shared_modem_platform)
|
hal_server_domain(shared_modem_platform, hal_shared_modem_platform)
|
||||||
|
|
||||||
|
allow shared_modem_platform sysfs_kernel_metrics:file r_file_perms;
|
||||||
|
|
||||||
|
|
4
nfc/sepolicy_st21nfc/hal_nfc_default.te
Normal file
4
nfc/sepolicy_st21nfc/hal_nfc_default.te
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# HAL NFC property
|
||||||
|
set_prop(hal_nfc_default, vendor_secure_element_prop)
|
||||||
|
set_prop(hal_nfc_default, vendor_nfc_prop)
|
||||||
|
set_prop(hal_nfc_default, vendor_nfc_antenna_prop)
|
4
nfc/sepolicy_st21nfc/property.te
Normal file
4
nfc/sepolicy_st21nfc/property.te
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# NFC
|
||||||
|
vendor_internal_prop(vendor_nfc_prop)
|
||||||
|
vendor_restricted_prop(vendor_nfc_antenna_prop)
|
||||||
|
|
4
nfc/sepolicy_st21nfc/property_contexts
Normal file
4
nfc/sepolicy_st21nfc/property_contexts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# NFC
|
||||||
|
persist.vendor.nfc. u:object_r:vendor_nfc_prop:s0
|
||||||
|
persist.vendor.nfc.antenna. u:object_r:vendor_nfc_antenna_prop:s0
|
||||||
|
|
5
nfc/sepolicy_st21nfc/untrusted_app.te
Normal file
5
nfc/sepolicy_st21nfc/untrusted_app.te
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# NFC
|
||||||
|
userdebug_or_eng(
|
||||||
|
get_prop(untrusted_app, vendor_nfc_antenna_prop)
|
||||||
|
)
|
||||||
|
|
2
nfc/sepolicy_st21nfc/vendor_init.te
Normal file
2
nfc/sepolicy_st21nfc/vendor_init.te
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# NFC vendor property
|
||||||
|
set_prop(vendor_init, vendor_nfc_prop)
|
10
performance/experiments/amm/Android.bp
Normal file
10
performance/experiments/amm/Android.bp
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
package {
|
||||||
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||||
|
}
|
||||||
|
|
||||||
|
prebuilt_etc {
|
||||||
|
name: "pixel-amm-experiment.rc",
|
||||||
|
src: "pixel-amm-experiment.rc",
|
||||||
|
vendor: true,
|
||||||
|
sub_dir: "init",
|
||||||
|
}
|
1
performance/experiments/amm/amm.mk
Normal file
1
performance/experiments/amm/amm.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
PRODUCT_PACKAGES += pixel-amm-experiment.rc
|
23
performance/experiments/amm/pixel-amm-experiment.rc
Normal file
23
performance/experiments/amm/pixel-amm-experiment.rc
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Activate DISABLE_AMM hint.
|
||||||
|
service pixel-amm-experiment-activate /vendor/bin/sendhint -m DISABLE_AMM
|
||||||
|
user root
|
||||||
|
disabled
|
||||||
|
oneshot
|
||||||
|
|
||||||
|
# Deactivate DISABLE_AMM hint.
|
||||||
|
service pixel-amm-experiment-deactivate /vendor/bin/sendhint -m DISABLE_AMM -e 0
|
||||||
|
user root
|
||||||
|
disabled
|
||||||
|
oneshot
|
||||||
|
|
||||||
|
# AMM experiment (go/pixel-perf-amm-experiment).
|
||||||
|
on property:vendor.perf.allow_experiments=1 && \
|
||||||
|
property:vendor.pixel.system.phenotype.Perf__amm_experiment=true
|
||||||
|
setprop vendor.powerhal.amm_enabled false
|
||||||
|
start pixel-amm-experiment-activate
|
||||||
|
|
||||||
|
# Rampdown of the experiment.
|
||||||
|
on property:vendor.perf.allow_experiments=1 && \
|
||||||
|
property:vendor.pixel.system.phenotype.Perf__amm_experiment=""
|
||||||
|
setprop vendor.powerhal.amm_enabled ""
|
||||||
|
start pixel-amm-experiment-deactivate
|
|
@ -4,3 +4,4 @@ PRODUCT_PACKAGES += pixel-experiments-recovery.sh
|
||||||
|
|
||||||
include device/google/gs-common/performance/experiments/kswapd/kswapd.mk
|
include device/google/gs-common/performance/experiments/kswapd/kswapd.mk
|
||||||
include device/google/gs-common/performance/experiments/apf/apf.mk
|
include device/google/gs-common/performance/experiments/apf/apf.mk
|
||||||
|
include device/google/gs-common/performance/experiments/amm/amm.mk
|
||||||
|
|
|
@ -13,6 +13,149 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
on init
|
on init
|
||||||
|
chown system system /proc/vendor_sched/groups/bg/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/cam/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/fg/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/nnapi/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sys/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sys_bg/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/ta/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/rt/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sf/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/dex2oat/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/cam_power/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/ota/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/fg_wi/set_task_group
|
||||||
|
chown system system /proc/vendor_sched/groups/bg/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/cam/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/fg/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/nnapi/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sys/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sys_bg/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/ta/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/rt/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/sf/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/dex2oat/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/cam_power/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/ota/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/groups/fg_wi/set_proc_group
|
||||||
|
chown system system /proc/vendor_sched/prefer_idle_set
|
||||||
|
chown system system /proc/vendor_sched/prefer_idle_clear
|
||||||
|
chown system system /proc/vendor_sched/pmu_poll_enable
|
||||||
|
chown system system /proc/vendor_sched/pmu_poll_time
|
||||||
|
chown system system /proc/vendor_sched/uclamp_fork_reset_clear
|
||||||
|
chown system system /proc/vendor_sched/uclamp_fork_reset_set
|
||||||
|
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/bg/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/cam/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/fg/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/nnapi/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sys/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sys_bg/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/ta/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/rt/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sf/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/dex2oat/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/cam_power/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/ota/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/fg_wi/set_task_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/bg/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/cam/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/fg/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/nnapi/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sys/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sys_bg/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/ta/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/rt/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/sf/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/dex2oat/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/cam_power/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/ota/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/groups/fg_wi/set_proc_group
|
||||||
|
chmod 0220 /proc/vendor_sched/prefer_idle_set
|
||||||
|
chmod 0220 /proc/vendor_sched/prefer_idle_clear
|
||||||
|
chmod 0660 /proc/vendor_sched/pmu_poll_enable
|
||||||
|
chmod 0220 /proc/vendor_sched/pmu_poll_time
|
||||||
|
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/uclamp_fork_reset_set
|
||||||
|
|
||||||
|
# Change permission of sched qos nodes
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/adpf_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/adpf_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/boost_prio_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/boost_prio_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/preempt_wakeup_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_fit_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_fit_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_high_cap_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_idle_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/prefer_idle_clear
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_set
|
||||||
|
chown system system /proc/vendor_sched/sched_qos/rampup_multiplier_clear
|
||||||
|
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/adpf_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/adpf_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/auto_uclamp_max_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/boost_prio_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/preempt_wakeup_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_fit_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_high_cap_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/prefer_idle_clear
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_set
|
||||||
|
chmod 0220 /proc/vendor_sched/sched_qos/rampup_multiplier_clear
|
||||||
|
|
||||||
|
# Enable sched_qos for some groups
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_auto_uclamp_max_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_boost_prio_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_preempt_wakeup_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_prefer_fit_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_prefer_high_cap_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_prefer_idle_enable 1
|
||||||
|
write /proc/vendor_sched/groups/ta/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_auto_uclamp_max_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_boost_prio_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_preempt_wakeup_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_prefer_fit_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_prefer_high_cap_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_prefer_idle_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_auto_uclamp_max_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_boost_prio_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_preempt_wakeup_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_prefer_fit_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_prefer_high_cap_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_prefer_idle_enable 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_auto_uclamp_max_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_prefer_fit_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_prefer_high_cap_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_prefer_idle_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_auto_uclamp_max_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_prefer_fit_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_prefer_high_cap_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_prefer_idle_enable 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/rt/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/rt/qos_rampup_multiplier_enable 1
|
||||||
|
write /proc/vendor_sched/groups/sf/qos_adpf_enable 1
|
||||||
|
write /proc/vendor_sched/groups/sf/qos_rampup_multiplier_enable 1
|
||||||
|
|
||||||
# cpufreq governor setting
|
# cpufreq governor setting
|
||||||
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel
|
||||||
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor sched_pixel
|
write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor sched_pixel
|
||||||
|
@ -43,3 +186,85 @@ on init
|
||||||
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu7/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us 500
|
write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us 500
|
||||||
|
|
||||||
|
# Default rampup multiplier setup
|
||||||
|
write /proc/vendor_sched/groups/bg/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/cam/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/cam_power/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/dex2oat/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/fg/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/nnapi/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/ota/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/rt/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/sf/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/groups/sys/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/sys_bg/rampup_multiplier 0
|
||||||
|
write /proc/vendor_sched/groups/ta/rampup_multiplier 1
|
||||||
|
write /proc/vendor_sched/adpf_rampup_multiplier 4
|
||||||
|
|
||||||
|
# Default util_est setup
|
||||||
|
write /proc/vendor_sched/groups/bg/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/cam/disable_util_est 0
|
||||||
|
write /proc/vendor_sched/groups/cam_power/disable_util_est 0
|
||||||
|
write /proc/vendor_sched/groups/dex2oat/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/fg/disable_util_est 0
|
||||||
|
write /proc/vendor_sched/groups/fg_wi/disable_util_est 0
|
||||||
|
write /proc/vendor_sched/groups/nnapi/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/ota/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/rt/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/sf/disable_util_est 0
|
||||||
|
write /proc/vendor_sched/groups/sys/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/sys_bg/disable_util_est 1
|
||||||
|
write /proc/vendor_sched/groups/ta/disable_util_est 0
|
||||||
|
|
||||||
|
# RT uclamp setting
|
||||||
|
write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
|
||||||
|
|
||||||
|
write /proc/vendor_sched/groups/cam/prefer_idle 1
|
||||||
|
write /proc/vendor_sched/groups/cam/uclamp_min 1
|
||||||
|
|
||||||
|
chown system system /dev/cpuset/cgroup.procs
|
||||||
|
|
||||||
|
# Add a boost for NNAPI HAL
|
||||||
|
write /proc/vendor_sched/groups/nnapi/prefer_idle 0
|
||||||
|
write /proc/vendor_sched/groups/nnapi/uclamp_min 512
|
||||||
|
|
||||||
|
on property:sys.boot_completed=1
|
||||||
|
|
||||||
|
# Setup scheduler parameters
|
||||||
|
write /proc/vendor_sched/min_granularity_ns 1000000
|
||||||
|
write /proc/vendor_sched/latency_ns 8000000
|
||||||
|
write /proc/vendor_sched/max_load_balance_interval 1
|
||||||
|
write /proc/vendor_sched/enable_hrtick 1
|
||||||
|
|
||||||
|
# Setup final cpu.uclamp
|
||||||
|
write /proc/vendor_sched/groups/ta/uclamp_min 1
|
||||||
|
write /proc/vendor_sched/groups/fg/uclamp_min 0
|
||||||
|
write /proc/vendor_sched/groups/sys/prefer_idle 0
|
||||||
|
|
||||||
|
# Set ug group
|
||||||
|
write /proc/vendor_sched/groups/bg/ug 0
|
||||||
|
write /proc/vendor_sched/groups/sys_bg/ug 0
|
||||||
|
write /proc/vendor_sched/groups/ota/ug 0
|
||||||
|
write /proc/vendor_sched/groups/dex2oat/ug 1
|
||||||
|
write /proc/vendor_sched/groups/ta/ug 1
|
||||||
|
|
||||||
|
# Set bg group throttle
|
||||||
|
write /proc/vendor_sched/ug_bg_group_throttle ${persist.device_config.vendor_system_native.ug_bg_group_throttle:-308}
|
||||||
|
|
||||||
|
# Disable PMU freq limit
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy1/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy2/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy3/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy5/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy6/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy7/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/pmu_limit_enable 1
|
||||||
|
write /proc/vendor_sched/pmu_poll_enable 0
|
||||||
|
|
||||||
|
# Set priority task name and boost value
|
||||||
|
write /proc/vendor_sched/priority_task_name "ExoPlayer:Place"
|
||||||
|
write /proc/vendor_sched/priority_task_boost_value 742
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
# allow power hal to access pa kill knobs
|
||||||
allow hal_power_default sysfs_pakills:file rw_file_perms;
|
allow hal_power_default sysfs_pakills:file rw_file_perms;
|
||||||
allow hal_power_default sysfs_pakills:dir r_dir_perms;
|
allow hal_power_default sysfs_pakills:dir r_dir_perms;
|
||||||
r_dir_file(hal_power_default, sysfs_vendor_mm);
|
r_dir_file(hal_power_default, sysfs_vendor_mm);
|
||||||
|
|
||||||
|
# allow power hal to access vendor_mm knobs
|
||||||
|
allow hal_power_default sysfs_vendor_mm:file rw_file_perms;
|
||||||
|
|
||||||
|
# Allow set display early wake up
|
||||||
|
allow hal_power_default sysfs_display:file rw_file_perms;
|
||||||
|
|
2
performance/sepolicy/init.te
Normal file
2
performance/sepolicy/init.te
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# zram
|
||||||
|
allow init ram_device:blk_file w_file_perms;
|
4
pixelstats/pixelstats.mk
Normal file
4
pixelstats/pixelstats.mk
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Reliability reporting
|
||||||
|
PRODUCT_PACKAGES += pixelstats-vendor
|
||||||
|
|
||||||
|
BOARD_SEPOLICY_DIRS += device/google/gs-common/pixelstats/sepolicy
|
|
@ -9,6 +9,10 @@ userdebug_or_eng(`
|
||||||
|
|
||||||
allow ramdump_app app_api_service:service_manager find;
|
allow ramdump_app app_api_service:service_manager find;
|
||||||
|
|
||||||
|
# For Firebase Analytics
|
||||||
|
allow ramdump_app privapp_data_file:file x_file_perms;
|
||||||
|
allow ramdump_app privapp_data_file:lnk_file r_file_perms;
|
||||||
|
|
||||||
allow ramdump_app ramdump_vendor_data_file:file create_file_perms;
|
allow ramdump_app ramdump_vendor_data_file:file create_file_perms;
|
||||||
allow ramdump_app ramdump_vendor_data_file:dir create_dir_perms;
|
allow ramdump_app ramdump_vendor_data_file:dir create_dir_perms;
|
||||||
|
|
||||||
|
|
|
@ -3,3 +3,9 @@ se_flags {
|
||||||
flags: ["RELEASE_USB_UDC_SYSFS_SELINUX_POLICY_ENABLED"],
|
flags: ["RELEASE_USB_UDC_SYSFS_SELINUX_POLICY_ENABLED"],
|
||||||
export_to: ["all_selinux_flags"],
|
export_to: ["all_selinux_flags"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
se_flags {
|
||||||
|
name: "pixel_selinux_flags",
|
||||||
|
flags: ["RELEASE_PIXEL_MALI_SEPOLICY_ENABLED"],
|
||||||
|
export_to: ["all_selinux_flags"],
|
||||||
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
|
|
||||||
#define F2FS_FSCK_TIME_PROPERTY "ro.boottime.init.fsck.data"
|
#define F2FS_FSCK_TIME_PROPERTY "ro.boottime.init.fsck.data"
|
||||||
#define F2FS_MNT_TIME_PROPERTY "ro.boottime.init.mount.data"
|
#define F2FS_MNT_TIME_PROPERTY "ro.boottime.init.mount.data"
|
||||||
#define BOOTDEVICE_PROPERTY "ro.boot.bootdevice"
|
|
||||||
#define BUILD_TYPE_PROPERTY "ro.build.type"
|
#define BUILD_TYPE_PROPERTY "ro.build.type"
|
||||||
|
|
||||||
void read_buffer(int buf_id, int total_len, const char* path)
|
void read_buffer(int buf_id, int total_len, const char* path)
|
||||||
|
@ -68,11 +67,31 @@ int main() {
|
||||||
int mnt_time = android::base::GetIntProperty(F2FS_MNT_TIME_PROPERTY, 0);
|
int mnt_time = android::base::GetIntProperty(F2FS_MNT_TIME_PROPERTY, 0);
|
||||||
printf("--- F2FS - checkpoint=disable time (ms) ---\n%d\n\n", mnt_time);
|
printf("--- F2FS - checkpoint=disable time (ms) ---\n%d\n\n", mnt_time);
|
||||||
|
|
||||||
|
const std::string f2fs_proc_path("/proc/fs/f2fs/");
|
||||||
|
std::unique_ptr<DIR, decltype(&closedir)> procdir(
|
||||||
|
opendir(f2fs_proc_path.c_str()), closedir);
|
||||||
|
if (procdir) {
|
||||||
|
dirent *proc_entry;
|
||||||
|
while ((proc_entry = readdir(procdir.get())) != nullptr) {
|
||||||
|
std::string proc_name(proc_entry->d_name);
|
||||||
|
if (proc_name == "." || proc_name == ".." ||
|
||||||
|
strncmp(proc_name.c_str(), "dm-", 3))
|
||||||
|
continue;
|
||||||
|
dumpFileContent(("F2FS - " + proc_name).c_str(),
|
||||||
|
(f2fs_proc_path + proc_name + "/disk_map").c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//UFS
|
//UFS
|
||||||
dumpFileContent("UFS model", "/sys/block/sda/device/model");
|
dumpFileContent("UFS model", "/sys/block/sda/device/model");
|
||||||
dumpFileContent("UFS rev", "/sys/block/sda/device/rev");
|
dumpFileContent("UFS rev", "/sys/block/sda/device/rev");
|
||||||
dumpFileContent("UFS size", "/sys/block/sda/size");
|
dumpFileContent("UFS size", "/sys/block/sda/size");
|
||||||
|
|
||||||
|
dumpFileContent("UFS phy version",
|
||||||
|
"/dev/sys/block/bootdevice/pixel/phy_version");
|
||||||
|
dumpFileContent("UFS phy release_date",
|
||||||
|
"/dev/sys/block/bootdevice/pixel/phy_release_date");
|
||||||
|
|
||||||
dumpFileContent("UFS Slow IO Read",
|
dumpFileContent("UFS Slow IO Read",
|
||||||
"/dev/sys/block/bootdevice/slowio_read_cnt");
|
"/dev/sys/block/bootdevice/slowio_read_cnt");
|
||||||
dumpFileContent("UFS Slow IO Write",
|
dumpFileContent("UFS Slow IO Write",
|
||||||
|
@ -90,24 +109,10 @@ int main() {
|
||||||
if (statdir) {
|
if (statdir) {
|
||||||
dirent *stat_entry;
|
dirent *stat_entry;
|
||||||
while ((stat_entry = readdir(statdir.get())) != nullptr) {
|
while ((stat_entry = readdir(statdir.get())) != nullptr) {
|
||||||
std::string ufs_err_stats_path(stat_entry->d_name);
|
std::string stat_name(stat_entry->d_name);
|
||||||
if (!strcmp(ufs_err_stats_path.c_str(), ".")
|
if (stat_name == "." || stat_name == "..") continue;
|
||||||
|| !strcmp(ufs_err_stats_path.c_str(), ".."))
|
dumpFileContent(stat_name.c_str(),
|
||||||
continue;
|
(ufs_err_stats_path + stat_name).c_str());
|
||||||
std::string bootdevice = android::base::GetProperty(
|
|
||||||
BOOTDEVICE_PROPERTY, "");
|
|
||||||
std::string err_stat_path = "/sys/devices/platform/";
|
|
||||||
err_stat_path.append(bootdevice.c_str());
|
|
||||||
err_stat_path.append("/err_stats/");
|
|
||||||
err_stat_path.append(ufs_err_stats_path.c_str());
|
|
||||||
std::ifstream err_stat_file(err_stat_path);
|
|
||||||
if (err_stat_file.is_open()) {
|
|
||||||
std::string err_stat_atom;
|
|
||||||
err_stat_file >> err_stat_atom;
|
|
||||||
printf("%s:%s\n", ufs_err_stats_path.c_str(),
|
|
||||||
err_stat_atom.c_str());
|
|
||||||
err_stat_file.close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,10 @@ pixel_bugreport(dump_storage)
|
||||||
# adb bugreport
|
# adb bugreport
|
||||||
allow dump_storage sysfs_scsi_devices_0000:dir r_dir_perms;
|
allow dump_storage sysfs_scsi_devices_0000:dir r_dir_perms;
|
||||||
allow dump_storage sysfs_scsi_devices_0000:file r_file_perms;
|
allow dump_storage sysfs_scsi_devices_0000:file r_file_perms;
|
||||||
|
allow dump_storage sysfs:file r_file_perms;
|
||||||
|
|
||||||
|
allow dump_storage proc_f2fs:dir r_dir_perms;
|
||||||
|
allow dump_storage proc_f2fs:file r_file_perms;
|
||||||
|
|
||||||
# adb bugreport
|
# adb bugreport
|
||||||
userdebug_or_eng(`
|
userdebug_or_eng(`
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# init
|
# init
|
||||||
allow init sysfs_scsi_devices_0000:file w_file_perms;
|
allow init sysfs_scsi_devices_0000:file w_file_perms;
|
||||||
|
allow init userdata_exp_block_device:blk_file write;
|
||||||
dontaudit init intelligence_data_file:dir mounton;
|
allow init intelligence_data_file:dir mounton;
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# for intelligence service
|
# for intelligence service
|
||||||
|
|
||||||
allow kernel userdata_exp_block_device:blk_file read;
|
allow kernel userdata_exp_block_device:blk_file { read write };
|
||||||
|
|
|
@ -10,8 +10,9 @@ service storage_intelligence /vendor/bin/storage_intelligence.sh
|
||||||
|
|
||||||
on boot && property:persist.vendor.intelligence=on
|
on boot && property:persist.vendor.intelligence=on
|
||||||
mkdir /data/vendor/intelligence 0770 vendor_intelligence vendor_intelligence
|
mkdir /data/vendor/intelligence 0770 vendor_intelligence vendor_intelligence
|
||||||
|
mount f2fs loop@/dev/block/by-name/userdata_exp.ai /data/vendor/intelligence rw
|
||||||
restorecon_recursive /data/vendor/intelligence
|
restorecon_recursive /data/vendor/intelligence
|
||||||
mount f2fs loop@/dev/block/by-name/userdata_exp.ai /data/vendor/intelligence ro
|
mount f2fs /data/vendor/intelligence /data/vendor/intelligence remount ro
|
||||||
start storage_intelligence
|
start storage_intelligence
|
||||||
|
|
||||||
on boot && property:persist.vendor.intelligence=off
|
on boot && property:persist.vendor.intelligence=off
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/vendor/bin/sh
|
#!/vendor/bin/sh
|
||||||
#
|
#
|
||||||
# The script belongs to the feature of UFS FFU via OTA: go/p23-ffu-ota
|
# The script belongs to the feature of AI preload feature, go/gemini-package
|
||||||
# Its purpose is to copy the corresponding firmware into partition for UFS FFU.
|
|
||||||
|
|
||||||
|
|
||||||
property="persist.vendor.intelligence"
|
property="persist.vendor.intelligence"
|
||||||
partition="/dev/block/by-name/userdata_exp.ai"
|
partition="/dev/block/by-name/userdata_exp.ai"
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
genfscon sysfs /devices/virtual/thermal u:object_r:sysfs_thermal:s0
|
genfscon sysfs /devices/virtual/thermal u:object_r:sysfs_thermal:s0
|
||||||
|
genfscon sysfs /devices/virtual/powercap u:object_r:sysfs_thermal:s0
|
||||||
genfscon sysfs /class/thermal u:object_r:sysfs_thermal:s0
|
genfscon sysfs /class/thermal u:object_r:sysfs_thermal:s0
|
||||||
|
genfscon sysfs /class/powercap u:object_r:sysfs_thermal:s0
|
||||||
genfscon debugfs /gs101-thermal u:object_r:debugfs_thermal:s0
|
genfscon debugfs /gs101-thermal u:object_r:debugfs_thermal:s0
|
||||||
|
|
|
@ -4,6 +4,10 @@ DIR=/data/vendor/dump_touch
|
||||||
SCRIPT_DIR=/vendor/bin/dump_touch
|
SCRIPT_DIR=/vendor/bin/dump_touch
|
||||||
LOCKFILE="$DIR"/dumping
|
LOCKFILE="$DIR"/dumping
|
||||||
LOGFILE="$DIR"/dump.log
|
LOGFILE="$DIR"/dump.log
|
||||||
|
DEBUG_START_TIME="$DIR"/start
|
||||||
|
DEBUG_END_TIME="$DIR"/end
|
||||||
|
|
||||||
|
date +%s%N > $DEBUG_START_TIME
|
||||||
|
|
||||||
if [ ! -f $LOCKFILE ]
|
if [ ! -f $LOCKFILE ]
|
||||||
then
|
then
|
||||||
|
@ -41,4 +45,4 @@ fi
|
||||||
|
|
||||||
echo 2 > $LOCKFILE
|
echo 2 > $LOCKFILE
|
||||||
|
|
||||||
|
date +%s%N > $DEBUG_END_TIME
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<compatibility-matrix version="1.0" type="framework">
|
<compatibility-matrix version="1.0" type="framework">
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>com.google.input</name>
|
<name>com.google.input</name>
|
||||||
<version>2-3</version>
|
<version>2-5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>ITouchContextService</name>
|
<name>ITouchContextService</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -1,15 +1,23 @@
|
||||||
<compatibility-matrix version="1.0" type="framework">
|
<compatibility-matrix version="1.0" type="framework">
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>com.google.input</name>
|
<name>com.google.input</name>
|
||||||
<version>2-3</version>
|
<version>2-5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>ITouchContextService</name>
|
<name>ITouchContextService</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
</interface>
|
</interface>
|
||||||
</hal>
|
</hal>
|
||||||
|
<hal format="aidl" optional="true">
|
||||||
|
<name>com.google.input</name>
|
||||||
|
<version>5</version>
|
||||||
|
<interface>
|
||||||
|
<name>ITwoshayNotificationService</name>
|
||||||
|
<instance>default</instance>
|
||||||
|
</interface>
|
||||||
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>com.google.input.algos.gril</name>
|
<name>com.google.input.algos.gril</name>
|
||||||
<version>2-3</version>
|
<version>2-5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IGrilAntennaTuningService</name>
|
<name>IGrilAntennaTuningService</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
@ -17,7 +25,7 @@
|
||||||
</hal>
|
</hal>
|
||||||
<hal format="aidl" optional="true">
|
<hal format="aidl" optional="true">
|
||||||
<name>com.google.input.algos.spd</name>
|
<name>com.google.input.algos.spd</name>
|
||||||
<version>2-3</version>
|
<version>2-5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>IScreenProtectorDetectorService</name>
|
<name>IScreenProtectorDetectorService</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<manifest version="1.0" type="device">
|
<manifest version="1.0" type="device">
|
||||||
<hal format="aidl">
|
<hal format="aidl">
|
||||||
<name>com.google.input</name>
|
<name>com.google.input</name>
|
||||||
<version>3</version>
|
<version>5</version>
|
||||||
<interface>
|
<interface>
|
||||||
<name>ITouchContextService</name>
|
<name>ITouchContextService</name>
|
||||||
<instance>default</instance>
|
<instance>default</instance>
|
||||||
|
|
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