Resurrection Remix OS Q 2020
Getting started
To get started with Android/RR, you'll need to get familiar with git and repo.
Sync
# Initialize local repository
repo init -u https://github.com/ResurrectionRemix/platform_manifest.git -b Q
# Sync
repo sync --force-sync --no-clone-bundle
Build
# Set up environment
$ . build/envsetup.sh
# Choose a target
$ lunch rr_$device-userdebug
# Build the code
$ mka bacon
Important for FOD devices
For devices with in-display fingerprint, you need to adapt your devices to FOD 1.1 for things to work properly. FOD1.1 + fod-ext value to call the HAL layer
Also set this flag in device tree device.mk
TARGET_HAS_FOD := true
For Devices who don't wish to adapt to 1.1, and wish to stick to los 1.0 ext impl, please merge the following two commits in frameworks/base and packages/apps/Settings
thanks to Pavan Parmeshwar
Base:
https://github.com/ResurrectionRemix/android_frameworks_base/commit/b27490b437a1bc2a767af6d0dd8a30aae96036f0
Settings
https://github.com/ResurrectionRemix/Resurrection_packages_apps_Settings/commit/24551c50223cbccd8fd74f053463f99e38ee93d8
Please don't forget extension lib
For devices with hardware keys, you need to add the following
Add these lines to <device_tree_path/overlay/frameworks/base/core/res/res/values/config.xml>
<!-- Hardware 'face' keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
For example, a device with Back, Home and AppSwitch keys would set this
config to 19. -->
<integer name="config_deviceHardwareKeys">72</integer>
<!-- Hardware 'face' keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
For example, a device with Back, Home and AppSwitch keys would set this
config to 19. -->
<integer name="config_deviceHardwareWakeKeys">72</integer>
<!-- Button brightness -->
<bool name="config_button_brightness_support">true</bool>
<integer name="config_button_brightness_default">128</integer>
Numbers vary on how many hardware keys you have on your device. See the config description for how to add those.
Devices with alertsliders / custom key handlers
You need to update your keyhandler class and paths to
<device_tree_path/overlay/frameworks/base/res/res/values/config.xml>
# Like this
<!-- Paths to the libraries that contain device specific key handlers -->
<string-array name="config_deviceKeyHandlerLibs" translatable="false">
<item>/system/priv-app/LineageParts/LineageParts.apk</item>
</string-array>
<!-- Names of the key handler classes -->
<string-array name="config_deviceKeyHandlerClasses" translatable="false">
<item>org.lineageos.lineageparts.gestures.KeyHandler</item>
</string-array>
For face unlock
Set TARGET_FACE_UNLOCK_SUPPORTED := true to build face unlock packages. Do this if your device supports face unlock (which it mostly does).
Other configs and locations in device tree
Use these lines in <device_tree_path/overlay/frameworks/base/res/res/values/config.xml>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">true</bool>
<!-- Whether device has physical tri state switch -->
<bool name="config_hasAlertSlider">true</bool>
<!-- Enable face auth when swiping security view
for popup cameras-->
<bool name="config_faceAuthOnSecurityView">true</bool>
<!-- Whether device has warp charging support -->
<bool name="config_hasWarpCharger">true</bool>
<!-- Whether device has Dash charging support -->
<bool name="config_hasDashCharger">true</bool>
<!-- Whether device has VOOC charging support -->
<bool name="config_hasVoocCharger">false</bool>
<!-- Path to fast charging status file to detect whether an oem fast charger is active -->
<string name="config_oemFastChargerStatusPath" translatable="false"></string>
<!-- Expected value from fast charging status file -->
<string name="config_oemFastChargerStatusValue" translatable="false"></string>
<!-- Whether device supports variable refresh rate -->
<bool name="config_hasVariableRefreshRate">true</bool>
<!-- Default setting for refresh rate
0 = Auto
1 = 60HZ
2 = 90Hz -->
<integer name="config_defaultVariableRefreshRateSetting">2</integer>
<!--Systeminfo for quick settings header -->
<string name="config_sysCPUTemp">/sys/class/<path_to_option></string>
<string name="config_sysBatteryTemp">/sys/class/power_supply/battery/temp</string>
<string name="config_sysGPUFreq">/sys/kernel/gpu/gpu_clock</string>
<string name="config_sysGPULoad">/sys/kernel/gpu/gpu_busy</string>
<integer name="config_sysCPUTempMultiplier"><device_specific_mulitplyer></integer>
<integer name="config_sysBatteryTempMultiplier"><device_specific_mulitplyer></integer>
Replace <path_to_option> and <device_specific_mulitplyer> with own device specific paths
<!-- If Smart charging supported by kernel and device sepolicy -->
<bool name="config_smartChargingAvailable">true</bool>
Use these lines in <device_tree_path/overlay/packages/apps/Settings/res/values/config.xml>
<!-- Use only if devices have variable intensity support for haptics-->
<bool name="config_vibration_supports_multiple_intensities">true</bool>
<!-- If device supports battery health options -->
<bool name="config_supportBatteryHealth">true</bool>
<string name="config_batChargeCycle">path</string>
<string name="config_batDesCap">path</string>
<string name="config_batCurCap">path</string>
Replace path with device specific path
Please maintain proper authorship for all commits for above overlays
For OTA
Once you are done with your build you can upload your ota.json file from out/product directory if you are a maintainer.
How can I be maintainer?
Make a pull request at https://github.com/ResurrectionRemix/Resurrection_packages_apps_Settings/blob/Q/res/values/resurrection_device_maintainers_strings.xml
Make the commit like this by including device in fragment https://github.com/ResurrectionRemix/Resurrection_packages_apps_Settings/commit/9686023738c3b09feaa547cb3658d6c2bda737e1
With your name. Choose any device you want to maintain for but in the pull request please post with an xda thread (optional), device source and kernel source as the commit message
It will be reviewed and changes will be approved if everything is fine
Approved maintainers will gain access to RR device repo and RR OTA server
Credentials will be given in a separate group created for maintainers
Translations
We don't have crowdin at the moment so you can merge a pull request in our repos which require translations. Please validate your XMLs first. We will review them and merge them as soon as possible.
Lastly
Remember to give credits where necessary
That's all for now.
Happy building
### - RR Team ###