...
 
Commits (30)
......@@ -72,3 +72,9 @@ $(INSTALLED_RECOVERYIMAGE_r8168-ko): $(INSTALLED_KERNEL_TARGET)
cp $(TARGET_OUT_VENDOR)/lib/modules/r8168.ko $@
$(INSTALLED_RECOVERYIMAGE_TARGET): $(INSTALLED_RECOVERYIMAGE_r8168-ko)
EKS_DAT_SYMLINK := $(TARGET_OUT_VENDOR)/app/eks2/eks2.dat
$(EKS_DAT_SYMLINK): $(LOCAL_INSTALLED_MODULE)
$(hide) ln -sf /data/vendor/eks2/ek2.dat $@
ALL_DEFAULT_INSTALLED_MODULES += $(EKS_DAT_SYMLINK)
......@@ -33,6 +33,9 @@ TARGET_OTA_ASSERT_DEVICE := foster,darcy,mdarcy,sif,jetson,porg,loki,icosa
# Bootloader versions
TARGET_BOARD_INFO_FILE := device/nvidia/foster/board-info.txt
# Manifest
DEVICE_MANIFEST_FILE := device/nvidia/foster/manifest.xml
# Bluetooth
ifeq ($(TARGET_TEGRA_BT),bcm)
BOARD_CUSTOM_BT_CONFIG := device/nvidia/foster/comms/vnd_foster.txt
......@@ -48,17 +51,35 @@ BOARD_KERNEL_IMAGE_NAME := Image.gz
BOARD_KERNEL_BASE := 0x80080000
BOARD_KERNEL_PAGESIZE := 4096
# Light
include hardware/nvidia/light/BoardLight.mk
# Lineage Hardware Support
JAVA_SOURCE_OVERLAYS := org.lineageos.hardware|device/nvidia/foster/lineagehw|**/*.java
# Recovery
TARGET_RECOVERY_FSTAB := device/nvidia/foster/initfiles/fstab.foster
BOARD_SUPPRESS_EMMC_WIPE := true
# Releasetools
TARGET_RELEASETOOLS_EXTENSIONS := device/nvidia/foster/releasetools
# Security Patch Level
VENDOR_SECURITY_PATCH := 2019-07-05
# Treble
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_VNDK_VERSION := current
PRODUCT_FULL_TREBLE_OVERRIDE := true
# TWRP Support
ifeq ($(WITH_TWRP),true)
include device/nvidia/foster/twrp/twrp.mk
endif
#Vendor Init
TARGET_INIT_VENDOR_LIB := libinit_foster
include device/nvidia/t210-common/BoardConfigCommon.mk
include device/nvidia/touch/BoardConfigTouch.mk
include vendor/nvidia/foster/BoardConfigVendor.mk
......@@ -20,10 +20,22 @@ TARGET_TEGRA_VARIANT := common
TARGET_TEGRA_AUDIO ?= nvaudio
TARGET_TEGRA_BT ?= bcm
TARGET_TEGRA_CEC ?= nvhdmi
TARGET_TEGRA_KEYSTORE ?= nvkeystore
TARGET_TEGRA_MEMTRACK ?= nvmemtrack
TARGET_TEGRA_OMX ?= nvmm64
TARGET_TEGRA_PHS ?= nvphs
TARGET_TEGRA_POWER ?= lineage
TARGET_TEGRA_WIDEVINE ?= true
TARGET_TEGRA_WIFI ?= bcm
$(call inherit-product, device/nvidia/t210-common/t210.mk)
$(call inherit-product, device/nvidia/touch/raydium.mk)
$(call inherit-product, device/nvidia/touch/shtouch.mk)
# Only include Shield apps for first party targets
ifneq ($(filter $(word 2,$(subst _, ,$(TARGET_PRODUCT))), foster foster_tab),)
$(call inherit-product, device/nvidia/shield-common/shield.mk)
endif
# System properties
include $(LOCAL_PATH)/system_prop.mk
......@@ -44,6 +56,10 @@ PRODUCT_VENDOR_PROPERTY_BLACKLIST := \
ro.product.vendor.name \
ro.vendor.build.fingerprint
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
device/nvidia/foster/overlay
# Init related
PRODUCT_PACKAGES += \
init_tegra \
......@@ -144,6 +160,30 @@ PRODUCT_PACKAGES += \
charger \
charger_res_images
# EKS
ifeq ($(TARGET_TEGRA_KEYSTORE),nvkeystore)
PRODUCT_PACKAGES += \
init.eks2.rc \
eks2_darcy.dat \
eks2_foster.dat \
eks2_mdarcy.dat \
eks2_public.dat \
eks2_sif.dat
endif
# Joycon daemon
PRODUCT_PACKAGES += \
joycond
# Light
PRODUCT_PACKAGES += \
android.hardware.light@2.0-service-nvidia
# Loadable kernel modules
PRODUCT_PACKAGES += \
init.lkm.rc \
lkm_loader
# Media config
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_ODM)/etc/media_codecs_google_audio.xml \
......@@ -160,6 +200,16 @@ endif
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/permissions/nrdp.modelgroup.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/nrdp.modelgroup.xml
# NVIDIA specific permissions
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/permissions/com.nvidia.feature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nvidia.feature.xml
# PHS
ifeq ($(TARGET_TEGRA_PHS),nvphs)
PRODUCT_PACKAGES += \
nvphsd.conf
endif
# Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@1.0-service-nvidia \
......@@ -168,6 +218,10 @@ PRODUCT_PACKAGES += \
thermalhal.loki_e_lte.xml \
thermalhal.loki_e_wifi.xml
# Trust HAL
PRODUCT_PACKAGES += \
vendor.lineage.trust@1.0-service
# WiFi
ifeq ($(TARGET_TEGRA_WIFI),bcm)
PRODUCT_PACKAGES += \
......
#
# Copyright (C) 2019 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.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := eks2_foster.dat
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := eks2_foster.dat
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app/eks2
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := eks2_darcy.dat
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := eks2_darcy.dat
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app/eks2
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := eks2_mdarcy.dat
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := eks2_mdarcy.dat
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app/eks2
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := eks2_public.dat
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := eks2_public.dat
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app/eks2
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := eks2_sif.dat
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := eks2_sif.dat
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/app/eks2
include $(BUILD_PREBUILT)
#!/bin/bash
#
# Copyright (C) 2018 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.
#
set -e
DEVICE=foster
VENDOR=nvidia
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
LINEAGE_ROOT="$MY_DIR"/../../..
HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh
if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER"
exit 1
fi
. "$HELPER"
while [ "$1" != "" ]; do
case $1 in
-n | --no-cleanup ) CLEAN_VENDOR=false
;;
-s | --section ) shift
SECTION=$1
CLEAN_VENDOR=false
;;
* ) SRC=$1
;;
esac
shift
done
if [ -z "$SRC" ]; then
SRC=adb
fi
# Initialize the helper
setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" false "$CLEAN_VENDOR"
extract "$MY_DIR"/proprietary-files.txt "$SRC" "$SECTION"
"$MY_DIR"/setup-makefiles.sh
......@@ -494,3 +494,11 @@ LOCAL_MODULE_CLASS := ETC
LOCAL_ODM_MODULE := true
LOCAL_SRC_FILES := power.darcy.rc
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := lkm_loader
LOCAL_SRC_FILES := lkm_loader.sh
LOCAL_MODULE_SUFFIX := .sh
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_VENDOR_MODULE := true
include $(BUILD_PREBUILT)
# Copyright (C) 2020 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.
on property:vold.post_fs_data_done=1
mkdir /data/vendor/eks2 0755 system system
on property:vold.post_fs_data_done=1 && property:ro.hardware=darcy
symlink /vendor/app/eks2/eks2_darcy.dat /data/vendor/eks2/eks2.dat
on property:vold.post_fs_data_done=1 && property:ro.hardware=foster_e
symlink /vendor/app/eks2/eks2_foster.dat /data/vendor/eks2/eks2.dat
on property:vold.post_fs_data_done=1 && property:ro.hardware=foster_e_hdd
symlink /vendor/app/eks2/eks2_foster.dat /data/vendor/eks2/eks2.dat
on property:vold.post_fs_data_done=1 && property:ro.hardware=sif
symlink /vendor/app/eks2/eks2_sif.dat /data/vendor/eks2/eks2.dat
# Default if none of the others trigger
on property:vold.post_fs_data_done=1
symlink /vendor/app/eks2/eks2_public.dat /data/vendor/eks2/eks2.dat
This diff is collapsed.
[
{
"repository": "android_device_nvidia_shield-common",
"target_path": "device/nvidia/shield-common"
},
{
"repository": "android_device_nvidia_t210-common",
"target_path": "device/nvidia/t210-common"
......
/*
* Copyright (C) 2018 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.hardware;
import org.lineageos.internal.util.FileUtils;
/**
* NVIDIA SmartDimmer adaptive backlight implementation
*
* {@link frameworks/opt/hardware/src/org/cyanogenmod/hardware/AdaptiveBacklight.java}
*/
public class AdaptiveBacklight {
private static final String SMARTDIMMER_SYSFS =
"/sys/devices/platform/host1x/tegradc.0/smartdimmer/enable";
public static boolean isSupported() {
return true;
}
public static boolean isEnabled() {
try {
String value = FileUtils.readOneLine(SMARTDIMMER_SYSFS);
if (value == null) {
return false;
}
return Integer.parseInt(value) == 1;
} catch (NumberFormatException nfex) {
return false;
}
}
public static boolean setEnabled(boolean status) {
return FileUtils.writeLine(SMARTDIMMER_SYSFS, status ? "1" : "0");
}
}
<manifest version="1.0" type="device">
<hal format="hidl">
<name>vendor.lineage.trust</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUsbRestrict</name>
<instance>default</instance>
</interface>
</hal>
</manifest>
#
# Copyright (C) 2019 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.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := nvphsd.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := nvphsd.foster.conf
LOCAL_ODM_MODULE := true
include $(BUILD_PREBUILT)
gpufreq=/sys/kernel/tegra_gpu/gpu_rate
gpu_possible_rates=/sys/kernel/tegra_gpu/gpu_available_rates
gpuload=/sys/devices/platform/host1x/gpu.0/load
gpucounters=/sys/devices/platform/host1x/gpu.0/counters_reset
cpu_fmax_at_vmin=800000
gpu_fmax_at_vmin=537000
governor=boot,generic,camera,gpucompute,il,ui,force,tbc,spincircle
<?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.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- 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] -->
<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,4,60000,true"</item>
<item>"mobile_supl,3,0,4,60000,true"</item>
<item>"mobile_dun,4,0,4,60000,true"</item>
<item>"bluetooth,7,7,1,-1,true"</item>
<item>"mobile_hipri,5,0,5,60000,true"</item>
<item>"ethernet,9,9,3,-1,true"</item>
</string-array>
<!-- This array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks
can coexist based on the hardware. -->
<!-- An array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"0,1"</item>
<item>"7,1"</item>
<item>"9,0"</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>"rndis0"</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>
</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>
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">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>
<!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
The N entries of this array define N 1 zones as follows:
Zone 0: 0 <= LUX < array[0]
Zone 1: array[0] <= LUX < array[1]
...
Zone N: array[N - 1] <= LUX < array[N]
Zone N + 1 array[N] <= LUX < infinity
Must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLevels">
<item>10</item>
<item>160</item>
<item>320</item>
<item>640</item>
<item>1280</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.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>30</item>
<item>100</item>
<item>130</item>
<item>170</item>
<item>200</item>
<item>250</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.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessButtonBacklightValues">
<item>75</item>
<item>90</item>
<item>140</item>
<item>190</item>
<item>240</item>
<item>250</item>
<item>255</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.
This must be overridden in platform specific overlays -->
<integer-array name="config_autoBrightnessKeyboardBacklightValues">
<item>75</item>
<item>60</item>
<item>40</item>
<item>20</item>
<item>10</item>
<item>5</item>
<item>0</item>
</integer-array>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Enable electronBeam animation instead of fading off. -->
<bool name="config_animateScreenLights">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.
The driver commands needed to support the feature are BGSCAN-START and BGSCAN-STOP -->
<bool name="config_wifi_background_scan_support">true</bool>
<!-- Wifi driver supports batched scan -->
<bool translatable="false" name="config_wifi_batched_scan_supported">false</bool>
<!-- Integer indicating wpa_supplicant scan interval when p2p is connected in milliseconds -->
<integer translatable="false" name="config_wifi_scan_interval_p2p_connected">15000</integer>
<!-- Maximum number of supported users -->
<integer name="config_multiuserMaximumUsers">8</integer>
<!-- Whether UI for multi user should be shown -->
<bool name="config_enableMultiUserUI">true</bool>
<!-- Is the device capable of hot swapping an UICC Card -->
<add-resource type="bool" name="config_hotswapCapable"/>
<bool name="config_hotswapCapable">true</bool>
<!-- MMS user agent string -->
<add-resource type="string" name="config_mms_user_agent"/>
<string name="config_mms_user_agent" translatable="false">Shield Tablet Pro</string>
<!-- MMS user agent prolfile url -->
<add-resource type="string" name="config_mms_user_agent_profile_url"/>
<string name="config_mms_user_agent_profile_url" translatable="false">http://www.nvidia.com</string>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">600</integer>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
-->
<add-resource type="array" name="config_mobile_tcp_buffers"/>
<string-array name="config_mobile_tcp_buffers">
<item>gprs:4092,8760,48000,4096,8760,48000</item>
<item>edge:4093,26280,70800,4096,16384,70800</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>lte:524288,1048576,2097152,262144,524288,1048576</item>
</string-array>
<!-- Boolean indicating whether the wifi chipset has dual frequency band support -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool>
<!-- Boolean indicating associated network selection is allowed -->
<bool translatable="false" name="config_wifi_framework_enable_associated_network_selection">false</bool>
<!-- Use proper headphone jack detection -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 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.
*/
-->
<device name="Android">
<!-- All values are in mA except as noted -->
<item name="none">0</item>
<item name="screen.on">202.25</item>
<item name="screen.full">252</item>
<item name="bluetooth.active">5</item>
<!--
Bluetooth stereo audio playback 14.0 mA
-->
<item name="bluetooth.on">5</item>
<!--
I measured the following value 1.4 mA
but there is a GPIO fix pending that should
bring this down to 0.2 mA
-->
<item name="wifi.on">30</item>
<item name="wifi.active">95.5</item>
<item name="wifi.scan">95.5</item>
<item name="dsp.audio">85</item>
<item name="dsp.video">256</item>
<item name="gps.on">58.8</item>
<item name="radio.active">0</item>
<item name="radio.scanning">0</item>
<array name="radio.on"> <!-- Strength 0 to BINS-1 (4) -->
<value>0</value>
</array>
<!-- Different CPU speeds as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state -->
<array name="cpu.speeds">
<value>51000</value>
<value>102000</value>
<value>204000</value>
<value>304000</value>
<value>433898</value>
<value>613195</value>
<value>792492</value>
<value>817593</value>
<value>918000</value>
<value>1020000</value>
<value>1122000</value>
<value>1224000</value>
<value>1326000</value>
<value>1428000</value>
<value>1530000</value>
<value>1606500</value>
<value>1708500</value>
<value>1810500</value>
<value>1912500</value>
</array>
<!-- Power consumption when CPU is idle -->
<item name="cpu.idle">0</item>
<item name="cpu.awake">0.5</item>
<!-- Power consumption at different speeds -->
<array name="cpu.active">
<value>4</value>
<value>8</value>
<value>15</value>
<value>22.5</value>
<value>67.25</value>
<value>90.25</value>
<value>122.75</value>
<value>125.25</value>
<value>137.75</value>
<value>216</value>
<value>237.75</value>
<value>265</value>
<value>430.75</value>
<value>471</value>
<value>507.5</value>
<value>531.75</value>
<value>576.75</value>
<value>630.25</value>
<value>689</value>
</array>
<!-- This is the battery capacity in mAh -->
<item name="battery.capacity">6750</item>
<!--
Battery capacity is 6750 mAH (at 4 Volts)
-->
</device>
<?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>
<!-- Auto brightness mode is ON by default-->
<bool name="def_screen_brightness_automatic_mode">true</bool>
</resources>
<resources>
<bool name="profile_supported_map">false</bool>
<bool name="profile_supported_hdp">false</bool>
<bool name="profile_supported_hs_hfp">false</bool>
<bool name="profile_supported_pan">false</bool>
<bool name="profile_supported_opp">false</bool>
<bool name="profile_supported_pbap">false</bool>
<bool name="profile_supported_avrcp_controller">false</bool>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<feature name="com.nvidia.feature.shield"/>
<feature name="com.nvidia.feature.built_in_controller"/>
<feature name="com.nvidia.feature.app.vudu"/>
<feature name="com.nvidia.feature.app.plex.mediaserver"/>
<feature name="com.nvidia.feature.app.plex.smbserver"/>
<feature name="com.nvidia.feature.usb.tvtuners"/>
<feature name="com.nvidia.feature.network_attached_storage"/>
<feature name="com.nvidia.feature.shield_ask"/>
<feature name="com.nvidia.feature.beyonder"/>
</permissions>
# Firmware
etc/firmware/bcm4350.hcd
etc/firmware/gm20b/acr_ucode.bin
etc/firmware/gm20b/fecs.bin
etc/firmware/gm20b/fecs_sig.bin
etc/firmware/gm20b/gpccs.bin
etc/firmware/gm20b/gpmu_ucode.bin
etc/firmware/gm20b/gpmu_ucode_desc.bin
etc/firmware/gm20b/gpmu_ucode_image.bin
etc/firmware/gm20b/gpu2cde.bin
etc/firmware/gm20b/NETB_img.bin
etc/firmware/gm20b/pmu_bl.bin
etc/firmware/gm20b/pmu_sig.bin
etc/firmware/tegra21x/nvhost_nvdec020.fw
etc/firmware/tegra21x/nvhost_nvdec020_ns.fw
etc/firmware/tegra21x/nvhost_nvdec020_prod.fw
etc/firmware/tegra21x/nvhost_nvdec_bl020.fw
etc/firmware/tegra21x/nvhost_nvdec_bl020_prod.fw
etc/firmware/tegra21x/nvhost_nvdec_bl_no_wpr020.fw
etc/firmware/tegra21x/nvhost_nvenc050.fw
etc/firmware/tegra21x/nvhost_nvjpg010.fw
etc/firmware/tegra21x/nvhost_tsec.fw
etc/firmware/tegra21x/vic04_ucode.bin
etc/firmware/tegra21x_xusb_firmware
etc/firmware/tegra_xusb_firmware
vendor/firmware/nvram_darcy_a00.txt
vendor/firmware/nvram_foster_e_4354.txt
vendor/firmware/nvram_foster_e_antenna_tuned_4354.txt
vendor/firmware/nvram_loki_e_4354.txt
vendor/firmware/nvram_loki_e_antenna_tuned_4354.txt
vendor/firmware/adsp.elf
vendor/firmware/fw_bcmdhd.bin
vendor/firmware/libnvaecfx.elf
vendor/firmware/nvaacdec.elf
vendor/firmware/nvadma.elf
vendor/firmware/nvapm.elf
vendor/firmware/nvavp_aacdec_ucode.bin
vendor/firmware/nvavp_aud_ucode.bin
vendor/firmware/nvavp_mp3dec_ucode.bin
vendor/firmware/nvavp_os_0ff00000.bin
vendor/firmware/nvavp_os_8ff00000.bin
vendor/firmware/nvavp_os_eff00000.bin
vendor/firmware/nvavp_os_f7e00000.bin
vendor/firmware/nvavp_vid_ucode_alt.bin
vendor/firmware/nvavp_vid_ucode.bin
vendor/firmware/nvmp3dec.elf
vendor/firmware/nvoice.elf
vendor/firmware/nvspkprot.elf
vendor/firmware/nvsrc.elf
# Hdcp
etc/hdcpsrm/hdcp1x.srm
etc/hdcpsrm/hdcp2x.srm
etc/hdcpsrm/hdcp2xtest.srm
# Misc Apps
-vendor/app/NvCPLSvc/NvCPLSvc.apk
-vendor/app/NvShieldTech/NvShieldTech.apk
# ATV Apps
-app/LeanbackIme/LeanbackIme.apk
-priv-app/LeanbackLauncher/LeanbackLauncher.apk
-priv-app/SetupWraith/SetupWraith.apk
# Trusted Little Kernel / Security
vendor/app/eks2/eks2.dat
vendor/bin/eks2_client
vendor/bin/ss_status
vendor/bin/tlk_daemon
vendor/lib64/hw/gatekeeper.tegra.so
vendor/lib64/hw/keystore.v0.tegra.so
vendor/lib64/hw/keystore.v1.tegra.so
vendor/lib64/libtlk_secure_hdcp_up.so
vendor/lib64/libtsechdcp.so
vendor/lib64/libtsec_wrapper.so
vendor/lib/libtlk_secure_hdcp_up.so
vendor/lib/libtsechdcp.so
vendor/lib/libtsec_wrapper.so
# GPS
vendor/bin/glgps_nvidiaTegra2android
vendor/bin/gps_select.sh
vendor/lib64/hw/gps.brcm.so
# Power
vendor/bin/pbc2
vendor/lib64/hw/pbc.tegra.so
vendor/lib64/libphs.so
vendor/lib/hw/pbc.tegra.so
vendor/lib/libphs.so
# Raydium Touchscreen
vendor/bin/rm_ts_server
vendor/bin/run_ss_status.sh
vendor/lib/librm31080.so
vendor/lib/librm_ts_service.so
vendor/lib/para_10_02_00_20.so
vendor/lib/para_10_02_00_a0.so
vendor/lib/para_10_02_00_b0.so
vendor/lib/para_10_03_00_20.so
vendor/lib/para_10_03_00_a0.so
vendor/lib/para_10_03_00_b0.so
vendor/lib/para_10_04_00_b0.so
vendor/lib/para_10_04_00_c0.so
vendor/lib/para_10_05_00_c0.so
vendor/lib/para_10_06_00_b0.so
vendor/lib/para_10_07_00_b0.so
vendor/lib/para_10_08_00_20.so
vendor/lib/para_10_08_00_a0.so
vendor/lib/para_10_08_00_b0.so
vendor/lib/para_10_09_00_c0.so
vendor/lib/para_10_09_01_c0.so
vendor/lib/para_10_09_02_c0.so
vendor/lib/para_10_0a_00_b0.so
vendor/lib/para_10_0b_00_a0.so
vendor/lib/touch_para_10.so
# Unified scaling daemon
vendor/bin/ussrd
vendor/lib64/libaffinitydaemon.so
vendor/lib64/libgov_boot.so
vendor/lib64/libgov_camera.so
vendor/lib64/libgov_force.so
vendor/lib64/libgov_generic.so
vendor/lib64/libgov_gpucompute.so
vendor/lib64/libgov_graphics.so
vendor/lib64/libgov_il.so
vendor/lib64/libgov_spincircle.so
vendor/lib64/libgov_tbc.so
vendor/lib64/libgov_ui.so
vendor/lib64/libussrd.so
vendor/lib/libaffinitydaemon.so
vendor/lib/libgov_boot.so
vendor/lib/libgov_camera.so
vendor/lib/libgov_force.so
vendor/lib/libgov_generic.so
vendor/lib/libgov_gpucompute.so
vendor/lib/libgov_graphics.so
vendor/lib/libgov_il.so
vendor/lib/libgov_spincircle.so
vendor/lib/libgov_tbc.so
vendor/lib/libgov_ui.so
vendor/lib/libussrd.so
# Graphics
vendor/lib64/egl/libEGL_tegra.so
vendor/lib64/egl/libGLESv1_CM_tegra.so
vendor/lib64/egl/libGLESv2_tegra.so
vendor/lib64/hw/gralloc.tegra.so
vendor/lib64/hw/hwcomposer.tegra.so
vendor/lib64/hw/vulkan.tegra.so
vendor/lib64/libglcore.so
vendor/lib64/libnvblit.so
vendor/lib64/libnvddk_vic.so
vendor/lib64/libnvglsi.so
vendor/lib64/libnvgr.so
vendor/lib64/libnvrmapi_tegra.so
vendor/lib64/libnvrm_gpu.so
vendor/lib64/libnvrm_graphics.so
vendor/lib64/libnvrm.so
vendor/lib64/libnvRSCompiler.so
vendor/lib64/libnvRSDriver.so
vendor/lib64/libnvwsi.so
vendor/lib/egl/libEGL_tegra.so
vendor/lib/egl/libGLESv1_CM_tegra.so
vendor/lib/egl/libGLESv2_tegra.so
vendor/lib/hw/gralloc.tegra.so
vendor/lib/hw/hwcomposer.tegra.so
vendor/lib/hw/vulkan.tegra.so
vendor/lib/libglcore.so
vendor/lib/libnvblit.so
vendor/lib/libnvddk_2d_v2.so
vendor/lib/libnvddk_vic.so
vendor/lib/libnvglsi.so
vendor/lib/libnvgr.so
vendor/lib/libnvrmapi_tegra.so
vendor/lib/libnvrm_gpu.so
vendor/lib/libnvrm_graphics.so
vendor/lib/libnvrm.so
vendor/lib/libnvRSCompiler.so
vendor/lib/libnvRSDriver.so
vendor/lib/libnvwsi.so
vendor/lib/libw.so
# Misc HALs
vendor/lib64/hw/hdmi_cec.tegra.so
vendor/lib64/hw/memtrack.tegra.so
vendor/lib/hw/hdmi_cec.tegra.so
vendor/lib/hw/memtrack.tegra.so
# Sensors
vendor/lib64/hw/sensors.default.api_v1.4.mpl530.nvs.so
vendor/lib64/libmllite.so
vendor/lib64/libmplmpu.so
vendor/lib64/libsensors.fusion.mpl530.nvs.so
vendor/lib64/libsensors.hal-drivers.nvs.so
vendor/lib64/libsensors.hal.nvs.so
vendor/lib64/libsensors.prefusion.mpl530.nvs.so
vendor/lib/libmllite.so
vendor/lib/libmplmpu.so
vendor/lib/libsensors.hal-drivers.nvs.so
vendor/lib/libsensors.hal.nvs.so
# Misc
vendor/lib64/libcuda.so
vendor/lib64/libnvcontrol_jni.so
vendor/lib64/libnvcpl.so
vendor/lib64/libnvhwc_service.so
vendor/lib64/libnvos.so
vendor/lib/libcuda.so
vendor/lib/libnvcontrol_jni.so
vendor/lib/libnvcpl.so
vendor/lib/libnvhwc_service.so
vendor/lib/libnvos.so
vendor/lib/libnvtnr.so
vendor/lib/libnvtvmr.so
# Shieldtech
vendor/lib64/libfirmwareupdate.so
vendor/lib64/libhidraw.so
vendor/lib64/liblota.so
vendor/lib64/libshieldtech.so
vendor/lib64/nvshieldtech.so
vendor/lib/libfirmwareupdate.so
vendor/lib/libhidraw.so
vendor/lib/liblota.so
vendor/lib/libshieldtech.so
vendor/lib/nvshieldtech.so
# Widevine
vendor/lib64/mediadrm/libwvdrmengine.so
vendor/lib/liboemcrypto.so
vendor/lib/mediadrm/libwvdrmengine.so
# Audio
vendor/lib/hw/audio.primary.tegra.so
vendor/lib/libnvaudiofx.so
vendor/lib/libnvavp.so
vendor/lib/libnvoice.so
# Camera
vendor/lib/hw/camera.tegra.so
vendor/lib/libnvcamerahdr_v3.so
vendor/lib/libnvcameranrr.so
vendor/lib/libnvcamerautils.so
vendor/lib/libnvcam_imageencoder.so
vendor/lib/libnvcamlog.so
vendor/lib/libnvcudautils.so
vendor/lib/libnvfnet.so
vendor/lib/libnvfnetstoredefog.so
vendor/lib/libnvfnetstorehdfx.so
vendor/lib/libnvisp_v3.so
vendor/lib/libnvmm_camera_v3.so
vendor/lib/libnvvicsi_v3.so
vendor/lib/libopencv24_tegra.so
vendor/lib/libprotobuf-cpp-lold.so
vendor/lib/libscf.so
vendor/lib/libtbb.so
# Media
vendor/lib/libnvmm_audio.so
vendor/lib/libnvmm_contentpipe.so
vendor/lib/libnvmmlite_audio.so
vendor/lib/libnvmmlite_image.so
vendor/lib/libnvmmlite.so
vendor/lib/libnvmmlite_utils.so
vendor/lib/libnvmmlite_video.so
vendor/lib/libnvmm_msaudio.so
vendor/lib/libnvmm_parser.so
vendor/lib/libnvmm.so
vendor/lib/libnvmm_utils.so
vendor/lib/libnvmm_writer.so
vendor/lib/libnvodm_imager.so
vendor/lib/libnvomxadaptor.so
vendor/lib/libnvomxilclient.so
vendor/lib/libnvomx.so
vendor/lib/libnvparser.so
# Copyright (C) 2019 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.
#
""" Custom OTA commands for foster devices """
import common
import re
import os
TARGET_DIR = os.getenv('OUT')
STAGING_PART = '/dev/block/USP'
APP_PART = '/dev/block/APP'
VENDOR_PART = '/dev/block/vendor'
ICOSA_SD = '/external_sd/switchroot/android/'
def FullOTA_PostValidate(info):
info.script.AppendExtra('run_program("/sbin/e2fsck", "-fy", "' + APP_PART + '");');
info.script.AppendExtra('run_program("/sbin/e2fsck", "-fy", "' + VENDOR_PART + '");');
info.script.AppendExtra('run_program("/sbin/resize2fs", "' + APP_PART + '");');
info.script.AppendExtra('run_program("/sbin/resize2fs", "' + VENDOR_PART + '");');
info.script.AppendExtra('run_program("/sbin/e2fsck", "-fy", "' + APP_PART + '");');
info.script.AppendExtra('run_program("/sbin/e2fsck", "-fy", "' + VENDOR_PART + '");');
def FullOTA_Assertions(info):
if 'RADIO/foster_e.blob' in info.input_zip.namelist():
CopyBlobs(info.input_zip, info.output_zip)
AddBootloaderFlash(info, info.input_zip)
else:
AddBootloaderAssertion(info, info.input_zip)
def IncrementalOTA_Assertions(info):
FullOTA_Assertions(info)
def CopyBlobs(input_zip, output_zip):
for info in input_zip.infolist():
f = info.filename
if f.startswith("RADIO/") and (f.__len__() > len("RADIO/")):
fn = f[6:]
common.ZipWriteStr(output_zip, "firmware-update/" + fn, input_zip.read(f))
def AddBootloaderAssertion(info, input_zip):
android_info = input_zip.read("OTA/android-info.txt").decode('utf-8')
m = re.search(r"require\s+version-bootloader\s*=\s*(\S+)", android_info)
if m:
bootloaders = m.group(1).split("|")
if "*" not in bootloaders:
info.script.AssertSomeBootloader(*bootloaders)
info.metadata["pre-bootloader"] = m.group(1)
def AddBootloaderFlash(info, input_zip):
android_info = input_zip.read("OTA/android-info.txt").decode('utf-8')
m = re.search(r"require\s+version-bootloader\s*=\s*(\S+)", android_info)
if m:
bootloaders = m.group(1).split("|")
info.metadata["pre-bootloader"] = m.group(1)
if "*" not in bootloaders:
info.script.AppendExtra('ifelse(')
info.script.AppendExtra(' getprop("ro.hardware") == "foster_e" || getprop("ro.hardware") == "foster_e_hdd" || getprop("ro.hardware") == "darcy" || getprop("ro.hardware") == "icosa",')
info.script.AppendExtra(' ifelse(')
info.script.AppendExtra(' ' + ' || '.join(['getprop("ro.bootloader") == "%s"' % (b,) for b in bootloaders]) + ',')
info.script.AppendExtra(' (')
info.script.AppendExtra(' ui_print("Correct bootloader already installed");')
info.script.AppendExtra(' ),')
info.script.AppendExtra(' (')
info.script.AppendExtra(' ui_print("Flashing updated bootloader");')
info.script.AppendExtra(' ifelse(')
info.script.AppendExtra(' getprop("ro.hardware") == "icosa",')
info.script.AppendExtra(' (')
info.script.AppendExtra(' package_extract_file("firmware-update/coreboot.rom", "' + ICOSA_SD + 'coreboot.rom");')
info.script.AppendExtra(' package_extract_file("firmware-update/boot.scr", "' + ICOSA_SD + 'boot.scr");')
info.script.AppendExtra(' ),')
info.script.AppendExtra(' package_extract_file("firmware-update/" + getprop(ro.hardware) + ".blob", "' + STAGING_PART + '");')
info.script.AppendExtra(' )')
info.script.AppendExtra(' )')
info.script.AppendExtra(' ),')
info.script.AppendExtra(' assert(' + ' || '.join(['getprop("ro.bootloader") == "%s"' % (b,) for b in bootloaders]) +
' || abort("This package supports bootloader(s): ' + ', '.join(["%s" % (b,) for b in bootloaders]) +
'; this device has bootloader " + getprop("ro.bootloader") + ".");' + ');')
info.script.AppendExtra(');')
#!/bin/bash
#
# Copyright (C) 2018 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.
#
set -e
DEVICE=foster
VENDOR=nvidia
INITIAL_COPYRIGHT_YEAR=2015
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
LINEAGE_ROOT="$MY_DIR"/../../..
HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh
if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER"
exit 1
fi
. "$HELPER"
# Initialize the helper
setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT"
# Copyright headers and guards
write_headers
write_makefiles "$MY_DIR"/proprietary-files.txt true
cat << EOF >> "$ANDROIDMK"
EOF
# Finish
write_footers
# AV
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.media.avsync=true
# Charger
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.NV_ECO.IF.CHARGING=false
# Gamestreaming specific properties
PRODUCT_PROPERTY_OVERRIDES += \
ro.gamestream.display.optimize=1
# NRDP
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.nrdp.modelgroup=SHIELDANDROIDTV \
ro.vendor.nrdp.audio.otfs=true \
ro.vendor.nrdp.validation=ninja_6
# Power brick info
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.power.brick=PB1000
# USB configfs
PRODUCT_PROPERTY_OVERRIDES += \
vendor.sys.usb.udc=700d0000.xudc \
sys.usb.controller=700d0000.xudc
/recovery emmc /dev/block/platform/sdhci-tegra.3/by-name/SOS
/boot emmc /dev/block/platform/sdhci-tegra.3/by-name/LNX
/system_root ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
/system_image emmc /dev/block/platform/sdhci-tegra.3/by-name/APP
/cache ext4 /dev/block/platform/sdhci-tegra.3/by-name/CAC
/vendor ext4 /dev/block/platform/sdhci-tegra.3/by-name/vendor
/vendor_image ext4 /dev/block/platform/sdhci-tegra.3/by-name/vendor
/misc emmc /dev/block/platform/sdhci-tegra.3/by-name/MSC
/staging emmc /dev/block/platform/sdhci-tegra.3/by-name/USP
/metadata emmc /dev/block/platform/sdhci-tegra.3/by-name/MDA
/data ext4 /dev/block/platform/sdhci-tegra.3/by-name/UDA flags=encryptable=/dev/block/platform/sdhci-tegra.3/by-name/MDA
/bmps emmc /dev/block/platform/sdhci-tegra.3/by-name/IMG
/external_sd vfat /dev/block/platform/sdhci-tegra.0/by-num/p1 /dev/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=removable;storage;display=USB-OTG
/recovery emmc /dev/block/platform/tegra-sata.0/by-name/SOS
/boot emmc /dev/block/platform/tegra-sata.0/by-name/LNX
/system_root ext4 /dev/block/platform/tegra-sata.0/by-name/APP
/system_image emmc /dev/block/platform/tegra-sata.0/by-name/APP
/cache ext4 /dev/block/platform/tegra-sata.0/by-name/CAC
/vendor ext4 /dev/block/platform/tegra-sata.0/by-name/vendor
/vendor_image emmc /dev/block/platform/tegra-sata.0/by-name/vendor
/misc emmc /dev/block/platform/tegra-sata.0/by-name/MSC
/staging emmc /dev/block/platform/tegra-sata.0/by-name/USP
/metadata emmc /dev/block/platform/tegra-sata.0/by-name/MDA
/data ext4 /dev/block/platform/tegra-sata.0/by-name/UDA flags=encryptable=/dev/block/platform/tegra-sata.0/by-name/MDA
/bmps emmc /dev/block/platform/tegra-sata.0/by-name/BMP
/external_sd vfat /dev/block/platform/sdhci-tegra.0/by-num/p1 /dev/block/mmcblk1 flags=display="Micro SDcard";storage;wipeingui;removable
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=removable;storage;display=USB-OTG
/recovery emmc /dev/block/platform/sdhci-tegra.0/by-name/SOS
/boot emmc /dev/block/platform/sdhci-tegra.0/by-name/LNX
/system_root ext4 /dev/block/platform/sdhci-tegra.0/by-name/APP
/system_image emmc /dev/block/platform/sdhci-tegra.0/by-name/APP
/cache ext4 /dev/block/platform/sdhci-tegra.0/by-name/CAC
/vendor ext4 /dev/block/platform/sdhci-tegra.0/by-name/vendor
/vendor_image emmc /dev/block/platform/sdhci-tegra.0/by-name/vendor
/misc emmc /dev/block/platform/sdhci-tegra.0/by-name/MSC
/staging emmc /dev/block/platform/sdhci-tegra.0/by-name/USP
/metadata emmc /dev/block/platform/sdhci-tegra.0/by-name/MDA
/data ext4 /dev/block/platform/sdhci-tegra.0/by-name/UDA flags=encryptable=/dev/block/platform/sdhci-tegra.0/by-name/MDA
/bmps emmc /dev/block/platform/sdhci-tegra.0/by-name/IMG
/usb-otg vfat /dev/block/sda1 /dev/block/sda flags=removable;storage;display=USB-OTG
/external_sd vfat /dev/block/platform/sdhci-tegra.0/mmcblk0p1 /dev/mmcblk0 flags=display="Micro SDcard";storage;removable
# Copyright (C) 2018 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.
PRODUCT_COPY_FILES += \
device/nvidia/foster/twrp/twrp.fstab.emmc:recovery/root/etc/twrp.fstab.emmc \
device/nvidia/foster/twrp/twrp.fstab.sata:recovery/root/etc/twrp.fstab.sata \
device/nvidia/foster/twrp/twrp.fstab.sd:recovery/root/etc/twrp.fstab.sd
TW_THEME := landscape_hdpi
TW_NO_SCREEN_TIMEOUT := true
TW_NO_SCREEN_BLANK := true
TW_BRIGHTNESS_PATH := /sys/class/backlight/pwm-backlight/brightness
TW_MAX_BRIGHTNESS := 255
TW_INPUT_BLACKLIST := "Nintendo Switch Left Joy-Con Serial\x0aNintendo Switch Right Joy-Con Serial"