Avicii: Alphadroid Bringup

This commit is contained in:
2023-07-25 12:05:25 +05:30
commit 66e8665bcc
100 changed files with 29362 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "OPlusFrameworksResTarget",
device_specific: true,
}

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="android.overlay.oplus.target">
<overlay
android:isStatic="true"
android:priority="350"
android:targetPackage="android" />
</manifest>

View File

@@ -0,0 +1,379 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- 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>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The brightening threshold is calculated as
lux * (1.0f + CONSTRAINT_VALUE). When the current lux is higher than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientBrighteningThresholds">
<item>100</item>
</integer-array>
<!-- Array of hysteresis constraint values for darkening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_ambientThresholdLevels. The darkening threshold is calculated as
lux * (1.0f - CONSTRAINT_VALUE). When the current lux is lower than this threshold,
the screen brightness is recalculated. See the config_ambientThresholdLevels
description for how the constraint value is chosen. -->
<integer-array name="config_ambientDarkeningThresholds">
<item>200</item>
</integer-array>
<!-- Array of hysteresis constraint values for brightening, represented as tenths of a
percent. The length of this array is assumed to be one greater than
config_screenThresholdLevels. The brightening threshold is calculated as
screenBrightness * (1.0f + CONSTRAINT_VALUE). When the new screen brightness is higher
than this threshold, it is applied. See the config_screenThresholdLevels description for
how the constraint value is chosen. -->
<integer-array name="config_screenBrighteningThresholds">
<item>100</item>
</integer-array>
<!-- 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>1</item>
<item>4</item>
<item>12</item>
<item>20</item>
<item>28</item>
<item>47</item>
<item>63</item>
<item>86</item>
<item>150</item>
<item>160</item>
<item>220</item>
<item>270</item>
<item>360</item>
<item>420</item>
<item>510</item>
<item>620</item>
<item>1000</item>
<item>2000</item>
<item>3100</item>
<item>5000</item>
<item>8000</item>
<item>12000</item>
</integer-array>
<!-- Array of desired screen brightness in nits corresponding to the lux values
in the config_autoBrightnessLevels array. As with config_screenBrightnessMinimumNits and
config_screenBrightnessMaximumNits, the display brightness is defined as the measured
brightness of an all-white image.
If this is defined then:
- config_autoBrightnessLcdBacklightValues should not be defined
- config_screenBrightnessNits must be defined
- config_screenBrightnessBacklight must be defined
This array should have size one greater than the size of the config_autoBrightnessLevels
array. The brightness values must be non-negative and non-decreasing. This must be
overridden in platform specific overlays -->
<array name="config_autoBrightnessDisplayValuesNits">
<item>2.0487</item>
<item>4.8394</item>
<item>17.2619</item>
<item>39.2619</item>
<item>50.671</item>
<item>72.95</item>
<item>80.46</item>
<item>84.38</item>
<item>89.51</item>
<item>100.34</item>
<item>102.21</item>
<item>109.48</item>
<item>114.19</item>
<item>123.86</item>
<item>129.18</item>
<item>138.07</item>
<item>145.62</item>
<item>168.84</item>
<item>234.9</item>
<item>291</item>
<item>370</item>
<item>492</item>
<item>580</item>
</array>
<!-- An array of floats describing the screen brightness in nits corresponding to the backlight
values in the config_screenBrightnessBacklight array. On OLED displays these values
should be measured with an all white image while the display is in the fully on state.
Note that this value should *not* reflect the maximum brightness value for any high
brightness modes but only the maximum brightness value obtainable in a sustainable manner.
This array should be equal in size to config_screenBrightnessBacklight -->
<array name="config_screenBrightnessNits">
<item>0</item>
<item>7.4682</item>
<item>15.0705</item>
<item>23.3737</item>
<item>31.2438</item>
<item>39.556</item>
<item>47.8227</item>
<item>56.0794</item>
<item>63.6139</item>
<item>71.5684</item>
<item>79.4638</item>
<item>86.8793</item>
<item>95.0577</item>
<item>103.0389</item>
<item>110.3256</item>
<item>116.746</item>
<item>124.7228</item>
<item>132.68</item>
<item>140.816</item>
<item>148.471</item>
<item>156.752</item>
<item>164.2611</item>
<item>171.5288</item>
<item>179.0178</item>
<item>186.723</item>
<item>193.96</item>
<item>201.9487</item>
<item>210.1148</item>
<item>217.832</item>
<item>224.691</item>
<item>232.942</item>
<item>237.811</item>
<item>245.177</item>
<item>253.304</item>
<item>261.06</item>
<item>269.164</item>
<item>276.811</item>
<item>283.647</item>
<item>291.413</item>
<item>299.125</item>
<item>306.583</item>
<item>314.72</item>
<item>324.95</item>
<item>333.416</item>
<item>341.499</item>
<item>349.777</item>
<item>360.449</item>
<item>369.452</item>
<item>378.102</item>
<item>387.462</item>
<item>395.925</item>
<item>405.191</item>
<item>415.583</item>
<item>423.5969</item>
<item>431.942</item>
<item>443.721</item>
<item>451.548</item>
<item>460.075</item>
<item>471.569</item>
<item>479.598</item>
<item>488.626</item>
<item>496.3005</item>
<item>506.5896</item>
<item>518.187</item>
<item>529.5164</item>
</array>
<!-- An array describing the screen's backlight values corresponding to the brightness
values in the config_screenBrightnessNits array.
This array should be equal in size to config_screenBrightnessBacklight. -->
<integer-array name="config_screenBrightnessBacklight">
<item>0</item>
<item>4</item>
<item>8</item>
<item>12</item>
<item>16</item>
<item>20</item>
<item>24</item>
<item>28</item>
<item>32</item>
<item>36</item>
<item>40</item>
<item>44</item>
<item>48</item>
<item>52</item>
<item>56</item>
<item>60</item>
<item>64</item>
<item>68</item>
<item>72</item>
<item>76</item>
<item>80</item>
<item>84</item>
<item>88</item>
<item>92</item>
<item>96</item>
<item>100</item>
<item>104</item>
<item>108</item>
<item>112</item>
<item>116</item>
<item>120</item>
<item>123</item>
<item>127</item>
<item>131</item>
<item>135</item>
<item>139</item>
<item>143</item>
<item>147</item>
<item>151</item>
<item>155</item>
<item>159</item>
<item>163</item>
<item>167</item>
<item>171</item>
<item>175</item>
<item>179</item>
<item>183</item>
<item>187</item>
<item>191</item>
<item>195</item>
<item>199</item>
<item>203</item>
<item>207</item>
<item>211</item>
<item>215</item>
<item>219</item>
<item>223</item>
<item>227</item>
<item>231</item>
<item>235</item>
<item>239</item>
<item>243</item>
<item>246</item>
<item>251</item>
<item>255</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">6</integer>
<!-- Default screen brightness setting set.
-2 is invalid so setting will resort to int value specified above.
Must be in the range specified by minimum and maximum. -->
<item type="dimen" name="config_screenBrightnessSettingDefaultFloat">0.1535</item>
<!-- Maximum screen brightness allowed by the power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 1.0 for maximum brightness range.
The user is forbidden from setting the brightness above this level. -->
<item type="dimen" name="config_screenBrightnessSettingMaximumFloat">1.0</item>
<!-- Minimum screen brightness setting allowed by power manager.
-2 is invalid so setting will resort to int value specified above.
Set this to 0.0 to allow screen to go to minimal brightness.
The user is forbidden from setting the brightness below this level. -->
<item type="dimen" name="config_screenBrightnessSettingMinimumFloat">0.008304836</item>
<!-- Stability requirements in milliseconds for accepting a new brightness level. This is used
for debouncing the light sensor. Different constants are used to debounce the light sensor
when adapting to brighter or darker environments. This parameter controls how quickly
brightness changes occur in response to an observed change in light level that exceeds the
hysteresis threshold. -->
<integer name="config_autoBrightnessBrighteningLightDebounce">1500</integer>
<integer name="config_autoBrightnessDarkeningLightDebounce">1500</integer>
<!-- Light sensor event rate in milliseconds for automatic brightness control. -->
<integer name="config_autoBrightnessLightSensorRate">300</integer>
<!-- The bounding path of the cutout region of the main built-in display.
Must either be empty if there is no cutout region, or a string that is parsable by
{@link android.util.PathParser}.
The path is assumed to be specified in display coordinates with pixel units and in
the display's native orientation, with the origin of the coordinate system at the
center top of the display.
To facilitate writing device-independent emulation overlays, the marker `@dp` can be
appended after the path string to interpret coordinates in dp instead of px units.
Note that a physical cutout should be configured in pixels for the best results.
-->
<string translatable="false" name="config_mainBuiltInDisplayCutout">
M -436.5 33
L -319.5 33
A 38.5 38.5 0 0 1 -281 71.5
L -281 71.5
A 38.5 38.5 0 0 1 -319.5 110
L -436.5 110
A 38.5 38.5 0 0 1 -475 71.5
L -475 71.5
A 38.5 38.5 0 0 1 -436.5 33
Z
M -475 0
L -283 0
Z
M -540 0
L -540 113
Z
</string>
<!-- Like config_mainBuiltInDisplayCutout, but this path is used to report the
one single bounding rect per device edge to the app via
{@link DisplayCutout#getBoundingRect}. Note that this path should try to match the visual
appearance of the cutout as much as possible, and may be smaller than
config_mainBuiltInDisplayCutout
-->
<string name="config_mainBuiltInDisplayCutoutRectApproximation">
M 0,0
H 285
V 113
H 0
Z
@left</string>
<!-- Whether the display cutout region of the main built-in display should be forced to
black in software (to avoid aliasing or emulate a cutout that is not physically existent).
-->
<bool name="config_fillMainBuiltInDisplayCutout">true</bool>
<!-- The default refresh rate for a given device. Change this value to set a higher default
refresh rate. If the hardware composer on the device supports display modes with a higher
refresh rate than the default value specified here, the framework may use those higher
refresh rate modes if an app chooses one by setting preferredDisplayModeId or calling
setFrameRate().
If a non-zero value is set for config_defaultPeakRefreshRate, then
config_defaultRefreshRate may be set to 0, in which case the value set for
config_defaultPeakRefreshRate will act as the default frame rate. -->
<integer name="config_defaultRefreshRate">0</integer>
<!-- The default peak refresh rate for a given device. Change this value if you want to prevent
the framework from using higher refresh rates, even if display modes with higher refresh
rates are available from hardware composer. Only has an effect if the value is
non-zero. -->
<integer name="config_defaultPeakRefreshRate">90</integer>
<!-- The properties of a UDFPS sensor in pixels, in the order listed below: -->
<integer-array name="config_udfps_sensor_props" translatable="false" >
<item>540</item> <!-- <item>sensorLocationX</item> -->
<item>2166</item> <!-- <item>sensorLocationY</item> -->
<item>102</item> <!-- <item>sensorRadius</item> -->
</integer-array>
</resources>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Height of the status bar.
Do not read this dimen directly. Use {@link SystemBarUtils#getStatusBarHeight} instead.
-->
<dimen name="status_bar_height_default">28dp</dimen>
<dimen name="status_bar_height_portrait">113px</dimen>
<dimen name="status_bar_height_landscape">28dp</dimen>
<!-- Default radius of the software rounded corners. -->
<dimen name="rounded_corner_radius">100px</dimen>
</resources>

View File

@@ -0,0 +1,219 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2016, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
-->
<!-- project:18097 -->
<device name="Android">
<!-- Most values are the incremental current used by a feature,
in mA (measured at nominal voltage).
The default values are deliberately incorrect dummy values.
OEM's must measure and provide actual values before
shipping a device.
Example real-world values are given in comments, but they
are totally dependent on the platform and can vary
significantly, so should be measured on the shipping platform
with a power meter. -->
<item name="none">0</item>
<item name="ambient.on.display0">29.53</item>
<item name="screen.on.display0">80.09</item> <!-- ~200mA -->
<item name="screen.full.display0">241</item> <!-- ~300mA -->
<item name="bluetooth.active">80</item> <!-- Bluetooth data transfer, ~10mA -->
<item name="bluetooth.on">1</item> <!-- Bluetooth on & connectable, but not connected, ~0.1mA -->
<item name="wifi.on">1.8</item> <!-- ~3mA -->
<item name="wifi.active">180</item> <!-- WIFI data transfer, ~200mA -->
<item name="wifi.scan">120</item> <!-- WIFI network scanning, ~100mA -->
<item name="audio">0</item> <!-- ~10mA -->
<item name="video">0</item> <!-- ~50mA -->
<item name="camera.flashlight">128</item> <!-- Avg. power for camera flash, ~160mA -->
<item name="camera.avg">658</item> <!-- Avg. power use of camera in standard usecases, ~550mA -->
<item name="gps.on">75</item> <!-- ~50mA -->
<item name="audio">32.53</item> <!-- new add ~10mA -->
<item name="video">52.20</item> <!-- new add ~50mA -->
<item name="bluetooth.controller.idle">1</item> <!--new add -->
<item name="bluetooth.controller.rx">60</item> <!--new add -->
<item name="bluetooth.controller.tx">90</item> <!--new add -->
<item name="bluetooth.controller.voltage">3300</item> <!--new add -->
<!-- Radio related values. For modems without energy reporting support in firmware, use
radio.active, radio.scanning, and radio.on. -->
<item name="radio.active">191.5</item> <!-- ~200mA -->
<item name="radio.scanning">143.5</item> <!-- cellular radio scanning for signal, ~10mA -->
<!-- Current consumed by the radio at different signal strengths, when paging -->
<array name="radio.on"> <!-- Strength 0 to BINS-1 delete 1 line-->
<value>1</value> <!-- ~2mA -->
</array>
<!-- Radio related values. For modems WITH energy reporting support in firmware, use
modem.controller.idle, modem.controller.tx, modem.controller.rx, modem.controller.voltage.
-->
<item name="modem.controller.idle">1</item>
<item name="modem.controller.rx">200.8</item>
<array name="modem.controller.tx">
<value>176.4</value>
<value>246.8</value>
<value>323.3</value>
<value>484.6</value>
<value>646.8</value>
</array>
<item name="modem.controller.voltage">800</item>
<!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the
number of CPU cores for that cluster.
Ex:
<array name="cpu.clusters.cores">
<value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3
<value>2</value> // cluster 1 has cpu4, cpu5
</array> -->
<array name="cpu.clusters.cores">
<value>6</value> <!-- cluster 0 has cpu0, cpu1, cpu2, cpu3, cpu4, cpu5 -->
<value>1</value> <!-- cluster 1 has cpu6-->
<value>1</value><!-- cluster 2 has cpu7 -->
</array>
<!-- Different CPU speeds for cluster 0 as reported in
/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.
There must be one of these for each cluster, labeled:
cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
<array name="cpu.core_speeds.cluster0">
<value>300000</value> <!-- 300 MHz CPU speed -->
<value>576000</value> <!-- 576 MHz CPU speed -->
<value>614400</value> <!-- 744.8 MHz CPU speed -->
<value>864000</value> <!-- 998.4 MHz CPU speed -->
<value>1075200</value> <!-- 1209.6 MHz CPU speed -->
<value>1363200</value> <!-- 1324.8 MHz CPU speed -->
<value>1516800</value> <!-- 1516.8 MHz CPU speed -->
<value>1651200</value> <!-- 1612.8 MHz CPU speed -->
<value>1804800</value>
</array>
<array name="cpu.core_speeds.cluster1">
<value>652800</value> <!-- 300 MHz CPU speed -->
<value>940800</value> <!-- 652 MHz CPU speed -->
<value>1152000</value> <!-- 852 MHz CPU speed -->
<value>1478400</value> <!-- 979 MHz CPU speed -->
<value>1728000</value> <!-- 1132 MHz CPU speed -->
<value>1900800</value> <!-- 1363 MHz CPU speed -->
<value>2092800</value> <!-- 1536 MHz CPU speed -->
<value>2208000</value> <!-- 1747 MHz CPU speed -->
</array>
<array name="cpu.core_speeds.cluster2">
<value>806400</value> <!-- 300 MHz CPU speed -->
<value>1094400</value> <!-- 652 MHz CPU speed -->
<value>1401600</value> <!-- 852 MHz CPU speed -->
<value>1766400</value> <!-- 979 MHz CPU speed -->
<value>1996800</value> <!-- 1132 MHz CPU speed -->
<value>2188800</value> <!-- 1363 MHz CPU speed -->
<value>2304000</value> <!-- 1536 MHz CPU speed -->
<value>2400000</value> <!-- 1747 MHz CPU speed -->
</array>
<!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
Like cpu.speeds.cluster0, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.core_power.cluster0">
<value>36</value> <!-- ~14mA -->
<value>38</value> <!-- ~25mA -->
<value>39</value> <!-- ~31mA -->
<value>43</value> <!-- ~46mA -->
<value>48</value> <!-- ~57mA -->
<value>55</value> <!-- ~84mA -->
<value>65</value> <!-- ~96mA -->
<value>75</value> <!-- ~114mA -->
<value>78</value>
</array>
<!-- Current at each CPU speed for cluster 1, as per 'cpu.speeds.cluster1'.
Like cpu.speeds.cluster1, there must be one of these present for
each heterogeneous CPU cluster. -->
<array name="cpu.core_power.cluster1">
<value>61</value> <!-- ~256mA -->
<value>74</value> <!-- ~307mA -->
<value>86</value> <!-- ~332mA -->
<value>118</value> <!-- ~382mA -->
<value>150</value> <!-- ~408mA -->
<value>189</value> <!-- ~448mA -->
<value>252</value> <!-- ~586mA -->
<value>263</value> <!-- ~641mA -->
</array>
<array name="cpu.core_power.cluster2">
<value>141</value> <!-- ~256mA -->
<value>175</value> <!-- ~307mA -->
<value>201</value> <!-- ~332mA -->
<value>247</value> <!-- ~382mA -->
<value>277</value> <!-- ~408mA -->
<value>314</value> <!-- ~448mA -->
<value>329</value> <!-- ~586mA -->
<value>339</value> <!-- ~641mA -->
</array>
<!-- Current when CPU is awake -->
<item name="cpu.awake">16.1</item>
<!-- Current when CPU is idle -->
<item name="cpu.idle">9.2</item>
<!-- Memory bandwidth power values in mA at the rail. There must be one value
for each bucket defined in the device tree. -->
<array name="memory.bandwidths">
<value>22.7</value> <!-- mA for bucket: 100mb/s-1.5 GB/s memory bandwidth -->
</array>
<!-- This is the battery capacity in mAh (measured at nominal voltage) -->
<item name="battery.capacity">4000</item>
<!-- Wifi related values. -->
<!-- Idle Receive current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.idle">1.5</item>
<!-- Rx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.rx">170</item>
<!-- Tx current for wifi radio in mA. 0 by default-->
<item name="wifi.controller.tx">220</item>
<!-- Current at each of the wifi Tx levels in mA. The number of tx levels varies per device
and is available only of wifi chipsets which support the tx level reporting. Use
wifi.tx for other chipsets. none by default -->
<array name="wifi.controller.tx_levels"> <!-- mA -->
</array>
<!-- Operating volatage for wifi radio in mV. 0 by default-->
<item name="wifi.controller.voltage">3300</item>
<array name="wifi.batchedscan"> <!-- mA -->
<value>.0002</value> <!-- 1-8/hr -->
<value>.002</value> <!-- 9-64/hr -->
<value>.02</value> <!-- 65-512/hr -->
<value>.2</value> <!-- 513-4,096/hr -->
<value>2</value> <!-- 4097-/hr -->
</array>
</device>