Compare commits
401 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1f54fc6a4d | |||
|
|
c03fc89b04 | ||
|
|
19ae1d6ed1 | ||
|
|
0db58100ec | ||
|
|
ac8643eb0c | ||
|
|
d188c01011 | ||
|
|
22e7439a3d | ||
|
|
df371b8a52 | ||
|
|
4bfd1fce2e | ||
|
|
1ee5a39c5f | ||
|
|
54b5e2e9c0 | ||
|
|
9f47851953 | ||
|
|
855708aac3 | ||
|
|
d1e0a12fdb | ||
|
|
f56393a464 | ||
|
|
732b8dd047 | ||
|
|
c03e09217a | ||
|
|
4676c7e06e | ||
|
|
df2ba369d6 | ||
|
|
83215ca864 | ||
|
|
65f33e967c | ||
|
|
9616b630eb | ||
|
|
1552549000 | ||
|
|
91d7cf5d05 | ||
|
|
d44be77d58 | ||
|
|
922e9509c9 | ||
|
|
ac2f1ec767 | ||
|
|
2bd42deea8 | ||
|
|
8974f8e693 | ||
|
|
3ffd6aa8ea | ||
|
|
80eafb38a6 | ||
|
|
258ed74282 | ||
|
|
7a4af20680 | ||
|
|
48ea06f3e3 | ||
|
|
6622dcf6ea | ||
|
|
015c0ed681 | ||
|
|
a94238c410 | ||
|
|
a10858ce0c | ||
|
|
b059516597 | ||
|
|
615f4cf932 | ||
|
|
5091a4e563 | ||
|
|
0403333fdb | ||
|
|
cc77c850ee | ||
|
|
eb6da0a98e | ||
|
|
21e31e937a | ||
|
|
bea8640474 | ||
|
|
8f30c6f2b0 | ||
|
|
2c7e671ecd | ||
|
|
f2b4bb7bef | ||
|
|
89b5f3fca3 | ||
|
|
e64d0f0805 | ||
|
|
0a493ec75d | ||
|
|
12d59feba0 | ||
|
|
ff7bf1a24d | ||
|
|
6d49eb094d | ||
|
|
3cbb96c5fe | ||
|
|
91d67cdcc1 | ||
|
|
09417ff9b6 | ||
|
|
cf69c20b41 | ||
|
|
13bc69a0d5 | ||
|
|
448333c762 | ||
|
|
522239486f | ||
|
|
6fd17485db | ||
|
|
fcf53d96e8 | ||
|
|
8f2561170e | ||
|
|
9b3ed02735 | ||
|
|
bce6a9b893 | ||
|
|
dafdd19aa7 | ||
|
|
2e2a298b6e | ||
|
|
2a6e01f447 | ||
|
|
459c086d08 | ||
|
|
fb3ab9da92 | ||
|
|
042a2ba4e1 | ||
|
|
fc19078949 | ||
|
|
49c9e763ac | ||
|
|
93e116bcd0 | ||
|
|
4cb02c1748 | ||
|
|
08554b5003 | ||
|
|
be552bc1f9 | ||
|
|
2b69ac69aa | ||
|
|
76c58826c5 | ||
|
|
de1d64a8cb | ||
|
|
6fda956127 | ||
|
|
3c4b405c8f | ||
|
|
aafe6e214c | ||
|
|
c408e48566 | ||
|
|
bdf73c5b4f | ||
|
|
a19b52d31c | ||
|
|
4eb01fc6ed | ||
|
|
f518943284 | ||
|
|
af5951eef5 | ||
|
|
8dc092ae68 | ||
|
|
cdff2a709f | ||
|
|
3243b526d7 | ||
|
|
bb8bd4334a | ||
|
|
6eebc19c3e | ||
|
|
6345542a06 | ||
|
|
437b2a63af | ||
|
|
adce9b34d8 | ||
|
|
d5786a0cb2 | ||
|
|
7d26e0a490 | ||
|
|
0cb6c743d7 | ||
|
|
153c5687e9 | ||
|
|
c05185e38d | ||
|
|
3e9152ff93 | ||
|
|
d485885130 | ||
|
|
339bf187d0 | ||
|
|
0a92be0e28 | ||
|
|
0416a1f301 | ||
|
|
d3a2b06623 | ||
|
|
19a776f316 | ||
|
|
cd377bf81e | ||
|
|
baaac3045c | ||
|
|
d35c6201a6 | ||
|
|
daff6b1e40 | ||
|
|
8015ca09b2 | ||
|
|
e63881396f | ||
|
|
4258b2b3f4 | ||
|
|
362f8f84f1 | ||
|
|
028be53751 | ||
|
|
1e5f720709 | ||
|
|
91ed6f8e24 | ||
|
|
19d9cc5749 | ||
|
|
1167b25995 | ||
|
|
8c462c722a | ||
|
|
91248b74ac | ||
|
|
a8660a0cba | ||
|
|
244428a3c8 | ||
|
|
f1ad67a058 | ||
|
|
dcdbc2bcc3 | ||
|
|
9626d4364f | ||
|
|
516199c5e6 | ||
|
|
b3f30bf6a9 | ||
|
|
d54cae16c8 | ||
|
|
2655187223 | ||
|
|
009810fe8b | ||
|
|
0522c04a87 | ||
|
|
0d5845cadf | ||
|
|
d37aac0531 | ||
|
|
58d15a721b | ||
|
|
7e2cd8f092 | ||
|
|
44c496c5e2 | ||
|
|
359f69ee08 | ||
|
|
59c6073296 | ||
|
|
c66b25abf4 | ||
|
|
35b8f1638c | ||
|
|
5a322be262 | ||
|
|
dfcf0b1899 | ||
|
|
2a3a032362 | ||
|
|
2be347354c | ||
|
|
f10bef71b8 | ||
|
|
a9e08f01d3 | ||
|
|
d31839caf4 | ||
|
|
376bea3228 | ||
|
|
c0e0850259 | ||
|
|
ed9c9fa491 | ||
|
|
61fb7857c5 | ||
|
|
b43c519a73 | ||
|
|
c26d44d7b5 | ||
|
|
92329e9f56 | ||
|
|
5e3735dce7 | ||
|
|
d75b0a5247 | ||
|
|
da2d5774fe | ||
|
|
a308cb0408 | ||
|
|
63a8590df3 | ||
|
|
b22fd2b175 | ||
|
|
7689c0d4dc | ||
|
|
7cd7d69d5c | ||
|
|
2750ef5a33 | ||
|
|
5fdbdcddf5 | ||
|
|
d1d763ba08 | ||
|
|
451101a700 | ||
|
|
9fdff6ca39 | ||
|
|
6238b240eb | ||
|
|
b9dec4c10c | ||
|
|
1edac295fa | ||
|
|
84c2320c5c | ||
|
|
3f43c40d88 | ||
|
|
1c85bdd4f8 | ||
|
|
e215ee0263 | ||
|
|
af49915ef8 | ||
|
|
bc0330b4a0 | ||
|
|
96a53ff12d | ||
|
|
2762d0dbd4 | ||
|
|
0128580e96 | ||
|
|
00b21ecf0e | ||
|
|
50cd86ef20 | ||
|
|
46830e7b60 | ||
|
|
6b1d252a01 | ||
|
|
f6bec7ea36 | ||
|
|
b6bf25aa5c | ||
|
|
169c3fe820 | ||
|
|
7af75c401a | ||
|
|
c734a25fe1 | ||
|
|
c77922ff67 | ||
|
|
22c80e1265 | ||
|
|
ade98a502a | ||
|
|
da3889c8a8 | ||
|
|
69b541901e | ||
|
|
0bdddbd4cc | ||
|
|
2041727cfa | ||
|
|
01a96b9f64 | ||
|
|
85944c5aa0 | ||
|
|
0dfdc9aaef | ||
|
|
30dae42932 | ||
|
|
a478ec1911 | ||
|
|
f2f54df446 | ||
|
|
812c74d5fa | ||
|
|
e481690bf4 | ||
|
|
0d3a4054cf | ||
|
|
192188b6af | ||
|
|
88ab851ff7 | ||
|
|
b1c5b8614b | ||
|
|
f312fd9734 | ||
|
|
2b73891134 | ||
|
|
9792825822 | ||
|
|
4ba65ca4a3 | ||
|
|
5d645606c0 | ||
|
|
0a54404aed | ||
|
|
7feafab6b7 | ||
|
|
17216931e8 | ||
|
|
faa5767549 | ||
|
|
b982e79459 | ||
|
|
6c11c1291d | ||
|
|
2d76573528 | ||
|
|
321e871f03 | ||
|
|
aa0ebd03d5 | ||
|
|
cfa6bbf2c7 | ||
|
|
963cf0b3d5 | ||
|
|
94300d9c17 | ||
|
|
8c73593429 | ||
|
|
3bb61ab5a2 | ||
|
|
6ee04bc32e | ||
|
|
7748904566 | ||
|
|
e82d9c2488 | ||
|
|
47cd0005cf | ||
|
|
ee1b640e0f | ||
|
|
bd32cb9c0d | ||
|
|
4e62c235cd | ||
|
|
bce9de8f39 | ||
|
|
34a9ef92d9 | ||
|
|
c3f05d4d96 | ||
|
|
ca94996d6b | ||
|
|
3c3b7bdc81 | ||
|
|
057a1b8ead | ||
|
|
fd5d1fb0fc | ||
|
|
14b3bb5ee0 | ||
|
|
6f3b30e599 | ||
|
|
a57ccaddc8 | ||
|
|
0ba02138ae | ||
|
|
7e6aaea7ce | ||
|
|
8c6f71c8d0 | ||
|
|
3010b68d8c | ||
|
|
e315461c27 | ||
|
|
de360d99d0 | ||
|
|
f90fb44203 | ||
|
|
ea0b213667 | ||
|
|
a6f07b1e9d | ||
|
|
e3f2ef42c2 | ||
|
|
f64880111f | ||
|
|
c9dd3aadb1 | ||
|
|
e61e41ff3d | ||
|
|
c5d21b3529 | ||
|
|
1ae32ea358 | ||
|
|
e53c9d99fa | ||
|
|
e2b04e5310 | ||
|
|
1cd22e0e01 | ||
|
|
5553e9d7e9 | ||
|
|
86f2aaa84f | ||
|
|
c171549c00 | ||
|
|
5df89d0066 | ||
|
|
b5e82fa7eb | ||
|
|
db2e15ed8b | ||
|
|
ae05b94c6a | ||
|
|
c6288a11e0 | ||
|
|
433e8fc4cf | ||
|
|
b4fa554eb7 | ||
|
|
31c1a6fc01 | ||
|
|
37f2d9db63 | ||
|
|
ed634386ff | ||
|
|
1d3e78a77d | ||
|
|
5d1d177c72 | ||
|
|
e5d21ffb90 | ||
|
|
7c5d85f758 | ||
|
|
d46e4acdf1 | ||
|
|
fc9f9019ad | ||
|
|
2a9c3dad21 | ||
|
|
148f9284b5 | ||
|
|
de2164b1bb | ||
|
|
a8d3420c98 | ||
|
|
fa49115851 | ||
|
|
84441f6c7b | ||
|
|
803ba8bb2b | ||
|
|
6f075fbdb3 | ||
|
|
6cfa883fe6 | ||
|
|
b862bc2d99 | ||
|
|
b339b4d1e4 | ||
|
|
fa18cf4d56 | ||
|
|
c9adeba462 | ||
|
|
3d7ec8e6f6 | ||
|
|
4b72c0827b | ||
|
|
0fa303a8ac | ||
|
|
bb7c853dc6 | ||
|
|
78172fd1a7 | ||
|
|
d7794a2651 | ||
|
|
9db6ece986 | ||
|
|
86e70556ba | ||
|
|
c88fc05922 | ||
|
|
bfccac5ed5 | ||
|
|
021c43000e | ||
|
|
e29c555d0c | ||
|
|
500e7d23bc | ||
|
|
4f4478b8c6 | ||
|
|
d163490c6f | ||
|
|
579c7f764e | ||
|
|
01b1eb831e | ||
|
|
7638261726 | ||
|
|
6cc5f06a78 | ||
|
|
b55a3297dc | ||
|
|
64fbd6e8fc | ||
|
|
bdbaca53ee | ||
|
|
3458d07b9e | ||
|
|
84cb87cb12 | ||
|
|
d1e8d4635c | ||
|
|
f4af709de6 | ||
|
|
3604dd8ef6 | ||
|
|
f442f99c5a | ||
|
|
e8a409ca7e | ||
|
|
bc0b2716b0 | ||
|
|
2b1dca45bb | ||
|
|
0ba69d9cac | ||
|
|
45dbf80526 | ||
|
|
16f0bee4c4 | ||
|
|
8f5893ee0a | ||
|
|
52665ffd82 | ||
|
|
a5e155b626 | ||
|
|
e3bb6bc881 | ||
|
|
b7b4e66d33 | ||
|
|
9a86a03442 | ||
|
|
1c5843eaa7 | ||
|
|
d2de01ec01 | ||
|
|
15b7a4e869 | ||
|
|
df154ac525 | ||
|
|
4306144830 | ||
|
|
9b5d56551f | ||
|
|
23abaa032e | ||
|
|
45caf62c38 | ||
|
|
44728ebef5 | ||
|
|
fa59c11e5b | ||
|
|
55174aa398 | ||
|
|
6c2339dcbe | ||
|
|
982204074b | ||
|
|
c488b164fb | ||
|
|
18e63db05d | ||
|
|
524dcfa993 | ||
|
|
67b342c9b9 | ||
|
|
57f98a8838 | ||
|
|
2ce4deb768 | ||
|
|
ae0f0456e9 | ||
|
|
17feb570f8 | ||
|
|
5d11e8cbb1 | ||
|
|
5e2711fb71 | ||
|
|
32fdaf28ca | ||
|
|
8efd6edbad | ||
|
|
b296473330 | ||
|
|
2e01deef58 | ||
|
|
1fa1a65183 | ||
|
|
2145172544 | ||
|
|
2eb5eb7147 | ||
|
|
91219407a3 | ||
|
|
2ddf4ee531 | ||
|
|
a7ee0c6e39 | ||
|
|
4463a593c5 | ||
|
|
4473670bf3 | ||
|
|
fc85049fe7 | ||
|
|
8e93f58a21 | ||
|
|
987e3ec9d0 | ||
|
|
b923009446 | ||
|
|
756b857e19 | ||
|
|
f3c716953f | ||
|
|
732a485c4a | ||
|
|
ec6b21fa1c | ||
|
|
db9777e087 | ||
|
|
d337a336d7 | ||
|
|
e05f751cfc | ||
|
|
705e6b9548 | ||
|
|
526cb9777c | ||
|
|
ce5279304b | ||
|
|
6975fdc580 | ||
|
|
4bd8bc2fed | ||
|
|
5c210b79bb | ||
|
|
470e20dc47 | ||
|
|
3dac81ca67 | ||
|
|
d7a45befba | ||
|
|
7f75daebf1 | ||
|
|
bb351a5483 | ||
|
|
d5723095e5 | ||
|
|
124bc16bd7 | ||
|
|
32b4648732 | ||
|
|
aafe4d5f85 | ||
|
|
3f56b64034 |
1
.gitupstream
Normal file
1
.gitupstream
Normal file
@@ -0,0 +1 @@
|
||||
https://android.googlesource.com/device/google/gs201
|
||||
@@ -34,3 +34,11 @@ license {
|
||||
"NOTICE",
|
||||
],
|
||||
}
|
||||
|
||||
prebuilt_etc {
|
||||
name: "preinstalled-packages-product-gs201-device-debug.xml",
|
||||
src: "preinstalled-packages-product-gs201-device-debug.xml",
|
||||
product_specific: true,
|
||||
sub_dir: "sysconfig",
|
||||
filename_from_src: true,
|
||||
}
|
||||
|
||||
@@ -1,17 +1,36 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2019 The Android Open-Source Project
|
||||
# SPDX-FileCopyrightText: The LineageOS Project
|
||||
# SPDX-FileCopyrightText: The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2019 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 build/make/target/board/BoardConfigMainlineCommon.mk
|
||||
include build/make/target/board/BoardConfigPixelCommon.mk
|
||||
|
||||
# Should be uncommented after fixing vndk-sp violation is fixed.
|
||||
PRODUCT_FULL_TREBLE_OVERRIDE := true
|
||||
|
||||
# HACK : To fix up after bring up multimedia devices.
|
||||
TARGET_SOC := gs201
|
||||
|
||||
TARGET_SOC_NAME := google
|
||||
|
||||
USES_DEVICE_GOOGLE_GS201 := true
|
||||
|
||||
TARGET_ARCH := arm64
|
||||
TARGET_ARCH_VARIANT := armv8-2a
|
||||
TARGET_CPU_ABI := arm64-v8a
|
||||
TARGET_CPU_VARIANT := cortex-a55
|
||||
TARGET_CPU_VARIANT_RUNTIME := cortex-a55
|
||||
|
||||
# Enable 64-bit for non-zygote.
|
||||
ZYGOTE_FORCE_64 := true
|
||||
@@ -30,16 +49,21 @@ TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
|
||||
BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\"
|
||||
BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on
|
||||
BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y
|
||||
BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy
|
||||
BOARD_KERNEL_CMDLINE += cgroup_disable=memory
|
||||
BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all
|
||||
BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on
|
||||
BOARD_KERNEL_CMDLINE += swiotlb=1024
|
||||
BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
|
||||
BOARD_KERNEL_CMDLINE += disable_dma32=on
|
||||
BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
|
||||
|
||||
TARGET_NO_BOOTLOADER := true
|
||||
TARGET_NO_RADIOIMAGE := true
|
||||
BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img)
|
||||
ifneq (,$(BOARD_PREBUILT_BOOTIMAGE))
|
||||
TARGET_NO_KERNEL := true
|
||||
else
|
||||
TARGET_NO_KERNEL := false
|
||||
endif
|
||||
BOARD_USES_GENERIC_KERNEL_IMAGE := true
|
||||
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
|
||||
BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
|
||||
@@ -53,20 +77,17 @@ TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.gs201
|
||||
TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
|
||||
TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
|
||||
TARGET_RECOVERY_UI_LIB := \
|
||||
//hardware/google/pixel/recovery:librecovery_ui_pixel \
|
||||
librecovery_ui_pixel \
|
||||
libfstab
|
||||
|
||||
AB_OTA_UPDATER := true
|
||||
|
||||
AB_OTA_PARTITIONS += \
|
||||
system \
|
||||
system_dlkm \
|
||||
system_ext \
|
||||
product \
|
||||
vbmeta_system \
|
||||
vbmeta_vendor \
|
||||
vendor \
|
||||
vendor_dlkm
|
||||
system \
|
||||
system_dlkm \
|
||||
system_ext \
|
||||
product \
|
||||
vbmeta_system
|
||||
|
||||
ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false)
|
||||
AB_OTA_PARTITIONS += boot
|
||||
@@ -88,6 +109,41 @@ ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false)
|
||||
AB_OTA_PARTITIONS += pvmfw
|
||||
endif
|
||||
|
||||
# EMULATOR common modules
|
||||
BOARD_EMULATOR_COMMON_MODULES := liblight
|
||||
|
||||
OVERRIDE_RS_DRIVER := libRSDriverArm.so
|
||||
BOARD_EGL_CFG := device/google/gs201/conf/egl.cfg
|
||||
#BOARD_USES_HGL := true
|
||||
USE_OPENGL_RENDERER := true
|
||||
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
|
||||
BOARD_USES_EXYNOS5_COMMON_GRALLOC := true
|
||||
BOARD_USES_ALIGN_RESTRICTION := false
|
||||
BOARD_USES_GRALLOC_ION_SYNC := true
|
||||
|
||||
# This should be the same value as USE_SWIFTSHADER in device.mk
|
||||
BOARD_USES_SWIFTSHADER := false
|
||||
|
||||
# Gralloc4
|
||||
ifeq ($(BOARD_USES_SWIFTSHADER),true)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false)
|
||||
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false)
|
||||
else
|
||||
$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true)
|
||||
$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true)
|
||||
$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true)
|
||||
$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true)
|
||||
endif # ifeq ($(BOARD_USES_SWIFTSHADER),true)
|
||||
|
||||
$(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC))
|
||||
|
||||
# Graphics
|
||||
#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true
|
||||
|
||||
# Enable chain partition for system.
|
||||
BOARD_AVB_VBMETA_SYSTEM := system system_dlkm system_ext product
|
||||
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
@@ -105,27 +161,18 @@ BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
|
||||
|
||||
# Enable chain partition for vendor.
|
||||
BOARD_AVB_VBMETA_VENDOR := vendor
|
||||
BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
|
||||
|
||||
# Enable chained vbmeta for init_boot images
|
||||
BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 4
|
||||
|
||||
# Verified Boot
|
||||
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
|
||||
|
||||
TARGET_USERIMAGES_USE_EXT4 := true
|
||||
TARGET_USERIMAGES_USE_F2FS := true
|
||||
BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000
|
||||
PRODUCT_FS_COMPRESSION := 1
|
||||
BOARD_FLASH_BLOCK_SIZE := 4096
|
||||
BOARD_MOUNT_SDCARD_RW := true
|
||||
|
||||
# product.img
|
||||
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
@@ -135,16 +182,24 @@ TARGET_COPY_OUT_PRODUCT := product
|
||||
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
|
||||
|
||||
# vendor.img
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
||||
# vendor_dlkm.img
|
||||
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
|
||||
|
||||
# persist.img
|
||||
BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
|
||||
########################
|
||||
# Video Codec
|
||||
########################
|
||||
# 1. Exynos C2
|
||||
BOARD_USE_CODEC2_HIDL_1_2 := true
|
||||
BOARD_USE_CSC_FILTER := false
|
||||
BOARD_USE_DEC_SW_CSC := true
|
||||
BOARD_USE_ENC_SW_CSC := true
|
||||
BOARD_SUPPORT_MFC_ENC_RGB := true
|
||||
BOARD_USE_BLOB_ALLOCATOR := false
|
||||
BOARD_SUPPORT_MFC_ENC_BT2020 := true
|
||||
BOARD_SUPPORT_FLEXIBLE_P010 := true
|
||||
|
||||
########################
|
||||
|
||||
BOARD_SUPER_PARTITION_SIZE := 8531214336
|
||||
BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
|
||||
# Set size to BOARD_SUPER_PARTITION_SIZE - overhead (4MiB) (b/182237294)
|
||||
@@ -160,31 +215,149 @@ BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
|
||||
# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB
|
||||
BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
|
||||
|
||||
# Reserve space for gapps install
|
||||
-include vendor/lineage/config/BoardConfigReservedSize.mk
|
||||
|
||||
# Build a separate system_dlkm partition
|
||||
BOARD_USES_SYSTEM_DLKMIMAGE := true
|
||||
BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
|
||||
|
||||
# Testing related defines
|
||||
BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/p10c10-setup.sh
|
||||
|
||||
#
|
||||
# AUDIO & VOICE
|
||||
#
|
||||
BOARD_USES_GENERIC_AUDIO := true
|
||||
|
||||
$(call soong_config_set,aoc_audio_func,ext_hidl,true)
|
||||
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
|
||||
$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
|
||||
$(call soong_config_set,aoc_audio_func,record_tuning_keys,true)
|
||||
endif
|
||||
|
||||
ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
|
||||
$(call soong_config_set,aoc_audio_func,aosp_build,true)
|
||||
endif
|
||||
|
||||
# Primary AudioHAL Configuration
|
||||
#BOARD_USE_COMMON_AUDIOHAL := true
|
||||
#BOARD_USE_CALLIOPE_AUDIOHAL := false
|
||||
#BOARD_USE_AUDIOHAL := true
|
||||
|
||||
# Compress Offload Configuration
|
||||
#BOARD_USE_OFFLOAD_AUDIO := true
|
||||
#BOARD_USE_OFFLOAD_EFFECT := false
|
||||
|
||||
# SoundTriggerHAL Configuration
|
||||
#BOARD_USE_SOUNDTRIGGER_HAL := false
|
||||
|
||||
# Vibrator HAL actuator model and adaptive haptics configuration
|
||||
$(call soong_config_set,haptics,actuator_model,$(ACTUATOR_MODEL))
|
||||
$(call soong_config_set,haptics,adaptive_haptics_feature,$(ADAPTIVE_HAPTICS_FEATURE))
|
||||
|
||||
# HWComposer
|
||||
BOARD_HWC_VERSION := hwc3
|
||||
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false
|
||||
BOARD_HDMI_INCAPABLE := true
|
||||
TARGET_USES_HWC2 := true
|
||||
HWC_SUPPORT_RENDER_INTENT := true
|
||||
HWC_SUPPORT_COLOR_TRANSFORM := true
|
||||
#BOARD_USES_DISPLAYPORT := true
|
||||
# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1
|
||||
BOARD_USES_EXYNOS_AFBC_FEATURE := true
|
||||
#BOARD_USES_HDRUI_GLES_CONVERSION := true
|
||||
|
||||
BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_gs201
|
||||
BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
|
||||
|
||||
# HWCServices
|
||||
BOARD_USES_HWC_SERVICES := true
|
||||
|
||||
# WiFiDisplay
|
||||
# BOARD_USES_VIRTUAL_DISPLAY := true
|
||||
# BOARD_USES_VDS_EXYNOS_HWC := true
|
||||
# BOARD_USES_WIFI_DISPLAY:= true
|
||||
# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true
|
||||
# BOARD_USES_VDS_YUV420SPM := true
|
||||
# BOARD_USES_VDS_OTHERFORMAT := true
|
||||
# BOARD_USES_VDS_DEBUG_FLAG := true
|
||||
# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true
|
||||
# BOARD_USES_SECURE_ENCODER_ONLY := true
|
||||
# BOARD_USES_TSMUX := true
|
||||
|
||||
# SCALER
|
||||
BOARD_USES_DEFAULT_CSC_HW_SCALER := true
|
||||
BOARD_DEFAULT_CSC_HW_SCALER := 4
|
||||
BOARD_USES_SCALER_M2M1SHOT := true
|
||||
|
||||
# Device Tree
|
||||
BOARD_USES_DT := true
|
||||
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
|
||||
BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR)
|
||||
BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img
|
||||
|
||||
# PLATFORM LOG
|
||||
TARGET_USES_LOGD := true
|
||||
|
||||
# LIBHWJPEG
|
||||
#TARGET_USES_UNIVERSAL_LIBHWJPEG := true
|
||||
#LIBHWJPEG_HWSCALER_ID := 0
|
||||
|
||||
#Keymaster
|
||||
#BOARD_USES_KEYMASTER_VER1 := true
|
||||
|
||||
#FMP
|
||||
#BOARD_USES_FMP_DM_CRYPT := true
|
||||
#BOARD_USES_FMP_FSCRYPTO := true
|
||||
BOARD_USES_METADATA_PARTITION := true
|
||||
|
||||
# SKIA
|
||||
#BOARD_USES_SKIA_MULTITHREADING := true
|
||||
#BOARD_USES_FIMGAPI_V5X := true
|
||||
|
||||
# SECCOMP Policy
|
||||
BOARD_SECCOMP_POLICY = device/google/gs201/seccomp_policy
|
||||
|
||||
#CURL
|
||||
BOARD_USES_CURL := true
|
||||
|
||||
# Sensor HAL
|
||||
BOARD_USES_EXYNOS_SENSORS_DUMMY := true
|
||||
|
||||
# VISION
|
||||
# Exynos vision framework (EVF)
|
||||
#TARGET_USES_EVF := true
|
||||
# HW acceleration
|
||||
#TARGET_USES_VPU_KERNEL := true
|
||||
#TARGET_USES_SCORE_KERNEL := true
|
||||
#TARGET_USES_CL_KERNEL := false
|
||||
|
||||
# exynos RIL
|
||||
TARGET_EXYNOS_RIL_SOURCE := true
|
||||
ENABLE_VENDOR_RIL_SERVICE := true
|
||||
|
||||
# GNSS
|
||||
# BOARD_USES_EXYNOS_GNSS_DUMMY := true
|
||||
|
||||
# Bluetooth defines
|
||||
# TODO(b/123695868): Remove the need for this
|
||||
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \
|
||||
build/make/target/board/mainline_arm64/bluetooth
|
||||
|
||||
#VNDK
|
||||
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
|
||||
BOARD_VNDK_VERSION := current
|
||||
|
||||
# H/W align restriction of MM IPs
|
||||
BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64
|
||||
|
||||
# Boot.img
|
||||
BOARD_RAMDISK_USE_LZ4 := true
|
||||
#BOARD_KERNEL_BASE := 0x80000000
|
||||
#BOARD_KERNEL_PAGESIZE := 2048
|
||||
#BOARD_KERNEL_OFFSET := 0x80000
|
||||
#BOARD_RAMDISK_OFFSET := 0x4000000
|
||||
BOARD_BOOT_HEADER_VERSION := 4
|
||||
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
|
||||
|
||||
@@ -213,8 +386,9 @@ endif
|
||||
BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
|
||||
|
||||
# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load
|
||||
BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140.ko
|
||||
BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140/fips140.ko
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k)))
|
||||
KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA))
|
||||
|
||||
# Kernel modules that are listed in vendor_kernel_boot.modules.load
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
|
||||
@@ -230,39 +404,15 @@ BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/ven
|
||||
ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
|
||||
$(error vendor_dlkm.modules.load not found or empty)
|
||||
endif
|
||||
|
||||
# staging kernels might have modules split between system/vendor_dlkm. If
|
||||
# the target defined modules on the system_dlkm image, honor the split.
|
||||
# Otherwise, assume all modules are stored on the vendor_dlkm image.
|
||||
ifneq ($(BOARD_SYSTEM_KERNEL_MODULES),)
|
||||
BOARD_VENDOR_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_MODULES_LOAD)))
|
||||
else
|
||||
BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES)
|
||||
endif
|
||||
|
||||
BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load 2>/dev/null))
|
||||
BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load))
|
||||
BOARD_SYSTEM_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_SYSTEM_KERNEL_MODULES_LOAD)))
|
||||
|
||||
# SEPolicy
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += \
|
||||
hardware/google/pixel-sepolicy/googlebattery \
|
||||
hardware/google/pixel-sepolicy/input \
|
||||
hardware/google/pixel-sepolicy/powerstats \
|
||||
device/google/gs201/sepolicy/certificates \
|
||||
device/google/gs201/sepolicy/recovery \
|
||||
device/google/gs201/sepolicy/vendor
|
||||
# Using BUILD_COPY_HEADERS
|
||||
BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
|
||||
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/product/private
|
||||
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/product/public
|
||||
|
||||
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/system_ext/private
|
||||
|
||||
SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += \
|
||||
device/google/gs201/sepolicy/system_ext/public
|
||||
include device/google/gs201/sepolicy/gs201-sepolicy.mk
|
||||
|
||||
# Battery options
|
||||
BOARD_KERNEL_CMDLINE += at24.write_timeout=100
|
||||
@@ -273,4 +423,8 @@ BOARD_KERNEL_CMDLINE += log_buf_len=1024K
|
||||
# Protected VM firmware
|
||||
BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000
|
||||
|
||||
# pick up library for cleaning digital car keys on factory reset
|
||||
-include vendor/google_devices/gs-common/proprietary/BoardConfigVendor.mk
|
||||
|
||||
include device/google/gs201/BoardConfigLineage.mk
|
||||
include device/google/gs201/BoardConfigEvolution.mk
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
#
|
||||
# Copyright (C) 2026 The Evolution X Project
|
||||
# Copyright (C) 2024 The Evolution X Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
BUILD_BROKEN_DUP_RULES := true
|
||||
|
||||
DISABLE_ARTIFACT_PATH_REQUIREMENTS := true
|
||||
|
||||
SPOOF_FIRST_API_LEVEL_32 := true
|
||||
|
||||
|
||||
41
BoardConfigLineage.mk
Normal file
41
BoardConfigLineage.mk
Normal file
@@ -0,0 +1,41 @@
|
||||
#
|
||||
# Copyright (C) 2022 The LineageOS Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Lineage Health
|
||||
TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_DEADLINE := true
|
||||
TARGET_HEALTH_CHARGING_CONTROL_SUPPORTS_TOGGLE := false
|
||||
|
||||
# Manifests
|
||||
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += vendor/lineage/config/device_framework_matrix.xml
|
||||
DEVICE_MANIFEST_FILE += device/google/gs201/android.hardware.security.rkp-service.citadel.xml
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
DEVICE_MANIFEST_FILE += device/google/gs201/manifest_radio_ds.xml
|
||||
endif
|
||||
|
||||
# Partitions
|
||||
AB_OTA_PARTITIONS += \
|
||||
vendor \
|
||||
vendor_dlkm
|
||||
|
||||
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
|
||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
|
||||
|
||||
# Enable chain partition for vendor.
|
||||
BOARD_AVB_VBMETA_VENDOR := vendor
|
||||
BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
|
||||
|
||||
AB_OTA_PARTITIONS += \
|
||||
vbmeta_vendor
|
||||
|
||||
# Reserve space for gapps install
|
||||
-include vendor/lineage/config/BoardConfigReservedSize.mk
|
||||
|
||||
# Verified Boot
|
||||
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
|
||||
85
CleanSpec.mk
Normal file
85
CleanSpec.mk
Normal file
@@ -0,0 +1,85 @@
|
||||
# Copyright (C) 2012 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.
|
||||
#
|
||||
|
||||
# If you don't need to do a full clean build but would like to touch
|
||||
# a file or delete some intermediate files, add a clean step to the end
|
||||
# of the list. These steps will only be run once, if they haven't been
|
||||
# run before.
|
||||
#
|
||||
# E.g.:
|
||||
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
|
||||
# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
|
||||
#
|
||||
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
|
||||
# files that are missing or have been moved.
|
||||
#
|
||||
# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
|
||||
# Use $(OUT_DIR) to refer to the "out" directory.
|
||||
#
|
||||
# If you need to re-do something that's already mentioned, just copy
|
||||
# the command and add it to the bottom of the list. E.g., if a change
|
||||
# that you made last week required touching a file and a change you
|
||||
# made today requires touching the same file, just copy the old
|
||||
# touch step and add it to the end of the list.
|
||||
#
|
||||
# ************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
||||
# ************************************************
|
||||
|
||||
# For example:
|
||||
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
|
||||
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
|
||||
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
|
||||
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
|
||||
$(call add-clean-step, find $(PRODUCT_OUT) -name "*.apk" | xargs rm)
|
||||
|
||||
# ************************************************
|
||||
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
|
||||
# ************************************************
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libui_intermediates)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/root/default.prop)
|
||||
$(call add-clean-step, rm -f $(TARGET_OUT)/build.prop)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/mixer_paths_lb.xml)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/permissions/android.hardware.camera.xml)
|
||||
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/root/*)
|
||||
# Power HAL 1.0
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/init/android.hardware.power@1.0-service.rc)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power@1.0-service)
|
||||
# Power HAL HIDL
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power@1.3-service.pixel-libperfmgr.rc)
|
||||
|
||||
# Health storage HAL
|
||||
$(call add-clean-step, find $(PRODUCT_OUT) -type f -name "*android.hardware.health.storage@1.0*" -print0 | xargs -0 rm -f)
|
||||
|
||||
# USB HAL to AIDL
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.usb-service)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.usb.gadget-service)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.usb-service.rc)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.usb.gadget-service.rc)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.usb-servic.xml)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.usb.gadget-servic.xml)
|
||||
|
||||
# Power Stats HAL 1.0 to AIDL
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power.stats@1.0-service.gs201)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power.stats@1.0-service.gs201.rc)
|
||||
$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.power.stats@1.0-service.gs201.xml)
|
||||
|
||||
# Health HAL to AIDL
|
||||
$(call add-clean-step, find $(PRODUCT_OUT)/system -type f -name "*charger*" -print0 | xargs -0 rm -f)
|
||||
$(call add-clean-step, find $(PRODUCT_OUT)/vendor -type f -name "*health@*" -print0 | xargs -0 rm -f)
|
||||
$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*charger*" -print0 | xargs -0 rm -f)
|
||||
$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*health@*" -print0 | xargs -0 rm -f)
|
||||
2
OWNERS
Normal file
2
OWNERS
Normal file
@@ -0,0 +1,2 @@
|
||||
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
|
||||
per-file *.mk=file:device/google/gs-common:main:/OWNERS
|
||||
2
PREUPLOAD.cfg
Normal file
2
PREUPLOAD.cfg
Normal file
@@ -0,0 +1,2 @@
|
||||
[Builtin Hooks]
|
||||
jsonlint = true
|
||||
@@ -1,7 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
<!-- Copyright (C) 2022 The LineageOS 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.
|
||||
-->
|
||||
<config>
|
||||
<!-- Specify the explicit set of other applications that AI services are allowed to
|
||||
|
||||
7
android.hardware.security.rkp-service.citadel.xml
Normal file
7
android.hardware.security.rkp-service.citadel.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.security.keymint</name>
|
||||
<version>3</version>
|
||||
<fqname>IRemotelyProvisionedComponent/strongbox</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -1,6 +1,17 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright 2020 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.
|
||||
#
|
||||
|
||||
#
|
||||
@@ -36,3 +47,9 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_vendor.mk)
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_vendor.mk)
|
||||
endif
|
||||
|
||||
#$(call inherit-product, device/google/gs201/device.mk)
|
||||
#$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
|
||||
|
||||
# TODO: fix
|
||||
# PRODUCT_RESTRICT_VENDOR_FILES := all
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 The Android Open Source Project
|
||||
SPDX-FileCopyrightText: The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
Autogenerated skeleton compatibility matrix.
|
||||
Use with caution. Modify it to suit your needs.
|
||||
All HALs are set to optional.
|
||||
Many entries other than HALs are zero-filled and
|
||||
require human attention.
|
||||
-->
|
||||
<compatibility-matrix version="9.0" type="device">
|
||||
<hal format="hidl">
|
||||
<compatibility-matrix version="1.0" type="device">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.frameworks.displayservice</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -13,7 +14,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.frameworks.schedulerservice</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -21,7 +22,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.frameworks.sensorservice</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -29,7 +30,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hardware.graphics.composer</name>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
@@ -37,7 +38,7 @@
|
||||
<instance>vr</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hidl.allocator</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -45,7 +46,7 @@
|
||||
<instance>ashmem</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hidl.manager</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -53,7 +54,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hidl.memory</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -61,7 +62,7 @@
|
||||
<instance>ashmem</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.hidl.token</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -69,7 +70,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.system.wifi.keystore</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -77,11 +78,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.pixel.camera.services.binder</name>
|
||||
<interface>
|
||||
<name>IServiceBinder</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<vndk>
|
||||
<version>0.0.0</version>
|
||||
</vndk>
|
||||
</compatibility-matrix>
|
||||
@@ -1,10 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2020 The Android Open Source Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
<!-- Copyright 2020 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.
|
||||
-->
|
||||
<config>
|
||||
<component-override package="com.android.bluetooth" >
|
||||
<component class=".sap.SapService" enabled="true" />
|
||||
</component-override>
|
||||
<component-override package="com.google.android.apps.tips" >
|
||||
<component class=".TipsMain" enabled="true" />
|
||||
</component-override>
|
||||
</config>
|
||||
|
||||
1
conf/egl.cfg
Normal file
1
conf/egl.cfg
Normal file
@@ -0,0 +1 @@
|
||||
0 1 mali
|
||||
7
conf/fstab.modem
Normal file
7
conf/fstab.modem
Normal file
@@ -0,0 +1,7 @@
|
||||
# Android fstab file.
|
||||
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||
# Create the specific fstab file for modem partition as flexibility
|
||||
/dev/block/platform/14700000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/efs_backup /mnt/vendor/efs_backup f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata f2fs noatime,sync wait,check,formattable
|
||||
/dev/block/platform/14700000.ufs/by-name/modem /mnt/vendor/modem_img ext4 noatime,ro,context=u:object_r:modem_img_file:s0 wait,slotselect
|
||||
5
conf/fstab.persist
Normal file
5
conf/fstab.persist
Normal file
@@ -0,0 +1,5 @@
|
||||
# Android fstab file.
|
||||
# <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||
# Keep persist in an fstab file, since we need to run fsck on it after abnormal shutdown.
|
||||
/dev/block/platform/14700000.ufs/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,metadata_csum
|
||||
/dev/block/platform/14700000.ufs/by-name/persist /mnt/vendor/persist f2fs noatime,nosuid,nodev,sync wait,check,formattable
|
||||
15
conf/init.check_ap_pd_auth.sh
Normal file
15
conf/init.check_ap_pd_auth.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/vendor/bin/sh
|
||||
|
||||
# This script sets up `ro.vendor.sjtag_ap_is_unlocked` for the non-fused
|
||||
# device. For a fused device, this property should be set by
|
||||
# betterbug->ss-restart-detector when PD is acquired.
|
||||
|
||||
SJTAG_STATUS=0x$(cat /sys/devices/platform/sjtag_ap/interface/status)
|
||||
SOFT_LOCK_BIT=4
|
||||
AUTH_PASS_BIT=8
|
||||
|
||||
# Unlocked or locked but auth passed.
|
||||
if test "$((SJTAG_STATUS & (1 << SOFT_LOCK_BIT)))" = 0 -o \
|
||||
"$((SJTAG_STATUS & (1 << AUTH_PASS_BIT)))" != 0 ; then
|
||||
setprop ro.vendor.sjtag_ap_is_unlocked true
|
||||
fi
|
||||
51
conf/init.debug.rc
Normal file
51
conf/init.debug.rc
Normal file
@@ -0,0 +1,51 @@
|
||||
# SJTAG
|
||||
on init
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/access_lvl
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/auth
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/begin
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/dbg_domain
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/dbg_itvl
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/end
|
||||
chown system system /sys/devices/platform/sjtag_ap/interface/pubkey
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/access_lvl
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/auth
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/begin
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/dbg_domain
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/dbg_itvl
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/end
|
||||
chown system system /sys/devices/platform/sjtag_gsa/interface/pubkey
|
||||
|
||||
on property:vendor.debug.ramdump.force_crash=true
|
||||
write /sys/kernel/pixel_debug/trigger "null"
|
||||
|
||||
on property:power.battery_input.suspended=true
|
||||
write /sys/kernel/debug/google_charger/input_suspend 1
|
||||
|
||||
on property:power.battery_input.suspended=false
|
||||
write /sys/kernel/debug/google_charger/input_suspend 0
|
||||
|
||||
# Bluetooth
|
||||
on post-fs-data
|
||||
chown bluetooth system /dev/logbuffer_btlpm
|
||||
chown bluetooth system /dev/logbuffer_btpower
|
||||
chown bluetooth system /dev/logbuffer_tty18
|
||||
|
||||
# pKVM performance is different on A0 and B0 chips.
|
||||
# Add extra tag to metrics collected on A0 to separate the results.
|
||||
on property:ro.revision=PROTO1.0
|
||||
setprop debug.hypervisor.metrics_tag "hwrev_a0"
|
||||
on property:ro.revision=PROTO1.1
|
||||
setprop debug.hypervisor.metrics_tag "hwrev_a0"
|
||||
on property:ro.revision=EVT1.0
|
||||
setprop debug.hypervisor.metrics_tag "hwrev_a0"
|
||||
|
||||
service vendor.check_ap_pd_auth_sh /vendor/bin/init.check_ap_pd_auth.sh
|
||||
class main
|
||||
user root
|
||||
group root system
|
||||
oneshot
|
||||
|
||||
# Enable etm/etm2dram when ramdump is enabled, and ap-sjtag is unlocked.
|
||||
on property:ro.boot.ramdump=enabled && property:ro.vendor.sjtag_ap_is_unlocked=true
|
||||
write /sys/devices/platform/exynos-etm/etm_on 1
|
||||
write /sys/devices/platform/etm2dram/arm 1
|
||||
20
conf/init.exynos.nanohub.rc
Normal file
20
conf/init.exynos.nanohub.rc
Normal file
@@ -0,0 +1,20 @@
|
||||
on post-fs
|
||||
## ensure correct calibration file permissions
|
||||
chown root system /mnt/vendor/persist/sensorcal.json
|
||||
chmod 0640 /mnt/vendor/persist/sensorcal.json
|
||||
start vendor.flash-nanohub-fw
|
||||
|
||||
on post-fs-data
|
||||
mkdir /data/vendor/sensor
|
||||
chown root system /data/vendor/sensor
|
||||
chmod 0770 /data/vendor/sensor
|
||||
|
||||
service vendor.flash-nanohub-fw /vendor/bin/nanoapp_cmd download
|
||||
oneshot
|
||||
disabled
|
||||
user root
|
||||
group system
|
||||
|
||||
on post-fs-data
|
||||
mkdir /data/system/nanohub_lock/
|
||||
restorecon /data/system/nanohub_lock
|
||||
19
conf/init.factory.rc
Normal file
19
conf/init.factory.rc
Normal file
@@ -0,0 +1,19 @@
|
||||
# Factory specific init.rc
|
||||
|
||||
on early-init
|
||||
mount debugfs /sys/kernel/debug /sys/kernel/debug
|
||||
|
||||
on init
|
||||
export PATH /product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin:/vendor/bin/factory
|
||||
|
||||
on boot
|
||||
# FTM log folder
|
||||
mkdir /data/ftmlog 0775 system system
|
||||
|
||||
# Audio test folder
|
||||
mkdir /data/AudioTest 0775 system system
|
||||
|
||||
on property:sys.boot_completed=1
|
||||
# Bump nnapi min clamp & add adbd to it for factory (b/222226268)
|
||||
write /proc/vendor_sched/nnapi_uclamp_min 512
|
||||
exec - root root -- /vendor/bin/factory/factory_post_boot
|
||||
1043
conf/init.gs201.rc
Normal file
1043
conf/init.gs201.rc
Normal file
File diff suppressed because it is too large
Load Diff
419
conf/init.gs201.usb.rc
Normal file
419
conf/init.gs201.usb.rc
Normal file
@@ -0,0 +1,419 @@
|
||||
on early-boot
|
||||
mkdir /config/usb_gadget/g1
|
||||
mkdir /config/usb_gadget/g1/strings/0x409
|
||||
mkdir /config/usb_gadget/g1/configs/b.1
|
||||
write /config/usb_gadget/g1/idVendor 0x18d1
|
||||
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
|
||||
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
|
||||
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
|
||||
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
|
||||
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
|
||||
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
|
||||
|
||||
# ffs function
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.mtp
|
||||
mkdir /config/usb_gadget/g1/functions/ffs.ptp
|
||||
mkdir /dev/usb-ffs 0775 shell shell
|
||||
mkdir /dev/usb-ffs/adb 0770 shell shell
|
||||
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
|
||||
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
|
||||
mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
|
||||
mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
|
||||
mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
|
||||
setprop sys.usb.mtp.device_type 3
|
||||
setprop sys.usb.mtp.batchcancel true
|
||||
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
|
||||
|
||||
# mtp function
|
||||
mkdir /config/usb_gadget/g1/functions/mtp.gs0
|
||||
|
||||
# ptp function
|
||||
mkdir /config/usb_gadget/g1/functions/ptp.gs1
|
||||
|
||||
# accessory function
|
||||
mkdir /config/usb_gadget/g1/functions/accessory.gs2
|
||||
|
||||
# audio_source function
|
||||
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
|
||||
# rndis function
|
||||
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
||||
# Modify class/subclass/protocol for rndis.gs4
|
||||
# Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/class e0
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS
|
||||
write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d
|
||||
setprop vendor.usb.rndis.config rndis.gs4
|
||||
|
||||
# midi function
|
||||
mkdir /config/usb_gadget/g1/functions/midi.gs5
|
||||
|
||||
# acm function
|
||||
mkdir /config/usb_gadget/g1/functions/acm.gs6
|
||||
|
||||
# dm function
|
||||
mkdir /config/usb_gadget/g1/functions/dm.gs7
|
||||
|
||||
# uts function
|
||||
mkdir /config/usb_gadget/g1/functions/uts.gs8
|
||||
|
||||
# ncm function
|
||||
mkdir /config/usb_gadget/g1/functions/ncm.gs9
|
||||
write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM
|
||||
write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d
|
||||
|
||||
# etr_miu function
|
||||
mkdir /config/usb_gadget/g1/functions/etr_miu.gs11
|
||||
|
||||
# acm function for uwb
|
||||
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
||||
|
||||
# uvc function
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0
|
||||
write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam"
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
|
||||
# write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 5
|
||||
# write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
|
||||
# setup control params
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||
# advertise 360p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight 360
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth 640
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize 460800
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 480p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight 480
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth 640
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize 614400
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 720p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# advertise 1080p resolution for webcam encoded as mjpeg
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333
|
||||
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666
|
||||
333333
|
||||
416666
|
||||
666666"
|
||||
# TODO: Add uncompressed streams
|
||||
# setup streaming params
|
||||
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||
# remove write permissions for 'others'
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||
chmod 664 /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||
|
||||
|
||||
# chown file/folder permission
|
||||
chown system system /config/usb_gadget/
|
||||
chown system system /config/usb_gadget/g1
|
||||
chown system system /config/usb_gadget/g1/UDC
|
||||
chown system system /config/usb_gadget/g1/bDeviceClass
|
||||
chown system system /config/usb_gadget/g1/bDeviceProtocol
|
||||
chown system system /config/usb_gadget/g1/bDeviceSubClass
|
||||
chown system system /config/usb_gadget/g1/bMaxPacketSize0
|
||||
chown system system /config/usb_gadget/g1/bcdDevice
|
||||
chown system system /config/usb_gadget/g1/bcdUSB
|
||||
chown system system /config/usb_gadget/g1/configs
|
||||
chown system system /config/usb_gadget/g1/configs/b.1
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
|
||||
chown system system /config/usb_gadget/g1/configs/b.1/strings
|
||||
chown system system /config/usb_gadget/g1/functions
|
||||
chown system system /config/usb_gadget/g1/functions/accessory.gs2
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6
|
||||
chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0
|
||||
chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num
|
||||
chown system system /config/usb_gadget/g1/functions/audio_source.gs3
|
||||
chown system system /config/usb_gadget/g1/functions/dm.gs7
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.adb
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.mtp
|
||||
chown system system /config/usb_gadget/g1/functions/ffs.ptp
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/id
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/index
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
|
||||
chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/class
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/360p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/480p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags
|
||||
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed
|
||||
chown system system /config/usb_gadget/g1/idProduct
|
||||
chown system system /config/usb_gadget/g1/idVendor
|
||||
chown system system /config/usb_gadget/g1/max_speed
|
||||
chown system system /config/usb_gadget/g1/os_desc
|
||||
chown system system /config/usb_gadget/g1/os_desc/b.1
|
||||
chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
|
||||
chown system system /config/usb_gadget/g1/os_desc/qw_sign
|
||||
chown system system /config/usb_gadget/g1/os_desc/use
|
||||
chown system system /config/usb_gadget/g1/strings
|
||||
chown system system /config/usb_gadget/g1/strings/0x409
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/product
|
||||
chown system system /config/usb_gadget/g1/strings/0x409/serialnumber
|
||||
setprop vendor.usb.functions.ready 1
|
||||
|
||||
on boot
|
||||
write /config/usb_gadget/g1/bcdDevice 0x0510
|
||||
# Set USB timeout
|
||||
write sys/module/usbcore/parameters/initial_descriptor_timeout 500
|
||||
# Use USB Gadget HAL
|
||||
setprop sys.usb.configfs 2
|
||||
# Enable in-kernel media-presence polling for SD cards
|
||||
write /sys/module/block/parameters/events_dfl_poll_msecs 2000
|
||||
|
||||
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
|
||||
write /config/usb_gadget/g1/idProduct 0x4EE7
|
||||
write /config/usb_gadget/g1/idVendor 0x18D1
|
||||
|
||||
on property:vendor.usb.config=*
|
||||
start usbd
|
||||
|
||||
on property:persist.vendor.usb.usbradio.config=*
|
||||
start usbd
|
||||
|
||||
on charger
|
||||
mkdir /config/usb_gadget/g1
|
||||
mkdir /config/usb_gadget/g1/strings/0x409
|
||||
mkdir /config/usb_gadget/g1/configs/b.1
|
||||
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
|
||||
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
|
||||
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
|
||||
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
|
||||
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
|
||||
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
|
||||
write /config/usb_gadget/g1/bcdDevice 0x0510
|
||||
mkdir /config/usb_gadget/g1/functions/midi.gs5
|
||||
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
|
||||
setprop sys.usb.controller "11210000.dwc3"
|
||||
setprop sys.usb.configfs 1
|
||||
|
||||
on property:ro.bootmode=charger
|
||||
setprop sys.usb.config charger
|
||||
|
||||
on property:sys.usb.config=charger && property:sys.usb.configfs=1
|
||||
write /config/usb_gadget/g1/idVendor 0x18d1
|
||||
write /config/usb_gadget/g1/idProduct 0x4eea
|
||||
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi"
|
||||
symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1
|
||||
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
||||
write /sys/class/typec/port0/device/update_sdp_enum_timeout 0x1
|
||||
setprop sys.usb.state ${sys.usb.config}
|
||||
|
||||
on property:ro.bootmode=usbuwb
|
||||
setprop persist.vendor.usb.usbradio.config uwb_acm
|
||||
|
||||
on property:vendor.usb.contaminantdisable=true
|
||||
exec /vendor/bin/hw/disable_contaminant_detection.sh
|
||||
45
conf/init.modem.rc
Normal file
45
conf/init.modem.rc
Normal file
@@ -0,0 +1,45 @@
|
||||
on init
|
||||
# Modem temperature driver
|
||||
chown radio system /sys/devices/platform/cp-tm1/cp_temp
|
||||
|
||||
on post-fs-data
|
||||
# Log data folder
|
||||
mkdir /data/vendor 0771 radio system
|
||||
mkdir /data/vendor/log 0771 radio system
|
||||
mkdir /data/vendor/log/cbd 0771 radio system
|
||||
mkdir /data/vendor/log/rfsd 0771 radio system
|
||||
mkdir /data/vendor/slog 0771 system system
|
||||
|
||||
# Modem extended log folder
|
||||
mkdir /data/vendor/radio/extended_logs 0770 radio system
|
||||
|
||||
# Modem MDS log folder
|
||||
mkdir /data/vendor/radio/mds 0771 radio system
|
||||
|
||||
# Modem OTA UECap folder
|
||||
mkdir /data/vendor/radio/ota_uecap 0773 radio system
|
||||
|
||||
# Unzipped modem images folder
|
||||
mkdir /data/vendor/radio/image 0771 radio system
|
||||
|
||||
# Modem stat folder
|
||||
mkdir /data/vendor/modem_stat 0771 radio system
|
||||
write /data/vendor/modem_stat/debug.txt ""
|
||||
chown radio system /data/vendor/modem_stat/debug.txt
|
||||
chmod 0664 /data/vendor/modem_stat/debug.txt
|
||||
|
||||
# Modem replay folder
|
||||
mkdir /mnt/vendor/modem_userdata/replay 0775 radio system
|
||||
|
||||
on fs
|
||||
# Mount modem partition
|
||||
mount_all /vendor/etc/fstab.modem --early
|
||||
|
||||
restorecon_recursive /mnt/vendor/efs
|
||||
chown radio system /mnt/vendor/efs
|
||||
restorecon_recursive /mnt/vendor/efs_backup
|
||||
chown radio system /mnt/vendor/efs_backup
|
||||
restorecon_recursive /mnt/vendor/modem_userdata
|
||||
chown radio system /mnt/vendor/modem_userdata
|
||||
restorecon_recursive /mnt/vendor/modem_img
|
||||
restorecon_recursive /mnt/vendor/persist/modem
|
||||
109
conf/soundtrigger_conf.h
Normal file
109
conf/soundtrigger_conf.h
Normal file
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Copyright (C) 2017 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.
|
||||
*/
|
||||
#ifndef __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
#define __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
|
||||
/********************************************************************/
|
||||
/** ALSA Framework Sound Card & Sound Device Information */
|
||||
/** */
|
||||
/** You can find Sound Device Name from /dev/snd. */
|
||||
/** Sound Device Name consist of Card Number & Device Number. */
|
||||
/** */
|
||||
/********************************************************************/
|
||||
|
||||
/* Sound Card and Mixer card Numbers based on Target Device */
|
||||
/* You have to match this number with real kernel information */
|
||||
#define VTS_SOUND_CARD 0
|
||||
#define VTS_MIXER_CARD 0
|
||||
|
||||
/* PCM Nodes number for seamless and normal recording*/
|
||||
#define VTS_TRICAP_DEVICE_NODE 13
|
||||
#define VTS_RECORD_DEVICE_NODE 14
|
||||
|
||||
/* sysfs file paths for loading model binaries into VTS kernel driver */
|
||||
#define VTS_HOTWORD_MODEL "/sys/devices/platform/13810000.vts/vts_google_model"
|
||||
#define VTS_SVOICE_MODEL "/sys/devices/platform/13810000.vts/vts_svoice_model"
|
||||
|
||||
#define AUDIO_PRIMARY_HAL_LIBRARY_PATH "/vendor/lib/libaudioproxy.so"
|
||||
|
||||
// VTS Capture(Input) PCM Configuration
|
||||
#define DEFAULT_VTS_CHANNELS 1 // Mono
|
||||
#define DEFAULT_VTS_SAMPLING_RATE 16000 // 16KHz
|
||||
|
||||
#define PRIMARY_VTS_PERIOD_SIZE 160 // 160 frames, 10ms in case of 16KHz Stream
|
||||
#define PRIMARY_VTS_PERIOD_COUNT 1024 // Buffer count => Total 327680 Bytes = 160 * 1(Mono) * 2(16bit PCM) * 1024(Buffer count)
|
||||
|
||||
/* VTS mixer controls */
|
||||
#define VTS_ACTIVE_KEYPHRASE_CTL_NAME "VTS Active Keyphrase" /* default: 0-"SVOICE", 1-"GOOGLE", 2-"SENSORY" */
|
||||
#define VTS_EXECUTION_MODE_CTL_NAME "VTS Execution Mode" /* 0-"OFF-MODE", 1-"VOICE-TRIG-MODE", 2-"SOUND-DECTECT-MODE", 3-"VT-ALWAYS-MODE" 4-"GOOGLE-TRI-MODE */
|
||||
#define VTS_VOICERECOGNIZE_START_CTL_NAME "VTS VoiceRecognize Start" /* 0-"Off", 1-On" */
|
||||
#define VTS_VOICETRIGGER_VALUE_CTL_NAME "VTS VoiceTrigger Value" /* 0 ~ 2000 ms*/
|
||||
|
||||
#define MAIN_MIC_CONTROL_COUNT 8
|
||||
#define HEADSET_MIC_CONTROL_COUNT 8
|
||||
#define MODEL_RECOGNIZE_CONTROL_COUNT 4
|
||||
|
||||
/* MIC Mixer controls for VTS */
|
||||
char *main_mic_ctlname[] = {
|
||||
"VTS DMIC SEL",
|
||||
"VTS DMIC IF RCH EN",
|
||||
"VTS DMIC IF LCH EN",
|
||||
"VTS SYS SEL",
|
||||
"VTS HPF EN",
|
||||
"VTS HPF SEL",
|
||||
"DMIC1 Switch",
|
||||
"VTS Virtual Output Mux",
|
||||
};
|
||||
|
||||
char *headset_mic_ctlname[] = {
|
||||
"AUXPDM1 Rate",
|
||||
"AUXPDM1 Input",
|
||||
"AUXPDM1 Output Switch",
|
||||
"AUXPDM Switch",
|
||||
"VTS DMIC SEL",
|
||||
"VTS DMIC IF RCH EN",
|
||||
"VTS DMIC IF LCH EN",
|
||||
"VTS SYS SEL",
|
||||
"VTS HPF EN",
|
||||
"VTS HPF SEL",
|
||||
};
|
||||
|
||||
/* MIC Mixer control values */
|
||||
/* FIXME : Double check this values */
|
||||
int main_mic_ctlvalue[] = {
|
||||
0, //"VTS DMIC SEL",
|
||||
1, //"VTS DMIC IF RCH EN",
|
||||
1, //"VTS DMIC IF LCH EN",
|
||||
1, //"VTS SYS SEL",
|
||||
1, //"VTS HPF EN",
|
||||
1, //"VTS HPF SEL",
|
||||
1, //"DMIC1 Switch",
|
||||
1, //"VTS Virtual Output Mux",
|
||||
};
|
||||
|
||||
int headset_mic_ctlvalue[] = {
|
||||
3, //"AUXPDM1 Rate",
|
||||
0, //"AUXPDM1 Input",
|
||||
1, //"AUXPDM1 Output Switch",
|
||||
1, //"AUXPDM Switch",
|
||||
1, //"VTS DMIC SEL",
|
||||
1, //"VTS DMIC IF RCH EN",
|
||||
1, //"VTS DMIC IF LCH EN",
|
||||
1, //"VTS SYS SEL",
|
||||
1, //"VTS HPF EN",
|
||||
1, //"VTS HPF SEL",
|
||||
};
|
||||
#endif // __EXYNOS_SOUNDTRIGGERCONF_H__
|
||||
238
conf/ueventd.gs201.rc
Normal file
238
conf/ueventd.gs201.rc
Normal file
@@ -0,0 +1,238 @@
|
||||
/dev/mali0 0666 system system
|
||||
/dev/ion 0666 system system
|
||||
/dev/ump 0666 system graphics
|
||||
/dev/exynos-mem 0660 system graphics
|
||||
/dev/video0 0660 system camera
|
||||
/dev/video1 0660 system camera
|
||||
/dev/video2 0660 system camera
|
||||
/dev/video3 0660 system camera
|
||||
/dev/video20 0660 system system
|
||||
# media0 is used for GSC, DECON, etc
|
||||
/dev/media0 0660 system camera
|
||||
# media1 is used for DECON Ext WB
|
||||
/dev/media1 0660 system graphics
|
||||
# Various devices use the v4l-subdev interface
|
||||
# We declare all such nodes simultaneously here
|
||||
/dev/v4l-subdev0 0660 system camera
|
||||
/dev/v4l-subdev1 0660 system camera
|
||||
/dev/v4l-subdev2 0660 system camera
|
||||
/dev/v4l-subdev3 0660 system camera
|
||||
/dev/v4l-subdev4 0660 system camera
|
||||
/dev/v4l-subdev5 0660 system camera
|
||||
/dev/v4l-subdev6 0660 system camera
|
||||
/dev/v4l-subdev7 0660 system camera
|
||||
/dev/v4l-subdev8 0660 system camera
|
||||
/dev/v4l-subdev9 0660 system camera
|
||||
/dev/v4l-subdev10 0660 system camera
|
||||
/dev/v4l-subdev11 0660 system camera
|
||||
/dev/v4l-subdev12 0660 system camera
|
||||
/dev/v4l-subdev13 0660 system camera
|
||||
/dev/v4l-subdev14 0660 system camera
|
||||
/dev/v4l-subdev15 0660 system camera
|
||||
/dev/v4l-subdev16 0660 system camera
|
||||
/dev/v4l-subdev17 0660 system camera
|
||||
/dev/v4l-subdev18 0660 system camera
|
||||
/dev/v4l-subdev19 0660 system camera
|
||||
# v4l-subdev20 is used for DECON Ext WB
|
||||
/dev/v4l-subdev20 0660 system graphics
|
||||
/dev/v4l-subdev21 0660 system graphics
|
||||
/dev/v4l-subdev32 0660 system graphics
|
||||
|
||||
# gscalers
|
||||
/dev/video23 0660 media graphics
|
||||
/dev/video26 0660 media graphics
|
||||
/dev/video24 0660 media graphics
|
||||
/dev/video27 0660 media graphics
|
||||
/dev/video29 0660 media graphics
|
||||
/dev/video30 0660 media graphics
|
||||
# video31 is used for DECON Ext WB
|
||||
/dev/video31 0660 media graphics
|
||||
|
||||
# mscalers
|
||||
/dev/video50 0660 mediacodec drmrpc
|
||||
/dev/m2m1shot_scaler0 0660 mediacodec drmrpc
|
||||
|
||||
/dev/video55 0666 system graphics
|
||||
/dev/g2d 0660 system graphics
|
||||
/dev/fimg2d 0666 system graphics
|
||||
/dev/HPD 0660 system system
|
||||
|
||||
# wfd
|
||||
/dev/tsmux 0660 media graphics
|
||||
/dev/repeater 0660 media graphics
|
||||
|
||||
# mfc
|
||||
/dev/video6 0660 mediacodec mediadrm
|
||||
/dev/video7 0660 mediacodec mediadrm
|
||||
/dev/video8 0660 mediacodec mediadrm
|
||||
/dev/video9 0660 mediacodec mediadrm
|
||||
/dev/video10 0660 mediacodec mediadrm
|
||||
/dev/video11 0660 mediacodec mediadrm
|
||||
|
||||
# camera
|
||||
/dev/media2 0660 media media
|
||||
/dev/hdcp2 0660 media media
|
||||
|
||||
# jpeg
|
||||
/dev/m2m1shot_jpeg 0660 media media
|
||||
/dev/video12 0666 system system
|
||||
|
||||
# audio
|
||||
/dev/seiren 0660 system audio
|
||||
/dev/acd-audio_output_tuning 0660 system audio
|
||||
/dev/acd-audio_bulk_tx 0660 system audio
|
||||
/dev/acd-audio_bulk_rx 0660 system audio
|
||||
/dev/acd-audio_input_tuning 0660 system audio
|
||||
/dev/acd-audio_input_bulk_tx 0660 system audio
|
||||
/dev/acd-audio_input_bulk_rx 0660 system audio
|
||||
/dev/acd-sound_trigger 0660 system audio
|
||||
/dev/acd-hotword_notification 0660 system audio
|
||||
/dev/acd-hotword_pcm 0660 system audio
|
||||
/dev/acd-ambient_pcm 0660 system audio
|
||||
/dev/acd-model_data 0660 system audio
|
||||
/dev/acd-debug 0660 system audio
|
||||
/dev/acd-audio_tap* 0660 system audio
|
||||
/dev/acd-audio_dcdoff_ref 0660 system audio
|
||||
/dev/acd-mel_processor 0660 system audio
|
||||
/dev/amcs 0660 system audio
|
||||
/dev/acd-audio_rtp_* 0660 system radio
|
||||
|
||||
# Secure MEM driver
|
||||
/dev/s5p-smem 0660 drm drmrpc
|
||||
|
||||
# cbd
|
||||
/dev/block/by-name/modem 0640 root radio
|
||||
/dev/block/by-name/modem_a 0640 root radio
|
||||
/dev/block/by-name/modem_b 0640 root radio
|
||||
|
||||
# DM tools
|
||||
/dev/umts_dm0 0660 system system
|
||||
/dev/umts_router 0660 system system
|
||||
/dev/ttyGS0 0660 system system
|
||||
/dev/ttyGS1 0660 system system
|
||||
/dev/ttyGS2 0660 system system
|
||||
|
||||
# IPC RIL
|
||||
/dev/umts_boot0 0660 radio system
|
||||
/dev/umts_ipc0 0660 radio radio
|
||||
/dev/umts_ipc1 0660 radio radio
|
||||
/dev/umts_rfs0 0660 radio radio
|
||||
|
||||
# IPC OEM
|
||||
/dev/oem_ipc* 0660 radio radio
|
||||
/dev/oem_test 0660 radio radio
|
||||
|
||||
# interactive governor parameters
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_rate 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_slack 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/min_sample_time 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/hispeed_freq 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/target_loads 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/go_hispeed_load 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/above_hispeed_delay 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boost 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse 0200 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/input_boost 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse_duration 0660 system system
|
||||
/sys/devices/system/cpu/cpu* cpufreq/interactive/io_is_busy 0660 system system
|
||||
|
||||
# Vision (VPU, SCORE)
|
||||
/dev/vertex0 0660 media media
|
||||
/dev/vertex1 0660 media media
|
||||
|
||||
# AoC
|
||||
/dev/aoc 0660 system system
|
||||
|
||||
# AoC stats (UmfwStat)
|
||||
/dev/acd-com.google.umfw_stat 0660 system system
|
||||
|
||||
# Sensors (USF)
|
||||
/dev/acd-com.google.usf 0660 system system
|
||||
/dev/acd-com.google.usf.non_wake_up 0660 system system
|
||||
|
||||
# CHRE
|
||||
/dev/acd-com.google.chre 0660 system system
|
||||
/dev/acd-com.google.chre.non_wake_up 0660 system system
|
||||
|
||||
# LWIS
|
||||
/dev/lwis* 0660 system system
|
||||
|
||||
# NFC
|
||||
/dev/st21nfc 0660 nfc nfc
|
||||
|
||||
# SecureElement
|
||||
/dev/st54j_se 0660 secure_element secure_element
|
||||
/dev/st54spi 0660 secure_element secure_element
|
||||
/dev/st33spi 0660 secure_element secure_element
|
||||
|
||||
#bigocean
|
||||
/dev/bigocean 0660 mediacodec mediadrm
|
||||
|
||||
# Trusty
|
||||
/dev/trusty-ipc-dev0 0660 system drmrpc
|
||||
/dev/trusty-log0 0660 system system
|
||||
|
||||
# RPMB
|
||||
/dev/sg1 0660 system system
|
||||
|
||||
# Citadel
|
||||
/dev/gsc0 0660 hsm hsm
|
||||
|
||||
# Storage: for factory reset protection feature
|
||||
/dev/block/by-name/frp 0660 system system
|
||||
|
||||
# Storage: for UDFPS calibration data sideload feature
|
||||
/dev/block/by-name/mfg_data 0660 system system
|
||||
|
||||
# TPU
|
||||
/dev/janeiro 0660 system system
|
||||
|
||||
# DSP
|
||||
/dev/gxp 0666 system camera
|
||||
|
||||
# TOE
|
||||
/dev/dit2 0660 radio radio
|
||||
|
||||
# Bluetooth
|
||||
/dev/ttySAC18 0660 bluetooth system
|
||||
/dev/btpower 0660 bluetooth system
|
||||
|
||||
# BT Wifi Coexistence
|
||||
/dev/wbrc 0660 system system
|
||||
|
||||
# TUI
|
||||
/dev/tui-driver 0660 system system
|
||||
|
||||
# DMA-BUF heaps
|
||||
/dev/dma_heap/crypto 0444 system graphics
|
||||
/dev/dma_heap/crypto-uncached 0444 system graphics
|
||||
/dev/dma_heap/faceauth_tpu-secure 0444 system graphics
|
||||
/dev/dma_heap/faimg-secure 0444 system graphics
|
||||
/dev/dma_heap/famodel-secure 0444 system graphics
|
||||
/dev/dma_heap/faprev-secure 0444 system graphics
|
||||
/dev/dma_heap/farawimg-secure 0444 system graphics
|
||||
/dev/dma_heap/tui-secure 0444 system graphics
|
||||
/dev/dma_heap/vframe-secure 0444 system drmrpc
|
||||
/dev/dma_heap/vscaler-secure 0444 system graphics
|
||||
/dev/dma_heap/vstream-secure 0444 system drmrpc
|
||||
/dev/dma_heap/sensor_direct_heap 0444 system graphics
|
||||
/dev/dma_heap/aaudio_playback_heap 0444 system audio
|
||||
/dev/dma_heap/aaudio_capture_heap 0444 system audio
|
||||
|
||||
# Direct Charging
|
||||
/dev/logbuffer_pca9468_tcpm 0600 system system
|
||||
|
||||
# Raw HID devices
|
||||
/dev/hidraw* 0660 system system
|
||||
|
||||
# Wlan
|
||||
/dev/wlan 0660 wifi wifi
|
||||
|
||||
# ODPM
|
||||
/sys/bus/iio/devices/iio:device* enabled_rails 0660 system system
|
||||
|
||||
# sysfs LED nodes for external USB devices
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.5.auto/usb2/2-1* brightness 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.5.auto/usb2/2-1* multi_intensity 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1* brightness 0664 system system
|
||||
/sys/devices/platform/11210000.usb/11210000.dwc3/xhci-hcd-exynos.4.auto/usb2/2-1* multi_intensity 0664 system system
|
||||
178
convert_to_ext4.sh
Normal file
178
convert_to_ext4.sh
Normal file
@@ -0,0 +1,178 @@
|
||||
#!/bin/sh
|
||||
|
||||
PERSIST_BLK='/dev/block/by-name/persist'
|
||||
EFS_BLK='/dev/block/by-name/efs'
|
||||
MNT_BASE='/mnt/product'
|
||||
MNT_OLD="$MNT_BASE/convert_old"
|
||||
MNT_NEW="$MNT_BASE/convert_new"
|
||||
|
||||
function log() {
|
||||
if [ ! -z "$1" ]; then
|
||||
echo "partition_convert: $1" > /dev/kmsg
|
||||
fi
|
||||
}
|
||||
|
||||
function check_success() {
|
||||
RES=$?
|
||||
if [ $RES -ne 0 ]; then
|
||||
log "Failed: $1"
|
||||
else
|
||||
log "Success: $1"
|
||||
fi
|
||||
return $RES
|
||||
}
|
||||
|
||||
function get_fs_type()
|
||||
{
|
||||
BLOCK=$1
|
||||
EXT4_MAGIC=$(xxd $BLOCK -s 0x438 -l 2 -p)
|
||||
if [ "$EXT4_MAGIC" = "53ef" ]; then
|
||||
echo "ext4"
|
||||
else
|
||||
F2FS_MAGIC=$(xxd $BLOCK -s 0x400 -l 4 -p)
|
||||
if [ "$F2FS_MAGIC" = "1020f5f2" ]; then
|
||||
echo "f2fs"
|
||||
else
|
||||
echo "unknown"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Flow:
|
||||
# 1. If persist is f2fs we need to make efs ext4 and copy out the files. Once files are copied
|
||||
# successfully, format persist as ext4 to mark completion of step.
|
||||
# 2. If persist is ext4 and efs is ext4, we need to copy from efs to persist (use dd). Once
|
||||
# everything is copied successfully, erase efs to allow it to be formatted to f2fs later.
|
||||
# 3. If persist is ext4 and efs is not ext4, we have already migrated - do nothing.
|
||||
|
||||
# If persist is already ext4 and efs is not ext4 we have already migrated.
|
||||
PERSIST_FS=$(get_fs_type $PERSIST_BLK)
|
||||
EFS_FS=$(get_fs_type $EFS_BLK)
|
||||
if [ "$PERSIST_FS" = "ext4" ]; then
|
||||
if [ "$EFS_FS" != "ext4" ]; then
|
||||
log "persist ext4 migration already done"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$PERSIST_FS" = "unknown" ]; then
|
||||
log "persist partition hasn't been initialized"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
RETRIES=10
|
||||
while [[ $RETRIES -gt 0 ]]; do
|
||||
# Sleep for 1 second here, as other failure points will trigger continue
|
||||
sleep 1
|
||||
RETRIES=$((RETRIES-1))
|
||||
|
||||
# If persist is still f2fs, we need to copy to efs.
|
||||
if [ "$PERSIST_FS" = "f2fs" ]; then
|
||||
# Format efs as ext4
|
||||
/system/bin/mke2fs -t ext4 -b 4096 $EFS_BLK
|
||||
check_success "/system/bin/mke2fs -t ext4 -b 4096 $EFS_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
#Create directory to mount persist partition
|
||||
mkdir -p $MNT_OLD
|
||||
check_success "mkdir $MNT_OLD"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Create directory to mount efs partition
|
||||
mkdir -p $MNT_NEW
|
||||
check_success "mkdir $MNT_NEW"
|
||||
if [ $? -ne 0 ]; then
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Mount persist
|
||||
mount -t f2fs $PERSIST_BLK $MNT_OLD
|
||||
check_success "mount -t f2fs $PERSIST_BLK $MNT_OLD"
|
||||
if [ $? -ne 0 ]; then
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Mount efs
|
||||
mount -t ext4 $EFS_BLK $MNT_NEW
|
||||
check_success "mount -t ext4 $EFS_BLK $MNT_NEW"
|
||||
if [ $? -ne 0 ]; then
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
cp -rp $MNT_OLD/.* $MNT_NEW/
|
||||
cp -rp $MNT_OLD/* $MNT_NEW/
|
||||
check_success "cp -rp $MNT_OLD/* $MNT_NEW/"
|
||||
if [ $? -ne 0 ]; then
|
||||
umount $MNT_NEW
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
continue
|
||||
fi
|
||||
|
||||
# Calculate md5sum of all files and compare between persist and efs
|
||||
(cd $MNT_NEW; find . -type f | xargs md5sum | sort) > $MNT_BASE/new.md5sums
|
||||
(cd $MNT_OLD; find . -type f | xargs md5sum | sort) > $MNT_BASE/old.md5sums
|
||||
diff $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums
|
||||
check_success "diff $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums"
|
||||
RES=$?
|
||||
rm $MNT_BASE/new.md5sums $MNT_BASE/old.md5sums
|
||||
|
||||
umount $MNT_NEW
|
||||
umount $MNT_OLD
|
||||
rm -rf $MNT_NEW
|
||||
rm -rf $MNT_OLD
|
||||
|
||||
if [ $RES -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
/system/bin/mke2fs -t ext4 -b 4096 $PERSIST_BLK
|
||||
check_success "/system/bin/mke2fs -t ext4 -b 4096 $PERSIST_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
PERSIST_FS="ext4"
|
||||
fi
|
||||
|
||||
# copy efs to persist
|
||||
dd if=$EFS_BLK of=$PERSIST_BLK
|
||||
check_success "dd if=$EFS_BLK of=$PERSIST_BLK"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
sync
|
||||
check_success "sync"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# compare md5sum for integrity
|
||||
EFS_MD5SUM=$(dd if=$EFS_BLK 2>/dev/null | md5sum)
|
||||
PERSIST_MD5SUM=$(dd if=$PERSIST_BLK 2>/dev/null | md5sum)
|
||||
if [ "$PERSIST_MD5SUM" != "$EFS_MD5SUM" ]; then
|
||||
log "dd md5sum mismatch"
|
||||
continue
|
||||
fi
|
||||
|
||||
dd if=/dev/zero of=$EFS_BLK bs=1M count=64
|
||||
check_success "dd if=/dev/zero of=$EFS_BLK bs=1M count=64"
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
log "Migration succeeded"
|
||||
break
|
||||
done
|
||||
@@ -1,8 +1,18 @@
|
||||
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2019 Google Inc.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
<!-- Copyright (C) 2019 Google Inc.
|
||||
|
||||
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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
@@ -31,15 +41,12 @@
|
||||
</exception>
|
||||
-->
|
||||
|
||||
<exception package="com.google.android.GoogleCamera">
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
</exception>
|
||||
|
||||
<exception
|
||||
package="com.google.android.apps.camera.services">
|
||||
<!-- Camera -->
|
||||
<permission name="android.permission.CAMERA" fixed="false"/>
|
||||
<!-- Camera Connectivity -->
|
||||
<permission name="android.permission.ACCESS_FINE_LOCATION" fixed="false"/>
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||
<permission name="android.permission.BLUETOOTH_SCAN" fixed="false"/>
|
||||
@@ -69,8 +76,6 @@
|
||||
<permission name="android.permission.ACTIVITY_RECOGNITION" fixed="false"/>
|
||||
<!-- Notifications -->
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
<!-- Used by Bluetooth Module to collect bluetooth info -->
|
||||
<permission name="android.permission.BLUETOOTH_CONNECT" fixed="false"/>
|
||||
</exception>
|
||||
|
||||
<exception
|
||||
@@ -168,16 +173,5 @@
|
||||
<!-- Notifications -->
|
||||
<permission name="android.permission.POST_NOTIFICATIONS" fixed="false"/>
|
||||
</exception>
|
||||
|
||||
<exception package="com.google.android.apps.pixel.relationships">
|
||||
<permission name="android.permission.CALL_PHONE" fixed="false"/>
|
||||
<permission name="android.permission.READ_CALL_LOG" fixed="false"/>
|
||||
<permission name="android.permission.READ_CONTACTS" fixed="false"/>
|
||||
<permission name="android.permission.WRITE_CONTACTS" fixed="false"/>
|
||||
</exception>
|
||||
<exception
|
||||
package="com.google.android.apps.privacy.wildlife">
|
||||
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
|
||||
</exception>
|
||||
</exceptions>
|
||||
|
||||
|
||||
@@ -1,8 +1,22 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2020 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.
|
||||
#
|
||||
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
-include vendor/google_devices/gs201/proprietary/telephony/device-vendor.mk
|
||||
endif
|
||||
include device/google/gs201/device.mk
|
||||
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2020 The Android Open-Source Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2020 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 device/google/gs201/device-common.mk
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 The Android Open Source Project
|
||||
SPDX-FileCopyrightText: The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
-->
|
||||
<compatibility-matrix version="9.0" type="framework" level="7">
|
||||
<hal format="hidl">
|
||||
<compatibility-matrix version="1.0" type="framework" level="7">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>android.vendor.samsung_slsi.telephony.hardware.radio</name>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
@@ -14,7 +8,7 @@
|
||||
<instance>slot2</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>com.fingerprints42.extension</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -46,24 +40,9 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.edgetpu</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
<name>IEdgeTpuVendorService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.edgetpu.dba</name>
|
||||
<interface>
|
||||
<name>IDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.face.debug</name>
|
||||
<version>3-4</version>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.face.debug</name>
|
||||
<version>3-4</version>
|
||||
<interface>
|
||||
<name>IDebugHost</name>
|
||||
<instance>default</instance>
|
||||
@@ -73,48 +52,39 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.flood</name>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.edgetpu</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
<name>IFloodService</name>
|
||||
<name>IEdgeTpuVendorService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.hardware.pixel.display</name>
|
||||
<version>16</version>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.edgetpu.dba</name>
|
||||
<version>1</version>
|
||||
<interface>
|
||||
<name>IDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.edgetpu.tachyon</name>
|
||||
<version>1</version>
|
||||
<interface>
|
||||
<name>IComputeService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl" optional="true">
|
||||
<name>com.google.hardware.pixel.display</name>
|
||||
<version>10</version>
|
||||
<interface>
|
||||
<name>IDisplay</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.input</name>
|
||||
<version>2-6</version>
|
||||
<interface>
|
||||
<name>ITouchContextService</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.input</name>
|
||||
<version>6</version>
|
||||
<interface>
|
||||
<name>ITwoshayFileDumpService</name>
|
||||
<instance>touchflow_default</instance>
|
||||
<instance>touchflow_outer</instance>
|
||||
<instance>twoshay</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>com.google.pixel.camera.connectivity.hal.provider</name>
|
||||
<interface>
|
||||
<name>ICameraProvider</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<hal format="aidl" optional="true">
|
||||
<name>hardware.qorvo.uwb</name>
|
||||
<version>2</version>
|
||||
<interface>
|
||||
@@ -122,7 +92,7 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>vendor.goodix.hardware.biometrics.fingerprint</name>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
@@ -130,30 +100,15 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.google.audiometricext</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IAudioMetricExt</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>vendor.google.battery_mitigation</name>
|
||||
<interface>
|
||||
<name>IBatteryMitigation</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<hal format="aidl" optional="true">
|
||||
<name>vendor.google.google_battery</name>
|
||||
<version>4</version>
|
||||
<version>2-3</version>
|
||||
<interface>
|
||||
<name>IGoogleBattery</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>vendor.google.radioext</name>
|
||||
<version>1.5</version>
|
||||
<interface>
|
||||
@@ -161,23 +116,15 @@
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.google.whitechapel.audio.audioext</name>
|
||||
<version>4.0</version>
|
||||
<interface>
|
||||
<name>IAudioExt</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<hal format="aidl" optional="true">
|
||||
<name>vendor.google.wifi_ext</name>
|
||||
<version>2-4</version>
|
||||
<version>2-3</version>
|
||||
<interface>
|
||||
<name>IWifiExt</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>vendor.samsung_slsi.telephony.hardware.oemservice</name>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
@@ -187,7 +134,7 @@
|
||||
<instance>sced0</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<hal format="hidl" optional="true">
|
||||
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
6
disable_contaminant_detection.sh
Normal file
6
disable_contaminant_detection.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/vendor/bin/sh
|
||||
|
||||
max77759tcpc_path=/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025
|
||||
if [ -d $max77759tcpc_path ]; then
|
||||
echo 0 > $max77759tcpc_path/contaminant_detection;
|
||||
fi
|
||||
BIN
display/display_colordata_cal0.pb
Normal file
BIN
display/display_colordata_cal0.pb
Normal file
Binary file not shown.
10
dumpstate/Android.bp
Normal file
10
dumpstate/Android.bp
Normal file
@@ -0,0 +1,10 @@
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
sh_binary {
|
||||
name: "dump_power_gs201.sh",
|
||||
src: "dump_power_gs201.sh",
|
||||
vendor: true,
|
||||
sub_dir: "dump",
|
||||
}
|
||||
10
dumpstate/OWNERS
Normal file
10
dumpstate/OWNERS
Normal file
@@ -0,0 +1,10 @@
|
||||
aaronding@google.com
|
||||
rurumihong@google.com
|
||||
adamshih@google.com
|
||||
wilsonsung@google.com
|
||||
lucaswei@google.com
|
||||
cyanhsieh@google.com
|
||||
rogerliao@google.com
|
||||
cyuanjen@google.com
|
||||
robinpeng@google.com
|
||||
pattjin@google.com
|
||||
1
dumpstate/README.txt
Normal file
1
dumpstate/README.txt
Normal file
@@ -0,0 +1 @@
|
||||
Please refer to go/pixel-recycle to modularize your code in this space.
|
||||
315
dumpstate/dump_power_gs201.sh
Normal file
315
dumpstate/dump_power_gs201.sh
Normal file
@@ -0,0 +1,315 @@
|
||||
#!/vendor/bin/sh
|
||||
build_type="$(getprop ro.build.type)"
|
||||
|
||||
echo "\n------ Power Stats Times ------"
|
||||
echo -n "Boot: " && /vendor/bin/uptime -s && echo -n "Now: " && date;
|
||||
|
||||
echo "\n------ ACPM stats ------"
|
||||
for f in /sys/devices/platform/acpm_stats/*_stats ; do
|
||||
echo "\n\n$f"
|
||||
cat $f
|
||||
done
|
||||
|
||||
echo "\n------ CPU PM stats ------"
|
||||
cat "/sys/devices/system/cpu/cpupm/cpupm/time_in_state"
|
||||
|
||||
echo "\n------ GENPD summary ------"
|
||||
cat "/d/pm_genpd/pm_genpd_summary"
|
||||
|
||||
echo "\n------ Power supply property battery ------"
|
||||
cat "/sys/class/power_supply/battery/uevent"
|
||||
echo "\n------ Power supply property dc ------"
|
||||
cat "/sys/class/power_supply/dc/uevent"
|
||||
echo "\n------ Power supply property gcpm ------"
|
||||
cat "/sys/class/power_supply/gcpm/uevent"
|
||||
echo "\n------ Power supply property gcpm_pps ------"
|
||||
cat "/sys/class/power_supply/gcpm_pps/uevent"
|
||||
echo "\n------ Power supply property main-charger ------"
|
||||
cat "/sys/class/power_supply/main-charger/uevent"
|
||||
|
||||
if [ -d "/sys/class/power_supply/pca9468-mains/uevent" ]
|
||||
then
|
||||
echo "\n------ Power supply property pca9468-mains ------"
|
||||
cat "/sys/class/power_supply/pca9468-mains/uevent"
|
||||
else
|
||||
echo "\n------ Power supply property pca94xx-mains ------"
|
||||
cat "/sys/class/power_supply/pca94xx-mains/uevent"
|
||||
fi
|
||||
|
||||
echo "\n------ Power supply property tcpm ------"
|
||||
cat /sys/class/power_supply/tcpm-source-psy-*/uevent
|
||||
echo "\n------ Power supply property usb ------"
|
||||
cat "/sys/class/power_supply/usb/uevent"
|
||||
echo "\n------ Power supply property wireless ------"
|
||||
cat "/sys/class/power_supply/wireless/uevent"
|
||||
|
||||
if [ -d "/sys/class/power_supply/maxfg" ]
|
||||
then
|
||||
echo "\n------ Power supply property maxfg ------"
|
||||
cat "/sys/class/power_supply/maxfg/uevent"
|
||||
echo "\n------ m5_state ------"
|
||||
cat "/sys/class/power_supply/maxfg/m5_model_state"
|
||||
echo "\n------ maxfg ------"
|
||||
cat "/dev/logbuffer_maxfg"
|
||||
echo "\n------ maxfg_monitor ------"
|
||||
cat "/dev/logbuffer_maxfg_monitor"
|
||||
else
|
||||
echo "\n------ Power supply property maxfg_base ------"
|
||||
cat "/sys/class/power_supply/maxfg_base/uevent"
|
||||
echo "\n------ Power supply property maxfg_secondary ------"
|
||||
cat "/sys/class/power_supply/maxfg_secondary/uevent"
|
||||
echo "\n------ m5_state ------"
|
||||
cat "/sys/class/power_supply/maxfg_base/m5_model_state"
|
||||
echo "\n------ maxfg_base ------"
|
||||
cat "/dev/logbuffer_maxfg_base"
|
||||
echo "\n------ maxfg_secondary ------"
|
||||
cat "/dev/logbuffer_maxfg_secondary"
|
||||
echo "\n------ maxfg_base_monitor ------"
|
||||
cat "/dev/logbuffer_maxfg_base_monitor"
|
||||
echo "\n------ maxfg_secondary_monitor ------"
|
||||
cat "/dev/logbuffer_maxfg_secondary_monitor"
|
||||
echo "\n------ google_dual_batt ------"
|
||||
cat "/dev/logbuffer_dual_batt"
|
||||
fi
|
||||
|
||||
if [ -e "/dev/maxfg_history" ]
|
||||
then
|
||||
echo "\n------ Maxim FG History ------"
|
||||
xxd "/dev/maxfg_history"
|
||||
fi
|
||||
|
||||
if [ -d "/sys/class/power_supply/dock" ]
|
||||
then
|
||||
echo "\n------ Power supply property dock ------"
|
||||
cat "/sys/class/power_supply/dock/uevent"
|
||||
fi
|
||||
|
||||
if [ -e "/dev/logbuffer_tcpm" ]
|
||||
then
|
||||
echo "\n------ Logbuffer TCPM ------"
|
||||
cat "/dev/logbuffer_tcpm"
|
||||
elif [ $build_type = "eng" ]
|
||||
then
|
||||
echo "\n------ TCPM logs ------"
|
||||
if [ -d "/sys/kernel/debug/tcpm" ]
|
||||
then
|
||||
cat /sys/kernel/debug/tcpm/*
|
||||
else
|
||||
cat /sys/kernel/debug/usb/tcpm*
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "\n------ TCPC ------"
|
||||
max77759tcpc_path="/sys/devices/platform/10d60000.hsi2c/i2c-13/13-0025"
|
||||
echo "registers:"
|
||||
cat $max77759tcpc_path/registers
|
||||
echo "frs:"
|
||||
cat $max77759tcpc_path/frs
|
||||
echo "auto_discharge:"
|
||||
cat $max77759tcpc_path/auto_discharge
|
||||
echo "bc12_enabled:"
|
||||
cat $max77759tcpc_path/bc12_enabled
|
||||
echo "cc_toggle_enable:"
|
||||
cat $max77759tcpc_path/cc_toggle_enable
|
||||
echo "contaminant_detection:"
|
||||
cat $max77759tcpc_path/contaminant_detection
|
||||
echo "contaminant_detection_status:"
|
||||
cat $max77759tcpc_path/contaminant_detection_status
|
||||
|
||||
echo "\n------ PD Engine ------"
|
||||
cat "/dev/logbuffer_usbpd"
|
||||
echo "\nPOGO Transport"
|
||||
cat "/dev/logbuffer_pogo_transport"
|
||||
echo "\n------ PPS-google_cpm ------"
|
||||
cat "/dev/logbuffer_cpm"
|
||||
echo "\n------ PPS-dc ------"
|
||||
cat "/dev/logbuffer_pca9468"
|
||||
|
||||
echo "\n------ Battery Health ------"
|
||||
cat "/sys/class/power_supply/battery/health_index_stats"
|
||||
echo "\n------ Battery Health SoC Residency ------"
|
||||
cat "/sys/class/power_supply/battery/swelling_data"
|
||||
echo "\n------ BMS ------"
|
||||
cat "/dev/logbuffer_ssoc"
|
||||
echo "\n------ TTF ------"
|
||||
cat "/dev/logbuffer_ttf"
|
||||
echo "\n------ TTF details ------"
|
||||
cat "/sys/class/power_supply/battery/ttf_details"
|
||||
echo "\n------ TTF stats ------"
|
||||
cat "/sys/class/power_supply/battery/ttf_stats"
|
||||
echo "\n------ aacr_state ------"
|
||||
cat "/sys/class/power_supply/battery/aacr_state"
|
||||
echo "\n------ maxq ------"
|
||||
cat "/dev/logbuffer_maxq"
|
||||
echo "\n------ TEMP/DOCK-DEFEND ------"
|
||||
cat "/dev/logbuffer_bd"
|
||||
|
||||
echo "\n------ TRICKLE-DEFEND Config ------"
|
||||
cd /sys/devices/platform/google,battery/power_supply/battery/
|
||||
for f in `ls bd_*`
|
||||
do
|
||||
echo $f: `cat $f`
|
||||
done
|
||||
|
||||
echo "\n------ DWELL-DEFEND Config ------"
|
||||
cd /sys/devices/platform/google,charger/
|
||||
for f in `ls charge_s*`
|
||||
do
|
||||
echo "$f: `cat $f`"
|
||||
done
|
||||
|
||||
echo "\n------ TEMP-DEFEND Config ------"
|
||||
cd /sys/devices/platform/google,charger/
|
||||
for f in `ls bd_*`
|
||||
do
|
||||
echo "$f: `cat $f`"
|
||||
done
|
||||
|
||||
echo "\n------ DC_registers dump ------"
|
||||
cat "/sys/class/power_supply/pca94xx-mains/device/registers_dump"
|
||||
echo "\n------ max77759_chg registers dump ------"
|
||||
cat "/sys/class/power_supply/main-charger/device/registers_dump"
|
||||
echo "\n------ max77729_pmic registers dump ------"
|
||||
cat /sys/devices/platform/*.hsi2c/i2c-*/*-0066/registers_dump
|
||||
|
||||
if [ $build_type = "eng" ]
|
||||
then
|
||||
echo "\n------ Charging table dump ------"
|
||||
cat "/d/google_battery/chg_raw_profile"
|
||||
|
||||
echo "\n------ fg_model ------"
|
||||
for f in /d/maxfg*
|
||||
do
|
||||
regs=`cat $f/fg_model`
|
||||
echo $f:
|
||||
echo "$regs"
|
||||
done
|
||||
|
||||
echo "\n------ fg_alo_ver ------"
|
||||
for f in /d/maxfg*
|
||||
do
|
||||
regs=`cat $f/algo_ver`
|
||||
echo $f:
|
||||
echo "$regs"
|
||||
done
|
||||
|
||||
echo "\n------ fg_model_ok ------"
|
||||
for f in /d/maxfg*
|
||||
do
|
||||
regs=`cat $f/model_ok`
|
||||
echo $f:
|
||||
echo "$regs"
|
||||
done
|
||||
|
||||
echo "\n------ fg registers ------"
|
||||
for f in /d/maxfg*
|
||||
do
|
||||
regs=`cat $f/registers`
|
||||
echo $f:
|
||||
echo "$regs"
|
||||
done
|
||||
|
||||
echo "\n------ Maxim FG NV RAM ------"
|
||||
for f in /d/maxfg*
|
||||
do
|
||||
regs=`cat $f/nv_registers`
|
||||
echo $f:
|
||||
echo "$regs"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "\n------ Battery EEPROM ------"
|
||||
if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom" ]
|
||||
then
|
||||
xxd /sys/devices/platform/10da0000.hsi2c/i2c-15/15-0050/eeprom
|
||||
fi
|
||||
|
||||
echo "\n------ Charger Stats ------"
|
||||
cat "/sys/class/power_supply/battery/charge_details"
|
||||
if [ $build_type = "eng" ]
|
||||
then
|
||||
echo "\n------ Google Charger ------"
|
||||
cd /sys/kernel/debug/google_charger/
|
||||
for f in `ls pps_*`
|
||||
do
|
||||
echo "$f: `cat $f`"
|
||||
done
|
||||
echo "\n------ Google Battery ------"
|
||||
cd /sys/kernel/debug/google_battery/
|
||||
for f in `ls ssoc_*`
|
||||
do
|
||||
echo "$f: `cat $f`"
|
||||
done
|
||||
fi
|
||||
|
||||
echo "\n------ WLC logs ------"
|
||||
cat "/dev/logbuffer_wireless"
|
||||
echo "\n------ WLC VER ------"
|
||||
cat "/sys/class/power_supply/wireless/device/version"
|
||||
echo "\n------ WLC STATUS ------"
|
||||
cat "/sys/class/power_supply/wireless/device/status"
|
||||
echo "\n------ WLC FW Version ------"
|
||||
cat "/sys/class/power_supply/wireless/device/fw_rev"
|
||||
echo "\n------ RTX ------"
|
||||
cat "/dev/logbuffer_rtx"
|
||||
|
||||
if [ $build_type = "eng" ]
|
||||
then
|
||||
echo "\n------ gvotables ------"
|
||||
cat /sys/kernel/debug/gvotables/*/status
|
||||
fi
|
||||
|
||||
echo "\n------ Lastmeal ------"
|
||||
cat "/data/vendor/mitigation/lastmeal.txt"
|
||||
echo "\n------ Thismeal ------"
|
||||
cat "/data/vendor/mitigation/thismeal.txt"
|
||||
echo "\n------ Mitigation Stats ------"
|
||||
echo "Source\t\tCount\tSOC\tTime\tVoltage"
|
||||
for f in `ls /sys/devices/virtual/pmic/mitigation/last_triggered_count/*`
|
||||
do
|
||||
count=`cat $f`
|
||||
a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/last_triggered_count\//}
|
||||
b=${f/last_triggered_count/last_triggered_capacity}
|
||||
c=${f/last_triggered_count/last_triggered_timestamp/}
|
||||
d=${f/last_triggered_count/last_triggered_voltage/}
|
||||
cnt=`cat $f`
|
||||
cap=`cat ${b/count/cap}`
|
||||
ti=`cat ${c/count/time}`
|
||||
volt=`cat ${d/count/volt}`
|
||||
echo "${a/_count/} \t$cnt\t$cap\t$ti\t$volt"
|
||||
done
|
||||
|
||||
echo "\n------ Clock Divider Ratio ------"
|
||||
echo \"Source\t\tRatio\"
|
||||
for f in `ls /sys/devices/virtual/pmic/mitigation/clock_ratio/*`
|
||||
do ratio=`cat $f`
|
||||
a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_ratio\//}
|
||||
echo "${a/_ratio/} \t$ratio"
|
||||
done
|
||||
|
||||
echo "\n------ Clock Stats ------"
|
||||
echo "Source\t\tStats"
|
||||
for f in `ls /sys/devices/virtual/pmic/mitigation/clock_stats/*`
|
||||
do
|
||||
stats=`cat $f`
|
||||
a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_stats\//};
|
||||
echo "${a/_stats/} \t$stats"
|
||||
done
|
||||
|
||||
echo "\n------ Triggered Level ------"
|
||||
echo "Source\t\tLevel"
|
||||
for f in `ls /sys/devices/virtual/pmic/mitigation/triggered_lvl/*`
|
||||
do
|
||||
lvl=`cat $f`
|
||||
a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/triggered_lvl\//}
|
||||
echo "${a/_lvl/} \t$lvl"
|
||||
done
|
||||
|
||||
echo "\n------ Instruction ------"
|
||||
for f in `ls /sys/devices/virtual/pmic/mitigation/instruction/*`
|
||||
do
|
||||
val=`cat $f`
|
||||
a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/instruction\//}
|
||||
echo "$a=$val"
|
||||
done
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
[
|
||||
{
|
||||
"remote": "github",
|
||||
"repository": "android_device_google_gs-common",
|
||||
"target_path": "device/google/gs-common"
|
||||
"repository": "device_google_gs101",
|
||||
"target_path": "device/google/gs101"
|
||||
}
|
||||
]
|
||||
|
||||
8
evolution_common.mk
Normal file
8
evolution_common.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# Copyright (C) 2024 The Evolution X Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# PixelParts
|
||||
include packages/apps/PixelParts/device.mk
|
||||
25
factory/factory_post_boot/Android.bp
Normal file
25
factory/factory_post_boot/Android.bp
Normal file
@@ -0,0 +1,25 @@
|
||||
//
|
||||
// Copyright (C) 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.
|
||||
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
sh_binary {
|
||||
name: "factory_post_boot",
|
||||
src: "factory_post_boot.sh",
|
||||
vendor: true,
|
||||
sub_dir: "factory",
|
||||
}
|
||||
|
||||
4
factory/factory_post_boot/factory_post_boot.sh
Normal file
4
factory/factory_post_boot/factory_post_boot.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/vendor/bin/sh
|
||||
|
||||
# Add adbd to nnapi vendor cgroup. (b/222226268)
|
||||
echo `pidof adbd` > /proc/vendor_sched/set_task_group_nnapi
|
||||
15
factory/framework/Android.bp
Normal file
15
factory/framework/Android.bp
Normal file
@@ -0,0 +1,15 @@
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
runtime_resource_overlay {
|
||||
name: "FactoryOverlayFrameworkRes",
|
||||
product_specific: true,
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||
<!-- Copyright (C) 2020 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.
|
||||
@@ -13,15 +13,12 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<!-- Pixel specific tethering overlays -->
|
||||
<!-- Pixel specific factory overlays -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.networkstack.tethering.overlay"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
package="com.android.frameworkres.overlay.factory">
|
||||
<application android:hasCode="false" />
|
||||
<overlay
|
||||
android:targetPackage="com.android.networkstack.tethering"
|
||||
android:targetName="TetheringConfig"
|
||||
android:isStatic="true"
|
||||
android:priority="0" />
|
||||
android:targetPackage="android"
|
||||
android:isStatic="true"
|
||||
android:priority="2"/>
|
||||
</manifest>
|
||||
BIN
factory/framework/res/drawable-nodpi/default_wallpaper.png
Normal file
BIN
factory/framework/res/drawable-nodpi/default_wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
15
factory/launcher3/Android.bp
Normal file
15
factory/launcher3/Android.bp
Normal file
@@ -0,0 +1,15 @@
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
runtime_resource_overlay {
|
||||
name: "FactoryOverlayLauncher3",
|
||||
product_specific: true,
|
||||
}
|
||||
25
factory/launcher3/AndroidManifest.xml
Normal file
25
factory/launcher3/AndroidManifest.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2020 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.
|
||||
-->
|
||||
<!-- Pixel specific factory overlays -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.launcher3.overlay.factory">
|
||||
<application android:hasCode="false" />
|
||||
<overlay
|
||||
android:targetPackage="com.android.launcher3"
|
||||
android:targetName="favorites"
|
||||
android:isStatic="true"
|
||||
android:priority="2"/>
|
||||
</manifest>
|
||||
41
factory/launcher3/res/xml/default_workspace_5x5.xml
Normal file
41
factory/launcher3/res/xml/default_workspace_5x5.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2009 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.
|
||||
-->
|
||||
|
||||
<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
|
||||
|
||||
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
|
||||
<!-- Dialer, Capacity, ELabel, Language, Barcode -->
|
||||
<resolve
|
||||
launcher:container="-101"
|
||||
launcher:screen="0"
|
||||
launcher:x="0"
|
||||
launcher:y="0" >
|
||||
<favorite launcher:uri="#Intent;action=android.intent.action.DIAL;end" />
|
||||
<favorite launcher:uri="tel:123" />
|
||||
<favorite launcher:uri="#Intent;action=android.intent.action.CALL_BUTTON;end" />
|
||||
</resolve>
|
||||
|
||||
<resolve
|
||||
launcher:container="-101"
|
||||
launcher:screen="4"
|
||||
launcher:x="4"
|
||||
launcher:y="0" >
|
||||
<favorite
|
||||
launcher:packageName="com.google_cte.barcodescanner"
|
||||
launcher:className="com.google_cte.barcodescanner.MainActivity" />
|
||||
</resolve>
|
||||
|
||||
</favorites>
|
||||
15
factory/settings/Android.bp
Normal file
15
factory/settings/Android.bp
Normal file
@@ -0,0 +1,15 @@
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
runtime_resource_overlay {
|
||||
name: "FactoryOverlaySettings",
|
||||
product_specific: true,
|
||||
}
|
||||
25
factory/settings/AndroidManifest.xml
Normal file
25
factory/settings/AndroidManifest.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2020 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.
|
||||
-->
|
||||
<!-- Pixel specific factory overlays -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.android.providers.settings.overlay.factory">
|
||||
<application android:hasCode="false" />
|
||||
<overlay
|
||||
android:targetPackage="com.android.providers.settings"
|
||||
android:targetName="resources"
|
||||
android:isStatic="true"
|
||||
android:priority="2"/>
|
||||
</manifest>
|
||||
26
factory/settings/res/values/defaults.xml
Normal file
26
factory/settings/res/values/defaults.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright (c) 2009, 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.
|
||||
*/
|
||||
-->
|
||||
<resources>
|
||||
<integer name="def_lockscreen_sounds_enabled">0</integer>
|
||||
<bool name="def_lockscreen_disabled">true</bool>
|
||||
<bool name="def_dtmf_tones_enabled">false</bool>
|
||||
<bool name="def_sound_effects_enabled">false</bool>
|
||||
<bool name="def_charging_sounds_enabled">false</bool>
|
||||
<string name="def_immersive_mode_confirmations" translatable="false">confirmed</string>
|
||||
</resources>
|
||||
85
factory_common.mk
Normal file
85
factory_common.mk
Normal file
@@ -0,0 +1,85 @@
|
||||
#
|
||||
# Copyright 2020 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.
|
||||
#
|
||||
|
||||
$(call inherit-product, device/google/gs201/aosp_common.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/gs201/factory/pixel/device-factory.mk)
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += service.adb.root=1 \
|
||||
ro.vendor.factory=1
|
||||
|
||||
# Factory Libraries of Audio
|
||||
PRODUCT_PACKAGES += audioroute libaudioroutelite
|
||||
|
||||
# Enable fatp by default for factory builds
|
||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
persist.vendor.camera.fatp.enable=1
|
||||
|
||||
# Disable camera related features for factory builds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
vendor.camera.debug.bypass_face_ssd_processor=1 \
|
||||
vendor.camera.debug.csi_ebuf_enable=0 \
|
||||
vendor.camera.debug.enable_face_detection=0 \
|
||||
vendor.camera.debug.force_dpm_on=0 \
|
||||
vendor.camera.debug.force_eis_on=0 \
|
||||
vendor.camera.debug.force_eaf_on=0 \
|
||||
vendor.camera.debug.force_mesh_warp_on=0 \
|
||||
vendor.camera.debug.force_rectiface_node_on=0 \
|
||||
vendor.camera.debug.force_steadiface_on=0 \
|
||||
vendor.camera.debug.force_tnr_on=0 \
|
||||
vendor.camera.debug.force_segmentation_node_on=0 \
|
||||
vendor.camera.debug.enable_saliency=0 \
|
||||
vendor.camera.debug.force_local_tone_mapping_on=0 \
|
||||
vendor.camera.debug.local_tone_mapping_controller_v1.mode=0
|
||||
|
||||
# Disable ScreenDecorations for factory builds
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
debug.disable_screen_decorations=true
|
||||
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
|
||||
|
||||
# factory should always has SELinux permissive
|
||||
BOARD_BOOTCONFIG += androidboot.selinux=permissive
|
||||
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
|
||||
|
||||
# Disable DebugFS restrictions in factory builds
|
||||
PRODUCT_SET_DEBUGFS_RESTRICTIONS := false
|
||||
|
||||
# Disable Bluetooth as default in factory build
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay-factory
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/conf/init.factory.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.factory.rc
|
||||
|
||||
BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/factory_boost
|
||||
|
||||
# Add factory-friendly changes
|
||||
PRODUCT_PACKAGES += \
|
||||
FactoryOverlaySettings \
|
||||
FactoryOverlayLauncher3 \
|
||||
FactoryOverlayFrameworkRes \
|
||||
factory_post_boot
|
||||
|
||||
# To prevent rebooting due to crashing services
|
||||
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
|
||||
init.svc_debug.no_fatal.zygote=true \
|
||||
persist.device_config.configuration.disable_rescue_party=true
|
||||
|
||||
# PixelLogger for RF testing
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
PixelLogger \
|
||||
18
fingerprint/fpc1540/fingerprint_config.mk
Normal file
18
fingerprint/fpc1540/fingerprint_config.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# ----------------------------
|
||||
# Add feature flags below
|
||||
# ----------------------------
|
||||
FPC_CONFIG_BUILD_VERSION=33
|
||||
FPC_CONFIG_CAPACITIVE=1
|
||||
FPC_CONFIG_MAX_NR_TEMPLATES=5
|
||||
FPC_CONFIG_SENSE_TOUCH_CALIBRATION_PATH=/data/fpc/calibration_sense_touch.dat
|
||||
FPC_CONFIG_TA_FS=1
|
||||
FPC_DEFECTIVE_PIXEL_LIST_SIZE=5000
|
||||
FPC_SENSOR_SDK_LOG_LEVEL=3
|
||||
FPC_TEE_RUNTIME=TRUSTY
|
||||
LIBFPC_NAME=libfpc1541_S_nav_debug.a
|
||||
FPC_CONFIG_DEBUG=1
|
||||
FPC_CONFIG_PRODUCT_DEFAULT=FPC_PRODUCT_TYPE1541_S
|
||||
|
||||
#
|
||||
# File included from device/<manufacture>/<>/<device>.mk
|
||||
# Packages to include into the build
|
||||
21
fingerprint/fpc1540/fingerprint_config_factory.mk
Normal file
21
fingerprint/fpc1540/fingerprint_config_factory.mk
Normal file
@@ -0,0 +1,21 @@
|
||||
# ----------------------------
|
||||
# Add feature flags below
|
||||
# ----------------------------
|
||||
FPC_CONFIG_BUILD_VERSION=33
|
||||
FPC_CONFIG_CAPACITIVE=1
|
||||
FPC_CONFIG_MAX_NR_TEMPLATES=5
|
||||
FPC_CONFIG_NAVIGATION=0
|
||||
FPC_CONFIG_SENSE_TOUCH_CALIBRATION_PATH=/data/fpc/calibration_sense_touch.dat
|
||||
FPC_CONFIG_SENSORTEST=1
|
||||
FPC_CONFIG_TA_FS=1
|
||||
FPC_DEFECTIVE_PIXEL_LIST_SIZE=5000
|
||||
FPC_SENSOR_SDK_LOG_LEVEL=3
|
||||
FPC_TEE_RUNTIME=TRUSTY
|
||||
LIBFPC_NAME=libfpc1541_S_nav_debug.a
|
||||
FPC_CONFIG_DEBUG=1
|
||||
FPC_CONFIG_ENGINEERING=1
|
||||
FPC_CONFIG_PRODUCT_DEFAULT=FPC_PRODUCT_TYPE1541_S
|
||||
|
||||
#
|
||||
# File included from device/<manufacture>/<>/<device>.mk
|
||||
# Packages to include into the build
|
||||
27
fingerprint/fpc1540/fp_tool/Android.bp
Normal file
27
fingerprint/fpc1540/fp_tool/Android.bp
Normal file
@@ -0,0 +1,27 @@
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "device_google_gs101_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: ["device_google_gs201_license"],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
srcs: [
|
||||
"fp_test.cpp"
|
||||
],
|
||||
local_include_dirs: ["."],
|
||||
|
||||
name: "fp_test",
|
||||
shared_libs: [
|
||||
"liblog",
|
||||
"libdl",
|
||||
"libutils",
|
||||
"libcutils",
|
||||
"libhidlbase",
|
||||
"android.hardware.biometrics.fingerprint@2.1"
|
||||
],
|
||||
proprietary:true,
|
||||
|
||||
}
|
||||
200
fingerprint/fpc1540/fp_tool/fp_test.cpp
Normal file
200
fingerprint/fpc1540/fp_tool/fp_test.cpp
Normal file
@@ -0,0 +1,200 @@
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <log/log.h>
|
||||
#include "fp_test.h"
|
||||
#include <cutils/properties.h>
|
||||
|
||||
#define TAG "[FP_TEST] "
|
||||
#define LOGI(format,...) ALOGI(TAG format,##__VA_ARGS__)
|
||||
#define LOGD(format,...) ALOGD(TAG format,##__VA_ARGS__)
|
||||
#define LOGE(format,...) ALOGE(TAG format,##__VA_ARGS__)
|
||||
#define CLOGI(format,...) printf(TAG format,##__VA_ARGS__)
|
||||
#define CLOGD(format,...) printf(TAG format,##__VA_ARGS__)
|
||||
#define CLOGE(format,...) printf(TAG format,##__VA_ARGS__)
|
||||
|
||||
#define LOGI_BOTH(format,...) { \
|
||||
ALOGI(TAG format,##__VA_ARGS__) \
|
||||
prinft(TAG format, ##__VA_ARGS__) \
|
||||
} \
|
||||
|
||||
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
|
||||
#define STRING_SIZE 32
|
||||
|
||||
#define FPS_SRV_PROP "fps_hal"
|
||||
#define FPS_SRV_FULL_PROP "init.svc.fps_hal"
|
||||
#define FPS_SRV_STATUS_PROP "vendor.fp.status"
|
||||
|
||||
enum ErrorType {
|
||||
OK,
|
||||
ERROR
|
||||
};
|
||||
|
||||
static const char* const cmdUsage[] = {
|
||||
"-------fp_test tool usage--------",
|
||||
"fp_test -e: Enable FPS service",
|
||||
"fp_test -d: Disable FPS service",
|
||||
"fp_test -i: Idle Mode",
|
||||
"fp_test -n: Navigation Mode",
|
||||
"fp_test -a: Authentication Mode",
|
||||
"---------------------------------",
|
||||
};
|
||||
|
||||
void toolUsage(void) {
|
||||
int numCmdUsage = ARRAY_SIZE(cmdUsage);
|
||||
for(int i = 0; i< numCmdUsage; i++)
|
||||
CLOGI("%s\n",cmdUsage[i]);
|
||||
}
|
||||
|
||||
int checkParameter(int num, char **strArray)
|
||||
{
|
||||
int ret = 0;
|
||||
char parameter[STRING_SIZE] = {0,};
|
||||
if (num != 2 || (strlen(strArray[1]) > STRING_SIZE)) {
|
||||
return -ERROR;
|
||||
}
|
||||
strcpy(parameter, strArray[1]);
|
||||
if (!strncmp(parameter, "-a", sizeof("-a"))) {
|
||||
CLOGI("Start Authentication Mode!\n");
|
||||
LOGI("Start Authentication Mode!\n");
|
||||
ret = 'a';
|
||||
} else if (!strncmp(parameter, "-n", sizeof("-n"))) {
|
||||
CLOGI("Start Navigation Mode!\n");
|
||||
LOGI("Start Navigation Mode!\n");
|
||||
ret = 'n';
|
||||
} else if (!strncmp(parameter, "-i", sizeof("-i"))) {
|
||||
CLOGI("Start Idle Mode!\n");
|
||||
LOGI("Start Idle Mode!\n");
|
||||
ret = 'n';
|
||||
} else if (!strncmp(parameter, "-e", sizeof("-e"))) {
|
||||
CLOGI("Start enabling FPS service!\n");
|
||||
LOGI("Start enabling FPS service!\n");
|
||||
ret = 'e';
|
||||
} else if (!strncmp(parameter, "-d", sizeof("-d"))) {
|
||||
CLOGI("Start disabling FPS service!\n");
|
||||
LOGI("Start disabling FPS service!\n");
|
||||
ret = 'd';
|
||||
} else {
|
||||
ret = -ERROR;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
int enable_disable_fps(bool set)
|
||||
{
|
||||
int ret = 0;
|
||||
// Set property to enable/disable fingerprint service
|
||||
if (set == true) {
|
||||
ret = property_set("ctl.start", FPS_SRV_PROP);
|
||||
} else {
|
||||
ret = property_set("ctl.stop", FPS_SRV_PROP);
|
||||
}
|
||||
|
||||
if (ret != 0) {
|
||||
CLOGE("Failed to %s FPS service\n", set? "enable" : "disable");
|
||||
LOGE("Failed to %s FPS service\n", set? "enable" : "disable");
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int run_auth_cmd() {
|
||||
RequestStatus hidlRet;
|
||||
uint64_t operationId = 0;
|
||||
uint32_t gid = 0;
|
||||
char tempbuf[PROPERTY_VALUE_MAX];
|
||||
|
||||
property_get(FPS_SRV_FULL_PROP, tempbuf, 0);
|
||||
LOGE("%s : current fp service status is %s!\n",__func__, tempbuf);
|
||||
if (!strncmp(tempbuf, "stopped", strlen("stopped"))) {
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
sp<IBiometricsFingerprint> service = IBiometricsFingerprint::getService();
|
||||
if (service == nullptr) {
|
||||
CLOGE("%s : Fail to get FingerprintService!\n",__func__);
|
||||
LOGE("%s : Fail to get FingerprintService!\n",__func__);
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
hidlRet = service->authenticate(operationId, gid);
|
||||
if (hidlRet == RequestStatus::SYS_OK) {
|
||||
return OK;
|
||||
} else {
|
||||
return -ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
int run_cancel_cmd() {
|
||||
|
||||
RequestStatus hidlRet;
|
||||
char tempbuf[PROPERTY_VALUE_MAX];
|
||||
|
||||
property_get(FPS_SRV_FULL_PROP, tempbuf, 0);
|
||||
LOGE("%s : current fp service status is %s!\n",__func__, tempbuf);
|
||||
if (!strncmp(tempbuf, "stopped", strlen("stopped"))) {
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
sp<IBiometricsFingerprint> service = IBiometricsFingerprint::getService();
|
||||
if (service == nullptr) {
|
||||
CLOGE("%s : Fail to get FingerprintService!\n",__func__);
|
||||
LOGE("%s : Fail to get FingerprintService!\n",__func__);
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
hidlRet = service->cancel();
|
||||
if (hidlRet == RequestStatus::SYS_OK) {
|
||||
return OK;
|
||||
} else {
|
||||
return -ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int input=0;
|
||||
int32_t ret = 0;
|
||||
LOGI("%s",__func__);
|
||||
input = checkParameter(argc, argv);
|
||||
if (input == -ERROR){
|
||||
LOGE("Invalid Parameter\n");
|
||||
CLOGE("Invalid Parameter\n");
|
||||
toolUsage();
|
||||
return -ERROR;
|
||||
}
|
||||
|
||||
switch (input) {
|
||||
case 'e':
|
||||
CLOGI("%s: Enable fingerprint service\n",__func__);
|
||||
LOGI("%s: Enable fingerprint service\n",__func__);
|
||||
ret = enable_disable_fps(true);
|
||||
break;
|
||||
case 'd':
|
||||
CLOGI("%s: Disable fingerprint service\n",__func__);
|
||||
LOGI("%s: Disable fingerprint service\n",__func__);
|
||||
ret = enable_disable_fps(false);
|
||||
break;
|
||||
case 'a':
|
||||
ret = run_auth_cmd();
|
||||
break;
|
||||
// For the rear fingerprint module, calling cancel() will go to the
|
||||
// navigation mode by default.
|
||||
// For other device not enabling naivgation feature, default mode will
|
||||
// be "Idle" by invoking cancel().
|
||||
case 'n':
|
||||
case 'i':
|
||||
default:
|
||||
ret = run_cancel_cmd();
|
||||
break;
|
||||
}
|
||||
|
||||
if (ret != OK)
|
||||
CLOGE("FP HIDL fail to excute cmd '%c'\n", input);
|
||||
else
|
||||
CLOGI("FP HIDL excute cmd '%c' successfully\n", input);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
16
fingerprint/fpc1540/fp_tool/fp_test.h
Normal file
16
fingerprint/fpc1540/fp_tool/fp_test.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#ifndef FP_TEST
|
||||
#define FP_TEST
|
||||
|
||||
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprint.h>
|
||||
#include <android/hardware/biometrics/fingerprint/2.1/IBiometricsFingerprintClientCallback.h>
|
||||
|
||||
using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprint;
|
||||
using android::hardware::biometrics::fingerprint::V2_1::IBiometricsFingerprintClientCallback;
|
||||
using android::hardware::biometrics::fingerprint::V2_1::RequestStatus;
|
||||
using android::sp;
|
||||
|
||||
|
||||
int main(int argc, char *argv[]);
|
||||
void toolUsage(void);
|
||||
|
||||
#endif //FP_TEST
|
||||
8
fingerprint/fpc1540/fpc1540.mk
Normal file
8
fingerprint/fpc1540/fpc1540.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
# Fingerprint
|
||||
include device/google/gs201/fingerprint/fpc1540/fingerprint_config.mk
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.biometrics.fingerprint@2.1-service.fpc \
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
|
||||
10
fingerprint/fpc1540/fpc1540_factory.mk
Normal file
10
fingerprint/fpc1540/fpc1540_factory.mk
Normal file
@@ -0,0 +1,10 @@
|
||||
# Fingerprint
|
||||
include device/google/gs201/fingerprint/fpc1540/fingerprint_config_factory.mk
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
fpc_tee_test\
|
||||
SensorTestTool \
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
com.fingerprints.extension.xml \
|
||||
com.fingerprints.extension \
|
||||
1
firmware/BCM.btaddr
Normal file
1
firmware/BCM.btaddr
Normal file
@@ -0,0 +1 @@
|
||||
22:22:3b:ff:0d:50
|
||||
BIN
firmware/BCM4362A2_001.003.006.0027.0033.hcd
Normal file
BIN
firmware/BCM4362A2_001.003.006.0027.0033.hcd
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.health</name>
|
||||
<version>4</version>
|
||||
<version>3</version>
|
||||
<fqname>IHealth/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
|
||||
22
init.display.sh
Executable file
22
init.display.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/vendor/bin/sh
|
||||
modules_dir=
|
||||
|
||||
for f in /vendor/lib/modules/*/modules.dep /vendor/lib/modules/modules.dep; do
|
||||
if [[ -f "$f" ]]; then
|
||||
modules_dir="$(dirname "$f")"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -z "${modules_dir}" ]]; then
|
||||
echo "Unable to locate kernel modules directory" 2>&1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
panel_drv=`getprop ro.boot.primary_panel_drv`
|
||||
if [[ -z "$panel_drv" ]]; then
|
||||
panel_drv="panel-samsung-emul"
|
||||
fi
|
||||
modprobe -d "${modules_dir}" exynos-drm.ko
|
||||
modprobe -d "${modules_dir}" $panel_drv.ko
|
||||
|
||||
24
init.hardware.wlc.rc.userdebug
Normal file
24
init.hardware.wlc.rc.userdebug
Normal file
@@ -0,0 +1,24 @@
|
||||
#
|
||||
# Copyright (C) 2018 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.
|
||||
#
|
||||
|
||||
on property:sys.boot_completed=1 && property:persist.vendor.limit.wlc.current=1
|
||||
write /sys/class/power_supply/dc/current_max 75000
|
||||
|
||||
on property:sys.boot_completed=1 && property:persist.vendor.limit.wlc.current=0
|
||||
write /sys/class/power_supply/dc/current_max 1100000
|
||||
|
||||
on property:vendor.disable.wlc=1
|
||||
write /sys/class/power_supply/wireless/online 0
|
||||
@@ -1,7 +1,17 @@
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2018 The Android Open Source Project
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// Copyright (C) 2018 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 {
|
||||
// See: http://go/android-license-faq
|
||||
|
||||
34
lineage_common.mk
Normal file
34
lineage_common.mk
Normal file
@@ -0,0 +1,34 @@
|
||||
#
|
||||
# Copyright (C) 2022 The LineageOS Project
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Overlays
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay-lineage
|
||||
|
||||
# AiAi Config
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/gs201/allowlist_com.google.android.as.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/allowlist_com.google.android.as.xml
|
||||
|
||||
# Camera
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
ro.vendor.camera.extensions.package=com.google.android.apps.camera.services \
|
||||
ro.vendor.camera.extensions.service=com.google.android.apps.camera.services.extensions.service.PixelExtensions
|
||||
|
||||
# Google Assistant
|
||||
PRODUCT_PRODUCT_PROPERTIES += ro.opa.eligible_device=true
|
||||
|
||||
# Lineage Health
|
||||
include hardware/google/pixel/lineage_health/device.mk
|
||||
|
||||
# Linker config
|
||||
PRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS += \
|
||||
device/google/gs201/linker.config.json
|
||||
|
||||
# Parts
|
||||
PRODUCT_PACKAGES += \
|
||||
GoogleParts
|
||||
|
||||
# Touch
|
||||
include hardware/google/pixel/touch/device.mk
|
||||
@@ -1,10 +1,5 @@
|
||||
{
|
||||
"provideLibs": [
|
||||
"liboemcrypto.so",
|
||||
"lib_aion_buffer.so",
|
||||
"libedgetpu_client.google.so",
|
||||
"libedgetpu_tachyon.google.so",
|
||||
"libedgetpu_util.so",
|
||||
"libgxp.so"
|
||||
"liboemcrypto.so"
|
||||
]
|
||||
}
|
||||
|
||||
175
location/gps.cer
Normal file
175
location/gps.cer
Normal file
@@ -0,0 +1,175 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
|
||||
RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
|
||||
VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
|
||||
DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
|
||||
ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
|
||||
VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
|
||||
mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
|
||||
IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
|
||||
mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
|
||||
XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
|
||||
dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
|
||||
jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
|
||||
BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
|
||||
DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
|
||||
9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
|
||||
jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
|
||||
Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
|
||||
ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
|
||||
R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
||||
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
||||
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
||||
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
||||
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
||||
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
||||
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
||||
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
||||
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
||||
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
||||
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
||||
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
||||
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
||||
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
||||
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
||||
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
||||
MrY=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
|
||||
yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
|
||||
U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
|
||||
ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
|
||||
MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
|
||||
ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
|
||||
biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
|
||||
U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
|
||||
aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
|
||||
nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
|
||||
t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
|
||||
SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
|
||||
BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
|
||||
rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
|
||||
NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
|
||||
BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
|
||||
BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
|
||||
aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
|
||||
MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
|
||||
p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
|
||||
5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
|
||||
WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
|
||||
4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
|
||||
hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFZTCCA02gAwIBAgIPAWv6o5fPZQ5hxva1vuNrMA0GCSqGSIb3DQEBCwUAMDgx
|
||||
CzAJBgNVBAYTAkpQMRcwFQYDVQQKDA5SYWt1dGVuIE1vYmlsZTEQMA4GA1UEAwwH
|
||||
Um9vdCBDQTAeFw0xOTA3MTYxMTU1NDJaFw0yOTA3MTMxMTU1NDJaMD4xCzAJBgNV
|
||||
BAYTAkpQMRcwFQYDVQQKEw5SYWt1dGVuIE1vYmlsZTEWMBQGA1UEAxMNREMgSXNz
|
||||
dWluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAObjAbQ8TkzF
|
||||
A+/WvSE6fzDf+rlvBKY1dJJbiJ2/j0lc+tj56dE7+BhZ2JVmAYIYfEoUw69dwxTR
|
||||
44EdZln3ZVFmMuOdfxvF9A46pMKzH1skr8ErDgjNyJ9f/JOuQ29p/7BvLC55aRzk
|
||||
yj99BYdzJWKs+5W7jQlv7/HyJ/PQ+rUEBOx4o/YiTucDFduWdV6/x5mcEbKD3ufL
|
||||
66vUEf3MHGegDkOWAMTchl1RmaYDlf3IMsXC7M2bFPFa/9y/vzaaY6EhnJ861co6
|
||||
rkOhTZe/kJZwqQYFmWczBPZK/9zRy3C1zA09tCBk+CDNBrNXe+3dMLFmnW4npxUQ
|
||||
oceTPhaaDo5lA6HkkARwVWLrporFZ2B/th2Bqtu6uObLSB6JMA2jxmKwKukM8/jp
|
||||
C9tKV9X03rHQIQultc63rivPdgQvqYgW1PVdzV1a3pZEMk5zv257+fxgfUGzfUh7
|
||||
tx0OY+BkykSP6ZK/BsbI/BY+rsS0L/0lmC22NU1p+qVeN3ZRHoqntB+FymaBfQ3/
|
||||
yfKkDNfnMua5GzLyyYGYUDDx71rtfrs3hGDiwjvE4B0IvsU0E7Oerk5gLqx8t0q/
|
||||
MmhI+CJJS1bH2sRBMcqfRAv+eyByFsvLY7Er/ztveaabX9xEwyPNFOcU+SZMhipv
|
||||
EUKmUcOAHxzx4HbYEFyM0Z7WgUdlTd1xAgMBAAGjZjBkMB8GA1UdIwQYMBaAFPUI
|
||||
BlLFno+y5xdHlCX349iVyS75MB0GA1UdDgQWBBQzVhTSCf8F31Zf0Bu661qymMko
|
||||
JzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0B
|
||||
AQsFAAOCAgEADQEufjma/6fT/Do4Fh13lZhsowHSsGv5sFYly6224GsciE80ZwYg
|
||||
R4EK/TAR0jorBXsu6sQc51pZ5SSHhIxfo2frfprTPaaWN6cZwfrb6UcnD/FaZ1jP
|
||||
HzWrI3kRxG9JCDffzE8uMf8Rnc69n1j+TBerk4Ix3Zui2TaaF6LVceJ4RgeNkZl0
|
||||
OFkGGFruHz/d83q7A6YjgN0iwMEabdtKH7Sq27LqGPeCS8NuGlrziNAxktdwaYlN
|
||||
D5t6ntM/1nHYPmVqdioEU9vAnyB3BiXOlITPHEEMOSlItcUsJ6rN5DZJaJgkBxvN
|
||||
Qdi6wmaDlxy8XFyy4KGFKWAl17FlfpqW5VtYQJ4aDpibGlGqamg0vm+IJDIGPlOs
|
||||
KQcxG17cOw4MCflAtnzHKHBn52DegQKwxev2ZpqdwVw/NqPq0yTNEbCRqEyiq7+H
|
||||
ljKEFiEjEjeXTcqR4DoCseA5UgcriuriV0OCvr8KTlviV4FEUu+IA9ut8YIvf2of
|
||||
Zz0z8rO4H+Rb4tMi/yBRM09x3rEW4hXwO0qpCBNBa0wEJBxufF3f6l9efEle+YTR
|
||||
XS92gutaoVluqMfRSJckjwWokToi32/FvF79guZymD0qHkOSi5dewsIW7zsdobvv
|
||||
t2CWLfTAb9cx222ELBpVPkfcgUKfF4RCGWPzuAlK6OueuDrInOiz8ag=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFUjCCAzqgAwIBAgICBpAwDQYJKoZIhvcNAQELBQAwODELMAkGA1UEBhMCSlAx
|
||||
FzAVBgNVBAoMDlJha3V0ZW4gTW9iaWxlMRAwDgYDVQQDDAdSb290IENBMB4XDTE5
|
||||
MDcxNjEwNTkwMVoXDTM5MDcxNTEwNTkwMVowODELMAkGA1UEBhMCSlAxFzAVBgNV
|
||||
BAoMDlJha3V0ZW4gTW9iaWxlMRAwDgYDVQQDDAdSb290IENBMIICIjANBgkqhkiG
|
||||
9w0BAQEFAAOCAg8AMIICCgKCAgEAqiPMbNudotG8afkk5Fwo2QdDcFFmC+qGpGjw
|
||||
yQs57QtGPRk1HsIhZFfr6zn8t1tZw6Zo+A0biFA7d2N93nYsseHBy/bZlhhOL+Js
|
||||
Jb907UM09L5xaJIgnbFYVT1QjtB7ksLAy3rHpdSKiggfT1ynwM/u6wIdWRSx24QU
|
||||
Vxpq5iFpVj041+/RnpCPASL5pSnbYZKQyOb/XsOaR+hz7aSjwiUzk2cRjAmRqYxY
|
||||
qYVe135IAy377inJRtUPvi3IhtmUHJToiMLBH5tChkjkIpdRG1lVIj4vGdzrIb+Q
|
||||
Kvg/k7BDVZ3sstsLvJ8evNonBzrqcr80ek/X+HFrgY/3M1VEru4ohLAiA877CuuG
|
||||
UAfrxFh9qjP1yue+dlrQWk+WHMbGMzKI1zCKEMphJatyNHfpRtD8LUWtLV96DD78
|
||||
qLwQwrSYrEMd2u/akeBFKINYWqpqkVBhSsV3eukXVIdSbtSAxZNv+4m6QddEcUvG
|
||||
2ZLf+yCf2tl+LPGXNL08vwMVbQqcDw8m+nDP4vu0VUixddyoqnnDlWOoQESuQFQ1
|
||||
IqYFQhRPs2dFRf5TJzkmbqRUXbaPxsrKGjTtVpPgENbv40nyRGyBbl1CzqpBFEp5
|
||||
7w4MPYDIzWKYbRyCnUE5WScRBFmym7242KA3SOfkylzGMb8KGJxohVME+7oMbNf5
|
||||
EjLWVgECAwEAAaNmMGQwHwYDVR0jBBgwFoAU9QgGUsWej7LnF0eUJffj2JXJLvkw
|
||||
HQYDVR0OBBYEFPUIBlLFno+y5xdHlCX349iVyS75MA4GA1UdDwEB/wQEAwIBBjAS
|
||||
BgNVHRMBAf8ECDAGAQH/AgEBMA0GCSqGSIb3DQEBCwUAA4ICAQCDGIeYrtivFt3p
|
||||
8k5vXKFUT072C7wMvfrAGYCYgIdUthWCqJoMwnG3Fsg7Ngu70La7ESBzEKpnpPWz
|
||||
eIdnREJkNP9iqiKHXnaUV2P/21AS1q6enVKBFOl7dYiVjqOZ+vac3a1UjLWkvm0g
|
||||
x4sg/f3PpiEzZM7ecnQYk2wfMSq8Jw0w1Lf0SEeoYZTkf12cqSJVSa/G7gEdL/Cn
|
||||
LO3yyBq0KPNdd87eIfvCLJj55UJ5dCr0JXRTUteBvJwflbPXmOqfI8fA05fwlJZS
|
||||
o1SBpMI9cEBwaPXQM9CPNKaWLvyOR1KpviRzbCnaKf44Fs2OuZboo3avZrC9eUoU
|
||||
HU2HKXRj8UMRlFeCdNugbOdGyK+CpXwMHVtIrtpf0iOUqo0rOekgnUSNi9qyjD1g
|
||||
IV3Y/NLVl9fqe8q66IWUn8NYndxigMKWcMCBFUjfP0yMZeqSHFiIv7zk9PuV/62k
|
||||
Yele7cK9iHnEUwWBj6VCEs6pZBS1QSmhRw3GWlSDc/gHXd38PG20zH7xg4z2H9Rc
|
||||
Op9P1ZW2kjqv5D2+q/qtaePAyHn3B05UZrQYUmx7LaHNO7op6dZgCdoR0sVsR+Fc
|
||||
Zyr0AhgiuTWrjtUEOGx2qJVwAsHkpqtlN+DaGT08dT64LvIf0bfGvmtm++/WEDWJ
|
||||
HInwg85pGm+sEkYbYFRBD0woPBsL3g==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
|
||||
CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
|
||||
Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
|
||||
MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
|
||||
bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
|
||||
7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
|
||||
0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
|
||||
B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
|
||||
BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
|
||||
LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
|
||||
DXZDjC5Ty3zfDBeWUA==
|
||||
-----END CERTIFICATE-----
|
||||
97
manifest-gralloc3.xml
Normal file
97
manifest-gralloc3.xml
Normal file
@@ -0,0 +1,97 @@
|
||||
<manifest version="1.0" type="device" target-level="7">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.allocator</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.0</version>
|
||||
<interface>
|
||||
<name>IAllocator</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.mapper</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<version>2.0</version>
|
||||
<interface>
|
||||
<name>IMapper</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.composer</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.4</version>
|
||||
<interface>
|
||||
<name>IComposer</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.memtrack</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IMemtrack</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.drm</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>ICryptoFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<interface>
|
||||
<name>IDrmFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<fqname>@1.3::ICryptoFactory/clearkey</fqname>
|
||||
<fqname>@1.3::IDrmFactory/clearkey</fqname>
|
||||
<fqname>@1.3::ICryptoFactory/widevine</fqname>
|
||||
<fqname>@1.3::IDrmFactory/widevine</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.dumpstate</name>
|
||||
<interface>
|
||||
<name>IDumpstateDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.bluetooth.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
<name>IBluetoothAudioProvidersFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<fqname>IBootControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.sensors</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>ISensors</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.neuralnetworks</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>vendor.google.google_battery</name>
|
||||
<version>2-3</version>
|
||||
<interface>
|
||||
<name>IGoogleBattery</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
15
manifest.xml
Normal file
15
manifest.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<manifest version="1.0" type="device" target-level="7">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.mapper</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<version>4.0</version>
|
||||
<interface>
|
||||
<name>IMapper</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<fqname>IBootControl/default</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
20
manifest_media.xml
Normal file
20
manifest_media.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default1</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
11
manifest_media_aosp.xml
Normal file
11
manifest_media_aosp.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.c2</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.2</version>
|
||||
<interface>
|
||||
<name>IComponentStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
</manifest>
|
||||
53
manifest_radio_ds.xml
Normal file
53
manifest_radio_ds.xml
Normal file
@@ -0,0 +1,53 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.radio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::ISap/slot1</fqname>
|
||||
<fqname>@1.2::ISap/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.config</name>
|
||||
<fqname>IRadioConfig/default</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.data</name>
|
||||
<fqname>IRadioData/slot1</fqname>
|
||||
<fqname>IRadioData/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.messaging</name>
|
||||
<fqname>IRadioMessaging/slot1</fqname>
|
||||
<fqname>IRadioMessaging/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.modem</name>
|
||||
<fqname>IRadioModem/slot1</fqname>
|
||||
<fqname>IRadioModem/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.network</name>
|
||||
<fqname>IRadioNetwork/slot1</fqname>
|
||||
<fqname>IRadioNetwork/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.sim</name>
|
||||
<fqname>IRadioSim/slot1</fqname>
|
||||
<fqname>IRadioSim/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.radio.voice</name>
|
||||
<fqname>IRadioVoice/slot1</fqname>
|
||||
<fqname>IRadioVoice/slot2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.secure_element</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::ISecureElement/SIM1</fqname>
|
||||
<fqname>@1.2::ISecureElement/SIM2</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.samsung_slsi.telephony.hardware.radioExternal</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.1::IOemSlsiRadioExternal/rilExternal</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
82
media_codecs.xml
Normal file
82
media_codecs.xml
Normal file
@@ -0,0 +1,82 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright (C) 2012 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.
|
||||
-->
|
||||
|
||||
<!--
|
||||
<!DOCTYPE MediaCodecs [
|
||||
<!ELEMENT Include EMPTY>
|
||||
<!ATTLIST Include href CDATA #REQUIRED>
|
||||
<!ELEMENT MediaCodecs (Decoders|Encoders|Include)*>
|
||||
<!ELEMENT Decoders (MediaCodec|Include)*>
|
||||
<!ELEMENT Encoders (MediaCodec|Include)*>
|
||||
<!ELEMENT MediaCodec (Type|Quirk|Include)*>
|
||||
<!ATTLIST MediaCodec name CDATA #REQUIRED>
|
||||
<!ATTLIST MediaCodec type CDATA>
|
||||
<!ELEMENT Type EMPTY>
|
||||
<!ATTLIST Type name CDATA #REQUIRED>
|
||||
<!ELEMENT Quirk EMPTY>
|
||||
<!ATTLIST Quirk name CDATA #REQUIRED>
|
||||
]>
|
||||
|
||||
There's a simple and a complex syntax to declare the availability of a
|
||||
media codec:
|
||||
|
||||
A codec that properly follows the OpenMax spec and therefore doesn't have any
|
||||
quirks and that only supports a single content type can be declared like so:
|
||||
|
||||
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
|
||||
|
||||
If a codec has quirks OR supports multiple content types, the following syntax
|
||||
can be used:
|
||||
|
||||
<MediaCodec name="OMX.foo.bar" >
|
||||
<Type name="something/interesting" />
|
||||
<Type name="something/else" />
|
||||
...
|
||||
<Quirk name="requires-allocate-on-input-ports" />
|
||||
<Quirk name="requires-allocate-on-output-ports" />
|
||||
<Quirk name="output-buffers-are-unreadable" />
|
||||
</MediaCodec>
|
||||
|
||||
Only the three quirks included above are recognized at this point:
|
||||
|
||||
"requires-allocate-on-input-ports"
|
||||
must be advertised if the component does not properly support specification
|
||||
of input buffers using the OMX_UseBuffer(...) API but instead requires
|
||||
OMX_AllocateBuffer to be used.
|
||||
|
||||
"requires-allocate-on-output-ports"
|
||||
must be advertised if the component does not properly support specification
|
||||
of output buffers using the OMX_UseBuffer(...) API but instead requires
|
||||
OMX_AllocateBuffer to be used.
|
||||
|
||||
"output-buffers-are-unreadable"
|
||||
must be advertised if the emitted output buffers of a decoder component
|
||||
are not readable, i.e. use a custom format even though abusing one of
|
||||
the official OMX colorspace constants.
|
||||
Clients of such decoders will not be able to access the decoded data,
|
||||
naturally making the component much less useful. The only use for
|
||||
a component with this quirk is to render the output to the screen.
|
||||
Audio decoders MUST NOT advertise this quirk.
|
||||
Video decoders that advertise this quirk must be accompanied by a
|
||||
corresponding color space converter for thumbnail extraction,
|
||||
matching surfaceflinger support that can render the custom format to
|
||||
a texture and possibly other code, so just DON'T USE THIS QUIRK.
|
||||
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Include href="media_codecs_google_telephony.xml" />
|
||||
</MediaCodecs>
|
||||
251
media_codecs_aosp_c2.xml
Normal file
251
media_codecs_aosp_c2.xml
Normal file
@@ -0,0 +1,251 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2018 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.
|
||||
-->
|
||||
<MediaCodecs>
|
||||
<Settings>
|
||||
<Setting name="supports-multiple-secure-codecs" value="true" />
|
||||
<Setting name="supports-secure-with-non-secure-codec" value="true" />
|
||||
</Settings>
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.exynos.h264.decoder" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32640" />
|
||||
<Limit name="blocks-per-second" min="1" max="3916800" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es">
|
||||
<Limit name="size" min="32x32" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.decoder" type="video/3gpp">
|
||||
<Limit name="size" min="32x32" max="2048x1152" />
|
||||
<Limit name="alignment" value="4x4" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-9216" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="2" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="low-latency" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
|
||||
<Encoders>
|
||||
<MediaCodec name="c2.exynos.h264.encoder" type="video/avc">
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CBR-FD" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="32x32" />
|
||||
<Limit name="block-count" range="1-8160" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="quality" range="0-100" default="57" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="hdr-editing" />
|
||||
<Feature name="bitrate-modes" value="VBR,CBR,CQ,CBR-FD" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es">
|
||||
<Limit name="size" min="32x32" max="2048x2048" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-16384" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp">
|
||||
<Limit name="size" min="32x32" max="2048x1152" />
|
||||
<Limit name="alignment" value="4x4" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-9216" />
|
||||
<Limit name="blocks-per-second" min="1" max="979200" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1280x720" range="240" />
|
||||
<Limit name="performance-point-1920x1080" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" >
|
||||
<Limit name="size" min="32x32" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="1-32400" />
|
||||
<Limit name="blocks-per-second" min="1" max="3888000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" >
|
||||
<Limit name="size" min="64x64" max="3840x2176" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="64x64" />
|
||||
<Limit name="block-count" range="1-2040" />
|
||||
<Limit name="blocks-per-second" min="1" max="243000" />
|
||||
<Limit name="bitrate" range="1-80000000" />
|
||||
<Limit name="performance-point-1920x1080" range="240" />
|
||||
<Limit name="performance-point-3840x2160" range="120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
<Feature name="vq-minimum-quality"/>
|
||||
<Feature name="qp-bounds"/>
|
||||
<Feature name="encoding-statistics"/>
|
||||
<Feature name="bitrate-modes" value="VBR,CBR" />
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
||||
52
media_codecs_bo_c2.xml
Normal file
52
media_codecs_bo_c2.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2018 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.
|
||||
-->
|
||||
<MediaCodecs>
|
||||
<Include href="media_codecs_aosp_c2.xml" />
|
||||
<Include href="media_codecs_dolby_c2.xml" />
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="frame-rate" range="1-120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-1920x1080" value="180" />
|
||||
<Limit name="performance-point-1920x1079" value="120" />
|
||||
<Limit name="performance-point-3840x2160" value="60" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01">
|
||||
<Limit name="size" min="96x96" max="3840x2160" />
|
||||
<Limit name="alignment" value="2x2" />
|
||||
<Limit name="block-size" value="16x16" />
|
||||
<Limit name="block-count" range="36-32400" />
|
||||
<Limit name="blocks-per-second" min="24" max="1944000" />
|
||||
<Limit name="bitrate" range="1-120000000" />
|
||||
<Limit name="frame-rate" range="1-120" />
|
||||
<Limit name="concurrent-instances" max="16" />
|
||||
<Limit name="performance-point-1920x1080" value="180" />
|
||||
<Limit name="performance-point-1920x1079" value="120" />
|
||||
<Limit name="performance-point-3840x2160" value="60" />
|
||||
<Feature name="adaptive-playback" />
|
||||
<Feature name="secure-playback" required="true" />
|
||||
<Feature name="can-swap-width-height" value="1" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
</MediaCodecs>
|
||||
18
media_codecs_performance.xml
Normal file
18
media_codecs_performance.xml
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2016 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.
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
</MediaCodecs>
|
||||
264
media_codecs_performance_c2.xml
Normal file
264
media_codecs_performance_c2.xml
Normal file
@@ -0,0 +1,264 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!-- Copyright 2016 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.
|
||||
-->
|
||||
|
||||
<MediaCodecs>
|
||||
<Decoders>
|
||||
<MediaCodec name="c2.exynos.h264.decoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:528-534 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:550-560 med:551 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:540-561 med:541 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:409-413 med:410 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h264.decoder.secure" type="video/avc" update="true">
|
||||
<!-- measured 90%:528-534 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="528-531" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:550-560 med:551 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="550-555" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:540-561 med:541 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="540-551" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:409-413 med:410 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1088" range="409-411" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder" type="video/hevc" update="true">
|
||||
<!-- measured 90%:529-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:546-549 med:546 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:547-560 med:547 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:569-574 med:570 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:159-160 med:159 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.decoder.secure" type="video/hevc" update="true">
|
||||
<!-- measured 90%:529-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="1150-1250" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-530 med:529 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="528-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:546-549 med:546 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="546-548" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:547-560 med:547 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="547-553" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:569-574 med:570 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="569-572" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:159-160 med:159 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="159-159" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<!-- measured 90%:527-537 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-176x144" range="527-532" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:387-391 med:387 N=2 -->
|
||||
<Limit name="measured-frame-rate-480x360" range="387-389" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.decoder" type="video/3gpp" update="true">
|
||||
<!-- measured 90%:521-541 med:521 N=2 -->
|
||||
<Limit name="measured-frame-rate-176x144" range="1300-1400" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:528-540 med:528 N=2 -->
|
||||
<Limit name="measured-frame-rate-352x288" range="528-534" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<!-- measured 90%:451-555 med:452 SLOW N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="451-500" /> <!-- v90%=1.1 -->
|
||||
<!-- measured 90%:486-504 med:486 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="486-495" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:518-566 med:518 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="518-542" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:386-387 med:386 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="386-386" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<!-- measured 90%:523-536 med:524 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:503-506 med:504 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:510-518 med:511 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:349-351 med:350 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:100-101 med:100 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.decoder.secure" type="video/x-vnd.on2.vp9" update="true">
|
||||
<!-- measured 90%:523-536 med:524 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="523-529" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:503-506 med:504 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="503-505" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:510-518 med:511 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="510-514" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:349-351 med:350 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="349-350" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:100-101 med:100 N=2 -->
|
||||
<Limit name="measured-frame-rate-3840x2160" range="100-100" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
|
||||
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1504-2256" />
|
||||
<Limit name="measured-frame-rate-352x288" range="893-1339" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:342-360 med:343 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="342-351" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:142-147 med:143 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="142-145" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:54-56 med:55 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="54-55" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:25-26 med:26 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="25-26" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="583-674" />
|
||||
<!-- measured 90%:196-207 med:196 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-201" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:177-180 med:178 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="177-178" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:81-82 med:82 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="81-82" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:45-47 med:46 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="45-46" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1215-1823" />
|
||||
<Limit name="measured-frame-rate-480x360" range="830-1246" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="265-397" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="847-1271" />
|
||||
<Limit name="measured-frame-rate-640x360" range="412-618" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="119-178" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="47-70" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="622-934" />
|
||||
<Limit name="measured-frame-rate-640x360" range="418-627" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="123-185" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="75-112" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="630-748" />
|
||||
<Limit name="measured-frame-rate-640x360" range="586-700" />
|
||||
<Limit name="measured-frame-rate-720x480" range="575-690" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="247-460" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="219-252" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.google.av1.decoder.secure" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="630-748" />
|
||||
<Limit name="measured-frame-rate-640x360" range="586-700" />
|
||||
<Limit name="measured-frame-rate-720x480" range="575-690" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="247-460" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="219-252" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="358-383" />
|
||||
<Limit name="measured-frame-rate-640x360" range="207-221" />
|
||||
<Limit name="measured-frame-rate-720x480" range="106-148" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="65-71" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
|
||||
<Limit name="measured-frame-rate-352x288" range="848-1033" />
|
||||
<Limit name="measured-frame-rate-640x360" range="450-685" />
|
||||
<Limit name="measured-frame-rate-720x480" range="406-484" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="148-187" />
|
||||
</MediaCodec>
|
||||
</Decoders>
|
||||
|
||||
<Encoders>
|
||||
<MediaCodec name="c2.exynos.h264.encoder" type="video/avc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="372-551" />
|
||||
<Limit name="measured-frame-rate-720x480" range="221-308" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="151-190" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="58-99" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.hevc.encoder" type="video/hevc" update="true">
|
||||
<Limit name="measured-frame-rate-320x240" range="371-553" />
|
||||
<Limit name="measured-frame-rate-720x480" range="214-305" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="154-198" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="46-97" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="380-566" />
|
||||
<Limit name="measured-frame-rate-352x288" range="222-250" />
|
||||
<Limit name="measured-frame-rate-640x480" range="103-124" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.h263.encoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="500-751" />
|
||||
<Limit name="measured-frame-rate-352x288" range="236-355" />
|
||||
<Limit name="measured-frame-rate-704x576" range="76-114" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="378-488" />
|
||||
<Limit name="measured-frame-rate-640x360" range="267-351" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="113-170" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="55-82" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.exynos.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="302-453" />
|
||||
<Limit name="measured-frame-rate-640x360" range="188-283" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="160-240" />
|
||||
<Limit name="measured-frame-rate-1920x1080" range="100-151" />
|
||||
</MediaCodec>
|
||||
|
||||
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1452-2178" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
|
||||
<!-- measured 90%:345-350 med:345 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="345-347" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:101-103 med:101 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="101-102" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:54-55 med:54 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="54-54" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:28-30 med:29 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="28-29" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
|
||||
<!-- measured 90%:61-65 med:62 N=8 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="50-80" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
|
||||
<Limit name="measured-frame-rate-176x144" range="1201-1801" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
|
||||
<!-- measured 90%:49-87 med:50 SLOW N=2 -->
|
||||
<Limit name="measured-frame-rate-320x180" range="394-395" /> <!-- v90%=1.3 -->
|
||||
<!-- measured 90%:55-57 med:56 N=2 -->
|
||||
<Limit name="measured-frame-rate-640x360" range="196-197" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:34-35 med:34 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="34-34" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:29-31 med:30 N=2 -->
|
||||
<Limit name="measured-frame-rate-1920x1080" range="29-30" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
|
||||
<Limit name="measured-frame-rate-320x180" range="345-518" />
|
||||
<Limit name="measured-frame-rate-640x360" range="91-136" />
|
||||
<Limit name="measured-frame-rate-1280x720" range="24-36" />
|
||||
</MediaCodec>
|
||||
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
|
||||
<!-- measured 90%:354-361 med:355 N=2 -->
|
||||
<Limit name="measured-frame-rate-320x240" range="354-358" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:81-85 med:81 N=2 -->
|
||||
<Limit name="measured-frame-rate-720x480" range="81-83" /> <!-- v90%=1.0 -->
|
||||
<!-- measured 90%:32-33 med:33 N=2 -->
|
||||
<Limit name="measured-frame-rate-1280x720" range="32-33" /> <!-- v90%=1.0 -->
|
||||
</MediaCodec>
|
||||
</Encoders>
|
||||
</MediaCodecs>
|
||||
895
media_profiles.xml
Normal file
895
media_profiles.xml
Normal file
@@ -0,0 +1,895 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2010 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.
|
||||
-->
|
||||
<!DOCTYPE MediaSettings [
|
||||
<!ELEMENT MediaSettings (CamcorderProfiles,
|
||||
EncoderOutputFileFormat+,
|
||||
VideoEncoderCap+,
|
||||
AudioEncoderCap+,
|
||||
VideoDecoderCap,
|
||||
AudioDecoderCap)>
|
||||
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
|
||||
<!ELEMENT EncoderProfile (Video, Audio)>
|
||||
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
|
||||
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
|
||||
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
|
||||
<!ELEMENT Video EMPTY>
|
||||
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
|
||||
<!ATTLIST Video bitRate CDATA #REQUIRED>
|
||||
<!ATTLIST Video width CDATA #REQUIRED>
|
||||
<!ATTLIST Video height CDATA #REQUIRED>
|
||||
<!ATTLIST Video frameRate CDATA #REQUIRED>
|
||||
<!ELEMENT Audio EMPTY>
|
||||
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
|
||||
<!ATTLIST Audio bitRate CDATA #REQUIRED>
|
||||
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST Audio channels (1|2) #REQUIRED>
|
||||
<!ELEMENT ImageEncoding EMPTY>
|
||||
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
|
||||
<!ELEMENT ImageDecoding EMPTY>
|
||||
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
|
||||
<!ELEMENT Camera EMPTY>
|
||||
<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
|
||||
<!ELEMENT EncoderOutputFileFormat EMPTY>
|
||||
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
|
||||
<!ELEMENT VideoEncoderCap EMPTY>
|
||||
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
|
||||
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
|
||||
<!ELEMENT AudioEncoderCap EMPTY>
|
||||
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
|
||||
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
|
||||
<!ELEMENT VideoDecoderCap EMPTY>
|
||||
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
|
||||
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
|
||||
<!ELEMENT AudioDecoderCap EMPTY>
|
||||
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
|
||||
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
|
||||
]>
|
||||
<!--
|
||||
This file is used to declare the multimedia profiles and capabilities
|
||||
on an android-powered device.
|
||||
-->
|
||||
<MediaSettings>
|
||||
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||
<CamcorderProfiles cameraId="0">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="1">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="2">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="3">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="4">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="5">
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="42000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="240" />
|
||||
|
||||
<!-- audio setting is ignored -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
<CamcorderProfiles cameraId="6">
|
||||
|
||||
<EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
<EncoderProfile quality="480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="12000000"
|
||||
width="1920"
|
||||
height="1080"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="8000000"
|
||||
width="1280"
|
||||
height="720"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="3000000"
|
||||
width="720"
|
||||
height="480"
|
||||
frameRate="30" />
|
||||
|
||||
<!-- Audio settings are not used for timealpse video recording -->
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="16000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<ImageEncoding quality="90" />
|
||||
<ImageEncoding quality="80" />
|
||||
<ImageEncoding quality="70" />
|
||||
<ImageDecoding memCap="20000000" />
|
||||
|
||||
</CamcorderProfiles>
|
||||
|
||||
|
||||
|
||||
<EncoderOutputFileFormat name="3gp" />
|
||||
<EncoderOutputFileFormat name="mp4" />
|
||||
|
||||
<!--
|
||||
If a codec is not enabled, it is invisible to the applications
|
||||
In other words, the applications won't be able to use the codec
|
||||
or query the capabilities of the codec at all if it is disabled
|
||||
-->
|
||||
|
||||
<!--
|
||||
FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
|
||||
codec cap
|
||||
-->
|
||||
<VideoEncoderCap name="h264" enabled="true"
|
||||
minBitRate="64000" maxBitRate="12000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h263" enabled="true"
|
||||
minBitRate="64000" maxBitRate="1000000"
|
||||
minFrameWidth="128" maxFrameWidth="1920"
|
||||
minFrameHeight="96" maxFrameHeight="1080"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="m4v" enabled="true"
|
||||
minBitRate="64000" maxBitRate="2000000"
|
||||
minFrameWidth="128" maxFrameWidth="1920"
|
||||
minFrameHeight="96" maxFrameHeight="1080"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<AudioEncoderCap name="aac" enabled="true"
|
||||
minBitRate="758" maxBitRate="288000"
|
||||
minSampleRate="8000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="heaac" enabled="true"
|
||||
minBitRate="8000" maxBitRate="64000"
|
||||
minSampleRate="16000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="aaceld" enabled="true"
|
||||
minBitRate="16000" maxBitRate="192000"
|
||||
minSampleRate="16000" maxSampleRate="48000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="amrwb" enabled="true"
|
||||
minBitRate="6600" maxBitRate="23050"
|
||||
minSampleRate="16000" maxSampleRate="16000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<AudioEncoderCap name="amrnb" enabled="true"
|
||||
minBitRate="5525" maxBitRate="12200"
|
||||
minSampleRate="8000" maxSampleRate="8000"
|
||||
minChannels="1" maxChannels="1" />
|
||||
|
||||
<!--
|
||||
FIXME:
|
||||
We do not check decoder capabilities at present
|
||||
At present, we only check whether windows media is visible
|
||||
for TEST applications. For other applications, we do
|
||||
not perform any checks at all.
|
||||
-->
|
||||
<VideoDecoderCap name="wmv" enabled="false"/>
|
||||
<AudioDecoderCap name="wma" enabled="false"/>
|
||||
</MediaSettings>
|
||||
3
modem/userdebug.mk
Normal file
3
modem/userdebug.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
ifneq ($(BOARD_WITHOUT_RADIO),true)
|
||||
PRODUCT_PACKAGES += vcd
|
||||
endif
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright (c) 2009, 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.
|
||||
*/
|
||||
-->
|
||||
<resources>
|
||||
<!-- Don't enable BT until user wants it -->
|
||||
<bool name="def_bluetooth_on">false</bool>
|
||||
</resources>
|
||||
|
||||
7
overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml
vendored
Normal file
7
overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<resources>
|
||||
<string-array name="logger_entries">
|
||||
<item>shannondm</item>
|
||||
<item>cnss_diag</item>
|
||||
<item>brcm_gps</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
10
overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml
vendored
Normal file
10
overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="config_logger_default_value" translatable="false">shannondm</string>
|
||||
<string name="config_cfg_default_value" translatable="false">Built-in Mask #1</string>
|
||||
|
||||
<!-- default config file for cnss_diag logger -->
|
||||
<string name="config_cfg_default_value_cnss_diag" translatable="false">cnss_diag.conf</string>
|
||||
<!-- config file to enable brcm gps logger -->
|
||||
<bool name="config_brcm_gps_enabled" translatable="false">true</bool>
|
||||
</resources>
|
||||
19
overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml
vendored
Normal file
19
overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string-array name="config_message_no_message">
|
||||
<item></item>
|
||||
</string-array>
|
||||
<string-array name="config_message_audio_warning">
|
||||
<item>This will collect audio from your voice calls. Would you like to proceed?</item>
|
||||
</string-array>
|
||||
<string-array name="config_message_possible_audio_warning">
|
||||
<item>This may collect audio from your voice calls. Would you like to proceed?</item>
|
||||
<item>Pixel_Default.nprf</item>
|
||||
<item>Built-in Mask #0</item>
|
||||
<item>Built-in Mask #1</item>
|
||||
<item>Built-in Mask #2</item>
|
||||
<item>Built-in Mask #3</item>
|
||||
</string-array>
|
||||
<string name="config_privacy_warning_title">Privacy Warning</string>
|
||||
<string name="default_config_selection_message">You are loading a user defined logging config. This may collect audio from your voice calls. Would you like to proceed?</string>
|
||||
</resources>
|
||||
@@ -31,16 +31,6 @@
|
||||
<!-- B y-intercept --> <item>-0.349361641294833436</item>
|
||||
</string-array>
|
||||
|
||||
<!-- The fixed keyboard vibration strength in [0,1], or -1 to indicate the strength not fixed
|
||||
and should depend on the touch feedback intensity user setting -->
|
||||
<item name="config_keyboardHapticFeedbackFixedAmplitude" type="dimen">0.62</item>
|
||||
|
||||
<!-- Indicating if keyboard vibration settings supported or not. -->
|
||||
<bool name="config_keyboardVibrationSettingsSupported">true</bool>
|
||||
|
||||
<!-- Indicating if ringtone vibration settings supported or not. -->
|
||||
<bool name="config_ringtoneVibrationSettingsSupported">true</bool>
|
||||
|
||||
<!-- List of comma separated package names for which we the system will not show crash, ANR,
|
||||
etc. dialogs. -->
|
||||
<string translatable="false" name="config_appsNotReportingCrashes">com.google.android.euicc</string>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (C) 2021 The LineageOS 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.
|
||||
-->
|
||||
<resources>
|
||||
<bool name="call_recording_enabled">true</bool>
|
||||
<integer name="call_recording_audio_source">4</integer>
|
||||
</resources>
|
||||
@@ -20,33 +20,28 @@
|
||||
<item>connectivity_thermal_power_manager/apply_action_time_seconds=10</item>
|
||||
<item>connectivity_thermal_power_manager/atm_power_threshold_mw=800</item>
|
||||
<item>connectivity_thermal_power_manager/cellular_thermal_adaptive_thermal_status_adaptive_action_list=</item>
|
||||
<item>connectivity_thermal_power_manager/criteria_1_enabled=true</item>
|
||||
<item>connectivity_thermal_power_manager/criteria_4_enabled=true</item>
|
||||
<item>connectivity_thermal_power_manager/criteria_4_lte_pref_mode=3</item>
|
||||
<item>connectivity_thermal_power_manager/wifi_disconnected_time_seconds=180</item>
|
||||
<item>connectivity_thermal_power_manager/wifi_internet_driven_endc_product_carrier_id_set=shiba,husky,akita,komodo,tokay,caiman,comet@1,1989,2023,2576,2067,2071,2073,2577,2522,2075,2578,2083,2433,1949</item>
|
||||
|
||||
<!-- Live Caption (Pixel 2017 + OEM) -->
|
||||
<item>device_personalization_services/Captions__allow_box_x_axis_movement=true</item>
|
||||
<item>device_personalization_services/Captions__allow_use_public_speech_recognition=true</item>
|
||||
<item>device_personalization_services/Captions__allow_voip_call_without_audio_recording=true</item>
|
||||
<item>device_personalization_services/Captions__available_for_download=en-US;en-GB;en-CA;en-IE;en-AU;en-SG;en-IN;fr-FR;fr-CA;fr-BE;fr-CH;it-IT;it-CH;de-DE;de-AT;de-BE;de-CH;ja-JP;es-ES;es-US;cmn-Hant-TW;hi-IN;pt-BR;tr-TR;pl-PL;cmn-Hans-CN;ko-KR;ru-RU;vi-VN</item>
|
||||
<item>device_personalization_services/Captions__allow_voip_call_without_audio_recording=false</item>
|
||||
<item>device_personalization_services/Captions__available_for_download=en-US;en-GB;en-CA;en-IE;en-AU;en-SG;en-IN;fr-FR;fr-CA;fr-BE;fr-CH;it-IT;it-CH;de-DE;de-AT;de-BE;de-CH;ja-JP;es-ES;es-US;cmn-Hant-TW;hi-IN</item>
|
||||
<item>device_personalization_services/Captions__disable_prod=false</item>
|
||||
<!-- <item>device_personalization_services/Captions__enable=false</item> -->
|
||||
<item>device_personalization_services/Captions__enable_activation_boost=true</item>
|
||||
<item>device_personalization_services/Captions__enable_adaptive_box_width=true</item>
|
||||
<item>device_personalization_services/Captions__enable_augmented_modality=true</item>
|
||||
<item>device_personalization_services/Captions__enable_augmented_modality_input=true</item>
|
||||
<item>device_personalization_services/Captions__enable_augmented_modality_language_detection=true</item>
|
||||
<item>device_personalization_services/Captions__enable_augmented_music=true</item>
|
||||
<!-- <item>device_personalization_services/Captions__enable_clearcut_logging=true</item> -->
|
||||
<item>device_personalization_services/Captions__enable_drag_and_double_tap_to_resize=true</item>
|
||||
<item>device_personalization_services/Captions__enable_ec_integration=false</item>
|
||||
<item>device_personalization_services/Captions__enable_drag_and_double_tap_to_resize=false</item>
|
||||
<item>device_personalization_services/Captions__enable_language_detection=true</item>
|
||||
<item>device_personalization_services/Captions__enable_one_caption_experiment=false</item>
|
||||
<item>device_personalization_services/Captions__enable_punctuations=true</item>
|
||||
<item>device_personalization_services/Captions__enable_setting_page=false</item>
|
||||
<item>device_personalization_services/Captions__enable_survey=false</item>
|
||||
<item>device_personalization_services/Captions__enable_text_transform=true</item>
|
||||
<item>device_personalization_services/Captions__enable_westworld_logging=false</item>
|
||||
<item>device_personalization_services/Captions__enable_zero_day=false</item>
|
||||
@@ -56,9 +51,7 @@
|
||||
<item>device_personalization_services/Captions__new_model_version=20210623</item>
|
||||
<item>device_personalization_services/Captions__new_model_version_advanced_2022=20230807</item>
|
||||
<item>device_personalization_services/Captions__speech_threshold=0.2</item>
|
||||
<item>device_personalization_services/Captions__support_lang_id_disabled_after_dismissals=true</item>
|
||||
<item>device_personalization_services/Captions__supported_languages=en-US;fr-FR;it-IT;de-DE;ja-JP;es-ES;cmn-Hant-TW;hi-IN;pt-BR;tr-TR;pl-PL;cmn-Hans-CN;ko-KR;ru-RU;vi-VN</item>
|
||||
<item>device_personalization_services/Captions__supported_languages_beta_quality=ja-JP;pt-BR;tr-TR;pl-PL;cmn-Hans-CN;ko-KR;ru-RU;vi-VN</item>
|
||||
<item>device_personalization_services/Captions__supported_languages=en-US;fr-FR;it-IT;de-DE;ja-JP;es-ES;cmn-Hant-TW;hi-IN</item>
|
||||
<item>device_personalization_services/Captions__surface_sound_events=true</item>
|
||||
<item>device_personalization_services/Captions__text_transform_augmented_input=true</item>
|
||||
<item>device_personalization_services/Captions__visibility_playing_duration_millis=5000</item>
|
||||
@@ -66,23 +59,12 @@
|
||||
|
||||
<!-- Now Playing (Pixel 2017) -->
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_apk_music_detector_min_score=0.45</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_download_album_art_via_astrea=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_enable_resource_download_logging=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_enhanced_metadata_shards_manifest=4003:https://storage.googleapis.com/music-iq-db/updatable_db_v4/20241015-000033/manifest.json</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_get_model_state_cooldown_seconds_cloud_search=9</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_index_manifest_17_09_02=3105:https://storage.googleapis.com/music-iq-db/updatable_db_v3/20241013-030037/manifest.json</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_index_manifest_17_09_02=3082:https://storage.googleapis.com/music-iq-db/updatable_db_v3/20240421-030101/manifest.json</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_matcher_match_threshold_17_09_02=1.0E-6</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_on_demand_enabled=true</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_on_demand_music_confidence=0.48</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_on_demand_search_use_new_opt_in_flow=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_show_album_art=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_support_dsp_model_tflite_p6=true</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_use_enhanced_matches_database=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_use_metadata_shards_database=false</item>
|
||||
<item>device_personalization_services/NowPlaying__ambient_music_use_yt_domain_fife_urls=false</item>
|
||||
<item>device_personalization_services/NowPlaying__cloud_api_allowed=true</item>
|
||||
<item>device_personalization_services/NowPlaying__create_shortcut_on_np_enabled=false</item>
|
||||
<item>device_personalization_services/NowPlaying__default_music_player_setting=false</item>
|
||||
<item>device_personalization_services/NowPlaying__dsp_model_checksum_enabled=true</item>
|
||||
<!-- <item>device_personalization_services/NowPlaying__enable_usage_fa=true</item> -->
|
||||
<item>device_personalization_services/NowPlaying__favorites_enabled=true</item>
|
||||
@@ -91,12 +73,11 @@
|
||||
<item>device_personalization_services/NowPlaying__handle_ambient_music_results_with_history=true</item>
|
||||
<item>device_personalization_services/NowPlaying__min_training_interval_millis=86400000</item>
|
||||
<item>device_personalization_services/NowPlaying__nnfp_v3_model_enabled=true</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_enable_eager_prompt=false</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_enable_eager_prompt=true</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_fingerprinter_being_setup_warning=true</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_hide_if_fingerprinter_install_not_confirmed=true</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_min_supported_aga_version=12.35.17</item>
|
||||
<item>device_personalization_services/NowPlaying__on_demand_retry_fingerprinter_install=true</item>
|
||||
<item>device_personalization_services/NowPlaying__shortcut_direct_create_enabled=false</item>
|
||||
<item>device_personalization_services/NowPlaying__youtube_export_enabled=true</item>
|
||||
|
||||
<!-- Adaptive Sound (Pixel 2020) -->
|
||||
@@ -121,13 +102,11 @@
|
||||
<item>device_personalization_services/Translate__differentiate_simplified_and_traditional_chinese=true</item>
|
||||
<item>device_personalization_services/Translate__disable_translate_without_system_animation=false</item>
|
||||
<item>device_personalization_services/Translate__enable_chronicle_migration=true</item>
|
||||
<item>device_personalization_services/Translate__enable_default_langid_model=true</item>
|
||||
<item>device_personalization_services/Translate__enable_default_langid_model=false</item>
|
||||
<item>device_personalization_services/Translate__enable_dictionary_langid_detection=true</item>
|
||||
<item>device_personalization_services/Translate__enable_opmv4_service=true</item>
|
||||
<item>device_personalization_services/Translate__enable_settings_backup_restore=false</item>
|
||||
<item>device_personalization_services/Translate__enable_setup_wizard_dialog_v2=false</item>
|
||||
<item>device_personalization_services/Translate__enable_spa_setting=false</item>
|
||||
<item>device_personalization_services/Translate__enable_translate_kit_api_migration=false</item>
|
||||
<item>device_personalization_services/Translate__interpreter_source_languages=de,en,ja,es,fr,it</item>
|
||||
<item>device_personalization_services/Translate__interpreter_target_languages=de,en,ja,es,fr,it</item>
|
||||
<item>device_personalization_services/Translate__replace_auto_translate_copied_text_enabled=true</item>
|
||||
|
||||
@@ -241,6 +241,12 @@
|
||||
<item>"/system_ext/priv-app/SystemUI/SystemUI.apk"</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Should the pinner service pin the Home application? -->
|
||||
<bool name="config_pinnerHomeApp">true</bool>
|
||||
|
||||
<!-- Bytes that the PinnerService will pin for WebView -->
|
||||
<integer name="config_pinnerWebviewPinBytes">20971520</integer>
|
||||
|
||||
<!-- The default intensity level for alarm vibrations. See
|
||||
Settings.System.ALARM_VIBRATION_INTENSITY more details on the constant values and
|
||||
meanings. -->
|
||||
@@ -270,9 +276,6 @@
|
||||
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
|
||||
<bool name="config_zramWriteback">true</bool>
|
||||
|
||||
<!-- the number of the max cached processes in the system. -->
|
||||
<integer name="config_customizedMaxCachedProcesses">1024</integer>
|
||||
|
||||
<!-- List of system components which are allowed to receive ServiceState entries in an
|
||||
un-sanitized form, even if the location toggle is off. This is intended ONLY for system
|
||||
components, such as the telephony stack, which require access to the full ServiceState for
|
||||
@@ -309,12 +312,4 @@
|
||||
|
||||
<!-- Pre-scale volume at volume step 3 for Absolute Volume -->
|
||||
<fraction name="config_prescaleAbsoluteVolume_index3">100%</fraction>
|
||||
|
||||
<!-- Whether to enable usb state update via udc sysfs. -->
|
||||
<bool name="config_enableUdcSysfsUsbStateUpdate">true</bool>
|
||||
|
||||
<!-- Whether to enable APDU sender optimization i.e. a logical channel is opened and
|
||||
kept open for multiple APDU commands within one session.-->
|
||||
<bool name="euicc_optimize_apdu_sender">true</bool>
|
||||
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright (c) 2020, 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.
|
||||
*/
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Content description of the data connection type 5G UW. [CHAR LIMIT=NONE] -->
|
||||
<string name="data_connection_5g_plus" translatable="false">5G UW</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/**
|
||||
* Copyright (c) 2020, 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.
|
||||
*/
|
||||
-->
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Content description of the data connection type 5G UW. [CHAR LIMIT=NONE] -->
|
||||
<string name="data_connection_5g_plus" translatable="false">5G UW</string>
|
||||
</resources>
|
||||
@@ -1,7 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
Copyright (C) 2021 The LineageOS 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.
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.lineageos.settings"
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
* Copyright (C) 2021 The LineageOS 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 org.lineageos.settings;
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The LineageOS Project
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
* Copyright (C) 2021 The LineageOS 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 org.lineageos.settings;
|
||||
|
||||
42
pixelstats/Android.bp
Normal file
42
pixelstats/Android.bp
Normal file
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// Copyright (C) 2017 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 {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "pixelstats-vendor",
|
||||
init_rc: ["pixelstats-vendor.gs201.rc"],
|
||||
srcs: [
|
||||
"service.cpp",
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
"liblog",
|
||||
"libutils",
|
||||
"libpixelstats",
|
||||
],
|
||||
proprietary: true,
|
||||
static_libs: ["chre_client"],
|
||||
header_libs: ["chre_api"],
|
||||
}
|
||||
11
pixelstats/pixelstats-vendor.gs201.rc
Normal file
11
pixelstats/pixelstats-vendor.gs201.rc
Normal file
@@ -0,0 +1,11 @@
|
||||
on property:sys.boot_completed=1
|
||||
chown system system /sys/class/power_supply/maxfg_base/fg_learning_events
|
||||
chown system system /sys/class/power_supply/maxfg/fg_learning_events
|
||||
start vendor.pixelstats_vendor
|
||||
on post-fs-data
|
||||
chown system system /sys/kernel/metrics/irq/stats_reset
|
||||
service vendor.pixelstats_vendor /vendor/bin/pixelstats-vendor
|
||||
class hal
|
||||
user system
|
||||
group system context_hub readproc
|
||||
disabled
|
||||
123
pixelstats/service.cpp
Normal file
123
pixelstats/service.cpp
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright (C) 2018 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.
|
||||
*/
|
||||
|
||||
#define LOG_TAG "pixelstats"
|
||||
|
||||
#include <android-base/logging.h>
|
||||
#include <pixelstats/SysfsCollector.h>
|
||||
#include <pixelstats/UeventListener.h>
|
||||
|
||||
#include <thread>
|
||||
|
||||
#include <pixelstats/SysfsCollector.h>
|
||||
#include <pixelstats/UeventListener.h>
|
||||
|
||||
using android::hardware::google::pixel::SysfsCollector;
|
||||
using android::hardware::google::pixel::UeventListener;
|
||||
|
||||
#define BLOCK_STATS_LENGTH 17
|
||||
#define UFSHC_PATH(filename) "/dev/sys/block/bootdevice/" #filename
|
||||
#define UFS_ERR_PATH(err_type) UFSHC_PATH(err_stats/) #err_type
|
||||
const struct SysfsCollector::SysfsPaths sysfs_paths = {
|
||||
.SlowioReadCntPath = UFSHC_PATH(slowio_read_cnt),
|
||||
.SlowioWriteCntPath = UFSHC_PATH(slowio_write_cnt),
|
||||
.SlowioUnmapCntPath = UFSHC_PATH(slowio_unmap_cnt),
|
||||
.SlowioSyncCntPath = UFSHC_PATH(slowio_sync_cnt),
|
||||
.CycleCountBinsPath = "/sys/class/power_supply/battery/cycle_counts",
|
||||
.UFSLifetimeA = UFSHC_PATH(health_descriptor/life_time_estimation_a),
|
||||
.UFSLifetimeB = UFSHC_PATH(health_descriptor/life_time_estimation_b),
|
||||
.UFSLifetimeC = UFSHC_PATH(health_descriptor/life_time_estimation_c),
|
||||
.F2fsStatsPath = "/sys/fs/f2fs/",
|
||||
.ImpedancePath = "/sys/devices/platform/audiometrics/speaker_impedance",
|
||||
.CodecPath = "/sys/devices/platform/audiometrics/codec_state",
|
||||
.EEPROMPath = "/dev/battery_history",
|
||||
.MitigationPath = "/sys/devices/virtual/pmic/mitigation",
|
||||
.MitigationDurationPath = "/sys/devices/virtual/pmic/mitigation/irq_dur_cnt",
|
||||
.BrownoutReasonProp = "vendor.brownout_reason",
|
||||
.BrownoutLogPath = "/data/vendor/mitigation/lastmeal.txt",
|
||||
.SpeakerTemperaturePath = "/sys/devices/platform/audiometrics/speaker_temp",
|
||||
.SpeakerExcursionPath = "/sys/devices/platform/audiometrics/speaker_excursion",
|
||||
.SpeakerHeartBeatPath = "/sys/devices/platform/audiometrics/speaker_heartbeat",
|
||||
.UFSErrStatsPath = {
|
||||
UFS_ERR_PATH(pa_err_count),
|
||||
UFS_ERR_PATH(dl_err_count),
|
||||
UFS_ERR_PATH(nl_err_count),
|
||||
UFS_ERR_PATH(tl_err_count),
|
||||
UFS_ERR_PATH(dme_err_count),
|
||||
UFS_ERR_PATH(fatal_err_count),
|
||||
UFS_ERR_PATH(auto_hibern8_err_count)
|
||||
},
|
||||
.BlockStatsLength = BLOCK_STATS_LENGTH,
|
||||
.AmsRatePath = "/sys/devices/platform/audiometrics/ams_rate_read_once",
|
||||
.MitigationPath = "/sys/devices/virtual/pmic/mitigation",
|
||||
.ThermalStatsPaths = {
|
||||
"/sys/devices/platform/100a0000.BIG/trip_counter",
|
||||
"/sys/devices/platform/100a0000.MID/trip_counter",
|
||||
"/sys/devices/platform/100a0000.LITTLE/trip_counter",
|
||||
"/sys/devices/platform/100b0000.G3D/trip_counter",
|
||||
"/sys/devices/platform/100b0000.TPU/trip_counter",
|
||||
"/sys/devices/platform/100b0000.AUR/trip_counter",
|
||||
},
|
||||
.CCARatePath = "/sys/devices/platform/audiometrics/cca_count_read_once",
|
||||
.TempResidencyAndResetPaths = {
|
||||
{
|
||||
"/sys/kernel/metrics/thermal/tr_by_group/tmu/stats",
|
||||
"/sys/kernel/metrics/thermal/tr_by_group/tmu/stats_reset"
|
||||
},
|
||||
{
|
||||
"/sys/kernel/metrics/thermal/tr_by_group/spmic/stats",
|
||||
"/sys/kernel/metrics/thermal/tr_by_group/spmic/stats_reset"
|
||||
}
|
||||
},
|
||||
.ResumeLatencyMetricsPath = "/sys/kernel/metrics/resume_latency/resume_latency_metrics",
|
||||
.LongIRQMetricsPath = "/sys/kernel/metrics/irq/long_irq_metrics",
|
||||
.StormIRQMetricsPath = "/sys/kernel/metrics/irq/storm_irq_metrics",
|
||||
.IRQStatsResetPath = "/sys/kernel/metrics/irq/stats_reset",
|
||||
.ModemPcieLinkStatsPath = "/sys/devices/platform/11920000.pcie/link_stats",
|
||||
.WifiPcieLinkStatsPath = "/sys/devices/platform/14520000.pcie/link_stats",
|
||||
.GMSRPath = {
|
||||
"/sys/class/power_supply/maxfg/gmsr",
|
||||
"/sys/class/power_supply/maxfg_base/gmsr",
|
||||
},
|
||||
.TotalCallCountPath = "/sys/devices/platform/audiometrics/call_count"
|
||||
};
|
||||
|
||||
const struct UeventListener::UeventPaths ueventPaths = {
|
||||
.AudioUevent = "/devices/virtual/amcs/amcs",
|
||||
.TypeCPartnerUevent = "PRODUCT_TYPE=",
|
||||
.FGLearningPath = {
|
||||
"/sys/class/power_supply/maxfg/fg_learning_events",
|
||||
"/sys/class/power_supply/maxfg_base/fg_learning_events"
|
||||
},
|
||||
.FwUpdatePath = "",
|
||||
.FGModelLoadingPath = {
|
||||
"/sys/class/power_supply/maxfg/m5_model_state",
|
||||
"/sys/class/power_supply/maxfg_base/m5_model_state"
|
||||
}
|
||||
};
|
||||
|
||||
int main() {
|
||||
LOG(INFO) << "starting PixelStats";
|
||||
|
||||
UeventListener ueventListener(ueventPaths);
|
||||
std::thread listenThread(&UeventListener::ListenForever, &ueventListener);
|
||||
listenThread.detach();
|
||||
|
||||
SysfsCollector collector(sysfs_paths);
|
||||
collector.collect(); // This blocks forever.
|
||||
|
||||
return 0;
|
||||
}
|
||||
47
powerstats/Android.bp
Normal file
47
powerstats/Android.bp
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright (C) 2020 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.
|
||||
|
||||
soong_namespace {
|
||||
imports: [
|
||||
"hardware/google/pixel",
|
||||
"device/google/gs-common/powerstats",
|
||||
],
|
||||
}
|
||||
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "//device/google/gs201:device_google_gs201_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: [
|
||||
"//device/google/gs201:device_google_gs201_license",
|
||||
],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "android.hardware.power.stats-impl.gs201",
|
||||
vendor_available: true,
|
||||
export_include_dirs: ["include"],
|
||||
defaults: ["powerstats_pixel_defaults"],
|
||||
|
||||
srcs: [
|
||||
"*.cpp",
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"android.hardware.power.stats-impl.gs-common",
|
||||
"android.hardware.power.stats-impl.pixel",
|
||||
],
|
||||
}
|
||||
663
powerstats/Gs201CommonDataProviders.cpp
Normal file
663
powerstats/Gs201CommonDataProviders.cpp
Normal file
@@ -0,0 +1,663 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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 <PowerStatsAidl.h>
|
||||
#include <Gs201CommonDataProviders.h>
|
||||
#include <AdaptiveDvfsStateResidencyDataProvider.h>
|
||||
#include <AocTimedStateResidencyDataProvider.h>
|
||||
#include <DevfreqStateResidencyDataProvider.h>
|
||||
#include <DisplayMrrStateResidencyDataProvider.h>
|
||||
#include <DvfsStateResidencyDataProvider.h>
|
||||
#include <UfsStateResidencyDataProvider.h>
|
||||
#include <dataproviders/GenericStateResidencyDataProvider.h>
|
||||
#include <dataproviders/IioEnergyMeterDataProvider.h>
|
||||
#include <dataproviders/PowerStatsEnergyConsumer.h>
|
||||
#include <dataproviders/PowerStatsEnergyAttribution.h>
|
||||
#include <dataproviders/PixelStateResidencyDataProvider.h>
|
||||
#include <dataproviders/WlanStateResidencyDataProvider.h>
|
||||
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/properties.h>
|
||||
#include <android/binder_manager.h>
|
||||
#include <android/binder_process.h>
|
||||
#include <log/log.h>
|
||||
|
||||
using aidl::android::hardware::power::stats::AdaptiveDvfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::AocTimedStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DevfreqStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DisplayMrrStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::DvfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::UfsStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::EnergyConsumerType;
|
||||
using aidl::android::hardware::power::stats::GenericStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::IioEnergyMeterDataProvider;
|
||||
using aidl::android::hardware::power::stats::PixelStateResidencyDataProvider;
|
||||
using aidl::android::hardware::power::stats::PowerStatsEnergyConsumer;
|
||||
using aidl::android::hardware::power::stats::WlanStateResidencyDataProvider;
|
||||
|
||||
// TODO (b/181070764) (b/182941084):
|
||||
// Remove this when Wifi/BT energy consumption models are available or revert before ship
|
||||
using aidl::android::hardware::power::stats::EnergyConsumerResult;
|
||||
using aidl::android::hardware::power::stats::Channel;
|
||||
using aidl::android::hardware::power::stats::EnergyMeasurement;
|
||||
class PlaceholderEnergyConsumer : public PowerStats::IEnergyConsumer {
|
||||
public:
|
||||
PlaceholderEnergyConsumer(std::shared_ptr<PowerStats> p, EnergyConsumerType type,
|
||||
std::string name) : kType(type), kName(name), mPowerStats(p), mChannelId(-1) {
|
||||
std::vector<Channel> channels;
|
||||
mPowerStats->getEnergyMeterInfo(&channels);
|
||||
|
||||
for (const auto &c : channels) {
|
||||
if (c.name == "VSYS_PWR_WLAN_BT") {
|
||||
mChannelId = c.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
std::pair<EnergyConsumerType, std::string> getInfo() override { return {kType, kName}; }
|
||||
|
||||
std::optional<EnergyConsumerResult> getEnergyConsumed() override {
|
||||
int64_t totalEnergyUWs = 0;
|
||||
int64_t timestampMs = 0;
|
||||
if (mChannelId != -1) {
|
||||
std::vector<EnergyMeasurement> measurements;
|
||||
if (mPowerStats->readEnergyMeter({mChannelId}, &measurements).isOk()) {
|
||||
for (const auto &m : measurements) {
|
||||
totalEnergyUWs += m.energyUWs;
|
||||
timestampMs = m.timestampMs;
|
||||
}
|
||||
} else {
|
||||
LOG(ERROR) << "Failed to read energy meter";
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
return EnergyConsumerResult{.timestampMs = timestampMs,
|
||||
.energyUWs = totalEnergyUWs>>1};
|
||||
}
|
||||
|
||||
std::string getConsumerName() override {
|
||||
return kName;
|
||||
};
|
||||
|
||||
private:
|
||||
const EnergyConsumerType kType;
|
||||
const std::string kName;
|
||||
std::shared_ptr<PowerStats> mPowerStats;
|
||||
int32_t mChannelId;
|
||||
};
|
||||
|
||||
void addPlaceholderEnergyConsumers(std::shared_ptr<PowerStats> p) {
|
||||
p->addEnergyConsumer(
|
||||
std::make_unique<PlaceholderEnergyConsumer>(p, EnergyConsumerType::WIFI, "Wifi"));
|
||||
p->addEnergyConsumer(
|
||||
std::make_unique<PlaceholderEnergyConsumer>(p, EnergyConsumerType::BLUETOOTH, "BT"));
|
||||
}
|
||||
|
||||
void addAoC(std::shared_ptr<PowerStats> p) {
|
||||
// When the given timeout is 0, the timeout will be replaced with "120ms * statesCount".
|
||||
static const uint64_t TIMEOUT_MILLIS = 0;
|
||||
// AoC clock is synced from "libaoc.c"
|
||||
static const uint64_t AOC_CLOCK = 24576;
|
||||
std::string prefix = "/sys/devices/platform/19000000.aoc/control/";
|
||||
|
||||
// Add AoC cores (a32, ff1, hf0, and hf1)
|
||||
std::vector<std::pair<std::string, std::string>> coreIds = {
|
||||
{"AoC-A32", prefix + "a32_"},
|
||||
{"AoC-FF1", prefix + "ff1_"},
|
||||
{"AoC-HF1", prefix + "hf1_"},
|
||||
{"AoC-HF0", prefix + "hf0_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> coreStates = {
|
||||
{"DWN", "off"}, {"RET", "retention"}, {"WFI", "wfi"}};
|
||||
p->addStateResidencyDataProvider(std::make_unique<AocTimedStateResidencyDataProvider>(coreIds,
|
||||
coreStates, TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC voltage stats
|
||||
std::vector<std::pair<std::string, std::string>> voltageIds = {
|
||||
{"AoC-Voltage", prefix + "voltage_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> voltageStates = {{"NOM", "nominal"},
|
||||
{"SUD", "super_underdrive"},
|
||||
{"UUD", "ultra_underdrive"},
|
||||
{"UD", "underdrive"}};
|
||||
p->addStateResidencyDataProvider(
|
||||
std::make_unique<AocTimedStateResidencyDataProvider>(voltageIds, voltageStates,
|
||||
TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC monitor mode
|
||||
std::vector<std::pair<std::string, std::string>> monitorIds = {
|
||||
{"AoC", prefix + "monitor_"},
|
||||
};
|
||||
std::vector<std::pair<std::string, std::string>> monitorStates = {
|
||||
{"MON", "mode"},
|
||||
};
|
||||
p->addStateResidencyDataProvider(
|
||||
std::make_unique<AocTimedStateResidencyDataProvider>(monitorIds, monitorStates,
|
||||
TIMEOUT_MILLIS, AOC_CLOCK));
|
||||
|
||||
// Add AoC restart count
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig restartCountConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "",
|
||||
.totalTimeSupported = false,
|
||||
.lastEntrySupported = false,
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> restartCountHeaders = {
|
||||
std::make_pair("RESTART", ""),
|
||||
};
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(
|
||||
generateGenericStateResidencyConfigs(restartCountConfig, restartCountHeaders),
|
||||
"AoC-Count", "");
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/19000000.aoc/restart_count", cfgs));
|
||||
}
|
||||
|
||||
void addDvfsStats(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond
|
||||
const int NS_TO_MS = 1000000;
|
||||
std::string path = "/sys/devices/platform/acpm_stats/fvp_stats";
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> adpCfgs = {
|
||||
std::make_pair("CL0", "/sys/devices/system/cpu/cpufreq/policy0/stats"),
|
||||
std::make_pair("CL1", "/sys/devices/system/cpu/cpufreq/policy4/stats"),
|
||||
std::make_pair("CL2", "/sys/devices/system/cpu/cpufreq/policy6/stats")
|
||||
};
|
||||
p->addStateResidencyDataProvider(std::make_unique<AdaptiveDvfsStateResidencyDataProvider>(
|
||||
path, NS_TO_MS, adpCfgs));
|
||||
|
||||
std::vector<DvfsStateResidencyDataProvider::Config> cfgs;
|
||||
|
||||
cfgs.push_back({"TPU", {
|
||||
std::make_pair("1066MHz", "1066000"),
|
||||
std::make_pair("845MHz", "845000"),
|
||||
std::make_pair("627MHz", "627000"),
|
||||
std::make_pair("401MHz", "401000"),
|
||||
std::make_pair("226MHz", "226000"),
|
||||
std::make_pair("0MHz", "0"),
|
||||
}});
|
||||
|
||||
cfgs.push_back({"AUR", {
|
||||
std::make_pair("1160MHz", "1160000"),
|
||||
std::make_pair("750MHz", "750000"),
|
||||
std::make_pair("373MHz", "373000"),
|
||||
std::make_pair("178MHz", "178000"),
|
||||
std::make_pair("0MHz", "0"),
|
||||
}});
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DvfsStateResidencyDataProvider>(
|
||||
path, NS_TO_MS, cfgs));
|
||||
}
|
||||
|
||||
void addSoC(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
// ACPM stats are reported in nanoseconds. The transform function
|
||||
// converts nanoseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig lpmStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "success_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig downStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "down_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_down_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_down_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig reqStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "req_up_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_req_up_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_req_up_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> powerStateHeaders = {
|
||||
std::make_pair("SICD", "SICD"),
|
||||
std::make_pair("SLEEP", "SLEEP"),
|
||||
std::make_pair("SLEEP_SLCMON", "SLEEP_SLCMON"),
|
||||
std::make_pair("SLEEP_HSI1ON", "SLEEP_HSI1ON"),
|
||||
std::make_pair("STOP", "STOP"),
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> mifReqStateHeaders = {
|
||||
std::make_pair("AOC", "AOC"),
|
||||
std::make_pair("GSA", "GSA"),
|
||||
std::make_pair("TPU", "TPU"),
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> slcReqStateHeaders = {
|
||||
std::make_pair("AOC", "AOC"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(lpmStateConfig, powerStateHeaders),
|
||||
"LPM", "LPM:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(downStateConfig, powerStateHeaders),
|
||||
"MIF", "MIF:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, mifReqStateHeaders),
|
||||
"MIF-REQ", "MIF_REQ:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(downStateConfig, powerStateHeaders),
|
||||
"SLC", "SLC:");
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(reqStateConfig, slcReqStateHeaders),
|
||||
"SLC-REQ", "SLC_REQ:");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/soc_stats", cfgs));
|
||||
}
|
||||
|
||||
void setEnergyMeter(std::shared_ptr<PowerStats> p) {
|
||||
std::vector<const std::string> deviceNames { "s2mpg12-odpm", "s2mpg13-odpm" };
|
||||
p->setEnergyMeterDataProvider(std::make_unique<IioEnergyMeterDataProvider>(deviceNames, true));
|
||||
}
|
||||
|
||||
void addCPUclusters(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig cpuStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "down_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_down_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_down_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> cpuStateHeaders = {
|
||||
std::make_pair("DOWN", ""),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
for (std::string name : {"CORE00", "CORE01", "CORE02", "CORE03", "CORE10", "CORE11",
|
||||
"CORE20", "CORE21", "CLUSTER0", "CLUSTER1", "CLUSTER2"}) {
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(cpuStateConfig, cpuStateHeaders),
|
||||
name, name);
|
||||
}
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/core_stats", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL0", {"S4M_VDD_CPUCL0"}));
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL1", {"S3M_VDD_CPUCL1"}));
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::CPU_CLUSTER, "CPUCL2", {"S2M_VDD_CPUCL2"}));
|
||||
}
|
||||
|
||||
void addGPU(std::shared_ptr<PowerStats> p) {
|
||||
// Add gpu energy consumer
|
||||
std::map<std::string, int32_t> stateCoeffs;
|
||||
|
||||
// TODO (b/197721618): Measuring the GPU power numbers
|
||||
stateCoeffs = {
|
||||
{"202000", 890},
|
||||
{"251000", 1102},
|
||||
{"302000", 1308},
|
||||
{"351000", 1522},
|
||||
{"400000", 1772},
|
||||
{"471000", 2105},
|
||||
{"510000", 2292},
|
||||
{"572000", 2528},
|
||||
{"701000", 3127},
|
||||
{"762000", 3452},
|
||||
{"848000", 4044}};
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||
EnergyConsumerType::OTHER, "GPU", {"S8S_VDD_G3D_L2", "S2S_VDD_G3D"},
|
||||
{{UID_TIME_IN_STATE, "/sys/devices/platform/28000000.mali/uid_time_in_state"}},
|
||||
stateCoeffs));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>("GPU",
|
||||
"/sys/devices/platform/28000000.mali"));
|
||||
}
|
||||
|
||||
void addMobileRadio(std::shared_ptr<PowerStats> p)
|
||||
{
|
||||
// A constant to represent the number of microseconds in one millisecond.
|
||||
const int US_TO_MS = 1000;
|
||||
|
||||
// modem power_stats are reported in microseconds. The transform function
|
||||
// converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> modemUsToMs = [](uint64_t a) { return a / US_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig powerStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = modemUsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = modemUsToMs,
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> powerStateHeaders = {
|
||||
std::make_pair("SLEEP", "SLEEP:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(powerStateConfig, powerStateHeaders),
|
||||
"MODEM", "");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/cpif/modem/power_stats", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::MOBILE_RADIO, "MODEM",
|
||||
{"VSYS_PWR_MODEM", "VSYS_PWR_RFFE", "VSYS_PWR_MMWAVE"}));
|
||||
}
|
||||
|
||||
void addGNSS(std::shared_ptr<PowerStats> p)
|
||||
{
|
||||
// A constant to represent the number of microseconds in one millisecond.
|
||||
const int US_TO_MS = 1000;
|
||||
|
||||
// gnss power_stats are reported in microseconds. The transform function
|
||||
// converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> gnssUsToMs = [](uint64_t a) { return a / US_TO_MS; };
|
||||
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig gnssStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = gnssUsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = gnssUsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> gnssStateHeaders = {
|
||||
std::make_pair("ON", "GPS_ON:"),
|
||||
std::make_pair("OFF", "GPS_OFF:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(gnssStateConfig, gnssStateHeaders),
|
||||
"GPS", "");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/dev/bbd_pwrstat", cfgs));
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(p,
|
||||
EnergyConsumerType::GNSS, "GPS", {"L9S_GNSS_CORE"}));
|
||||
}
|
||||
|
||||
void addPCIe(std::shared_ptr<PowerStats> p) {
|
||||
// Add PCIe power entities for Modem and WiFi
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig pcieStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "Cumulative count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "Cumulative duration msec:",
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "Last entry timestamp msec:",
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> pcieStateHeaders = {
|
||||
std::make_pair("UP", "Link up:"),
|
||||
std::make_pair("DOWN", "Link down:"),
|
||||
};
|
||||
|
||||
// Add PCIe - Modem
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieModemCfgs = {
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "PCIe-Modem",
|
||||
"Version: 1"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/11920000.pcie/power_stats", pcieModemCfgs));
|
||||
|
||||
// Add PCIe - WiFi
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> pcieWifiCfgs = {
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders),
|
||||
"PCIe-WiFi", "Version: 1"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/14520000.pcie/power_stats", pcieWifiCfgs));
|
||||
}
|
||||
|
||||
void addWifi(std::shared_ptr<PowerStats> p) {
|
||||
// The transform function converts microseconds to milliseconds.
|
||||
std::function<uint64_t(uint64_t)> usecToMs = [](uint64_t a) { return a / 1000; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig stateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = usecToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_entry_timestamp_usec:",
|
||||
.lastEntryTransform = usecToMs,
|
||||
};
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig pcieStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "duration_usec:",
|
||||
.totalTimeTransform = usecToMs,
|
||||
.lastEntrySupported = false,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> stateHeaders = {
|
||||
std::make_pair("AWAKE", "AWAKE:"),
|
||||
std::make_pair("ASLEEP", "ASLEEP:"),
|
||||
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> pcieStateHeaders = {
|
||||
std::make_pair("L0", "L0:"),
|
||||
std::make_pair("L1", "L1:"),
|
||||
std::make_pair("L1_1", "L1_1:"),
|
||||
std::make_pair("L1_2", "L1_2:"),
|
||||
std::make_pair("L2", "L2:"),
|
||||
};
|
||||
|
||||
const std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs = {
|
||||
{generateGenericStateResidencyConfigs(stateConfig, stateHeaders), "WIFI", "WIFI"},
|
||||
{generateGenericStateResidencyConfigs(pcieStateConfig, pcieStateHeaders), "WIFI-PCIE",
|
||||
"WIFI-PCIE"}
|
||||
};
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>("/sys/wifi/power_stats",
|
||||
cfgs));
|
||||
}
|
||||
|
||||
void addWlan(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<WlanStateResidencyDataProvider>(
|
||||
"WLAN",
|
||||
"/sys/kernel/wifi/power_stats"));
|
||||
}
|
||||
|
||||
void addUfs(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<UfsStateResidencyDataProvider>("/sys/bus/platform/devices/14700000.ufs/ufs_stats/"));
|
||||
}
|
||||
|
||||
void addPowerDomains(std::shared_ptr<PowerStats> p) {
|
||||
// A constant to represent the number of nanoseconds in one millisecond.
|
||||
const int NS_TO_MS = 1000000;
|
||||
|
||||
std::function<uint64_t(uint64_t)> acpmNsToMs = [](uint64_t a) { return a / NS_TO_MS; };
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig cpuStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "on_count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "total_on_time_ns:",
|
||||
.totalTimeTransform = acpmNsToMs,
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "last_on_time_ns:",
|
||||
.lastEntryTransform = acpmNsToMs,
|
||||
};
|
||||
|
||||
const std::vector<std::pair<std::string, std::string>> cpuStateHeaders = {
|
||||
std::make_pair("ON", ""),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
for (std::string name : {"pd-aur", "pd-tpu", "pd-bo", "pd-tnr", "pd-gdc", "pd-mcsc", "pd-itp",
|
||||
"pd-ipp", "pd-g3aa", "pd-dns", "pd-pdp", "pd-csis",
|
||||
"pd-mfc", "pd-g2d", "pd-disp", "pd-dpu", "pd-hsi0",
|
||||
"pd-g3d", "pd-embedded_g3d", "pd-eh"}) {
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(cpuStateConfig, cpuStateHeaders),
|
||||
name, name + ":");
|
||||
}
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
"/sys/devices/platform/acpm_stats/pd_stats", cfgs));
|
||||
}
|
||||
|
||||
void addDevfreq(std::shared_ptr<PowerStats> p) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"MIF",
|
||||
"/sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"INT",
|
||||
"/sys/devices/platform/17000020.devfreq_int/devfreq/17000020.devfreq_int"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"INTCAM",
|
||||
"/sys/devices/platform/17000030.devfreq_intcam/devfreq/17000030.devfreq_intcam"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"DISP",
|
||||
"/sys/devices/platform/17000040.devfreq_disp/devfreq/17000040.devfreq_disp"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"CAM",
|
||||
"/sys/devices/platform/17000050.devfreq_cam/devfreq/17000050.devfreq_cam"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"TNR",
|
||||
"/sys/devices/platform/17000060.devfreq_tnr/devfreq/17000060.devfreq_tnr"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"MFC",
|
||||
"/sys/devices/platform/17000070.devfreq_mfc/devfreq/17000070.devfreq_mfc"));
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<DevfreqStateResidencyDataProvider>(
|
||||
"BO",
|
||||
"/sys/devices/platform/17000080.devfreq_bo/devfreq/17000080.devfreq_bo"));
|
||||
}
|
||||
|
||||
void addTPU(std::shared_ptr<PowerStats> p) {
|
||||
std::map<std::string, int32_t> stateCoeffs;
|
||||
|
||||
stateCoeffs = {
|
||||
// TODO (b/197721618): Measuring the TPU power numbers
|
||||
{"226000", 10},
|
||||
{"627000", 20},
|
||||
{"845000", 30},
|
||||
{"1066000", 40}};
|
||||
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterAndAttrConsumer(p,
|
||||
EnergyConsumerType::OTHER, "TPU", {"S10M_VDD_TPU"},
|
||||
{{UID_TIME_IN_STATE, "/sys/class/edgetpu/edgetpu-soc/device/tpu_usage"}},
|
||||
stateCoeffs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlike other data providers, which source power entity state residency data from the kernel,
|
||||
* this data provider acts as a general-purpose channel for state residency data providers
|
||||
* that live in user space. Entities are defined here and user space clients of this provider's
|
||||
* vendor service register callbacks to provide state residency data for their given pwoer entity.
|
||||
*/
|
||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p) {
|
||||
|
||||
auto pixelSdp = std::make_unique<PixelStateResidencyDataProvider>();
|
||||
|
||||
pixelSdp->addEntity("Bluetooth", {{0, "Idle"}, {1, "Active"}, {2, "Tx"}, {3, "Rx"}});
|
||||
|
||||
pixelSdp->start();
|
||||
|
||||
p->addStateResidencyDataProvider(std::move(pixelSdp));
|
||||
}
|
||||
|
||||
void addCamera(std::shared_ptr<PowerStats> p) {
|
||||
p->addEnergyConsumer(PowerStatsEnergyConsumer::createMeterConsumer(
|
||||
p,
|
||||
EnergyConsumerType::CAMERA,
|
||||
"CAMERA",
|
||||
{"VSYS_PWR_CAM"}));
|
||||
}
|
||||
|
||||
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path) {
|
||||
p->addStateResidencyDataProvider(std::make_unique<DisplayMrrStateResidencyDataProvider>(
|
||||
name, path));
|
||||
}
|
||||
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p) {
|
||||
addDisplayMrrByEntity(p, "Display", "/sys/class/drm/card0/device/primary-panel/");
|
||||
}
|
||||
|
||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p) {
|
||||
setEnergyMeter(p);
|
||||
|
||||
addPixelStateResidencyDataProvider(p);
|
||||
addAoC(p);
|
||||
addDvfsStats(p);
|
||||
addSoC(p);
|
||||
addCPUclusters(p);
|
||||
addGPU(p);
|
||||
addMobileRadio(p);
|
||||
addGNSS(p);
|
||||
addPCIe(p);
|
||||
addWifi(p);
|
||||
addUfs(p);
|
||||
addPowerDomains(p);
|
||||
addDevfreq(p);
|
||||
addTPU(p);
|
||||
addCamera(p);
|
||||
}
|
||||
|
||||
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path) {
|
||||
const GenericStateResidencyDataProvider::StateResidencyConfig nfcStateConfig = {
|
||||
.entryCountSupported = true,
|
||||
.entryCountPrefix = "Cumulative count:",
|
||||
.totalTimeSupported = true,
|
||||
.totalTimePrefix = "Cumulative duration msec:",
|
||||
.lastEntrySupported = true,
|
||||
.lastEntryPrefix = "Last entry timestamp msec:",
|
||||
};
|
||||
const std::vector<std::pair<std::string, std::string>> nfcStateHeaders = {
|
||||
std::make_pair("IDLE", "Idle mode:"),
|
||||
std::make_pair("ACTIVE", "Active mode:"),
|
||||
std::make_pair("ACTIVE-RW", "Active Reader/Writer mode:"),
|
||||
};
|
||||
|
||||
std::vector<GenericStateResidencyDataProvider::PowerEntityConfig> cfgs;
|
||||
cfgs.emplace_back(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders),
|
||||
"NFC", "NFC subsystem");
|
||||
|
||||
p->addStateResidencyDataProvider(std::make_unique<GenericStateResidencyDataProvider>(
|
||||
path, cfgs));
|
||||
}
|
||||
42
powerstats/include/Gs201CommonDataProviders.h
Normal file
42
powerstats/include/Gs201CommonDataProviders.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 2021 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.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <PowerStatsAidl.h>
|
||||
|
||||
using aidl::android::hardware::power::stats::PowerStats;
|
||||
|
||||
void addAoC(std::shared_ptr<PowerStats> p);
|
||||
void addCPUclusters(std::shared_ptr<PowerStats> p);
|
||||
void addCamera(std::shared_ptr<PowerStats> p);
|
||||
void addDevfreq(std::shared_ptr<PowerStats> p);
|
||||
void addDisplayMrr(std::shared_ptr<PowerStats> p);
|
||||
void addDisplayMrrByEntity(std::shared_ptr<PowerStats> p, std::string name, std::string path);
|
||||
void addDvfsStats(std::shared_ptr<PowerStats> p);
|
||||
void addGNSS(std::shared_ptr<PowerStats> p);
|
||||
void addGs201CommonDataProviders(std::shared_ptr<PowerStats> p);
|
||||
void addMobileRadio(std::shared_ptr<PowerStats> p);
|
||||
void addNFC(std::shared_ptr<PowerStats> p, const std::string& path);
|
||||
void addPCIe(std::shared_ptr<PowerStats> p);
|
||||
void addPixelStateResidencyDataProvider(std::shared_ptr<PowerStats> p);
|
||||
void addPowerDomains(std::shared_ptr<PowerStats> p);
|
||||
void addSoC(std::shared_ptr<PowerStats> p);
|
||||
void addTPU(std::shared_ptr<PowerStats> p);
|
||||
void addUfs(std::shared_ptr<PowerStats> p);
|
||||
void addWifi(std::shared_ptr<PowerStats> p);
|
||||
void addWlan(std::shared_ptr<PowerStats> p);
|
||||
void setEnergyMeter(std::shared_ptr<PowerStats> p);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user