device: Add support for FriendlyElec rk3576 board

Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ie131e7226e7a7f314be35be504f9c1fb1e982a47
master
hmz007 10 months ago
parent 84a2514075
commit 2fd7247988

@ -125,7 +125,6 @@ function build_uboot() {
check_android_ab
true ${UBOOT_CFG:=nanopi6}
true ${SPL_ARGS:="--spl-new ${SPL_FWVER}"}
cd ${UBOOT_DIR} && {
FA_RunCmd make ${UBOOT_CFG}_defconfig

@ -196,13 +196,21 @@
/dev/spidev.* u:object_r:spi_device:s0
/sys/class/gpio/.*export u:object_r:sysfs_gpio:s0
/sys/devices/platform/board/info u:object_r:sysfs_soc:s0
/sys/devices/platform/2ae00000.adc/iio:device0/in_voltage.* u:object_r:sysfs_iio:s0
/sys/devices/platform/fec10000.saradc/iio:device0/in_voltage.* u:object_r:sysfs_iio:s0
/sys/devices/platform/2ac50000.i2c/i2c-2/2-0051/rtc/rtc0/date u:object_r:sysfs_rtc:s0
/sys/devices/platform/2ac50000.i2c/i2c-2/2-0051/rtc/rtc0/time u:object_r:sysfs_rtc:s0
/sys/devices/platform/2ac50000.i2c/i2c-2/2-0051/rtc/rtc0/wakealarm u:object_r:sysfs_rtc:s0
/sys/devices/platform/fec80000.i2c/i2c-6/6-0051/rtc/rtc0/date u:object_r:sysfs_rtc:s0
/sys/devices/platform/fec80000.i2c/i2c-6/6-0051/rtc/rtc0/time u:object_r:sysfs_rtc:s0
/sys/devices/platform/fec80000.i2c/i2c-6/6-0051/rtc/rtc0/wakealarm u:object_r:sysfs_rtc:s0
/sys/devices/platform/fec80000.i2c/i2c-6/6-0051/rtc/rtc0/wakeup.* u:object_r:sysfs_wakeup:s0
/sys/devices/platform/fec80000.i2c/i2c-6/6-0051/rtc/rtc0/alarmtimer.* u:object_r:sysfs_wakeup:s0
/sys/devices/platform/gpio-keys/wakeup/wakeup.* u:object_r:sysfs_wakeup:s0
/sys/devices/platform/pinctrl/2.*/gpio.*/active_low u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/2.*/gpio.*/direction u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/2.*/gpio.*/edge u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/2.*/gpio.*/value u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/f.*/gpio.*/active_low u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/f.*/gpio.*/direction u:object_r:sysfs_gpio:s0
/sys/devices/platform/pinctrl/f.*/gpio.*/edge u:object_r:sysfs_gpio:s0

@ -0,0 +1,3 @@
LOCAL_PATH := $(call my-dir)
include $(call all-makefiles-under,$(LOCAL_PATH))

@ -0,0 +1,12 @@
# generate fstab file for device
-include device/rockchip/common/build/rockchip/RebuildFstab.mk
# generate dtbo image for device
-include device/rockchip/common/build/rockchip/RebuildDtboImg.mk
ifeq ($(HAVE_PREBUILT_DTBO),true)
ALL_DEFAULT_INSTALLED_MODULES += $(PRODUCT_OUT)/dtbo.img
endif
# generate parameter.txt for device
-include device/rockchip/common/build/rockchip/RebuildParameter.mk

@ -0,0 +1,22 @@
#
# Copyright 2023 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/nanopim5.mk
COMMON_LUNCH_CHOICES := \
nanopim5-userdebug \
nanopim5-user

@ -0,0 +1,76 @@
#
# Copyright 2014 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/rockchip/rk3576/BoardConfig.mk
BUILD_WITH_GO_OPT := false
BOARD_BUILD_GKI := false
PRODUCT_KERNEL_DTS := nanopi5-images
PRODUCT_KERNEL_CONFIG := nanopi5_android_defconfig
PRODUCT_UBOOT_CONFIG := nanopi_m5
BOARD_SELINUX_ENFORCING := false
BOARD_CAMERA_SUPPORT_EXT := true
BOARD_HS_ETHERNET := true
PRODUCT_HAVE_PCIE_ETHERNET := true
# Wifi.
WIFI_DRIVER_FW_PATH_PARAM := "/dev/null"
WIFI_DRIVER_FW_PATH_STA := "/dev/null"
WIFI_DRIVER_FW_PATH_AP := "/dev/null"
BOARD_HAVE_BLUETOOTH_AIC := false
BOARD_HAVE_BLUETOOTH_BCM := false
BOARD_HAVE_BLUETOOTH_RTK := false
TARGET_USE_BTLINUX_HAL_IMPL := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/rockchip/rk3576/nanopim5/bluetooth
# No dtbo.img in boot.img
BOARD_INCLUDE_DTB_IN_BOOTIMG :=
BOARD_PREBUILT_DTBIMAGE_DIR :=
BOARD_INCLUDE_RECOVERY_DTBO :=
BOARD_PREBUILT_DTBOIMAGE := device/rockchip/rk3576/nanopim5/dtbo.img
TARGET_RECOVERY_FSTAB := device/rockchip/rk3576/nanopim5/recovery.fstab
BOARD_CACHEIMAGE_PARTITION_SIZE := 281018368
BOARD_SUPER_PARTITION_SIZE := 2684354560
BOARD_WITH_BACKUP_PARTITION := backup:128M
BOARD_WITH_SPECIAL_PARTITIONS := baseparameter:4M
# AB image definition
BOARD_USES_AB_IMAGE ?= true
BOARD_ROCKCHIP_VIRTUAL_AB_ENABLE := true
ifeq ($(strip $(BOARD_USES_AB_IMAGE)), true)
PRODUCT_UBOOT_CONFIG := nanopi_m5_ab
AB_OTA_UPDATER := true
BOARD_USES_RECOVERY_AS_BOOT := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
BOARD_SUPER_PARTITION_SIZE := 3355443200
BOARD_ROCKCHIP_BASE_PARTITION := security:4M,uboot_a:4M,misc:4M
BOARD_ROCKCHIP_DYNAMIC_PARTITIONS_SIZE := $(shell expr $(BOARD_SUPER_PARTITION_SIZE) - 4194304)
TARGET_NO_RECOVERY := true
TARGET_ROCKCHIP_PCBATEST := false
TARGET_RECOVERY_FSTAB := device/rockchip/rk3576/nanopim5/recovery.fstab_AB
endif
# Use the non-open-source parts, if they're present
-include vendor/quectel/ec20/BoardConfigPartial.mk

@ -0,0 +1,29 @@
/*
* 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "nanopi5"
#define BTA_DM_COD {0x1A, 0x01, 0x10}
#define BLE_PRIVACY_SPT TRUE
#define BLE_VND_INCLUDED FALSE
#define BTA_HCI_RESET FALSE
#endif

@ -0,0 +1,5 @@
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyS8
# Firmware patch file location
FwPatchFilePath = /vendor/etc/firmware/

@ -0,0 +1,147 @@
#
# Copyright 2014 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.
#
# First lunching is U, api_level is 34
PRODUCT_SHIPPING_API_LEVEL := 34
include device/rockchip/rk3576/nanopim5/BoardConfig.mk
# OTA
PRODUCT_PROPERTY_OVERRIDES += \
ro.updater.next_device=rk3576 \
ro.product.version=14.0.0 \
ro.product.releasetype=stable
PRODUCT_PACKAGES += \
Updater
HAVE_PREBUILT_DTBO := $(shell test -f $(BOARD_PREBUILT_DTBOIMAGE) && echo true)
ifneq ($(HAVE_PREBUILT_DTBO),true)
PRODUCT_DTBO_TEMPLATE := device/rockchip/rk3576/nanopim5/dt-overlay.in
endif
include device/rockchip/common/build/rockchip/DynamicPartitions.mk
include device/rockchip/common/BoardConfig.mk
PRODUCT_COPY_FILES += \
device/rockchip/rk3576/nanopim5/init.rk3576.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rk3576.rc
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.init_usb=1
# Inherit from those products. Most specific first.
$(call inherit-product, device/rockchip/rk3576/device.mk)
$(call inherit-product, device/rockchip/common/device.mk)
$(call inherit-product, frameworks/native/build/tablet-10in-xhdpi-2048-dalvik-heap.mk)
PRODUCT_FSTAB_TEMPLATE := device/rockchip/rk3576/nanopim5/fstab.in
PRODUCT_CHARACTERISTICS := tablet
PRODUCT_NAME := nanopim5
PRODUCT_DEVICE := nanopim5
PRODUCT_BRAND := Android
PRODUCT_MODEL := FriendlyELEC RK3576
PRODUCT_MANUFACTURER := FriendlyELEC (www.friendlyelec.com)
# Screen size is "normal", density is "hdpi"
PRODUCT_AAPT_CONFIG := normal large xlarge tvdpi hdpi xhdpi xxhdpi
PRODUCT_AAPT_PREF_CONFIG := hdpi
DEVICE_PACKAGE_OVERLAYS := device/rockchip/rk3576/nanopim5/overlay
TARGET_BOARD_SUPPORT_4K_UI ?= false
ifeq ($(TARGET_BOARD_SUPPORT_4K_UI),true)
PRODUCT_PROPERTY_OVERRIDES += persist.vendor.framebuffer.main=3840x2160@60
PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=350
else
PRODUCT_PROPERTY_OVERRIDES += ro.sf.lcd_density=240
endif
PRODUCT_PROPERTY_OVERRIDES += \
vendor.hwc.compose_policy=1 \
persist.demo.hdmirotates=true \
ro.vendor.user_rotation=true \
ro.boot.log_battery=false
PRODUCT_PACKAGES += \
fsck.exfat \
mkfs.exfat
PRODUCT_PACKAGES += \
usb_modeswitch
PRODUCT_COPY_FILES += \
device/rockchip/rk3576/nanopim5/init.usbmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.usbmod.sh
# These are the hardware-specific features
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.autofocus.xml \
frameworks/native/data/etc/android.hardware.gamepad.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.gamepad.xml \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml
# Audio Policy tables
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration.xml
# Rockchip properties
PRODUCT_PROPERTY_OVERRIDES += \
ro.wifi.sleep.power.down=true \
persist.wifi.sleep.delay.ms=0 \
persist.bt.power.down=true
PRODUCT_USB_CAMERA_CONFIG := device/rockchip/rk3576/nanopim5/external_camera_config.xml
include device/friendlyelec/nanopi3/input/keyboards.mk
# Quectel
$(call inherit-product-if-exists, vendor/quectel/ec20/device-partial.mk)
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.radio.no_modem_board=1
# vendor apps
$(call inherit-product-if-exists, vendor/friendlyelec/apps/device-partial.mk)
BUILD_WITHOUT_VENDOR_APPS := RkApkinstaller RkExplorer RKLogsTool RKUpdateService userExperienceService
# Privileged permissions whitelist
PRODUCT_COPY_FILES += \
device/rockchip/common/permissions/privapp-permissions-rockchip.xml:system/etc/permissions/privapp-permissions-rockchip.xml
PRODUCT_PROPERTY_OVERRIDES += \
ro.control_privapp_permissions=enforce
# Disable Scudo to save RAM.
PRODUCT_DISABLE_SCUDO := true

@ -0,0 +1,15 @@
/dts-v1/;
/plugin/;
&chosen {
bootargs_ext = "androidboot.boot_devices=${_boot_device}";
};
&reboot_mode {
mode-bootloader = <0x5242C309>;
mode-charge = <0x5242C30B>;
mode-fastboot = <0x5242C303>;
mode-loader = <0x5242C301>;
mode-normal = <0x5242C300>;
mode-recovery = <0x5242C303>;
};

@ -0,0 +1,74 @@
<ExternalCamera>
<Provider>
<ignore> <!-- Internal video devices to be ignored by external camera HAL -->
<!-- <id>0</id> --> <!-- No leading/trailing spaces -->
</ignore>
</Provider>
<!-- See ExternalCameraUtils.cpp for default values of Device configurations below-->
<Device>
<!-- Max JPEG buffer size in bytes-->
<MaxJpegBufferSize bytes="3145728"/> <!-- 3MB (~= 1080p YUV420) -->
<!-- Size of v4l2 buffer queue when streaming >= 30fps -->
<!-- Larger value: more request can be cached pipeline (less janky) -->
<!-- Smaller value: use less memory -->
<NumVideoBuffers count="4"/>
<!-- Size of v4l2 buffer queue when streaming < 30fps -->
<NumStillBuffers count="2"/>
<!-- List of maximum fps for various output sizes -->
<!-- Any image size smaller than the size listed in Limit row will report
fps (as minimum frame duration) up to the fpsBound value. -->
<FpsList>
<!-- width/height must be increasing, fpsBound must be decreasing-->
<Limit width="176" height="144" fpsBound="60.0" />
<Limit width="176" height="144" fpsBound="30.0" />
<Limit width="176" height="144" fpsBound="20.0" />
<Limit width="176" height="144" fpsBound="15.0" />
<Limit width="320" height="240" fpsBound="60.0" />
<Limit width="320" height="240" fpsBound="30.0" />
<Limit width="320" height="240" fpsBound="20.0" />
<Limit width="320" height="240" fpsBound="15.0" />
<Limit width="352" height="288" fpsBound="30.0" />
<Limit width="352" height="288" fpsBound="20.0" />
<Limit width="352" height="288" fpsBound="15.0" />
<Limit width="640" height="480" fpsBound="60.0" />
<Limit width="640" height="480" fpsBound="30.0" />
<Limit width="640" height="480" fpsBound="20.0" />
<Limit width="640" height="480" fpsBound="15.0" />
<Limit width="640" height="480" fpsBound="10.0" />
<Limit width="800" height="600" fpsBound="30.0" />
<Limit width="800" height="600" fpsBound="20.0" />
<Limit width="800" height="600" fpsBound="15.0" />
<Limit width="1024" height="768" fpsBound="30.0" />
<Limit width="1024" height="768" fpsBound="20.0" />
<Limit width="1024" height="768" fpsBound="15.0" />
<Limit width="1024" height="768" fpsBound="10.0" />
<Limit width="1280" height="720" fpsBound="60.0" />
<Limit width="1280" height="720" fpsBound="30.0" />
<Limit width="1280" height="720" fpsBound="20.0" />
<Limit width="1280" height="720" fpsBound="15.0" />
<Limit width="1280" height="720" fpsBound="10.0" />
<Limit width="1280" height="800" fpsBound="30.0" />
<Limit width="1280" height="800" fpsBound="20.0" />
<Limit width="1280" height="800" fpsBound="15.0" />
<Limit width="1280" height="960" fpsBound="30.0" />
<Limit width="1280" height="960" fpsBound="20.0" />
<Limit width="1280" height="960" fpsBound="15.0" />
<Limit width="1280" height="1024" fpsBound="30.0" />
<Limit width="1280" height="1024" fpsBound="20.0" />
<Limit width="1280" height="1024" fpsBound="15.0" />
<Limit width="1600" height="1200" fpsBound="30.0" />
<Limit width="1600" height="1200" fpsBound="15.0" />
<Limit width="1920" height="1080" fpsBound="30.0" />
<Limit width="1920" height="1080" fpsBound="15.0" />
<Limit width="2592" height="1944" fpsBound="30.0" />
<Limit width="2592" height="1944" fpsBound="15.0" />
<Limit width="2592" height="1944" fpsBound="10.0" />
<Limit width="2592" height="1944" fpsBound="5.0" />
<!-- image size larger than the last entry will not be supported-->
</FpsList>
<!-- orientation -->
<!-- <Orientation degree="90" /> -->
</Device>
</ExternalCamera>

@ -0,0 +1,27 @@
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
${_block_prefix}system /system ext4 ro,barrier=1 ${_flags_vbmeta},first_stage_mount${_flags_avbpubkey}
${_block_prefix}vendor /vendor ext4 ro,barrier=1 ${_flags},first_stage_mount
${_block_prefix}odm /odm ext4 ro,barrier=1 ${_flags},first_stage_mount
/dev/block/by-name/boot /boot emmc defaults ${_flags_chained}first_stage_mount
/dev/block/by-name/cache /cache ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check
/dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,discard,sync wait,formattable,first_stage_mount,check
/dev/block/by-name/misc /misc emmc defaults defaults
/dev/block/zram0 none swap defaults zramsize=40%
/devices/platform/*.pcie* auto ext4 defaults voldmanaged=pcie:auto
/devices/platform/*.sata* auto vfat defaults voldmanaged=sata:auto
/devices/platform/*usb* auto vfat defaults voldmanaged=usb:auto
# For sdmmc
/devices/platform/${_sdmmc_device}/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
# Full disk encryption has less effect on rk3588, so default to enable this.
#/dev/block/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065 latemount,wait,check,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,formattable,reservedsize=128M,checkpoint=fs
# for ext4
/dev/block/by-name/userdata /data ext4 discard,noatime,nosuid,nodev,noauto_da_alloc,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=::inlinecrypt_optimized,keydirectory=/metadata/vold/metadata_encryption,quota,reservedsize=128M,checkpoint=fs

@ -0,0 +1,108 @@
import /vendor/etc/init/hw/init.gki.rc
on property:sys.boot_completed=1
chown system system /sys/class/devfreq/27800000.gpu/governor
chown system system /sys/class/devfreq/27800000.gpu/min_freq
chown system system /sys/class/devfreq/27800000.gpu/max_freq
chmod 0664 /sys/class/devfreq/27800000.gpu/governor
chmod 0664 /sys/class/devfreq/27800000.gpu/min_freq
chmod 0664 /sys/class/devfreq/27800000.gpu/max_freq
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 0
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 0
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor schedutil
write /sys/devices/system/cpu/cpufreq/policy4/scaling_governor schedutil
write /sys/class/devfreq/dmc/governor dmc_ondemand
write /dev/vehicle 88
on property:ro.cold_boot_done=true && property:persist.vendor.init_usb=1
setprop persist.sys.usb.config none
setprop sys.usb.config none
setprop persist.vendor.init_usb 0
on property:persist.vendor.radio.no_modem_board=1
setprop ro.radio.noril yes
stop vendor.ril-daemon
on charger
chown system system /sys/class/devfreq/27800000.gpu/governor
chown system system /sys/class/devfreq/27800000.gpu/min_freq
chown system system /sys/class/devfreq/27800000.gpu/max_freq
chmod 0664 /sys/class/devfreq/27800000.gpu/governor
chmod 0664 /sys/class/devfreq/27800000.gpu/min_freq
chmod 0664 /sys/class/devfreq/27800000.gpu/max_freq
write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 0
write /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq 0
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor schedutil
write /sys/devices/system/cpu/cpufreq/policy4/scaling_governor schedutil
write /sys/class/devfreq/dmc/governor dmc_ondemand
on boot
chown system system /sys/class/thermal/thermal_zone0/policy
chown system system /sys/class/thermal/thermal_zone1/policy
chown system system /sys/class/thermal/thermal_zone2/policy
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-7
write /dev/cpuset/background/cpus 0-7
write /dev/cpuset/system-background/cpus 0-7
write /dev/cpuset/top-app/cpus 0-7
# reduce schedul time to improve io performance
write /sys/kernel/debug/sched_features NO_ENERGY_AWARE
chown system system /sys/devices/platform/2602e000.syscon/2602e000.syscon:usb2-phy@0/otg_mode
chmod 0660 /sys/devices/platform/2602e000.syscon/2602e000.syscon:usb2-phy@0/otg_mode
chown system system /sys/class/usb_role/23000000.usb-role-switch/role
chmod 0660 /sys/class/usb_role/23000000.usb-role-switch/role
chmod 0220 /sys/class/gpio/export
chown root system /sys/class/gpio/export
chmod 0220 /sys/class/gpio/unexport
chown root system /sys/class/gpio/unexport
# The initial load of RT process, set the range of 0-1024, set the RT task above 300 will preferentially run on the cpuB(cpu4-cpu7)
write /proc/sys/kernel/sched_util_clamp_min_rt_default 0
write /proc/sys/vm/dirty_ratio 10
write /proc/sys/vm/dirty_background_ratio 1
write /proc/sys/vm/dirty_writeback_centisecs 100
write /proc/sys/vm/dirty_expire_centisecs 500
start vendor.usbmod_sh
on init
# Increased power consumption and CPU in exchange for memory
write /proc/sys/vm/swappiness 100
write /sys/block/zram0/comp_algorithm lz4
chown system system /sys/system_monitor/system_status
chmod 0666 /sys/system_monitor/system_status
chown system system /sys/class/devfreq/dmc/system_status
chmod 0666 /sys/class/devfreq/dmc/system_status
on early-init
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor performance
write /sys/devices/system/cpu/cpufreq/policy4/scaling_governor performance
write /sys/class/devfreq/dmc/governor performance
chown system system /sys/power/mem_sleep
chmod 0660 /sys/power/mem_sleep
# usb controller
setprop sys.usb.controller "23000000.usb"
service vendor.usbmod_sh /vendor/bin/init.usbmod.sh
class main
user root
group root system
disabled
oneshot

@ -0,0 +1,5 @@
#! /vendor/bin/sh
# send standard EJECT for some usb wifi dongles
usb_modeswitch -v 0x0e8d -p 0x2870 -K
usb_modeswitch -v 0x0bda -p 0x1a2b -K

@ -0,0 +1,630 @@
<?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.
-->
<!DOCTYPE MediaSettings SYSTEM "/system/etc/media_profiles_V1_0.dtd">
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- ****************************************************************** -->
<!-- camera id = 0 : back camera -->
<!-- ****************************************************************** -->
<CamcorderProfiles cameraId="0">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="256000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!--
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="800"
height="600"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 576p stream, Please turn off this element -->
<!--
<EncoderProfile quality="576p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="720"
height="576"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p stream, Please turn off this element -->
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="22000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="256000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!--
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="256000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="800"
height="600"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<!--
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="800"
height="600"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 576p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<!--
<EncoderProfile quality="timelapse576p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="720"
height="576"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p stream, Please turn off this element -->
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- ****************************************************************** -->
<!-- camera id = 1 : front camera -->
<!-- ****************************************************************** -->
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="256000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!--
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="3000000"
width="800"
height="600"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p stream, Please turn off this element -->
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<!--
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!--
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 480p stream, Please turn off this element -->
<!--
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p and 480p stream, Please fill this element according as
your sensor max resolution for preview(Not Capture resolution) -->
<!--
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="800"
height="600"
frameRate="30" />
<Audio codec="aac"
bitRate="61000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<!-- If your sensor driver don't support 720p stream, Please turn off this element -->
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="9000000"
width="1280"
height="720"
frameRate="8" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
<!-- If your sensor driver don't support 1080p stream, Please turn off this element -->
<!--
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="44100"
channels="1" />
</EncoderProfile>
-->
<ImageEncoding quality="95" />
<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
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="18000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="1" maxFrameRate="30" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="24" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="4000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="1" maxFrameRate="24" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8192" maxBitRate="96000"
minSampleRate="8000" maxSampleRate="44100"
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>

@ -0,0 +1,18 @@
#
# Copyright 2014 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/rockchip/rk3576/nanopim5/device.mk

@ -0,0 +1,4 @@
将需要升级的loader以RK*Loader*.bin格式放到该目录下
OTA打包时即会加入到升级包中。
也就是说只要将需要升级的loader以以RK*Loader*.bin格式命名然后放到该目录下就可实现loader升级功能。

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 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>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- Enable system navigation keys. -->
<bool name="config_supportSystemNavigationKeys">true</bool>
<!-- Controls the opacity of the navigation bar depending on the visibility of the
various workspace stacks.
0 - Nav bar is always opaque when either the freeform stack or docked stack is visible.
1 - Nav bar is always translucent when the freeform stack is visible, otherwise always
opaque.
2 - Nav bar is never forced opaque.
-->
<integer name="config_navBarOpacityMode">2</integer>
<!-- Whether or not swipe up gesture's opt-in setting is available on this device -->
<bool name="config_swipe_up_gesture_setting_available">true</bool>
<!-- Device configuration indicating whether we should avoid using accelerated graphics
in certain places to reduce RAM footprint. This is ignored if ro.config.low_ram
is true (in that case this is assumed true as well). It can allow you to tune down
your device's memory use without going to the point of causing applications to turn
off features. -->
<bool name="config_avoidGfxAccel">false</bool>
<!-- Make things go fast -->
<bool name="config_ui_enableFadingMarquee">false</bool>
<!-- This device is not "voice capable"; it's data-only. -->
<bool name="config_voice_capable">false</bool>
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">true</bool>
<!-- Enable WFD -->
<bool name="config_enableWifiDisplay">true</bool>
<!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool>
<!-- Boolean indicating whether the wifi chipset has background scan support -->
<bool translatable="false" name="config_wifi_background_scan_support">true</bool>
<!-- Boolean indicating whether or not to revert to default country code when cellular
radio is unable to find any MCC information to infer wifi country code from -->
<bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">true</bool>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager connection type],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>"wifi,1,1,2,-1,true"</item>
<item>"mobile,0,0,0,-1,true"</item>
<item>"mobile_mms,2,0,2,60000,false"</item>
<item>"mobile_supl,3,0,2,60000,true"</item>
<item>"mobile_dun,4,0,2,60000,true"</item>
<item>"mobile_hipri,5,0,3,60000,true"</item>
<item>"mobile_fota,10,0,2,60000,true"</item>
<item>"mobile_ims,11,0,2,60000,true"</item>
<item>"mobile_cbs,12,0,2,60000,true"</item>
<item>"bluetooth,7,7,0,-1,true"</item>
<item>"ethernet,9,9,9,-1,true"</item>
<item>"pppoe,15,15,5,-1,true"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
USB interfaces. If the device doesn't want to support tething over USB this should
be empty. An example would be "usb.*" -->
<string-array translatable="false" name="config_tether_usb_regexs">
<item>"usb\\d"</item>
<item>"rndis\\d"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi interfaces. If the device doesn't want to support tethering over Wifi this
should be empty. An example would be "softap.*" -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wlan0"</item>
<item>"softap.*"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
should be empty. -->
<string-array translatable="false" name="config_tether_bluetooth_regexs">
<item>"bt-pan"</item>
</string-array>
<!-- Array of allowable ConnectivityManager network types for tethering -->
<!-- Common options are [1, 4] for TYPE_WIFI and TYPE_MOBILE_DUN or
[0,1,5,7] for TYPE_MOBILE, TYPE_WIFI, TYPE_MOBILE_HIPRI and TYPE_BLUETOOTH -->
<integer-array translatable="false" name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
<item>5</item>
<item>7</item>
<item>9</item>
</integer-array>
<string-array name="config_ephemeralResolverPackage" translatable="true">
<item>com.google.android.gms</item>
</string-array>
<!-- Flag indicating whether we should enable the automatic brightness in Settings.
config_hardware_automatic_brightness_available is not set, so we will use software implementation -->
<bool name="config_automatic_brightness_available">true</bool>
<!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
The N entries of this array define N + 1 control points as follows:
(1-based arrays)
Point 1: (0, value[1]): lux <= 0
Point 2: (level[1], value[2]): 0 < lux <= level[1]
Point 3: (level[2], value[3]): level[2] < lux <= level[3]
...
Point N+1: (level[N], value[N+1]): level[N] < lux
The control points must be strictly increasing. Each control point
corresponds to an entry in the brightness backlight values arrays.
For example, if LUX == level[1] (first element of the levels array)
then the brightness will be determined by value[2] (second element
of the brightness values array).
Spline interpolation is used to determine the auto-brightness
backlight values for LUX levels between these control points.
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>11</item>
<item>41</item>
<item>91</item>
<item>161</item>
<item>226</item>
<item>321</item>
<item>641</item>
<item>1281</item>
<item>2601</item>
</integer-array>
<!-- Array of output values for LCD backlight corresponding to the LUX values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>10</item>
<item>48</item>
<item>48</item>
<item>77</item>
<item>106</item>
<item>133</item>
<item>164</item>
<item>194</item>
<item>225</item>
<item>255</item>
</integer-array>
<!-- Array of output values for button backlight corresponding to the LUX values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessButtonBacklightValues">
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
</integer-array>
<!-- Array of output values for keyboard backlight corresponding to the LUX values
in the config_autoBrightnessLevels array. This array should have size one greater
than the size of the config_autoBrightnessLevels array.
The brightness values must be between 0 and 255 and be non-decreasing.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessKeyboardBacklightValues">
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
<item>0</item>
</integer-array>
<!-- Screen brightness used to dim the screen when the user activity
timeout expires. May be less than the minimum allowed brightness setting
that can be set by the user. -->
<integer name="config_screenBrightnessDim">2</integer>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Indicate whether closing the lid causes the device to go to sleep
and opening it causes the device to wake up. The default is false. -->
<bool name="config_lidControlsSleep">true</bool>
<!-- Set this to true to enable the platform's auto-power-save modes like doze and
app standby. These are not enabled by default because they require a standard
cloud-to-device messaging service for apps to interact correctly with the modes
(such as to be able to deliver an instant message to the device even when it is
dozing). This should be enabled if you have such services and expect apps to
correctly use them when installed on your device. Otherwise, keep this disabled
so that applications can still use their own mechanisms. -->
<bool name="config_enableAutoPowerModes">true</bool>
<!-- Default list of files pinned by the Pinner Service -->
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/system/framework/arm64/boot-framework.oat"</item>
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/oat/arm64/services.odex"</item>
<item>"/system/framework/services.jar"</item>
<item>"/system/framework/arm64/boot.oat"</item>
<item>"/system/framework/arm64/boot-core-libart.oat"</item>
</string-array>
<!-- Whether UI for multi user should be shown -->
<bool name="config_enableMultiUserUI">true</bool>
<!-- Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">4</integer>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework. -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
<!-- Whether safe headphone volume is enabled or not (country specific). -->
<bool name="config_safe_media_volume_enabled">true</bool>
<string translatable="false" name="config_packagedKeyboardName">Pixel C Keyboard</string>
<!-- Controls how we deal with externally connected physical keyboards.
0 - When using this device, it is not clear for users to recognize when the physical
keyboard is (should be) connected and when it is (should be) disconnected. Most of
phones and tablets with Bluetooth keyboard would fall into this category because the
connected Bluetooth keyboard may or may not be nearby the host device.
1 - When using this device, it is clear for users to recognize when the physical
keyboard is (should be) connected and when it is (should be) disconnected.
Devices with wired USB keyboard is one clear example. Some 2-in-1 convertible
tablets with dedicated keyboards may have the same affordance to wired USB keyboard.
-->
<integer translatable="false" name="config_externalHardKeyboardBehavior">1</integer>
<!-- Control the behavior when the user long presses the home button.
0 - Nothing
1 - Launch all apps intent
2 - Launch assist intent
This needs to match the constants in
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
-->
<integer name="config_longPressOnHomeBehavior">1</integer>
<!-- Control the behavior when the user long presses the power button.
0 - Nothing
1 - Global actions menu
2 - Power off (with confirmation)
3 - Power off (without confirmation)
4 - Go to voice assist
5 - Go to assistant (Settings.Secure.ASSISTANT)
-->
<integer name="config_longPressOnPowerBehavior">1</integer>
<!-- Remote server that can provide NTP responses. -->
<string-array translatable="false" name="config_ntpServers">
<item>ntp://time.android.com</item>
<item>ntp://time.apple.com</item>
<item>ntp://asia.pool.ntp.org</item>
</string-array>
<!-- True if the device supports persisting security logs across reboots. -->
<bool name="config_supportPreRebootSecurityLogs">true</bool>
<!-- Whether this device is supporting the software microphone toggle -->
<bool name="config_supportsMicToggle">true</bool>
<!-- Whether this device is supporting the camera toggle -->
<bool name="config_supportsCamToggle">true</bool>
<!-- Enable doze mode
ComponentName of a dream to show whenever the system would otherwise have gone to sleep. -->
<string translatable="false" name="config_dozeComponent">com.android.systemui/com.android.systemui.doze.DozeService</string>
</resources>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2023, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License")
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<irq-device-map>
<device name="rtc0">
<subsystem>Alarm</subsystem>
</device>
</irq-device-map>

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2015, 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.
*/
-->
<device name="Android">
<!-- All values are in mAh except as noted -->
<item name="none">2.18</item>
<item name="screen.on">181.08</item>
<item name="screen.full">609.72</item>
<item name="bluetooth.active">26.47</item>
<item name="bluetooth.on">4.05</item>
<item name="wifi.on">3.81</item>
<item name="wifi.active">111.43</item>
<item name="wifi.scan">149.04</item>
<item name="dsp.audio">19.15</item>
<item name="dsp.video">113.57</item>
<item name="camera.avg">791.67</item>
<!-- Different CPU speeds as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
<array name="cpu.speeds.cluster0">
<value>204000</value>
<value>306000</value>
<value>408000</value>
<value>510000</value>
<value>612000</value>
<value>714000</value>
<value>816000</value>
<value>918000</value>
<value>1020000</value>
<value>1122000</value>
<value>1224000</value>
<value>1326000</value>
<value>1428000</value>
<value>1530000</value>
<value>1632000</value>
<value>1734000</value>
<value>1836000</value>
<value>1912500</value>
</array>
<!-- Additional power consumption by CPU excluding cluster and core when
running -->
<array name="cpu.active">
<value>0.1</value>
</array>
<!-- Power consumption when CPU is idle -->
<item name="cpu.idle">8.57</item> <!-- suspend power 36 mW -->
<item name="cpu.awake">97.14</item> <!-- idle screen off 444 mW -->
<array name="cpu.active.cluster0">
<!-- Power consumption at different speeds -->
<value>36.95</value> <!-- 204000 -->
<value>60.08</value> <!-- 306000 -->
<value>80.32</value> <!-- 408000 -->
<value>103.28</value> <!-- 510000 -->
<value>121.55</value> <!-- 612000 -->
<value>147.79</value> <!-- 714000 -->
<value>174.06</value> <!-- 816000 -->
<value>173.26</value> <!-- 918000 -->
<value>181.49</value> <!-- 1020000 -->
<value>180.85</value> <!-- 1122000 -->
<value>179.45</value> <!-- 1224000 -->
<value>334.99</value> <!-- 1326000 -->
<value>373.08</value> <!-- 1428000 -->
<value>404.53</value> <!-- 1530000 -->
<value>454.39</value> <!-- 1632000 -->
<value>483.34</value> <!-- 1734000 -->
<value>533.69</value> <!-- 1836000 -->
<value>531.57</value> <!-- 1912500 -->
</array>
<array name="cpu.clusters.cores">
<value>4</value> <!-- Cluster 0 has 4 cores (cpu0, cpu1, cpu2, cpu3) -->
</array>
<!-- This is the battery capacity in mAh -->
<item name="battery.capacity">9000</item>
<array name="wifi.batchedscan">
<value>.0003</value> <!-- 1-8/hr -->
<value>.003</value> <!-- 9-64/hr -->
<value>.03</value> <!-- 65-512/hr -->
<value>.3</value> <!-- 513-4,096/hr -->
<value>3</value> <!-- 4097-/hr -->
</array>
</device>

@ -0,0 +1,57 @@
<?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>
<bool name="def_dim_screen">false</bool>
<integer name="def_screen_off_timeout">0x7fffffff</integer>
<!-- Default screen brightness, translate to 85 in kernel -->
<integer name="def_screen_brightness">120</integer>
<bool name="def_bluetooth_on">false</bool>
<!-- 0 == never, 1 == only when plugged in, 2 == always -->
<integer name="def_wifi_sleep_policy">2</integer>
<!-- Disable the lockscreen -->
<bool name="def_lockscreen_disabled">true</bool>
<!-- No setup wizard -->
<bool name="def_device_provisioned">true</bool>
<!-- Keep screen on at all times by default -->
<bool name="def_stay_on_while_plugged_in">true</bool>
<integer name="def_screenshot_button_show">0</integer>
<integer name="def_system_navigation_keys_enabled">1</integer>
<!-- No need to confirm immersive mode -->
<string name="def_immersive_mode_confirmations" translatable="false">confirmed</string>
<!-- Decrease animation duration. -->
<fraction name="def_window_animation_scale">50%</fraction>
<fraction name="def_window_transition_scale">50%</fraction>
<!-- Default for Settings.Secure.USER_SETUP_COMPLETE -->
<bool name="def_user_setup_complete">true</bool>
<!-- Default for Settings.Secure.TV_USER_SETUP_COMPLETE -->
<bool name="def_tv_user_setup_complete">true</bool>
</resources>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/dimens.xml
**
** Copyright 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.
*/
-->
<resources>
<dimen name="navigation_key_width">82dp</dimen>
<dimen name="navigation_key_padding">8dp</dimen>
</resources>

@ -0,0 +1,43 @@
<?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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- The default tiles to display in QuickSettings -->
<string name="quick_settings_tiles_default" translatable="false">
wifi,dnd,rotation,cell,airplane,dark
</string>
<!-- Whether to enable dimming navigation buttons when wallpaper is not visible, should be
enabled for OLED devices to reduce/prevent burn in on the navigation bar (because of the
black background and static button placements) and disabled for all other devices to
prevent wasting cpu cycles on the dimming animation -->
<bool name="config_navigation_bar_enable_auto_dim_no_visible_wallpaper">false</bool>
<!-- If true, enable the advance anti-falsing classifier on the lockscreen. On
some devices it does not work well, particularly with noisy touchscreens. Note
that disabling it may increase the rate of unintentional unlocks. -->
<bool name="config_lockscreenAntiFalsingClassifierEnabled">false</bool>
<!-- Respect drawable/rounded.xml intrinsic size for multiple radius corner path customization -->
<bool name="config_roundedCornerMultipleRadius">true</bool>
</resources>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/**
* Copyright (c) 2015, 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>
<bool name="profile_supported_a2dp">true</bool>
<bool name="profile_supported_a2dp_sink">false</bool>
<bool name="profile_supported_hs_hfp">false</bool>
<bool name="profile_supported_hfpclient">false</bool>
<bool name="profile_supported_gatt">true</bool>
<bool name="profile_supported_avrcp_controller">false</bool>
</resources>

@ -0,0 +1,13 @@
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<!-- This is a place for vendor-specific config values. The format and
filtering rules are the same as those in carrier_config*.xml files. This
file is read after any specific config file from the assets folder, so it
must use explicit filters for MCC ad MNC if that is desired. -->
<carrier_config_list>
<carrier_config>
<boolean name="enabledMMS" value="false"/>
<boolean name="show_4g_for_lte_data_icon_bool" value="true"/>
<boolean name="world_mode_enabled_bool" value="true"/>
</carrier_config>
</carrier_config_list>

@ -0,0 +1,27 @@
<?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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Miscellaneous -->
<bool name="allow_rotation">true</bool>
</resources>

@ -0,0 +1,40 @@
<?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>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi P2P interfaces. If the device doesn't want to support tethering over Wifi P2p this
should be empty. An example would be "p2p-p2p\\d-.*" -->
<string-array translatable="false" name="config_tether_wifi_p2p_regexs">
<item>"p2p-p2p\\d-.*"</item>
<item>"p2p-wlan\\d-.*"</item>
<item>"p2p-dev-wlan\\d"</item>
<item>"p2p\\d"</item>
</string-array>
<!-- Which USB function should be enabled when TETHERING_USB is requested. 0: RNDIS, 1: NCM.
-->
<integer translatable="false" name="config_tether_usb_functions">0</integer>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
USB interfaces. If the device doesn't want to support tethering over USB this should
be empty. An example would be "usb.*" -->
<string-array translatable="false" name="config_tether_usb_regexs">
<item>"ncm\\d"</item>
<item>"rndis\\d"</item>
</string-array>
</resources>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--suppress CheckTagEmptyBody: overlayable resource to use as configuration hook -->
<string name="config_captive_portal_http_url" translatable="false">http://www.google.cn/generate_204</string>
<!--suppress CheckTagEmptyBody: overlayable resource to use as configuration hook -->
<string name="config_captive_portal_https_url" translatable="false">https://www.google.cn/generate_204</string>
</resources>

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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.
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. Do not translate.
NOTE: The naming convention is "config_camelCaseValue". Some legacy
entries do not follow the convention, but all new entries should. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- boolean indicating whether the WiFi chipset has 5GHz band support.
Note: This config is replacing the config_wifi_dual_band_support
since more bands may now be supported (such as 6GHz), the naming dual_band
is no longer indicative, and a separate config now exists for each band -->
<bool translatable="false" name ="config_wifi5ghzSupport">true</bool>
<!-- Indicates that connected MAC randomization is supported on this device -->
<bool translatable="false" name="config_wifi_connected_mac_randomization_supported">true</bool>
<!-- Indicates that p2p MAC randomization is supported on this device -->
<bool translatable="false" name="config_wifi_p2p_mac_randomization_supported">false</bool>
<!-- Indicates that AP mode MAC randomization is supported on this device -->
<bool translatable="false" name="config_wifi_ap_mac_randomization_supported">false</bool>
<!-- Boolean indicating whether the wifi chipset supports background scanning mechanism.
This mechanism allows the host to remain in suspend state and the dongle to actively
scan and wake the host when a configured SSID is detected by the dongle. This chipset
capability can provide power savings when wifi needs to be always kept on. -->
<bool translatable="false" name="config_wifi_background_scan_support">true</bool>
<!-- Wifi driver supports IEEE80211AC for softap -->
<bool translatable="false" name="config_wifi_softap_ieee80211ac_supported">true</bool>
<!-- Wifi driver supports IEEE80211AX for softap -->
<bool translatable="false" name="config_wifiSoftapIeee80211axSupported">true</bool>
<!-- List of allowed channels in 5GHz band for softap. If the device doesn't want to restrict
channels this should be empty. Values is a comma separated channel string and/or channel
range string like '36-48,149'. -->
<string translatable="false" name="config_wifiSoftap5gChannelList">36,40,44,48,149,153,157</string>
</resources>

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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.
-->
<!-- Phone app resources that may need to be customized
for different hardware or product builds. -->
<resources>
<!-- Show enabled lte option for lte device -->
<bool name="config_enabled_lte" translatable="false">true</bool>
</resources>

@ -0,0 +1,31 @@
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
/dev/block/platform/ff0f0000.dwmmc/by-name/user /mnt/internal_sd vfat defaults defaults
/dev/block/mmcblk0p1 /mnt/external_sd vfat /dev/block/mmcblk0 defaults
/dev/block/by-name/system /system ext4 defaults defaults
/dev/block/by-name/vendor /vendor ext4 defaults defaults
/dev/block/by-name/odm /odm ext4 defaults defaults
/dev/block/by-name/product /product ext4 defaults defaults
/dev/block/by-name/system_ext /system_ext ext4 defaults defaults
/dev/block/by-name/vendor_dlkm /vendor_dlkm ext4 defaults defaults
/dev/block/by-name/odm_dlkm /odm_dlkm ext4 defaults defaults
/dev/block/by-name/cache /cache ext4 defaults defaults
/dev/block/by-name/metadata /metadata ext4 defaults defaults
/dev/block/by-name/userdata /data ext4 defaults defaults
/dev/block/by-name/cust /cust ext4 defaults defaults
/dev/block/by-name/custom /custom ext4 defaults defaults
/dev/block/by-name/radical_update /radical_update ext4 defaults defaults
/dev/block/by-name/misc /misc emmc defaults defaults
/dev/block/by-name/uboot /uboot emmc defaults defaults
/dev/block/by-name/charge /charge emmc defaults defaults
/dev/block/by-name/resource /resource emmc defaults defaults
/dev/block/by-name/parameter /parameter emmc defaults defaults
/dev/block/by-name/boot /boot emmc defaults defaults
/dev/block/by-name/recovery /recovery emmc defaults defaults
/dev/block/by-name/backup /backup emmc defaults defaults
/dev/block/by-name/frp /frp emmc defaults defaults
/dev/block/by-name/trust /trust emmc defaults defaults
/dev/block/by-name/baseparamer /baseparamer emmc defaults defaults
/dev/block/by-name/vbmeta /vbmeta emmc defaults defaults
/dev/block/by-name/dtbo /dtbo emmc defaults defaults
/dev/block/by-name/vendor_boot /vendor_boot emmc defaults defaults

@ -0,0 +1,24 @@
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
system /system ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
vendor /vendor ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
odm /odm ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
product /product ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
system_ext /system_ext ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
vendor_dlkm /vendor_dlkm ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
odm_dlkm /odm_dlkm ext4 ro,barrier=1 wait,slotselect,logical,first_stage_mount
/dev/block/by-name/metadata /metadata ext4 nodev,noatime,nosuid,discard,sync wait,formattable,first_stage_mount
/dev/block/by-name/cache /cache ext4 noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard wait,check
/dev/block/by-name/userdata /data ext4 defaults defaults
/dev/block/by-name/misc /misc emmc defaults defaults
/dev/block/by-name/frp /frp emmc defaults defaults
/dev/block/by-name/baseparamer /baseparamer emmc defaults defaults
/dev/block/by-name/backup /backup emmc defaults defaults
/dev/block/mmcblk0p1 /mnt/external_sd vfat /dev/block/mmcblk0 defaults
/dev/block/zram0 none swap defaults zramsize=50%

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resolutions>
<!-- white list disabled, See mode_verify() in
hardware/rockchip/hwcomposer/drmhwc/drmresources.cpp
hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp
-->
</resolutions>

@ -1,3 +1,5 @@
/vendor/lib(64)?/hw/vulkan.rk3576.so u:object_r:same_process_hal_file:s0
/vendor/bin/usb_modeswitch u:object_r:usb_dongle_exec:s0
/vendor/bin/init.usbmod.sh u:object_r:usb_dongle_exec:s0
/sys/devices/platform/2a580000.otp/rockchip-otp0/nvmem u:object_r:sysfs_nvmem:s0

@ -12,6 +12,7 @@ genfscon sysfs /devices/platform/2602e000.syscon/2602e000.syscon:usb2-phy@0/extc
genfscon sysfs /devices/platform/2602e000.syscon/2602e000.syscon:usb2-phy@0/uevent u:object_r:sysfs_extcon:s0
genfscon sysfs /devices/platform/2a200000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/2a200000.pcie/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/2a210000.pcie/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/2a310000.mmc/mmc_host/mmc1 u:object_r:sysfs_mmc:s0
genfscon sysfs /devices/platform/2a330000.mmc/mmc_host/mmc0 u:object_r:sysfs_mmc:s0
genfscon sysfs /devices/platform/27da0000.hdmi/extcon u:object_r:sysfs_extcon:s0
@ -25,4 +26,10 @@ genfscon sysfs /devices/platform/2a2d0000.ufs/host0/target0:0:0/0:0:0:3/wakeup
genfscon sysfs /devices/platform/2a220000.ethernet/net u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/2a230000.ethernet/net u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/23000000.usb u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/23000000.usb/usb_role u:object_r:sysfs:s0
genfscon sysfs /devices/platform/23400000.usb u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/2a200000.pcie u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/2a210000.pcie u:object_r:sysfs_net:s0
genfscon sysfs /devices/platform/2ac40000.i2c/i2c-1/1-0023/rk805-pwrkey.1.auto/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/2ac50000.i2c/i2c-2/2-0051/rtc/rtc0/alarmtimer.3.auto/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/2ac50000.i2c/i2c-2/2-0051/wakeup u:object_r:sysfs_wakeup:s0

Loading…
Cancel
Save