summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Veit <claymore1298@gmail.com>2025-10-04 14:12:30 +0000
committerJulian Veit <claymore1298@gmail.com>2025-10-04 14:12:30 +0000
commit04a7d455fb216fcf62513091a751fb7934ed89f8 (patch)
tree2a4176d698e93e6cb94e010cb1d14b83aaafff18
parent0054d0f22d5950641625022e8f271b0e46a68354 (diff)
parent34f36e2f7f0a8d70603bf8087d4afbd6d81be591 (diff)
Merge branch 'lineage-22.2' of https://github.com/LineageOS/android_hardware_oplus into HEADv15.0
Change-Id: Ic1a8d5c970cdbeab75c3a68cffdc36f0acaa5518
-rw-r--r--Euicc/res/values/strings.xml4
-rw-r--r--KeyHandler/res/values-iw/strings.xml21
-rw-r--r--Pen/Android.bp1
-rw-r--r--Pen/AndroidManifest.xml1
-rw-r--r--Pen/res/values-az/strings.xml9
-rw-r--r--Pen/res/values-ca/strings.xml9
-rw-r--r--Pen/res/values-cs/strings.xml9
-rw-r--r--Pen/res/values-el/strings.xml9
-rw-r--r--Pen/res/values-en-rAU/strings.xml9
-rw-r--r--Pen/res/values-en-rCA/strings.xml9
-rw-r--r--Pen/res/values-en-rGB/strings.xml9
-rw-r--r--Pen/res/values-en-rIN/strings.xml9
-rw-r--r--Pen/res/values-es/strings.xml9
-rw-r--r--Pen/res/values-fr/strings.xml8
-rw-r--r--Pen/res/values-ga-rIE/strings.xml9
-rw-r--r--Pen/res/values-hu/strings.xml9
-rw-r--r--Pen/res/values-it/strings.xml9
-rw-r--r--Pen/res/values-iw/strings.xml9
-rw-r--r--Pen/res/values-ja/strings.xml9
-rw-r--r--Pen/res/values-pl/strings.xml9
-rw-r--r--Pen/res/values-pt-rBR/strings.xml9
-rw-r--r--Pen/res/values-pt-rPT/strings.xml9
-rw-r--r--Pen/res/values-ro/strings.xml9
-rw-r--r--Pen/res/values-ru/strings.xml8
-rw-r--r--Pen/res/values-sl/strings.xml9
-rw-r--r--Pen/res/values-ta/strings.xml8
-rw-r--r--Pen/res/values-ug/strings.xml9
-rw-r--r--Pen/res/values-vi/strings.xml9
-rw-r--r--Pen/res/values-zh-rCN/strings.xml9
-rw-r--r--Pen/res/values/config.xml9
-rw-r--r--Pen/src/org/lineageos/pen/DeviceId.kt27
-rw-r--r--Pen/src/org/lineageos/pen/PenService.kt65
-rw-r--r--README.md1
-rw-r--r--aidl/ir/ConsumerIr.cpp18
-rw-r--r--aidl/ir/ConsumerIr.h4
-rw-r--r--aidl/livedisplay/AntiFlicker.cpp5
-rw-r--r--aidl/performance/Android.bp21
-rw-r--r--aidl/performance/Performance.cpp1079
-rw-r--r--aidl/performance/Performance.h234
-rw-r--r--aidl/performance/service.cpp25
-rw-r--r--aidl/performance/vendor.oplus.hardware.performance-service.rc4
-rw-r--r--aidl/performance/vendor.oplus.hardware.performance-service.xml7
-rw-r--r--folio-daemon/Android.bp25
-rw-r--r--folio-daemon/folio_daemon.rc11
-rw-r--r--folio-daemon/main.cpp161
-rw-r--r--interfaces/Android.bp110
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/charger/ChgFuncFlag.aidl40
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/charger/ICharger.aidl143
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl12
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/IPerformance.aidl187
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/OsvelteStatus.aidl12
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl13
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStat.aidl29
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStatRet.aidl14
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/ProcReqHal.aidl14
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/ProcReqItemHal.aidl13
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/TaskGroup.aidl16
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/TaskWakeInfo.aidl14
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/ThreadInfo.aidl17
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/performance/UploadType.aidl13
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/urcc/IUrcc.aidl28
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/urcc/IUrccCallback.aidl13
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestData.aidl15
-rw-r--r--interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl26
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/1/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/ICharger.aidl149
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/2/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/ICharger.aidl150
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/3/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/ICharger.aidl152
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/5/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ChgFuncFlag.aidl50
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ICharger.aidl154
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/6/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ChgFuncFlag.aidl52
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ICharger.aidl156
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/7/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ChgFuncFlag.aidl54
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ICharger.aidl156
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/8/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ChgFuncFlag.aidl55
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ICharger.aidl156
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ChgFuncFlag.aidl55
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ICharger.aidl156
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/IPerformance.aidl198
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteStatus.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStat.aidl45
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStatRet.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqHal.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqItemHal.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskGroup.aidl32
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskWakeInfo.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ThreadInfo.aidl33
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/UploadType.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/IPerformance.aidl198
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteStatus.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStat.aidl45
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStatRet.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqHal.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqItemHal.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskGroup.aidl32
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskWakeInfo.aidl28
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ThreadInfo.aidl33
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/UploadType.aidl29
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/1/.hash1
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrcc.aidl40
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrccCallback.aidl27
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestData.aidl31
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl39
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrcc.aidl40
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrccCallback.aidl27
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestData.aidl31
-rw-r--r--interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl39
-rw-r--r--kernel-headers/include/oplus/oplus_display_panel.h2
-rw-r--r--nrmodeswitcher/OplusRadioResponse.cpp94
-rw-r--r--nrmodeswitcher/OplusRadioResponse.h133
-rw-r--r--nrmodeswitcher/main.cpp6
-rw-r--r--sepolicy/qti/private/compat/202404/202404.ignore.cil (renamed from sepolicy/qti/private/compat/32.0/32.0.ignore.cil)2
-rw-r--r--sepolicy/qti/private/compat/33.0/33.0.ignore.cil13
-rw-r--r--sepolicy/qti/private/file_contexts5
-rw-r--r--sepolicy/qti/private/folio_daemon.te16
-rw-r--r--sepolicy/qti/private/horae.te17
-rw-r--r--sepolicy/qti/private/seapp_contexts2
-rw-r--r--sepolicy/qti/private/service.te2
-rw-r--r--sepolicy/qti/private/service_contexts5
-rw-r--r--sepolicy/qti/private/surfaceflinger.te1
-rw-r--r--sepolicy/qti/public/attributes1
-rw-r--r--sepolicy/qti/public/service.te2
-rw-r--r--sepolicy/qti/public/type.te2
-rw-r--r--sepolicy/qti/vendor/attributes3
-rw-r--r--sepolicy/qti/vendor/device.te5
-rw-r--r--sepolicy/qti/vendor/file.te22
-rw-r--r--sepolicy/qti/vendor/file_contexts16
-rw-r--r--sepolicy/qti/vendor/genfs_contexts13
-rw-r--r--sepolicy/qti/vendor/hal_camera_default.te1
-rw-r--r--sepolicy/qti/vendor/hal_lineage_touch_default.te1
-rw-r--r--sepolicy/qti/vendor/hal_oplus_esim_aidl.te23
-rw-r--r--sepolicy/qti/vendor/horae.te4
-rw-r--r--sepolicy/qti/vendor/init.te1
-rw-r--r--sepolicy/qti/vendor/oplus_touchdaemon.te3
-rw-r--r--sepolicy/qti/vendor/property.te6
-rw-r--r--sepolicy/qti/vendor/property_contexts6
-rw-r--r--sepolicy/qti/vendor/rild.te3
-rw-r--r--sepolicy/qti/vendor/service.te4
-rw-r--r--sepolicy/qti/vendor/service_contexts4
-rw-r--r--sepolicy/qti/vendor/subsystem_daemon.te22
-rw-r--r--sepolicy/qti/vendor/vendor_hal_imsrtp.te2
-rw-r--r--sepolicy/qti/vendor/vendor_init.te3
-rw-r--r--sepolicy/qti/vendor/vendor_qti_init_shell.te6
-rw-r--r--sepolicy/qti/vendor/vendor_thermal-engine.te2
-rw-r--r--vintf/device_framework_matrix.xml2
162 files changed, 5981 insertions, 164 deletions
diff --git a/Euicc/res/values/strings.xml b/Euicc/res/values/strings.xml
index 12a232e..9778dfe 100644
--- a/Euicc/res/values/strings.xml
+++ b/Euicc/res/values/strings.xml
@@ -4,6 +4,6 @@
SPDX-License-Identifier: Apache-2.0
-->
<resources>
- <string name="sim_illustration_lottie_mappings_json">{\"sim_illustration_lottie_mappings\":[{\"devices\":[\"OP594DL1\",\"OP595DL1\",\"OP5D55L1\"],\"illustration_lottie\":\"sim_illustration_lottie_bottom\"}]}</string>
- <string name="sim_slot_mappings_json">{\"sim-slot-mappings\":[{\"devices\":[\"OP594DL1\",\"OP595DL1\",\"OP5D55L1\"],\"esim-slot-ids\":[1],\"psim-slot-ids\":[0]}]}</string>
+ <string name="sim_illustration_lottie_mappings_json">{\"sim_illustration_lottie_mappings\":[{\"devices\":[\"OP591BL1\",\"OP5929L1\",\"OP594DL1\",\"OP595DL1\",\"OP5D0DL1\",\"OP5D55L1\"],\"illustration_lottie\":\"sim_illustration_lottie_bottom\"}]}</string>
+ <string name="sim_slot_mappings_json">{\"sim-slot-mappings\":[{\"devices\":[\"OP594DL1\",\"OP595DL1\",\"OP5D55L1\"],\"esim-slot-ids\":[1],\"psim-slot-ids\":[0]},{\"devices\":[\"OP591BL1\",\"OP5929L1\",\"OP5D0DL1\"],\"esim-slot-ids\":[],\"psim-slot-ids\":[0,1]}]}</string>
</resources>
diff --git a/KeyHandler/res/values-iw/strings.xml b/KeyHandler/res/values-iw/strings.xml
new file mode 100644
index 0000000..d19edd3
--- /dev/null
+++ b/KeyHandler/res/values-iw/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="alert_slider_category_title">מתג התראות</string>
+ <string name="alert_slider_selection_dialog_title">פעולה</string>
+ <string name="alert_slider_top_position">ממוקם למעלה</string>
+ <string name="alert_slider_middle_position">ממוקם באמצע</string>
+ <string name="alert_slider_bottom_position">ממוקם למטה</string>
+ <string name="alert_slider_mode_none">ללא</string>
+ <string name="alert_slider_mode_silent">שקט</string>
+ <string name="alert_slider_mode_normal">רגיל</string>
+ <string name="alert_slider_mode_vibration">רטט</string>
+ <string name="alert_slider_mode_dnd_priority_only">עדיפות בלבד</string>
+ <string name="alert_slider_mode_dnd_total_silence">מושתק לחלוטין</string>
+ <string name="alert_slider_mode_dnd_alarms_only">שעון מעורר בלבד</string>
+ <string name="alert_slider_mute_media_title">השתקת מדיה</string>
+ <string name="alert_slider_mute_media_summary">השתקת מדיה במעבר להשתקה</string>
+</resources>
diff --git a/Pen/Android.bp b/Pen/Android.bp
index 7801ffc..4128a43 100644
--- a/Pen/Android.bp
+++ b/Pen/Android.bp
@@ -10,6 +10,7 @@ android_app {
certificate: "platform",
platform_apis: true,
+ privileged: true,
system_ext_specific: true,
optimize: {
diff --git a/Pen/AndroidManifest.xml b/Pen/AndroidManifest.xml
index 5302805..d1cb52e 100644
--- a/Pen/AndroidManifest.xml
+++ b/Pen/AndroidManifest.xml
@@ -11,6 +11,7 @@
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+ <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application
android:label="@string/app_name"
diff --git a/Pen/res/values-az/strings.xml b/Pen/res/values-az/strings.xml
new file mode 100644
index 0000000..b19de2b
--- /dev/null
+++ b/Pen/res/values-az/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Qələm taxılıb</string>
+ <string name="tap_to_connect">Bağlanmaq üçün toxunun</string>
+</resources>
diff --git a/Pen/res/values-ca/strings.xml b/Pen/res/values-ca/strings.xml
new file mode 100644
index 0000000..d9ab801
--- /dev/null
+++ b/Pen/res/values-ca/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Bolígraf adjunt</string>
+ <string name="tap_to_connect">Toqueu per connectar</string>
+</resources>
diff --git a/Pen/res/values-cs/strings.xml b/Pen/res/values-cs/strings.xml
new file mode 100644
index 0000000..50f95d6
--- /dev/null
+++ b/Pen/res/values-cs/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pero připojeno</string>
+ <string name="tap_to_connect">Klepnutím připojit</string>
+</resources>
diff --git a/Pen/res/values-el/strings.xml b/Pen/res/values-el/strings.xml
new file mode 100644
index 0000000..04272b1
--- /dev/null
+++ b/Pen/res/values-el/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Η γραφίδα προσαρτήθηκε</string>
+ <string name="tap_to_connect">Πατήστε για σύνδεση</string>
+</resources>
diff --git a/Pen/res/values-en-rAU/strings.xml b/Pen/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..cc74b80
--- /dev/null
+++ b/Pen/res/values-en-rAU/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pen attached</string>
+ <string name="tap_to_connect">Tap to connect</string>
+</resources>
diff --git a/Pen/res/values-en-rCA/strings.xml b/Pen/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..cc74b80
--- /dev/null
+++ b/Pen/res/values-en-rCA/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pen attached</string>
+ <string name="tap_to_connect">Tap to connect</string>
+</resources>
diff --git a/Pen/res/values-en-rGB/strings.xml b/Pen/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..cc74b80
--- /dev/null
+++ b/Pen/res/values-en-rGB/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pen attached</string>
+ <string name="tap_to_connect">Tap to connect</string>
+</resources>
diff --git a/Pen/res/values-en-rIN/strings.xml b/Pen/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..cc74b80
--- /dev/null
+++ b/Pen/res/values-en-rIN/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pen attached</string>
+ <string name="tap_to_connect">Tap to connect</string>
+</resources>
diff --git a/Pen/res/values-es/strings.xml b/Pen/res/values-es/strings.xml
new file mode 100644
index 0000000..31286f6
--- /dev/null
+++ b/Pen/res/values-es/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Bolígrafo adjunto</string>
+ <string name="tap_to_connect">Toca para conectar</string>
+</resources>
diff --git a/Pen/res/values-fr/strings.xml b/Pen/res/values-fr/strings.xml
new file mode 100644
index 0000000..6be04bc
--- /dev/null
+++ b/Pen/res/values-fr/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Stylo attaché</string>
+</resources>
diff --git a/Pen/res/values-ga-rIE/strings.xml b/Pen/res/values-ga-rIE/strings.xml
new file mode 100644
index 0000000..95ea9b0
--- /dev/null
+++ b/Pen/res/values-ga-rIE/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Peann ceangailte</string>
+ <string name="tap_to_connect">Tapáil chun ceangal</string>
+</resources>
diff --git a/Pen/res/values-hu/strings.xml b/Pen/res/values-hu/strings.xml
new file mode 100644
index 0000000..e542f6d
--- /dev/null
+++ b/Pen/res/values-hu/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Toll mellékelve</string>
+ <string name="tap_to_connect">A csatlakoztatáshoz érintse meg</string>
+</resources>
diff --git a/Pen/res/values-it/strings.xml b/Pen/res/values-it/strings.xml
new file mode 100644
index 0000000..f9d6408
--- /dev/null
+++ b/Pen/res/values-it/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Penna attaccata</string>
+ <string name="tap_to_connect">Tocca per connettere</string>
+</resources>
diff --git a/Pen/res/values-iw/strings.xml b/Pen/res/values-iw/strings.xml
new file mode 100644
index 0000000..e30fa2d
--- /dev/null
+++ b/Pen/res/values-iw/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">עט מצורף</string>
+ <string name="tap_to_connect">נגיעה להתחברות</string>
+</resources>
diff --git a/Pen/res/values-ja/strings.xml b/Pen/res/values-ja/strings.xml
new file mode 100644
index 0000000..90c9148
--- /dev/null
+++ b/Pen/res/values-ja/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">ペンを装着しました</string>
+ <string name="tap_to_connect">タップして接続</string>
+</resources>
diff --git a/Pen/res/values-pl/strings.xml b/Pen/res/values-pl/strings.xml
new file mode 100644
index 0000000..e301348
--- /dev/null
+++ b/Pen/res/values-pl/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Dołączone pióro</string>
+ <string name="tap_to_connect">Dotknij, aby połączyć</string>
+</resources>
diff --git a/Pen/res/values-pt-rBR/strings.xml b/Pen/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..50e993b
--- /dev/null
+++ b/Pen/res/values-pt-rBR/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Caneta anexada</string>
+ <string name="tap_to_connect">Toque para conectar</string>
+</resources>
diff --git a/Pen/res/values-pt-rPT/strings.xml b/Pen/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..50e993b
--- /dev/null
+++ b/Pen/res/values-pt-rPT/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Caneta anexada</string>
+ <string name="tap_to_connect">Toque para conectar</string>
+</resources>
diff --git a/Pen/res/values-ro/strings.xml b/Pen/res/values-ro/strings.xml
new file mode 100644
index 0000000..b962831
--- /dev/null
+++ b/Pen/res/values-ro/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Stilou atașat</string>
+ <string name="tap_to_connect">Atingeți pentru a conecta</string>
+</resources>
diff --git a/Pen/res/values-ru/strings.xml b/Pen/res/values-ru/strings.xml
new file mode 100644
index 0000000..25a1120
--- /dev/null
+++ b/Pen/res/values-ru/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="tap_to_connect">Нажмите, чтобы подключить</string>
+</resources>
diff --git a/Pen/res/values-sl/strings.xml b/Pen/res/values-sl/strings.xml
new file mode 100644
index 0000000..4898e6a
--- /dev/null
+++ b/Pen/res/values-sl/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Pisalo priključeno</string>
+ <string name="tap_to_connect">Tapnite za povezavo</string>
+</resources>
diff --git a/Pen/res/values-ta/strings.xml b/Pen/res/values-ta/strings.xml
new file mode 100644
index 0000000..2aa8232
--- /dev/null
+++ b/Pen/res/values-ta/strings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="tap_to_connect">இணைக்கத் தட்டுக</string>
+</resources>
diff --git a/Pen/res/values-ug/strings.xml b/Pen/res/values-ug/strings.xml
new file mode 100644
index 0000000..9724ab6
--- /dev/null
+++ b/Pen/res/values-ug/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">قەلەم ئۇلاندى</string>
+ <string name="tap_to_connect">چېكىلسە باغلىنىدۇ</string>
+</resources>
diff --git a/Pen/res/values-vi/strings.xml b/Pen/res/values-vi/strings.xml
new file mode 100644
index 0000000..e4c1e8b
--- /dev/null
+++ b/Pen/res/values-vi/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">Đã gắn bút</string>
+ <string name="tap_to_connect">Chạm để kết nối</string>
+</resources>
diff --git a/Pen/res/values-zh-rCN/strings.xml b/Pen/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..a4fb5c6
--- /dev/null
+++ b/Pen/res/values-zh-rCN/strings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <string name="pen_attached">笔已连接</string>
+ <string name="tap_to_connect">轻触以连接</string>
+</resources>
diff --git a/Pen/res/values/config.xml b/Pen/res/values/config.xml
new file mode 100644
index 0000000..f2f3c0b
--- /dev/null
+++ b/Pen/res/values/config.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2025 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<resources>
+ <!-- Max supported refresh rate when using pen. -->
+ <string name="config_penSupportedRefreshRate" translatable="false"></string>
+</resources>
diff --git a/Pen/src/org/lineageos/pen/DeviceId.kt b/Pen/src/org/lineageos/pen/DeviceId.kt
new file mode 100644
index 0000000..60f1a41
--- /dev/null
+++ b/Pen/src/org/lineageos/pen/DeviceId.kt
@@ -0,0 +1,27 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.pen
+
+import android.view.InputDevice
+
+enum class DeviceId(val productName: String) {
+ // From OplusExSystemService/pencil_device_name
+ ONEPLUS_PENCIL("OnePlus Pencil"),
+ ONEPLUS_PENCIL_PRO("OnePlus Pencil Pro"),
+ ONEPLUS_STYLO("OnePlus Stylo"),
+ ONEPLUS_STYLO_2("OnePlus Stylo 2"),
+ ONEPLUS_STYLO_R("OnePlus Stylo R"),
+ OPPO_PENCIL("OPPO Pencil"),
+ OPPO_PENCIL_2("OPPO Pencil 2"),
+ OPPO_PENCIL_2_PRO("OPPO Pencil 2 Pro"),
+ REALME_PENCIL("realme Pencil");
+
+ companion object {
+ fun fromInputDevice(device: InputDevice) = entries.firstOrNull {
+ device.vendorId == 0x22D9 && device.name.startsWith("${it.productName} ")
+ }
+ }
+}
diff --git a/Pen/src/org/lineageos/pen/PenService.kt b/Pen/src/org/lineageos/pen/PenService.kt
index e2a3d9d..f33490e 100644
--- a/Pen/src/org/lineageos/pen/PenService.kt
+++ b/Pen/src/org/lineageos/pen/PenService.kt
@@ -17,14 +17,24 @@ import android.bluetooth.le.ScanResult
import android.bluetooth.le.ScanSettings
import android.content.Context
import android.content.Intent
+import android.database.ContentObserver
+import android.hardware.input.InputManager
+import android.os.Handler
import android.os.IBinder
import android.os.UEventObserver
+import android.provider.Settings
+import android.provider.Settings.System.PEAK_REFRESH_RATE
import android.util.Log
class PenService : Service() {
private val bluetoothManager by lazy { getSystemService(BluetoothManager::class.java) }
+ private val inputManager by lazy { getSystemService(InputManager::class.java) }
private val notificationManager by lazy { getSystemService(NotificationManager::class.java) }
+ private val penSupportedRefreshRate by lazy { getString(R.string.config_penSupportedRefreshRate) }
+
+ private val handler by lazy { Handler(mainLooper) }
+
private val observer = object : UEventObserver() {
private val lock = Any()
@@ -43,6 +53,30 @@ class PenService : Service() {
}
}
+ private val inputObserver = object : InputManager.InputDeviceListener {
+ override fun onInputDeviceAdded(deviceId: Int) {
+ overridePeakRefreshRateIfNeeded()
+ }
+
+ override fun onInputDeviceRemoved(deviceId: Int) {
+ overridePeakRefreshRateIfNeeded()
+ }
+
+ override fun onInputDeviceChanged(deviceId: Int) {
+ // Do nothing
+ }
+ }
+
+ private val peakRefreshRateSettingsObserver by lazy {
+ object : ContentObserver(handler) {
+ override fun onChange(selfChange: Boolean) {
+ super.onChange(selfChange)
+
+ overridePeakRefreshRateIfNeeded()
+ }
+ }
+ }
+
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
intent?.getStringExtra(EXTRA_PENCIL_ADDR)?.let {
bondBtDevice(it)
@@ -56,12 +90,28 @@ class PenService : Service() {
override fun onCreate() {
super.onCreate()
+ if (!penSupportedRefreshRate.isEmpty()) {
+ contentResolver.registerContentObserver(
+ Settings.System.getUriFor(PEAK_REFRESH_RATE),
+ false,
+ peakRefreshRateSettingsObserver
+ )
+ peakRefreshRateSettingsObserver.onChange(true)
+
+ inputManager.registerInputDeviceListener(inputObserver, handler)
+ }
+
observer.startObserving("DEVPATH=/devices/virtual/oplus_wireless/pencil")
}
override fun onDestroy() {
super.onDestroy()
+ if (!penSupportedRefreshRate.isEmpty()) {
+ contentResolver.unregisterContentObserver(peakRefreshRateSettingsObserver)
+ inputManager.unregisterInputDeviceListener(inputObserver)
+ }
+
observer.stopObserving()
}
@@ -97,6 +147,21 @@ class PenService : Service() {
)
}
+ private fun overridePeakRefreshRateIfNeeded() {
+ val isPenConnected = inputManager.inputDeviceIds.firstOrNull {
+ val device = inputManager.getInputDevice(it) ?: return@firstOrNull false
+ val deviceId = DeviceId.fromInputDevice(device) ?: return@firstOrNull false
+ return@firstOrNull true
+ } != null
+ val peakRefreshRate = Settings.System.getString(contentResolver, PEAK_REFRESH_RATE)
+
+ if (isPenConnected && peakRefreshRate == "Infinity") {
+ Settings.System.putString(contentResolver, PEAK_REFRESH_RATE, penSupportedRefreshRate)
+ } else if (!isPenConnected && peakRefreshRate == penSupportedRefreshRate) {
+ Settings.System.putString(contentResolver, PEAK_REFRESH_RATE, "Infinity")
+ }
+ }
+
private fun postNotification(pencilAddr: String) {
val adapter = bluetoothManager.adapter
diff --git a/README.md b/README.md
index 669ac48..b806a12 100644
--- a/README.md
+++ b/README.md
@@ -16,4 +16,3 @@
| OPLUS_LINEAGE_TOUCH_HAL | USE_OPLUSTOUCH | Use and interface with stock OplusTouch | false |
| OPLUS_LINEAGE_VIBRATOR_HAL | INCLUDE_DIR | Device specific include dir path | |
| OPLUS_LINEAGE_VIBRATOR_HAL | USE_EFFECT_STREAM | Enable effect stream feature | false |
-| QTI_GPT_UTILS | USE_BSG_FRAMEWORK | Enable BSG framework feature | true |
diff --git a/aidl/ir/ConsumerIr.cpp b/aidl/ir/ConsumerIr.cpp
index 23c9ea5..aac4003 100644
--- a/aidl/ir/ConsumerIr.cpp
+++ b/aidl/ir/ConsumerIr.cpp
@@ -26,15 +26,15 @@ ConsumerIr::ConsumerIr() : supportedFreqs({{MIN_FREQ, MAX_FREQ}}) {}
return ::ndk::ScopedAStatus::ok();
}
-::ndk::ScopedAStatus ConsumerIr::transmit(int32_t in_carrierFreqHz,
- const std::vector<int32_t>& in_pattern) {
- if (in_carrierFreqHz < MIN_FREQ || in_carrierFreqHz > MAX_FREQ) {
- LOG(ERROR) << "Invalid carrier frequency: " << in_carrierFreqHz;
+::ndk::ScopedAStatus ConsumerIr::transmit(int32_t carrierFreqHz,
+ const std::vector<int32_t>& pattern) {
+ if (carrierFreqHz < MIN_FREQ || carrierFreqHz > MAX_FREQ) {
+ LOG(ERROR) << "Invalid carrier frequency: " << carrierFreqHz;
return ::ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
int32_t totalTime = 0;
- for (int32_t value : in_pattern) {
+ for (int32_t value : pattern) {
if (value < 0) {
LOG(ERROR) << "Invalid pattern value: " << value;
return ::ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
@@ -53,7 +53,7 @@ ConsumerIr::ConsumerIr() : supportedFreqs({{MIN_FREQ, MAX_FREQ}}) {}
return ::ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
- size_t paramsSize = sizeof(struct pattern_params) + in_pattern.size() * sizeof(int32_t);
+ size_t paramsSize = sizeof(struct pattern_params) + pattern.size() * sizeof(int32_t);
auto params = std::unique_ptr<struct pattern_params, decltype(&free)>(
static_cast<pattern_params*>(malloc(paramsSize)), free);
if (!params) {
@@ -61,9 +61,9 @@ ConsumerIr::ConsumerIr() : supportedFreqs({{MIN_FREQ, MAX_FREQ}}) {}
return ::ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
- params->carrier_freq = in_carrierFreqHz;
- params->size = in_pattern.size();
- memcpy(params->pattern, in_pattern.data(), in_pattern.size() * sizeof(int32_t));
+ params->carrier_freq = carrierFreqHz;
+ params->size = pattern.size();
+ memcpy(params->pattern, pattern.data(), pattern.size() * sizeof(int32_t));
int result = ioctl(fd, IR_SEND_PATTERN, params.get());
diff --git a/aidl/ir/ConsumerIr.h b/aidl/ir/ConsumerIr.h
index 0362470..29fa47e 100644
--- a/aidl/ir/ConsumerIr.h
+++ b/aidl/ir/ConsumerIr.h
@@ -18,8 +18,8 @@ class ConsumerIr : public BnConsumerIr {
private:
::ndk::ScopedAStatus getCarrierFreqs(std::vector<ConsumerIrFreqRange>* _aidl_return) override;
- ::ndk::ScopedAStatus transmit(int32_t in_carrierFreqHz,
- const std::vector<int32_t>& in_pattern) override;
+ ::ndk::ScopedAStatus transmit(int32_t carrierFreqHz,
+ const std::vector<int32_t>& pattern) override;
std::vector<ConsumerIrFreqRange> supportedFreqs;
};
diff --git a/aidl/livedisplay/AntiFlicker.cpp b/aidl/livedisplay/AntiFlicker.cpp
index 5743691..ffb532d 100644
--- a/aidl/livedisplay/AntiFlicker.cpp
+++ b/aidl/livedisplay/AntiFlicker.cpp
@@ -19,7 +19,8 @@ AntiFlicker::AntiFlicker() : mOplusDisplayFd(open("/dev/oplus_display", O_RDWR))
ndk::ScopedAStatus AntiFlicker::getEnabled(bool* _aidl_return) {
unsigned int value;
- if (ioctl(mOplusDisplayFd, PANEL_IOCTL_GET_DIMLAYER_BL_EN, &value) != 0) {
+ if (ioctl(mOplusDisplayFd, PANEL_IOCTL_GET_PWM_TURBO, &value) != 0 &&
+ ioctl(mOplusDisplayFd, PANEL_IOCTL_GET_DIMLAYER_BL_EN, &value) != 0) {
LOG(ERROR) << "Failed to read current AntiFlicker state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
@@ -33,7 +34,7 @@ ndk::ScopedAStatus AntiFlicker::setEnabled(bool enabled) {
return status;
}
unsigned int value = enabled;
- if (isEnabled != enabled &&
+ if (isEnabled != enabled && ioctl(mOplusDisplayFd, PANEL_IOCTL_SET_PWM_TURBO, &value) != 0 &&
ioctl(mOplusDisplayFd, PANEL_IOCTL_SET_DIMLAYER_BL_EN, &value) != 0) {
LOG(ERROR) << "Failed to set AntiFlicker state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
diff --git a/aidl/performance/Android.bp b/aidl/performance/Android.bp
new file mode 100644
index 0000000..79bbb10
--- /dev/null
+++ b/aidl/performance/Android.bp
@@ -0,0 +1,21 @@
+//
+// SPDX-FileCopyrightText: 2025 The LineageOS Project
+// SPDX-License-Identifier: Apache-2.0
+//
+
+cc_binary {
+ name: "vendor.oplus.hardware.performance-service",
+ vendor: true,
+ relative_install_path: "hw",
+ init_rc: ["vendor.oplus.hardware.performance-service.rc"],
+ vintf_fragments: ["vendor.oplus.hardware.performance-service.xml"],
+ srcs: [
+ "Performance.cpp",
+ "service.cpp",
+ ],
+ shared_libs: [
+ "libbase",
+ "libbinder_ndk",
+ "vendor.oplus.hardware.performance-V1-ndk",
+ ],
+}
diff --git a/aidl/performance/Performance.cpp b/aidl/performance/Performance.cpp
new file mode 100644
index 0000000..6d15591
--- /dev/null
+++ b/aidl/performance/Performance.cpp
@@ -0,0 +1,1079 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "Performance.h"
+
+#include <android-base/logging.h>
+
+#define LOG_TAG "vendor.oplus.hardware.performance-service"
+
+namespace aidl {
+namespace vendor {
+namespace oplus {
+namespace hardware {
+namespace performance {
+
+ndk::ScopedAStatus Performance::addAcmDirName(const std::string& dirname, int64_t flag,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname << ", flag=" << flag;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::addAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::addAcmPkgName(const std::string& pkgname, int64_t flag,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": pkgname=" << pkgname << ", flag=" << flag;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::addTaskTrackPid(int32_t group, int32_t pid, bool clear,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": group=" << group << ", pid=" << pid << ", clear=" << clear;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::clearTaskTrackGroup(int32_t group) {
+ LOG(INFO) << __func__ << ": group=" << group;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::delAcmDirName(const std::string& dirname, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::delAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::delAcmPkgName(const std::string& pkgname, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": pkgname=" << pkgname;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableDamonReclaim(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableKmallocDebug(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableMultiThreadOptimize(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableProcessReclaim(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableTaskCpustats(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableTaskPlacementDecision(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::disableVmallocDebug(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableAudioPerf(const std::string& value, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": value=" << value;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableDamonReclaim(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableKmallocDebug(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableMultiThreadOptimize(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableProcessReclaim(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableTaskCpustats(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableTaskPlacementDecision(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::enableVmallocDebug(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::existMemMonitor(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getAcmDirFlag(const std::string& dirname, int64_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname;
+ *_aidl_return = 0L;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getAcmOpstat(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getAcmPkgFlag(const std::string& pkgname, int64_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": pkgname=" << pkgname;
+ *_aidl_return = 0L;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getClmMuxSwitch(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getClmThreshold(int32_t threshold_id, std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": threshold_id=" << threshold_id;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getDdrResidency(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getDevinfoDDRInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getDevinfoUfsInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getDevinfoUfsVersionInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getExt4FragScore(const std::string& devpath,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": devpath=" << devpath;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getExt4FreefragInfo(const std::string& devpath,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": devpath=" << devpath;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getF2fsMovedBlks(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIAllocWait(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHICpuInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHICpuLoading(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIDState(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIEmcdrvIowait(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIFsyncWait(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIIonWait(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIIowait(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIIowaitHung(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIKswapdLoading(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHISchedLatency(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIScmCall(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getHIUfsFeature(ProcReqHal* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getKernelVersion(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getKmallocDebug(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getKmallocOrigin(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getKmallocUsed(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getMemMonitor(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getOswapVersion(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getUfsSignalRecordUpload(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getUfsplusHpbStatus(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getUfsplusTwStatus(int32_t* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getVmallocDebug(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getVmallocHashCal(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getVmallocUsed(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getWakeThreadsAffinityOrdered(const std::string& handle,
+ int32_t size,
+ TaskWakeInfo* _aidl_return) {
+ LOG(INFO) << __func__ << ": handle=" << handle << ", size=" << size;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getallocwait(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getdstate(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getfsyncwait(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getionwait(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getiowait(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::getschedlatency(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::hybridswap_memcg_para_read(int32_t action,
+ const std::string& cgroup,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": action=" << action << ", cgroup=" << cgroup;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::hybridswap_memcg_para_write(int32_t action,
+ const std::string& cgroup,
+ const std::string& str,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": action=" << action << ", cgroup=" << cgroup << ", str=" << str;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::hybridswap_zram_para_read(int32_t action,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": action=" << action;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::hybridswap_zram_para_write(int32_t action, const std::string& str,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": action=" << action << ", str=" << str;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::isJankTaskTrackEnable(bool* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = false;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::perProcessMemReadahead(int32_t uid, int32_t pid, int32_t type,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": uid=" << uid << ", pid=" << pid << ", type=" << type;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::perProcessMemReclaim(int32_t uid, int32_t pid, int32_t type,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": uid=" << uid << ", pid=" << pid << ", type=" << type;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readCallStack(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readClmEnable(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readClmHighLoadAll(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readClmHighLoadGrp(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readClmLowLoadGrp(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readCpuTaskstats(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readDBacktrace(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readDConvert(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readFgFreqsThreshold(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readIOBacktrace(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readIomonitorInfo(const std::string& procname,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": procname=" << procname;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuIndicator(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuInfoSig(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuLoad(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuLoad32(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankCpuLoad32Scale(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankTaskTrack(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankTaskTrackByPid(int32_t pid, std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": pid=" << pid;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readJankVersion(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readKmallocDebugCreate(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readLimitTable(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readMemleakDetectThread(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readMemoryByPids(const std::vector<int32_t>& pids, int32_t flags,
+ ProcMemStatRet* _aidl_return) {
+ LOG(INFO) << __func__ << ": pids.size=" << pids.size() << ", flags=" << flags;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readMemoryByUids(const std::vector<int32_t>& uids, int32_t flags,
+ ProcMemStatRet* _aidl_return) {
+ LOG(INFO) << __func__ << ": uids.size=" << uids.size() << ", flags=" << flags;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readNandswapProc(const std::string& inProc,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": inProc=" << inProc;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readNormalizeRealTime(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readNormalizeRunningTime(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readOplusReserve3(int32_t offset, int32_t len,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": offset=" << offset << ", len=" << len;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readOsvelteVersion(OsvelteVersionRet* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = {};
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readPidsSet(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readRealTime(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readRunningTime(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readSchedInfoThreshold(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readSgeFreqInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readSgeInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readStorageFeature(const std::string& name, const std::string& addr,
+ const std::string& isMulti,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": name=" << name << ", addr=" << addr << ", isMulti=" << isMulti;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTargetProcess(const std::string& buffer,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTaskCpustatsEnable(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTaskSchedInfo(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTidsSet(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTmemoryDirtypages(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTmemoryErrorStat(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTmemoryIoLatency(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readTmemorySysdirtypages(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readUxTaskTrack(int32_t uPid, int32_t rPid,
+ std::string* _aidl_return) {
+ LOG(INFO) << __func__ << ": uPid=" << uPid << ", rPid=" << rPid;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readVaFeature(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::readVersion(std::string* _aidl_return) {
+ LOG(INFO) << __func__;
+ *_aidl_return = "";
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::removeTaskTrackPid(int32_t group, int32_t pid) {
+ LOG(INFO) << __func__ << ": group=" << group << ", pid=" << pid;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::searchAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": dirname=" << dirname;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setAcmOpstat(int32_t flag, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": flag=" << flag;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setClmMuxSwitch(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setClmThreshold(const std::string& buffer, int32_t threshold_id) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer << ", threshold_id=" << threshold_id;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setDamonReclaimColdTime(int32_t cold_time, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": cold_time=" << cold_time;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setDamonReclaimMonitoring(int32_t sample, int32_t aggr,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": sample=" << sample << ", aggr=" << aggr;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setDamonReclaimQuota(int32_t quota_ms, int32_t quota_sz,
+ int32_t reset_interval,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": quota_ms=" << quota_ms << ", quota_sz=" << quota_sz
+ << ", reset_interval=" << reset_interval;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setDamonReclaimWmarks(int32_t metric, int32_t high, int32_t mid,
+ int32_t low, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": metric=" << metric << ", high=" << high << ", mid=" << mid
+ << ", low=" << low;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setExtSchedProp(const std::string& pid, const std::string& prop) {
+ LOG(INFO) << __func__ << ": pid=" << pid << ", prop=" << prop;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setFgUids(const std::string& fg_uid) {
+ LOG(INFO) << __func__ << ": fg_uid=" << fg_uid;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setFrameRate(const std::string& frame_rate) {
+ LOG(INFO) << __func__ << ": frame_rate=" << frame_rate;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setFreqGoverner(const std::string& gov_name,
+ const std::vector<int32_t>& clusters,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": gov_name=" << gov_name << ", clusters.size=" << clusters.size();
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setImFlag(const std::string& pid, const std::string& im_flag) {
+ LOG(INFO) << __func__ << ": pid=" << pid << ", im_flag=" << im_flag;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setProcessReclaim(const std::string& info, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": info=" << info;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setSchedAssistImptTask(const std::string& impt_info) {
+ LOG(INFO) << __func__ << ": impt_info=" << impt_info;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setSchedAssistScene(const std::string& scene_id) {
+ LOG(INFO) << __func__ << ": scene_id=" << scene_id;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setSlideboost(const std::string& boost) {
+ LOG(INFO) << __func__ << ": boost=" << boost;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setTpdID(const std::string& param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setTpdSerialParams(const std::string& params,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": params=" << params;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::setWakeSeedThread(const std::string& tid, bool identify_type,
+ bool inUid, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": tid=" << tid << ", identify_type=" << identify_type
+ << ", inUid=" << inUid;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeClmEnable(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeClmHighLoadAll(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeClmHighLoadGrp(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeClmLowLoadGrp(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeDBacktrace(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeFgFreqsThreshold(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeIOBacktrace(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeJankTaskTrackEnable(bool enable) {
+ LOG(INFO) << __func__ << ": enable=" << enable;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeKmallocDebugCreate(int32_t kcreate, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": kcreate=" << kcreate;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeKmallocDebugCreateWithType(const std::string& type,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": type=" << type;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeMemMonitor(const std::string& buffer, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeMemleakDetectThread(int32_t memdect, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": memdect=" << memdect;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeMonitorStatus(const std::string& buffer,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeNandswapProc(const std::string& inProc, const std::string& cmd,
+ int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": inProc=" << inProc << ", cmd=" << cmd;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeOplusReserve3(int32_t offset, int32_t len,
+ const std::string& info, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": offset=" << offset << ", len=" << len << ", info=" << info;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writePidsSet(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeSchedInfoThreshold(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeStorageFeature(const std::string& name,
+ const std::string& addr,
+ const std::string& isMulti,
+ const std::string& cmd, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": name=" << name << ", addr=" << addr << ", isMulti=" << isMulti
+ << ", cmd=" << cmd;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTaskSchedInfo(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTidsSet(const std::string& buffer) {
+ LOG(INFO) << __func__ << ": buffer=" << buffer;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemoryCapacity(int32_t param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemoryFlushBusy(int32_t param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemoryFlushIdle(int32_t param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemoryHighWaterRatio(int32_t param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemoryMemory(const std::string& str, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": str=" << str;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeTmemorySwitch(int32_t param, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": param=" << param;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeUxState(const std::string& ux_state, const std::string& pid,
+ const std::string& tid, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": ux_state=" << ux_state << ", pid=" << pid << ", tid=" << tid;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+ndk::ScopedAStatus Performance::writeVaFeature(int32_t vafeature, int32_t* _aidl_return) {
+ LOG(INFO) << __func__ << ": vafeature=" << vafeature;
+ *_aidl_return = 0;
+ return ndk::ScopedAStatus::ok();
+}
+
+} // namespace performance
+} // namespace hardware
+} // namespace oplus
+} // namespace vendor
+} // namespace aidl
diff --git a/aidl/performance/Performance.h b/aidl/performance/Performance.h
new file mode 100644
index 0000000..55e6df1
--- /dev/null
+++ b/aidl/performance/Performance.h
@@ -0,0 +1,234 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#pragma once
+
+#include <aidl/vendor/oplus/hardware/performance/BnPerformance.h>
+
+namespace aidl {
+namespace vendor {
+namespace oplus {
+namespace hardware {
+namespace performance {
+
+class Performance : public BnPerformance {
+ ndk::ScopedAStatus addAcmDirName(const std::string& dirname, int64_t flag,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus addAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus addAcmPkgName(const std::string& pkgname, int64_t flag,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus addTaskTrackPid(int32_t group, int32_t pid, bool clear,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus clearTaskTrackGroup(int32_t group) override;
+ ndk::ScopedAStatus delAcmDirName(const std::string& dirname, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus delAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus delAcmPkgName(const std::string& pkgname, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableDamonReclaim(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableKmallocDebug(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableMultiThreadOptimize(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableProcessReclaim(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableTaskCpustats(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableTaskPlacementDecision(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus disableVmallocDebug(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableAudioPerf(const std::string& value, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableDamonReclaim(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableKmallocDebug(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableMultiThreadOptimize(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableProcessReclaim(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableTaskCpustats(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableTaskPlacementDecision(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus enableVmallocDebug(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus existMemMonitor(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getAcmDirFlag(const std::string& dirname, int64_t* _aidl_return) override;
+ ndk::ScopedAStatus getAcmOpstat(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getAcmPkgFlag(const std::string& pkgname, int64_t* _aidl_return) override;
+ ndk::ScopedAStatus getClmMuxSwitch(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getClmThreshold(int32_t threshold_id, std::string* _aidl_return) override;
+ ndk::ScopedAStatus getDdrResidency(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getDevinfoDDRInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getDevinfoUfsInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getDevinfoUfsVersionInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getExt4FragScore(const std::string& devpath,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus getExt4FreefragInfo(const std::string& devpath,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus getF2fsMovedBlks(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getHIAllocWait(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHICpuInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getHICpuLoading(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getHIDState(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIEmcdrvIowait(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIFsyncWait(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIIonWait(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIIowait(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIIowaitHung(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIKswapdLoading(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHISchedLatency(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIScmCall(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getHIUfsFeature(ProcReqHal* _aidl_return) override;
+ ndk::ScopedAStatus getKernelVersion(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getKmallocDebug(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getKmallocOrigin(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getKmallocUsed(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getMemMonitor(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getOswapVersion(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getUfsSignalRecordUpload(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getUfsplusHpbStatus(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getUfsplusTwStatus(int32_t* _aidl_return) override;
+ ndk::ScopedAStatus getVmallocDebug(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getVmallocHashCal(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getVmallocUsed(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getWakeThreadsAffinityOrdered(const std::string& handle, int32_t size,
+ TaskWakeInfo* _aidl_return) override;
+ ndk::ScopedAStatus getallocwait(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getdstate(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getfsyncwait(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getionwait(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getiowait(std::string* _aidl_return) override;
+ ndk::ScopedAStatus getschedlatency(std::string* _aidl_return) override;
+ ndk::ScopedAStatus hybridswap_memcg_para_read(int32_t action, const std::string& cgroup,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus hybridswap_memcg_para_write(int32_t action, const std::string& cgroup,
+ const std::string& str,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus hybridswap_zram_para_read(int32_t action,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus hybridswap_zram_para_write(int32_t action, const std::string& str,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus isJankTaskTrackEnable(bool* _aidl_return) override;
+ ndk::ScopedAStatus perProcessMemReadahead(int32_t uid, int32_t pid, int32_t type,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus perProcessMemReclaim(int32_t uid, int32_t pid, int32_t type,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus readCallStack(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readClmEnable(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readClmHighLoadAll(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readClmHighLoadGrp(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readClmLowLoadGrp(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readCpuTaskstats(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readDBacktrace(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readDConvert(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readFgFreqsThreshold(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readIOBacktrace(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readIomonitorInfo(const std::string& procname,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuIndicator(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuInfoSig(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuLoad(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuLoad32(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankCpuLoad32Scale(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankTaskTrack(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankTaskTrackByPid(int32_t pid, std::string* _aidl_return) override;
+ ndk::ScopedAStatus readJankVersion(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readKmallocDebugCreate(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readLimitTable(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readMemleakDetectThread(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readMemoryByPids(const std::vector<int32_t>& pids, int32_t flags,
+ ProcMemStatRet* _aidl_return) override;
+ ndk::ScopedAStatus readMemoryByUids(const std::vector<int32_t>& uids, int32_t flags,
+ ProcMemStatRet* _aidl_return) override;
+ ndk::ScopedAStatus readNandswapProc(const std::string& inProc,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readNormalizeRealTime(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readNormalizeRunningTime(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readOplusReserve3(int32_t offset, int32_t len,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readOsvelteVersion(OsvelteVersionRet* _aidl_return) override;
+ ndk::ScopedAStatus readPidsSet(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readRealTime(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readRunningTime(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readSchedInfoThreshold(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readSgeFreqInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readSgeInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readStorageFeature(const std::string& name, const std::string& addr,
+ const std::string& isMulti,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTargetProcess(const std::string& buffer,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTaskCpustatsEnable(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTaskSchedInfo(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTidsSet(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTmemoryDirtypages(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTmemoryErrorStat(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTmemoryIoLatency(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readTmemorySysdirtypages(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readUxTaskTrack(int32_t uPid, int32_t rPid,
+ std::string* _aidl_return) override;
+ ndk::ScopedAStatus readVaFeature(std::string* _aidl_return) override;
+ ndk::ScopedAStatus readVersion(std::string* _aidl_return) override;
+ ndk::ScopedAStatus removeTaskTrackPid(int32_t group, int32_t pid) override;
+ ndk::ScopedAStatus searchAcmNomediaDirName(const std::string& dirname,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setAcmOpstat(int32_t flag, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setClmMuxSwitch(const std::string& buffer) override;
+ ndk::ScopedAStatus setClmThreshold(const std::string& buffer, int32_t threshold_id) override;
+ ndk::ScopedAStatus setDamonReclaimColdTime(int32_t cold_time, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setDamonReclaimMonitoring(int32_t sample, int32_t aggr,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setDamonReclaimQuota(int32_t quota_ms, int32_t quota_sz,
+ int32_t reset_interval, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setDamonReclaimWmarks(int32_t metric, int32_t high, int32_t mid, int32_t low,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setExtSchedProp(const std::string& pid, const std::string& prop) override;
+ ndk::ScopedAStatus setFgUids(const std::string& fg_uid) override;
+ ndk::ScopedAStatus setFrameRate(const std::string& frame_rate) override;
+ ndk::ScopedAStatus setFreqGoverner(const std::string& gov_name,
+ const std::vector<int32_t>& clusters,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setImFlag(const std::string& pid, const std::string& im_flag) override;
+ ndk::ScopedAStatus setProcessReclaim(const std::string& info, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setSchedAssistImptTask(const std::string& impt_info) override;
+ ndk::ScopedAStatus setSchedAssistScene(const std::string& scene_id) override;
+ ndk::ScopedAStatus setSlideboost(const std::string& boost) override;
+ ndk::ScopedAStatus setTpdID(const std::string& param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setTpdSerialParams(const std::string& params,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus setWakeSeedThread(const std::string& tid, bool identify_type, bool inUid,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeClmEnable(const std::string& buffer) override;
+ ndk::ScopedAStatus writeClmHighLoadAll(const std::string& buffer) override;
+ ndk::ScopedAStatus writeClmHighLoadGrp(const std::string& buffer) override;
+ ndk::ScopedAStatus writeClmLowLoadGrp(const std::string& buffer) override;
+ ndk::ScopedAStatus writeDBacktrace(const std::string& buffer) override;
+ ndk::ScopedAStatus writeFgFreqsThreshold(const std::string& buffer) override;
+ ndk::ScopedAStatus writeIOBacktrace(const std::string& buffer) override;
+ ndk::ScopedAStatus writeJankTaskTrackEnable(bool enable) override;
+ ndk::ScopedAStatus writeKmallocDebugCreate(int32_t kcreate, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeKmallocDebugCreateWithType(const std::string& type,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeMemMonitor(const std::string& buffer, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeMemleakDetectThread(int32_t memdect, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeMonitorStatus(const std::string& buffer,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeNandswapProc(const std::string& inProc, const std::string& cmd,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeOplusReserve3(int32_t offset, int32_t len, const std::string& info,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writePidsSet(const std::string& buffer) override;
+ ndk::ScopedAStatus writeSchedInfoThreshold(const std::string& buffer) override;
+ ndk::ScopedAStatus writeStorageFeature(const std::string& name, const std::string& addr,
+ const std::string& isMulti, const std::string& cmd,
+ int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTaskSchedInfo(const std::string& buffer) override;
+ ndk::ScopedAStatus writeTidsSet(const std::string& buffer) override;
+ ndk::ScopedAStatus writeTmemoryCapacity(int32_t param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTmemoryFlushBusy(int32_t param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTmemoryFlushIdle(int32_t param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTmemoryHighWaterRatio(int32_t param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTmemoryMemory(const std::string& str, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeTmemorySwitch(int32_t param, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeUxState(const std::string& ux_state, const std::string& pid,
+ const std::string& tid, int32_t* _aidl_return) override;
+ ndk::ScopedAStatus writeVaFeature(int32_t vafeature, int32_t* _aidl_return) override;
+};
+
+} // namespace performance
+} // namespace hardware
+} // namespace oplus
+} // namespace vendor
+} // namespace aidl
diff --git a/aidl/performance/service.cpp b/aidl/performance/service.cpp
new file mode 100644
index 0000000..18cda4f
--- /dev/null
+++ b/aidl/performance/service.cpp
@@ -0,0 +1,25 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include "Performance.h"
+
+#include <android-base/logging.h>
+#include <android/binder_manager.h>
+#include <android/binder_process.h>
+
+using ::aidl::vendor::oplus::hardware::performance::Performance;
+
+int main() {
+ ABinderProcess_setThreadPoolMaxThreadCount(0);
+ std::shared_ptr<Performance> performance = ndk::SharedRefBase::make<Performance>();
+
+ const std::string instance = std::string() + Performance::descriptor + "/default";
+ binder_status_t status =
+ AServiceManager_addService(performance->asBinder().get(), instance.c_str());
+ CHECK_EQ(status, STATUS_OK);
+
+ ABinderProcess_joinThreadPool();
+ return EXIT_FAILURE; // should not reach
+}
diff --git a/aidl/performance/vendor.oplus.hardware.performance-service.rc b/aidl/performance/vendor.oplus.hardware.performance-service.rc
new file mode 100644
index 0000000..fe91963
--- /dev/null
+++ b/aidl/performance/vendor.oplus.hardware.performance-service.rc
@@ -0,0 +1,4 @@
+service oplus.performance.hal.service /vendor/bin/hw/vendor.oplus.hardware.performance-service
+ class hal
+ user system
+ group system
diff --git a/aidl/performance/vendor.oplus.hardware.performance-service.xml b/aidl/performance/vendor.oplus.hardware.performance-service.xml
new file mode 100644
index 0000000..5fe9b75
--- /dev/null
+++ b/aidl/performance/vendor.oplus.hardware.performance-service.xml
@@ -0,0 +1,7 @@
+<manifest version="1.0" type="device">
+ <hal format="aidl">
+ <name>vendor.oplus.hardware.performance</name>
+ <version>1</version>
+ <fqname>IPerformance/default</fqname>
+ </hal>
+</manifest>
diff --git a/folio-daemon/Android.bp b/folio-daemon/Android.bp
new file mode 100644
index 0000000..aa34619
--- /dev/null
+++ b/folio-daemon/Android.bp
@@ -0,0 +1,25 @@
+cc_binary {
+ name: "folio-daemon",
+
+ init_rc: ["folio_daemon.rc"],
+
+ shared_libs: [
+ "libandroid",
+ "libcutils",
+ "liblog",
+ ],
+
+ srcs: ["main.cpp"],
+
+ cflags: [
+ "-DLOG_TAG=\"folio-daemon\"",
+ "-DLOG_NDEBUG=0",
+ ] + [
+ "-Wall",
+ "-Werror",
+ ],
+
+ owner: "google",
+
+ system_ext_specific: true,
+}
diff --git a/folio-daemon/folio_daemon.rc b/folio-daemon/folio_daemon.rc
new file mode 100644
index 0000000..ad3a3b9
--- /dev/null
+++ b/folio-daemon/folio_daemon.rc
@@ -0,0 +1,11 @@
+service folio-daemon /system_ext/bin/folio-daemon
+ class late_start
+ user system
+ group system uhid
+ disabled
+
+on property:init.svc.zygote=running
+ start folio-daemon
+
+on property:init.svc.zygote=stopped
+ stop folio-daemon
diff --git a/folio-daemon/main.cpp b/folio-daemon/main.cpp
new file mode 100644
index 0000000..7522f5c
--- /dev/null
+++ b/folio-daemon/main.cpp
@@ -0,0 +1,161 @@
+/*
+ * SPDX-FileCopyrightText: 2017 The Android Open Source Project
+ * SPDX-FileCopyrightText: 2023-2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#include <android/looper.h>
+#include <android/sensor.h>
+#include <cutils/log.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <linux/input.h>
+#include <linux/uinput.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+// Hall-effect sensor type
+#define SENSOR_TYPE 33171002
+
+#define RETRY_LIMIT 120
+#define RETRY_PERIOD 30 // 30 seconds
+#define WARN_PERIOD (time_t)300 // 5 minutes
+
+/*
+ * This simple daemon listens for events from the Hall-effect sensor and writes
+ * the appropriate SW_LID event to a uinput node. This allows the screen to be
+ * locked with a magnetic folio case.
+ */
+int main(void) {
+ int uinputFd;
+ int err;
+ struct uinput_user_dev uidev;
+ ASensorManager* sensorManager = nullptr;
+ ASensorRef hallSensor;
+ ALooper* looper;
+ ASensorEventQueue* eventQueue = nullptr;
+ time_t lastWarn = 0;
+ int attemptCount = 0;
+
+ ALOGI("Started");
+
+ uinputFd = TEMP_FAILURE_RETRY(open("/dev/uinput", O_WRONLY | O_NONBLOCK));
+ if (uinputFd < 0) {
+ ALOGE("Unable to open uinput node: %s", strerror(errno));
+ goto out;
+ }
+
+ err = TEMP_FAILURE_RETRY(ioctl(uinputFd, UI_SET_EVBIT, EV_SW)) |
+ TEMP_FAILURE_RETRY(ioctl(uinputFd, UI_SET_EVBIT, EV_SYN)) |
+ TEMP_FAILURE_RETRY(ioctl(uinputFd, UI_SET_SWBIT, SW_LID));
+ if (err != 0) {
+ ALOGE("Unable to enable SW_LID events: %s", strerror(errno));
+ goto out;
+ }
+
+ memset(&uidev, 0, sizeof(uidev));
+ snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, "uinput-folio");
+ uidev.id.bustype = BUS_VIRTUAL;
+ uidev.id.vendor = 0;
+ uidev.id.product = 0;
+ uidev.id.version = 0;
+
+ err = TEMP_FAILURE_RETRY(write(uinputFd, &uidev, sizeof(uidev)));
+ if (err < 0) {
+ ALOGE("Write user device to uinput node failed: %s", strerror(errno));
+ goto out;
+ }
+
+ err = TEMP_FAILURE_RETRY(ioctl(uinputFd, UI_DEV_CREATE));
+ if (err < 0) {
+ ALOGE("Unable to create uinput device: %s", strerror(errno));
+ goto out;
+ }
+
+ ALOGI("Successfully registered uinput-folio for SW_LID events");
+
+ // Get Hall-effect sensor events from the NDK
+ sensorManager = ASensorManager_getInstanceForPackage(nullptr);
+ looper = ALooper_forThread();
+ if (looper == nullptr) {
+ looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);
+ }
+
+ eventQueue = ASensorManager_createEventQueue(sensorManager, looper, 0, NULL, NULL);
+
+ /*
+ * As long as we are unable to get the sensor handle, periodically retry
+ * and emit an error message at a low frequency to prevent high CPU usage
+ * and log spam. If we simply exited with an error here, we would be
+ * immediately restarted and fail in the same way indefinitely.
+ */
+ while (true) {
+ time_t now = time(NULL);
+ hallSensor = ASensorManager_getDefaultSensorEx(sensorManager, SENSOR_TYPE, true);
+ if (hallSensor != nullptr) {
+ break;
+ }
+
+ if (++attemptCount >= RETRY_LIMIT) {
+ ALOGE("Retries exhausted; exiting");
+ goto out;
+ } else if (now > lastWarn + WARN_PERIOD) {
+ ALOGE("Unable to get Hall-effect sensor");
+ lastWarn = now;
+ }
+
+ sleep(RETRY_PERIOD);
+ }
+
+ err = ASensorEventQueue_registerSensor(eventQueue, hallSensor, 0, 0);
+ if (err < 0) {
+ ALOGE("Unable to register for Hall-effect sensor events");
+ goto out;
+ }
+
+ ALOGI("Starting polling loop");
+
+ // Polling loop
+ while (ALooper_pollOnce(-1, NULL, NULL, NULL) > ALOOPER_POLL_TIMEOUT) {
+ ASensorEvent sensorEvent;
+ while (ASensorEventQueue_getEvents(eventQueue, &sensorEvent, 1) > 0) {
+ // 0 means closed; 1 means open
+ int isClosed = sensorEvent.data[0] > 0.0f ? 0 : 1;
+ struct input_event event;
+ event.type = EV_SW;
+ event.code = SW_LID;
+ event.value = isClosed;
+ err = TEMP_FAILURE_RETRY(write(uinputFd, &event, sizeof(event)));
+ if (err < 0) {
+ ALOGE("Write EV_SW to uinput node failed: %s", strerror(errno));
+ goto out;
+ }
+
+ // Force a flush with an EV_SYN
+ event.type = EV_SYN;
+ event.code = SYN_REPORT;
+ event.value = 0;
+ err = TEMP_FAILURE_RETRY(write(uinputFd, &event, sizeof(event)));
+ if (err < 0) {
+ ALOGE("Write EV_SYN to uinput node failed: %s", strerror(errno));
+ goto out;
+ }
+
+ ALOGI("Sent lid %s event", isClosed ? "closed" : "open");
+ }
+ }
+
+out:
+ // Clean up
+ if (sensorManager != nullptr && eventQueue != nullptr) {
+ ASensorManager_destroyEventQueue(sensorManager, eventQueue);
+ }
+
+ if (uinputFd >= 0) {
+ close(uinputFd);
+ }
+
+ // The loop can only be exited via failure or signal
+ return 1;
+}
diff --git a/interfaces/Android.bp b/interfaces/Android.bp
index 50ec1e3..b0eedf4 100644
--- a/interfaces/Android.bp
+++ b/interfaces/Android.bp
@@ -5,6 +5,7 @@ hidl_package_root {
aidl_interface {
name: "vendor.oplus.hardware.biometrics.fingerprintpay",
+ system_ext_specific: true,
odm_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/biometrics/fingerprintpay/*.aidl"],
@@ -28,7 +29,57 @@ aidl_interface {
}
aidl_interface {
+ name: "vendor.oplus.hardware.charger",
+ system_ext_specific: true,
+ odm_available: true,
+ local_include_dir: "aidl",
+ srcs: ["aidl/vendor/oplus/hardware/charger/*.aidl"],
+ stability: "vintf",
+ owner: "oplus",
+
+ backend: {
+ cpp: {
+ enabled: true,
+ },
+ java: {
+ sdk_version: "module_current",
+ },
+ },
+ versions_with_info: [
+ {
+ version: "1",
+ imports: [],
+ },
+ {
+ version: "2",
+ imports: [],
+ },
+ {
+ version: "3",
+ imports: [],
+ },
+ {
+ version: "5",
+ imports: [],
+ },
+ {
+ version: "6",
+ imports: [],
+ },
+ {
+ version: "7",
+ imports: [],
+ },
+ {
+ version: "8",
+ imports: [],
+ },
+ ],
+}
+
+aidl_interface {
name: "vendor.oplus.hardware.commondcs",
+ system_ext_specific: true,
vendor_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/commondcs/*.aidl"],
@@ -53,6 +104,7 @@ aidl_interface {
aidl_interface {
name: "vendor.oplus.hardware.esim",
+ system_ext_specific: true,
odm_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/esim/*.aidl"],
@@ -77,6 +129,7 @@ aidl_interface {
aidl_interface {
name: "vendor.oplus.hardware.osense.client",
+ system_ext_specific: true,
vendor_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/osense/client/*.aidl"],
@@ -100,7 +153,33 @@ aidl_interface {
}
aidl_interface {
+ name: "vendor.oplus.hardware.performance",
+ system_ext_specific: true,
+ vendor_available: true,
+ local_include_dir: "aidl",
+ srcs: ["aidl/vendor/oplus/hardware/performance/*.aidl"],
+ stability: "vintf",
+ owner: "oplus",
+
+ backend: {
+ cpp: {
+ enabled: true,
+ },
+ java: {
+ sdk_version: "module_current",
+ },
+ },
+ versions_with_info: [
+ {
+ version: "1",
+ imports: [],
+ },
+ ],
+}
+
+aidl_interface {
name: "vendor.oplus.hardware.radio",
+ system_ext_specific: true,
vendor_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/radio/*.aidl"],
@@ -129,6 +208,7 @@ aidl_interface {
aidl_interface {
name: "vendor.oplus.hardware.touch",
+ system_ext_specific: true,
vendor_available: true,
local_include_dir: "aidl",
srcs: ["aidl/vendor/oplus/hardware/touch/*.aidl"],
@@ -154,3 +234,33 @@ aidl_interface {
},
],
}
+
+aidl_interface {
+ name: "vendor.oplus.hardware.urcc",
+ system_ext_specific: true,
+ vendor_available: true,
+ local_include_dir: "aidl",
+ srcs: ["aidl/vendor/oplus/hardware/urcc/*.aidl"],
+ stability: "vintf",
+ owner: "oplus",
+
+ backend: {
+ cpp: {
+ enabled: true,
+ },
+ ndk: {
+ gen_log: true,
+ },
+ java: {
+ sdk_version: "module_current",
+ },
+ },
+ versions_with_info: [
+ {
+ version: "1",
+ imports: [],
+ },
+
+ ],
+ frozen: true,
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..77c26d9
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,40 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.charger;
+
+@VintfStability
+@Backing(type="int")
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+ GET_CHG_BYPASS_STATUS = 24,
+ SET_CHG_BYPASS = 25,
+ GET_RX_DISABLE_STATUS = 26,
+ SET_RX_DISABLE = 27,
+ GET_BATTERY_SEC_IC_TEST_STATUS = 28,
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..b552b99
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,143 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.charger;
+
+import vendor.oplus.hardware.charger.ChgFuncFlag;
+import vendor.oplus.hardware.charger.testKitFeatureTestResult;
+
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(ChgFuncFlag flag, String extra, int callname);
+ int setUsbEyeDiagram(int model, String eyeDiagram, boolean isDefaultEyeDiagram);
+ String getUsbCurrentEyeDiagram(int model);
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..93e5e6e
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,12 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.charger;
+
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/IPerformance.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/IPerformance.aidl
new file mode 100644
index 0000000..470cdd2
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/IPerformance.aidl
@@ -0,0 +1,187 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+import vendor.oplus.hardware.performance.OsvelteVersionRet;
+import vendor.oplus.hardware.performance.ProcMemStatRet;
+import vendor.oplus.hardware.performance.ProcReqHal;
+import vendor.oplus.hardware.performance.TaskWakeInfo;
+
+@VintfStability
+interface IPerformance {
+ int addAcmDirName(in String dirname, long flag);
+ int addAcmNomediaDirName(in String dirname);
+ int addAcmPkgName(in String pkgname, long flag);
+ int addTaskTrackPid(int group, int pid, boolean clear);
+ void clearTaskTrackGroup(int group);
+ int delAcmDirName(in String dirname);
+ int delAcmNomediaDirName(in String dirname);
+ int delAcmPkgName(in String pkgname);
+ int disableDamonReclaim();
+ int disableKmallocDebug();
+ int disableMultiThreadOptimize();
+ int disableProcessReclaim();
+ int disableTaskCpustats();
+ int disableTaskPlacementDecision();
+ int disableVmallocDebug();
+ int enableAudioPerf(in String value);
+ int enableDamonReclaim();
+ int enableKmallocDebug();
+ int enableMultiThreadOptimize();
+ int enableProcessReclaim();
+ int enableTaskCpustats();
+ int enableTaskPlacementDecision();
+ int enableVmallocDebug();
+ int existMemMonitor();
+ long getAcmDirFlag(in String dirname);
+ int getAcmOpstat();
+ long getAcmPkgFlag(in String pkgname);
+ String getClmMuxSwitch();
+ String getClmThreshold(int threshold_id);
+ String getDdrResidency();
+ String getDevinfoDDRInfo();
+ String getDevinfoUfsInfo();
+ String getDevinfoUfsVersionInfo();
+ String getExt4FragScore(in String devpath);
+ String getExt4FreefragInfo(in String devpath);
+ String getF2fsMovedBlks();
+ ProcReqHal getHIAllocWait();
+ String getHICpuInfo();
+ String getHICpuLoading();
+ ProcReqHal getHIDState();
+ ProcReqHal getHIEmcdrvIowait();
+ ProcReqHal getHIFsyncWait();
+ ProcReqHal getHIIonWait();
+ ProcReqHal getHIIowait();
+ ProcReqHal getHIIowaitHung();
+ ProcReqHal getHIKswapdLoading();
+ ProcReqHal getHISchedLatency();
+ ProcReqHal getHIScmCall();
+ ProcReqHal getHIUfsFeature();
+ int getKernelVersion();
+ String getKmallocDebug();
+ String getKmallocOrigin();
+ String getKmallocUsed();
+ String getMemMonitor();
+ int getOswapVersion();
+ String getUfsSignalRecordUpload();
+ int getUfsplusHpbStatus();
+ int getUfsplusTwStatus();
+ String getVmallocDebug();
+ String getVmallocHashCal();
+ String getVmallocUsed();
+ TaskWakeInfo getWakeThreadsAffinityOrdered(in String handle, int size);
+ String getallocwait();
+ String getdstate();
+ String getfsyncwait();
+ String getionwait();
+ String getiowait();
+ String getschedlatency();
+ String hybridswap_memcg_para_read(int action, in String cgroup);
+ int hybridswap_memcg_para_write(int action, in String cgroup, in String str);
+ String hybridswap_zram_para_read(int action);
+ int hybridswap_zram_para_write(int action, in String str);
+ boolean isJankTaskTrackEnable();
+ int perProcessMemReadahead(int uid, int pid, int type);
+ int perProcessMemReclaim(int uid, int pid, int type);
+ String readCallStack();
+ String readClmEnable();
+ String readClmHighLoadAll();
+ String readClmHighLoadGrp();
+ String readClmLowLoadGrp();
+ String readCpuTaskstats();
+ String readDBacktrace();
+ String readDConvert();
+ String readFgFreqsThreshold();
+ String readIOBacktrace();
+ String readIomonitorInfo(in String procname);
+ String readJankCpuIndicator();
+ String readJankCpuInfo();
+ String readJankCpuInfoSig();
+ String readJankCpuLoad();
+ String readJankCpuLoad32();
+ String readJankCpuLoad32Scale();
+ String readJankTaskTrack();
+ String readJankTaskTrackByPid(int pid);
+ String readJankVersion();
+ String readKmallocDebugCreate();
+ String readLimitTable();
+ String readMemleakDetectThread();
+ ProcMemStatRet readMemoryByPids(in int[] pids, int flags);
+ ProcMemStatRet readMemoryByUids(in int[] uids, int flags);
+ String readNandswapProc(in String inProc);
+ String readNormalizeRealTime();
+ String readNormalizeRunningTime();
+ String readOplusReserve3(int offset, int len);
+ OsvelteVersionRet readOsvelteVersion();
+ String readPidsSet();
+ String readRealTime();
+ String readRunningTime();
+ String readSchedInfoThreshold();
+ String readSgeFreqInfo();
+ String readSgeInfo();
+ String readStorageFeature(in String name, in String addr, in String isMulti);
+ String readTargetProcess(in String buffer);
+ String readTaskCpustatsEnable();
+ String readTaskSchedInfo();
+ String readTidsSet();
+ String readTmemoryDirtypages();
+ String readTmemoryErrorStat();
+ String readTmemoryIoLatency();
+ String readTmemorySysdirtypages();
+ String readUxTaskTrack(int uPid, int rPid);
+ String readVaFeature();
+ String readVersion();
+ void removeTaskTrackPid(int group, int pid);
+ int searchAcmNomediaDirName(in String dirname);
+ int setAcmOpstat(int flag);
+ void setClmMuxSwitch(in String buffer);
+ void setClmThreshold(in String buffer, int threshold_id);
+ int setDamonReclaimColdTime(int cold_time);
+ int setDamonReclaimMonitoring(int sample, int aggr);
+ int setDamonReclaimQuota(int quota_ms, int quota_sz, int reset_interval);
+ int setDamonReclaimWmarks(int metric, int high, int mid, int low);
+ void setExtSchedProp(in String pid, in String prop);
+ void setFgUids(in String fg_uid);
+ void setFrameRate(in String frame_rate);
+ int setFreqGoverner(in String gov_name, in int[] clusters);
+ void setImFlag(in String pid, in String im_flag);
+ int setProcessReclaim(in String info);
+ void setSchedAssistImptTask(in String impt_info);
+ void setSchedAssistScene(in String scene_id);
+ void setSlideboost(in String boost);
+ int setTpdID(in String param);
+ int setTpdSerialParams(in String params);
+ int setWakeSeedThread(in String tid, boolean identify_type, boolean inUid);
+ void writeClmEnable(in String buffer);
+ void writeClmHighLoadAll(in String buffer);
+ void writeClmHighLoadGrp(in String buffer);
+ void writeClmLowLoadGrp(in String buffer);
+ void writeDBacktrace(in String buffer);
+ void writeFgFreqsThreshold(in String buffer);
+ void writeIOBacktrace(in String buffer);
+ void writeJankTaskTrackEnable(boolean enable);
+ int writeKmallocDebugCreate(int kcreate);
+ int writeKmallocDebugCreateWithType(in String type);
+ int writeMemMonitor(in String buffer);
+ int writeMemleakDetectThread(int memdect);
+ int writeMonitorStatus(in String buffer);
+ int writeNandswapProc(in String inProc, in String cmd);
+ int writeOplusReserve3(int offset, int len, in String info);
+ void writePidsSet(in String buffer);
+ void writeSchedInfoThreshold(in String buffer);
+ int writeStorageFeature(in String name, in String addr, in String isMulti, in String cmd);
+ void writeTaskSchedInfo(in String buffer);
+ void writeTidsSet(in String buffer);
+ int writeTmemoryCapacity(int param);
+ int writeTmemoryFlushBusy(int param);
+ int writeTmemoryFlushIdle(int param);
+ int writeTmemoryHighWaterRatio(int param);
+ int writeTmemoryMemory(in String str);
+ int writeTmemorySwitch(int param);
+ int writeUxState(in String ux_state, in String pid, in String tid);
+ int writeVaFeature(int vafeature);
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteStatus.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteStatus.aidl
new file mode 100644
index 0000000..ea69141
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteStatus.aidl
@@ -0,0 +1,12 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+enum OsvelteStatus {
+ SUCCESS = 0,
+ FAILED = 1,
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
new file mode 100644
index 0000000..f7a524f
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
@@ -0,0 +1,13 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+parcelable OsvelteVersionRet {
+ int status;
+ int major = 0;
+ int minor = 0;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStat.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStat.aidl
new file mode 100644
index 0000000..8d00d21
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStat.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+parcelable ProcMemStat {
+ String comm;
+ boolean is_32bit = false;
+ int oom_score_adj = 0;
+ int nr_fds = 0;
+ int uid = 0;
+ int pid = 0;
+ int ppid = 0;
+ int anon = 0;
+ int file = 0;
+ int shmem = 0;
+ int swap = 0;
+ int vss = 0;
+ int pss = 0;
+ int swap_rss = 0;
+ int javaheap = 0;
+ int nativeheap = 0;
+ int ashmem = 0;
+ int dmabuf = 0;
+ int gpu = 0;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStatRet.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
new file mode 100644
index 0000000..b57f90f
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
@@ -0,0 +1,14 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+import vendor.oplus.hardware.performance.ProcMemStat;
+
+@VintfStability
+parcelable ProcMemStatRet {
+ int status;
+ ProcMemStat[] arr_ms;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqHal.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqHal.aidl
new file mode 100644
index 0000000..3b91f1b
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqHal.aidl
@@ -0,0 +1,14 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+import vendor.oplus.hardware.performance.ProcReqItemHal;
+
+@VintfStability
+parcelable ProcReqHal {
+ String proc;
+ ProcReqItemHal[] items;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqItemHal.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
new file mode 100644
index 0000000..38f145c
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
@@ -0,0 +1,13 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+parcelable ProcReqItemHal {
+ String key;
+ String label;
+ int uploadType;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/TaskGroup.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/TaskGroup.aidl
new file mode 100644
index 0000000..4209d3c
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/TaskGroup.aidl
@@ -0,0 +1,16 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+enum TaskGroup {
+ DEFAULT = 0,
+ UI = 1,
+ RENDER = 2,
+ DISPLAY = 3,
+ INPUT = 4,
+ GAME = 5,
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/TaskWakeInfo.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
new file mode 100644
index 0000000..9a8ce61
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
@@ -0,0 +1,14 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+import vendor.oplus.hardware.performance.ThreadInfo;
+
+@VintfStability
+parcelable TaskWakeInfo {
+ int ret = 0;
+ ThreadInfo[] list;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/ThreadInfo.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/ThreadInfo.aidl
new file mode 100644
index 0000000..1ddabca
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/ThreadInfo.aidl
@@ -0,0 +1,17 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+parcelable ThreadInfo {
+ int pid = 0;
+ int tid = 0;
+ int SourcePid = 0;
+ int utils = 0;
+ int nice = 0;
+ int WakeCnt = 0;
+ int totalWakeCnt = 0;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/performance/UploadType.aidl b/interfaces/aidl/vendor/oplus/hardware/performance/UploadType.aidl
new file mode 100644
index 0000000..93bf9fe
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/performance/UploadType.aidl
@@ -0,0 +1,13 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.performance;
+
+@VintfStability
+enum UploadType {
+ PRIMITIVE = 0,
+ DELTA = 1,
+ SKIP = 2,
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/urcc/IUrcc.aidl b/interfaces/aidl/vendor/oplus/hardware/urcc/IUrcc.aidl
new file mode 100644
index 0000000..38e3f6b
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/urcc/IUrcc.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.urcc;
+
+import vendor.oplus.hardware.urcc.IUrccCallback;
+import vendor.oplus.hardware.urcc.UrccRequestData;
+import vendor.oplus.hardware.urcc.UrccRequestParcel;
+
+@VintfStability
+interface IUrcc {
+ void urccInit();
+ int urccResCtlRequest(in UrccRequestParcel mUrccRequestParcel);
+ int urccResCtlRelease(int mhandle);
+ UrccRequestData[] urccResStateRequest(in UrccRequestParcel mUrccRequestParcel);
+ int urccResListeningRegister(in UrccRequestParcel mUrccRequestParcel, IUrccCallback urccCallback);
+ int urccResListeningUnRegister(int mhandle);
+ String urccPropertyGet(String name);
+ int urccPropertySet(String name, String value);
+ int urccThermalListeningRegister(in int[] types, IUrccCallback urccCallback);
+ int urccThermalListeningUnRegister(int mhandle);
+ int uahNotifyExt(int src, int type, in int[] args);
+ int setRelatedSysInfo(int cmd, in byte[] info);
+ int urccRuleCtl(int ruleId, int status, in UrccRequestData[] ruleData);
+ void uahResCtlRequestBypass(in UrccRequestParcel mRequestParcel);
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/urcc/IUrccCallback.aidl b/interfaces/aidl/vendor/oplus/hardware/urcc/IUrccCallback.aidl
new file mode 100644
index 0000000..4b8234b
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/urcc/IUrccCallback.aidl
@@ -0,0 +1,13 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.urcc;
+
+import vendor.oplus.hardware.urcc.UrccRequestData;
+
+@VintfStability
+interface IUrccCallback {
+ void onCallback(in UrccRequestData[] urccRequestDataArr);
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestData.aidl b/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestData.aidl
new file mode 100644
index 0000000..3da3b4e
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestData.aidl
@@ -0,0 +1,15 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.urcc;
+
+@VintfStability
+parcelable UrccRequestData {
+ String desc;
+ String res_Path;
+ String res_Value;
+ int res_Id;
+ int event_Id;
+}
diff --git a/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl b/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
new file mode 100644
index 0000000..615e8ea
--- /dev/null
+++ b/interfaces/aidl/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
@@ -0,0 +1,26 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package vendor.oplus.hardware.urcc;
+
+import vendor.oplus.hardware.urcc.IUrccCallback;
+import vendor.oplus.hardware.urcc.UrccRequestData;
+
+@VintfStability
+parcelable UrccRequestParcel {
+ String identity;
+ String[] mParams;
+ UrccRequestData[] mUrccRequestData;
+ byte[] otherData;
+ String pkgName;
+ IUrccCallback urccCallback;
+ int type;
+ boolean screenoff_support;
+ int prio;
+ int callingPID;
+ int callingUID;
+ long duration;
+ int handle;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/1/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/.hash
new file mode 100644
index 0000000..63ca85e
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/.hash
@@ -0,0 +1 @@
+f5b7e586df4d7e58cf547d6f81731b69e128bbe1
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..4f9e7f4
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,149 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/1/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/2/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/.hash
new file mode 100644
index 0000000..ead149f
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/.hash
@@ -0,0 +1 @@
+a41b38d964ed21d7edcb4a1c29454c7c969b733b
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..dd25162
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,150 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/2/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/3/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/.hash
new file mode 100644
index 0000000..4603872
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/.hash
@@ -0,0 +1 @@
+94b22213920f83dfdbc7a6b53c0de919dc12eafc
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..a548f73
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,152 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/3/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/5/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/.hash
new file mode 100644
index 0000000..a6602f7
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/.hash
@@ -0,0 +1 @@
+08c9338f46f14f1f9d7506d3e0801baa6f8cf7d8
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..90d10e4
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,50 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@Backing(type="int") @VintfStability
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..6761f44
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,154 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/5/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/6/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/.hash
new file mode 100644
index 0000000..0a12ebb
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/.hash
@@ -0,0 +1 @@
+8f23efe319a4b048ccfa90d86cdfc67a495e1b6f
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..9426818
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,52 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@Backing(type="int") @VintfStability
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+ GET_CHG_BYPASS_STATUS = 24,
+ SET_CHG_BYPASS = 25,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..578967b
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,156 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ int setUsbEyeDiagram(int model, String eyeDiagram, boolean isDefaultEyeDiagram);
+ String getUsbCurrentEyeDiagram(int model);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/6/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/7/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/.hash
new file mode 100644
index 0000000..e5433c5
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/.hash
@@ -0,0 +1 @@
+6c65540de0cc5d1dadd05e1b8087e7ed3d535b87
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..ab4c6ed
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,54 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@Backing(type="int") @VintfStability
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+ GET_CHG_BYPASS_STATUS = 24,
+ SET_CHG_BYPASS = 25,
+ GET_RX_DISABLE_STATUS = 26,
+ SET_RX_DISABLE = 27,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..578967b
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,156 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ int setUsbEyeDiagram(int model, String eyeDiagram, boolean isDefaultEyeDiagram);
+ String getUsbCurrentEyeDiagram(int model);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/7/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/8/.hash b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/.hash
new file mode 100644
index 0000000..b164f2f
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/.hash
@@ -0,0 +1 @@
+9776c52c1685db9934a5d1e69064471a2cd53c9f
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..61845ee
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,55 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@Backing(type="int") @VintfStability
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+ GET_CHG_BYPASS_STATUS = 24,
+ SET_CHG_BYPASS = 25,
+ GET_RX_DISABLE_STATUS = 26,
+ SET_RX_DISABLE = 27,
+ GET_BATTERY_SEC_IC_TEST_STATUS = 28,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..578967b
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,156 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ int setUsbEyeDiagram(int model, String eyeDiagram, boolean isDefaultEyeDiagram);
+ String getUsbCurrentEyeDiagram(int model);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/8/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ChgFuncFlag.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
new file mode 100644
index 0000000..61845ee
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ChgFuncFlag.aidl
@@ -0,0 +1,55 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@Backing(type="int") @VintfStability
+enum ChgFuncFlag {
+ GET_UI_CHG_ICON_TYPE = 0,
+ GET_UI_POWER_VALUE = 1,
+ GET_DEVICE_POWER_VALUE = 2,
+ GET_ADAPTER_POWER_VALUE = 3,
+ GET_CPA_POWER_VALUE = 4,
+ SET_CHG_UP_LIMIT_VALUE = 5,
+ IS_SUPPORT_SINGLE_HYPER_SPEED = 6,
+ GET_BATT_EXPANSION_STATE = 7,
+ IS_SUPPORT_ECO_DESIGN = 8,
+ GET_BATT_MANU_DATE = 9,
+ GET_BATT_FIRST_USAGE_DATE = 10,
+ SET_BATT_FIRST_USAGE_DATE = 11,
+ CLEAR_BATT_ECO_DATA = 12,
+ SET_RECHG_SOC_EN = 13,
+ SET_CHG_UP_LIMIT_STATE = 14,
+ GET_BATTERY_STATUS_PM_VPH = 15,
+ GET_BATTERY_STATUS_PM_VBAT = 16,
+ GET_DEEP_DISCHG_COUNTS_VALUE = 17,
+ GET_ANTI_EXPANSION_INFO = 18,
+ SET_ANTI_EXPANSION_INFO = 19,
+ GET_BATT_UI_CYCLE_COUNT = 20,
+ GET_BATTERY_TYPE = 21,
+ WIRELESS_PENCIL_QCALI = 22,
+ GET_BATTERY_GAUGE_TYPE = 23,
+ GET_CHG_BYPASS_STATUS = 24,
+ SET_CHG_BYPASS = 25,
+ GET_RX_DISABLE_STATUS = 26,
+ SET_RX_DISABLE = 27,
+ GET_BATTERY_SEC_IC_TEST_STATUS = 28,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ICharger.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ICharger.aidl
new file mode 100644
index 0000000..578967b
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/ICharger.aidl
@@ -0,0 +1,156 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+interface ICharger {
+ int VolDividerIcWorkModeSet(String data);
+ int chgExchangeMesgInit();
+ int chgExchangeSohMesgInit();
+ int getAcType();
+ int getBattAuthenticate();
+ int getBattPPSChgIng();
+ int getBattPPSChgPower();
+ String getBattParamNoplug();
+ int getBattShortIcOtpStatus();
+ int getBattSubCurrent();
+ int getBattVoocChgIng();
+ int getBatteryVoltageNow();
+ String getBccCsvData();
+ int getBccExpStatus();
+ String getBmsHeatingRunningStatus();
+ int getBmsHeatingStatus();
+ String getChargerControl();
+ int getChargerCoolDown();
+ int getChargerCriticalLog();
+ int getChargerIdVolt();
+ int getChargerLog();
+ int getCustomSelectChgMode();
+ String getDevinfoFastchg();
+ int getFastCharge();
+ int getParallelChgMosTestResult();
+ int getPsyAcOnline();
+ int getPsyBatteryCC();
+ int getPsyBatteryCurrentNow();
+ int getPsyBatteryFcc();
+ int getPsyBatteryHmac();
+ int getPsyBatteryLevel();
+ int getPsyBatteryNotify();
+ int getPsyBatteryPchg();
+ int getPsyBatteryPchgResetCount();
+ int getPsyBatteryRm();
+ int getPsyBatteryShortFeature();
+ int getPsyBatteryShortStatus();
+ String getPsyBatteryStatus();
+ int getPsyBatteryTemp();
+ int getPsyChargeTech();
+ int getPsyFastChgType();
+ int getPsyInputCurrent();
+ int getPsyOtgOnline();
+ int getPsyOtgSwitch();
+ int getPsyPcPortOnline();
+ int getPsyQGVbatDeviation();
+ int getPsyTypeOrientation();
+ int getPsyUsbOnline();
+ int getPsyUsbStatus();
+ String getPsyWirelessRX();
+ String getPsyWirelessRxVersion();
+ String getPsyWirelessTX();
+ String getPsyWirelessTxVersion();
+ int getQgVbatDeviation();
+ String getQuickModeGain();
+ String getReserveSocDebug();
+ int getSmartChgMode();
+ int getUIsohValue();
+ String getUisohDebugParameterInfo();
+ int getUsbInputCurrentNow();
+ int getUsbPrimalType();
+ int getWiredOtgOnline();
+ int getWirelessAdapterPower();
+ int getWirelessCapacity();
+ int getWirelessChargePumpEn();
+ int getWirelessCurrentNow();
+ String getWirelessDeviated();
+ int getWirelessOnline();
+ int getWirelessPenPresent();
+ int getWirelessPtmcId();
+ int getWirelessRXEnable();
+ int getWirelessRealType();
+ String getWirelessTXEnable();
+ int getWirelessUserSleepMode();
+ int getWirelessVoltageNow();
+ String healthd_update_ui_soc_decimal();
+ int nightstandby(int status);
+ int notifyScreenStatus(int status);
+ String queryChargeInfo();
+ int setChargeEMMode(String data);
+ int setChargerControl(String data);
+ int setChargerCoolDown(String data);
+ int setChargerCriticalLog(String data);
+ int setChargerCycle(String data);
+ int setChargerFactoryModeTest(String data);
+ int setChargerLog(String data);
+ int setChgStatusToBcc(int status);
+ int setCustomSelectChgMode(int mode, boolean enable);
+ int setFastchgFwUpdate(String data);
+ int setPsyMmiChgEn(String data);
+ int setPsyOtgSwitch(String data);
+ int setReserveSocDebug(String data);
+ int setShipMode(String data);
+ int setSmartChgMode(String data);
+ int setSmartCoolDown(int coolDown, int normalCoolDown, String pkgName);
+ int setTbattPwrOff(String data);
+ int setUisohDebugInfo(String data);
+ int setUsbPrimalType(String data);
+ int setWirelessChargePumpEn(String data);
+ int setWirelessFtmMode(String data);
+ int setWirelessIconDelay(String data);
+ int setWirelessIdtAdcTest(String data);
+ int setWirelessPenSoc(String data);
+ int setWirelessRXEnable(String data);
+ int setWirelessTXEnable(String data);
+ int setWirelessUserSleepMode(String data);
+ int setWlsThirdPartitionInfo(String data);
+ vendor.oplus.hardware.charger.testKitFeatureTestResult testKitFeatureTest(int index);
+ String testKitGetFeatureList();
+ String testKitGetFeatureName(int index);
+ int testKitGetFeatureNum();
+ int updateUiSohToPartion();
+ String queryWlsPencilInfo();
+ String getChgOlcConfig();
+ int setChgOlcConfig(String data);
+ int setSuperEnduranceStatus(String data);
+ int setSuperEnduranceCount(String data);
+ int setBobStatus(String data);
+ int setPsySlowChgEn(String data);
+ int getCpVbatDeviation();
+ int setBatteryLogPush(String data);
+ int getChargingModeInGsmCall();
+ int setChargingModeInGsmCall(String data);
+ int setChgRusConfig(String data);
+ String getPsyBatterySN();
+ String getBattGaugeInfo();
+ int setChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ String getChgConfig(vendor.oplus.hardware.charger.ChgFuncFlag flag, String extra, int callname);
+ int setUsbEyeDiagram(int model, String eyeDiagram, boolean isDefaultEyeDiagram);
+ String getUsbCurrentEyeDiagram(int model);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
new file mode 100644
index 0000000..9a00dbe
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.charger/current/vendor/oplus/hardware/charger/testKitFeatureTestResult.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.charger;
+@VintfStability
+parcelable testKitFeatureTestResult {
+ int ret;
+ String str;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/.hash b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/.hash
new file mode 100644
index 0000000..78d8dfc
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/.hash
@@ -0,0 +1 @@
+bff14a2c55baa756bb67380269dbe2e8c11f6340
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/IPerformance.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/IPerformance.aidl
new file mode 100644
index 0000000..bc17732
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/IPerformance.aidl
@@ -0,0 +1,198 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+interface IPerformance {
+ int addAcmDirName(in String dirname, long flag);
+ int addAcmNomediaDirName(in String dirname);
+ int addAcmPkgName(in String pkgname, long flag);
+ int addTaskTrackPid(int group, int pid, boolean clear);
+ void clearTaskTrackGroup(int group);
+ int delAcmDirName(in String dirname);
+ int delAcmNomediaDirName(in String dirname);
+ int delAcmPkgName(in String pkgname);
+ int disableDamonReclaim();
+ int disableKmallocDebug();
+ int disableMultiThreadOptimize();
+ int disableProcessReclaim();
+ int disableTaskCpustats();
+ int disableTaskPlacementDecision();
+ int disableVmallocDebug();
+ int enableAudioPerf(in String value);
+ int enableDamonReclaim();
+ int enableKmallocDebug();
+ int enableMultiThreadOptimize();
+ int enableProcessReclaim();
+ int enableTaskCpustats();
+ int enableTaskPlacementDecision();
+ int enableVmallocDebug();
+ int existMemMonitor();
+ long getAcmDirFlag(in String dirname);
+ int getAcmOpstat();
+ long getAcmPkgFlag(in String pkgname);
+ String getClmMuxSwitch();
+ String getClmThreshold(int threshold_id);
+ String getDdrResidency();
+ String getDevinfoDDRInfo();
+ String getDevinfoUfsInfo();
+ String getDevinfoUfsVersionInfo();
+ String getExt4FragScore(in String devpath);
+ String getExt4FreefragInfo(in String devpath);
+ String getF2fsMovedBlks();
+ vendor.oplus.hardware.performance.ProcReqHal getHIAllocWait();
+ String getHICpuInfo();
+ String getHICpuLoading();
+ vendor.oplus.hardware.performance.ProcReqHal getHIDState();
+ vendor.oplus.hardware.performance.ProcReqHal getHIEmcdrvIowait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIFsyncWait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIonWait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIowait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIowaitHung();
+ vendor.oplus.hardware.performance.ProcReqHal getHIKswapdLoading();
+ vendor.oplus.hardware.performance.ProcReqHal getHISchedLatency();
+ vendor.oplus.hardware.performance.ProcReqHal getHIScmCall();
+ vendor.oplus.hardware.performance.ProcReqHal getHIUfsFeature();
+ int getKernelVersion();
+ String getKmallocDebug();
+ String getKmallocOrigin();
+ String getKmallocUsed();
+ String getMemMonitor();
+ int getOswapVersion();
+ String getUfsSignalRecordUpload();
+ int getUfsplusHpbStatus();
+ int getUfsplusTwStatus();
+ String getVmallocDebug();
+ String getVmallocHashCal();
+ String getVmallocUsed();
+ vendor.oplus.hardware.performance.TaskWakeInfo getWakeThreadsAffinityOrdered(in String handle, int size);
+ String getallocwait();
+ String getdstate();
+ String getfsyncwait();
+ String getionwait();
+ String getiowait();
+ String getschedlatency();
+ String hybridswap_memcg_para_read(int action, in String cgroup);
+ int hybridswap_memcg_para_write(int action, in String cgroup, in String str);
+ String hybridswap_zram_para_read(int action);
+ int hybridswap_zram_para_write(int action, in String str);
+ boolean isJankTaskTrackEnable();
+ int perProcessMemReadahead(int uid, int pid, int type);
+ int perProcessMemReclaim(int uid, int pid, int type);
+ String readCallStack();
+ String readClmEnable();
+ String readClmHighLoadAll();
+ String readClmHighLoadGrp();
+ String readClmLowLoadGrp();
+ String readCpuTaskstats();
+ String readDBacktrace();
+ String readDConvert();
+ String readFgFreqsThreshold();
+ String readIOBacktrace();
+ String readIomonitorInfo(in String procname);
+ String readJankCpuIndicator();
+ String readJankCpuInfo();
+ String readJankCpuInfoSig();
+ String readJankCpuLoad();
+ String readJankCpuLoad32();
+ String readJankCpuLoad32Scale();
+ String readJankTaskTrack();
+ String readJankTaskTrackByPid(int pid);
+ String readJankVersion();
+ String readKmallocDebugCreate();
+ String readLimitTable();
+ String readMemleakDetectThread();
+ vendor.oplus.hardware.performance.ProcMemStatRet readMemoryByPids(in int[] pids, int flags);
+ vendor.oplus.hardware.performance.ProcMemStatRet readMemoryByUids(in int[] uids, int flags);
+ String readNandswapProc(in String inProc);
+ String readNormalizeRealTime();
+ String readNormalizeRunningTime();
+ String readOplusReserve3(int offset, int len);
+ vendor.oplus.hardware.performance.OsvelteVersionRet readOsvelteVersion();
+ String readPidsSet();
+ String readRealTime();
+ String readRunningTime();
+ String readSchedInfoThreshold();
+ String readSgeFreqInfo();
+ String readSgeInfo();
+ String readStorageFeature(in String name, in String addr, in String isMulti);
+ String readTargetProcess(in String buffer);
+ String readTaskCpustatsEnable();
+ String readTaskSchedInfo();
+ String readTidsSet();
+ String readTmemoryDirtypages();
+ String readTmemoryErrorStat();
+ String readTmemoryIoLatency();
+ String readTmemorySysdirtypages();
+ String readUxTaskTrack(int uPid, int rPid);
+ String readVaFeature();
+ String readVersion();
+ void removeTaskTrackPid(int group, int pid);
+ int searchAcmNomediaDirName(in String dirname);
+ int setAcmOpstat(int flag);
+ void setClmMuxSwitch(in String buffer);
+ void setClmThreshold(in String buffer, int threshold_id);
+ int setDamonReclaimColdTime(int cold_time);
+ int setDamonReclaimMonitoring(int sample, int aggr);
+ int setDamonReclaimQuota(int quota_ms, int quota_sz, int reset_interval);
+ int setDamonReclaimWmarks(int metric, int high, int mid, int low);
+ void setExtSchedProp(in String pid, in String prop);
+ void setFgUids(in String fg_uid);
+ void setFrameRate(in String frame_rate);
+ int setFreqGoverner(in String gov_name, in int[] clusters);
+ void setImFlag(in String pid, in String im_flag);
+ int setProcessReclaim(in String info);
+ void setSchedAssistImptTask(in String impt_info);
+ void setSchedAssistScene(in String scene_id);
+ void setSlideboost(in String boost);
+ int setTpdID(in String param);
+ int setTpdSerialParams(in String params);
+ int setWakeSeedThread(in String tid, boolean identify_type, boolean inUid);
+ void writeClmEnable(in String buffer);
+ void writeClmHighLoadAll(in String buffer);
+ void writeClmHighLoadGrp(in String buffer);
+ void writeClmLowLoadGrp(in String buffer);
+ void writeDBacktrace(in String buffer);
+ void writeFgFreqsThreshold(in String buffer);
+ void writeIOBacktrace(in String buffer);
+ void writeJankTaskTrackEnable(boolean enable);
+ int writeKmallocDebugCreate(int kcreate);
+ int writeKmallocDebugCreateWithType(in String type);
+ int writeMemMonitor(in String buffer);
+ int writeMemleakDetectThread(int memdect);
+ int writeMonitorStatus(in String buffer);
+ int writeNandswapProc(in String inProc, in String cmd);
+ int writeOplusReserve3(int offset, int len, in String info);
+ void writePidsSet(in String buffer);
+ void writeSchedInfoThreshold(in String buffer);
+ int writeStorageFeature(in String name, in String addr, in String isMulti, in String cmd);
+ void writeTaskSchedInfo(in String buffer);
+ void writeTidsSet(in String buffer);
+ int writeTmemoryCapacity(int param);
+ int writeTmemoryFlushBusy(int param);
+ int writeTmemoryFlushIdle(int param);
+ int writeTmemoryHighWaterRatio(int param);
+ int writeTmemoryMemory(in String str);
+ int writeTmemorySwitch(int param);
+ int writeUxState(in String ux_state, in String pid, in String tid);
+ int writeVaFeature(int vafeature);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteStatus.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteStatus.aidl
new file mode 100644
index 0000000..002f133
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteStatus.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum OsvelteStatus {
+ SUCCESS = 0,
+ FAILED = 1,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
new file mode 100644
index 0000000..f3608db
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable OsvelteVersionRet {
+ int status;
+ int major = 0;
+ int minor = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStat.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStat.aidl
new file mode 100644
index 0000000..30cf073
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStat.aidl
@@ -0,0 +1,45 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcMemStat {
+ String comm;
+ boolean is_32bit = false;
+ int oom_score_adj = 0;
+ int nr_fds = 0;
+ int uid = 0;
+ int pid = 0;
+ int ppid = 0;
+ int anon = 0;
+ int file = 0;
+ int shmem = 0;
+ int swap = 0;
+ int vss = 0;
+ int pss = 0;
+ int swap_rss = 0;
+ int javaheap = 0;
+ int nativeheap = 0;
+ int ashmem = 0;
+ int dmabuf = 0;
+ int gpu = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStatRet.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
new file mode 100644
index 0000000..81416bc
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcMemStatRet {
+ int status;
+ vendor.oplus.hardware.performance.ProcMemStat[] arr_ms;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqHal.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqHal.aidl
new file mode 100644
index 0000000..b0681b0
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqHal.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcReqHal {
+ String proc;
+ vendor.oplus.hardware.performance.ProcReqItemHal[] items;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqItemHal.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
new file mode 100644
index 0000000..1185067
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcReqItemHal {
+ String key;
+ String label;
+ int uploadType;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskGroup.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskGroup.aidl
new file mode 100644
index 0000000..36428ea
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskGroup.aidl
@@ -0,0 +1,32 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum TaskGroup {
+ DEFAULT = 0,
+ UI = 1,
+ RENDER = 2,
+ DISPLAY = 3,
+ INPUT = 4,
+ GAME = 5,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskWakeInfo.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
new file mode 100644
index 0000000..3351445
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable TaskWakeInfo {
+ int ret = 0;
+ vendor.oplus.hardware.performance.ThreadInfo[] list;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ThreadInfo.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ThreadInfo.aidl
new file mode 100644
index 0000000..f38bd71
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/ThreadInfo.aidl
@@ -0,0 +1,33 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ThreadInfo {
+ int pid = 0;
+ int tid = 0;
+ int SourcePid = 0;
+ int utils = 0;
+ int nice = 0;
+ int WakeCnt = 0;
+ int totalWakeCnt = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/UploadType.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/UploadType.aidl
new file mode 100644
index 0000000..6c2035c
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/1/vendor/oplus/hardware/performance/UploadType.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum UploadType {
+ PRIMITIVE = 0,
+ DELTA = 1,
+ SKIP = 2,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/IPerformance.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/IPerformance.aidl
new file mode 100644
index 0000000..bc17732
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/IPerformance.aidl
@@ -0,0 +1,198 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+interface IPerformance {
+ int addAcmDirName(in String dirname, long flag);
+ int addAcmNomediaDirName(in String dirname);
+ int addAcmPkgName(in String pkgname, long flag);
+ int addTaskTrackPid(int group, int pid, boolean clear);
+ void clearTaskTrackGroup(int group);
+ int delAcmDirName(in String dirname);
+ int delAcmNomediaDirName(in String dirname);
+ int delAcmPkgName(in String pkgname);
+ int disableDamonReclaim();
+ int disableKmallocDebug();
+ int disableMultiThreadOptimize();
+ int disableProcessReclaim();
+ int disableTaskCpustats();
+ int disableTaskPlacementDecision();
+ int disableVmallocDebug();
+ int enableAudioPerf(in String value);
+ int enableDamonReclaim();
+ int enableKmallocDebug();
+ int enableMultiThreadOptimize();
+ int enableProcessReclaim();
+ int enableTaskCpustats();
+ int enableTaskPlacementDecision();
+ int enableVmallocDebug();
+ int existMemMonitor();
+ long getAcmDirFlag(in String dirname);
+ int getAcmOpstat();
+ long getAcmPkgFlag(in String pkgname);
+ String getClmMuxSwitch();
+ String getClmThreshold(int threshold_id);
+ String getDdrResidency();
+ String getDevinfoDDRInfo();
+ String getDevinfoUfsInfo();
+ String getDevinfoUfsVersionInfo();
+ String getExt4FragScore(in String devpath);
+ String getExt4FreefragInfo(in String devpath);
+ String getF2fsMovedBlks();
+ vendor.oplus.hardware.performance.ProcReqHal getHIAllocWait();
+ String getHICpuInfo();
+ String getHICpuLoading();
+ vendor.oplus.hardware.performance.ProcReqHal getHIDState();
+ vendor.oplus.hardware.performance.ProcReqHal getHIEmcdrvIowait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIFsyncWait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIonWait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIowait();
+ vendor.oplus.hardware.performance.ProcReqHal getHIIowaitHung();
+ vendor.oplus.hardware.performance.ProcReqHal getHIKswapdLoading();
+ vendor.oplus.hardware.performance.ProcReqHal getHISchedLatency();
+ vendor.oplus.hardware.performance.ProcReqHal getHIScmCall();
+ vendor.oplus.hardware.performance.ProcReqHal getHIUfsFeature();
+ int getKernelVersion();
+ String getKmallocDebug();
+ String getKmallocOrigin();
+ String getKmallocUsed();
+ String getMemMonitor();
+ int getOswapVersion();
+ String getUfsSignalRecordUpload();
+ int getUfsplusHpbStatus();
+ int getUfsplusTwStatus();
+ String getVmallocDebug();
+ String getVmallocHashCal();
+ String getVmallocUsed();
+ vendor.oplus.hardware.performance.TaskWakeInfo getWakeThreadsAffinityOrdered(in String handle, int size);
+ String getallocwait();
+ String getdstate();
+ String getfsyncwait();
+ String getionwait();
+ String getiowait();
+ String getschedlatency();
+ String hybridswap_memcg_para_read(int action, in String cgroup);
+ int hybridswap_memcg_para_write(int action, in String cgroup, in String str);
+ String hybridswap_zram_para_read(int action);
+ int hybridswap_zram_para_write(int action, in String str);
+ boolean isJankTaskTrackEnable();
+ int perProcessMemReadahead(int uid, int pid, int type);
+ int perProcessMemReclaim(int uid, int pid, int type);
+ String readCallStack();
+ String readClmEnable();
+ String readClmHighLoadAll();
+ String readClmHighLoadGrp();
+ String readClmLowLoadGrp();
+ String readCpuTaskstats();
+ String readDBacktrace();
+ String readDConvert();
+ String readFgFreqsThreshold();
+ String readIOBacktrace();
+ String readIomonitorInfo(in String procname);
+ String readJankCpuIndicator();
+ String readJankCpuInfo();
+ String readJankCpuInfoSig();
+ String readJankCpuLoad();
+ String readJankCpuLoad32();
+ String readJankCpuLoad32Scale();
+ String readJankTaskTrack();
+ String readJankTaskTrackByPid(int pid);
+ String readJankVersion();
+ String readKmallocDebugCreate();
+ String readLimitTable();
+ String readMemleakDetectThread();
+ vendor.oplus.hardware.performance.ProcMemStatRet readMemoryByPids(in int[] pids, int flags);
+ vendor.oplus.hardware.performance.ProcMemStatRet readMemoryByUids(in int[] uids, int flags);
+ String readNandswapProc(in String inProc);
+ String readNormalizeRealTime();
+ String readNormalizeRunningTime();
+ String readOplusReserve3(int offset, int len);
+ vendor.oplus.hardware.performance.OsvelteVersionRet readOsvelteVersion();
+ String readPidsSet();
+ String readRealTime();
+ String readRunningTime();
+ String readSchedInfoThreshold();
+ String readSgeFreqInfo();
+ String readSgeInfo();
+ String readStorageFeature(in String name, in String addr, in String isMulti);
+ String readTargetProcess(in String buffer);
+ String readTaskCpustatsEnable();
+ String readTaskSchedInfo();
+ String readTidsSet();
+ String readTmemoryDirtypages();
+ String readTmemoryErrorStat();
+ String readTmemoryIoLatency();
+ String readTmemorySysdirtypages();
+ String readUxTaskTrack(int uPid, int rPid);
+ String readVaFeature();
+ String readVersion();
+ void removeTaskTrackPid(int group, int pid);
+ int searchAcmNomediaDirName(in String dirname);
+ int setAcmOpstat(int flag);
+ void setClmMuxSwitch(in String buffer);
+ void setClmThreshold(in String buffer, int threshold_id);
+ int setDamonReclaimColdTime(int cold_time);
+ int setDamonReclaimMonitoring(int sample, int aggr);
+ int setDamonReclaimQuota(int quota_ms, int quota_sz, int reset_interval);
+ int setDamonReclaimWmarks(int metric, int high, int mid, int low);
+ void setExtSchedProp(in String pid, in String prop);
+ void setFgUids(in String fg_uid);
+ void setFrameRate(in String frame_rate);
+ int setFreqGoverner(in String gov_name, in int[] clusters);
+ void setImFlag(in String pid, in String im_flag);
+ int setProcessReclaim(in String info);
+ void setSchedAssistImptTask(in String impt_info);
+ void setSchedAssistScene(in String scene_id);
+ void setSlideboost(in String boost);
+ int setTpdID(in String param);
+ int setTpdSerialParams(in String params);
+ int setWakeSeedThread(in String tid, boolean identify_type, boolean inUid);
+ void writeClmEnable(in String buffer);
+ void writeClmHighLoadAll(in String buffer);
+ void writeClmHighLoadGrp(in String buffer);
+ void writeClmLowLoadGrp(in String buffer);
+ void writeDBacktrace(in String buffer);
+ void writeFgFreqsThreshold(in String buffer);
+ void writeIOBacktrace(in String buffer);
+ void writeJankTaskTrackEnable(boolean enable);
+ int writeKmallocDebugCreate(int kcreate);
+ int writeKmallocDebugCreateWithType(in String type);
+ int writeMemMonitor(in String buffer);
+ int writeMemleakDetectThread(int memdect);
+ int writeMonitorStatus(in String buffer);
+ int writeNandswapProc(in String inProc, in String cmd);
+ int writeOplusReserve3(int offset, int len, in String info);
+ void writePidsSet(in String buffer);
+ void writeSchedInfoThreshold(in String buffer);
+ int writeStorageFeature(in String name, in String addr, in String isMulti, in String cmd);
+ void writeTaskSchedInfo(in String buffer);
+ void writeTidsSet(in String buffer);
+ int writeTmemoryCapacity(int param);
+ int writeTmemoryFlushBusy(int param);
+ int writeTmemoryFlushIdle(int param);
+ int writeTmemoryHighWaterRatio(int param);
+ int writeTmemoryMemory(in String str);
+ int writeTmemorySwitch(int param);
+ int writeUxState(in String ux_state, in String pid, in String tid);
+ int writeVaFeature(int vafeature);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteStatus.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteStatus.aidl
new file mode 100644
index 0000000..002f133
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteStatus.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum OsvelteStatus {
+ SUCCESS = 0,
+ FAILED = 1,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
new file mode 100644
index 0000000..f3608db
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/OsvelteVersionRet.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable OsvelteVersionRet {
+ int status;
+ int major = 0;
+ int minor = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStat.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStat.aidl
new file mode 100644
index 0000000..30cf073
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStat.aidl
@@ -0,0 +1,45 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcMemStat {
+ String comm;
+ boolean is_32bit = false;
+ int oom_score_adj = 0;
+ int nr_fds = 0;
+ int uid = 0;
+ int pid = 0;
+ int ppid = 0;
+ int anon = 0;
+ int file = 0;
+ int shmem = 0;
+ int swap = 0;
+ int vss = 0;
+ int pss = 0;
+ int swap_rss = 0;
+ int javaheap = 0;
+ int nativeheap = 0;
+ int ashmem = 0;
+ int dmabuf = 0;
+ int gpu = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStatRet.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
new file mode 100644
index 0000000..81416bc
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcMemStatRet.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcMemStatRet {
+ int status;
+ vendor.oplus.hardware.performance.ProcMemStat[] arr_ms;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqHal.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqHal.aidl
new file mode 100644
index 0000000..b0681b0
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqHal.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcReqHal {
+ String proc;
+ vendor.oplus.hardware.performance.ProcReqItemHal[] items;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqItemHal.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
new file mode 100644
index 0000000..1185067
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ProcReqItemHal.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ProcReqItemHal {
+ String key;
+ String label;
+ int uploadType;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskGroup.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskGroup.aidl
new file mode 100644
index 0000000..36428ea
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskGroup.aidl
@@ -0,0 +1,32 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum TaskGroup {
+ DEFAULT = 0,
+ UI = 1,
+ RENDER = 2,
+ DISPLAY = 3,
+ INPUT = 4,
+ GAME = 5,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskWakeInfo.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
new file mode 100644
index 0000000..3351445
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/TaskWakeInfo.aidl
@@ -0,0 +1,28 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable TaskWakeInfo {
+ int ret = 0;
+ vendor.oplus.hardware.performance.ThreadInfo[] list;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ThreadInfo.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ThreadInfo.aidl
new file mode 100644
index 0000000..f38bd71
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/ThreadInfo.aidl
@@ -0,0 +1,33 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+parcelable ThreadInfo {
+ int pid = 0;
+ int tid = 0;
+ int SourcePid = 0;
+ int utils = 0;
+ int nice = 0;
+ int WakeCnt = 0;
+ int totalWakeCnt = 0;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/UploadType.aidl b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/UploadType.aidl
new file mode 100644
index 0000000..6c2035c
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.performance/current/vendor/oplus/hardware/performance/UploadType.aidl
@@ -0,0 +1,29 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.performance;
+@VintfStability
+enum UploadType {
+ PRIMITIVE = 0,
+ DELTA = 1,
+ SKIP = 2,
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/.hash b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/.hash
new file mode 100644
index 0000000..2231754
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/.hash
@@ -0,0 +1 @@
+c8a4bdf08063778d17708dcd7dafbb2c43d57eb7
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrcc.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrcc.aidl
new file mode 100644
index 0000000..c377943
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrcc.aidl
@@ -0,0 +1,40 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+interface IUrcc {
+ void urccInit();
+ int urccResCtlRequest(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel);
+ int urccResCtlRelease(int mhandle);
+ vendor.oplus.hardware.urcc.UrccRequestData[] urccResStateRequest(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel);
+ int urccResListeningRegister(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel, vendor.oplus.hardware.urcc.IUrccCallback urccCallback);
+ int urccResListeningUnRegister(int mhandle);
+ String urccPropertyGet(String name);
+ int urccPropertySet(String name, String value);
+ int urccThermalListeningRegister(in int[] types, vendor.oplus.hardware.urcc.IUrccCallback urccCallback);
+ int urccThermalListeningUnRegister(int mhandle);
+ int uahNotifyExt(int src, int type, in int[] args);
+ int setRelatedSysInfo(int cmd, in byte[] info);
+ int urccRuleCtl(int ruleId, int status, in vendor.oplus.hardware.urcc.UrccRequestData[] ruleData);
+ void uahResCtlRequestBypass(in vendor.oplus.hardware.urcc.UrccRequestParcel mRequestParcel);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrccCallback.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrccCallback.aidl
new file mode 100644
index 0000000..34dff1c
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/IUrccCallback.aidl
@@ -0,0 +1,27 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+interface IUrccCallback {
+ void onCallback(in vendor.oplus.hardware.urcc.UrccRequestData[] urccRequestDataArr);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestData.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestData.aidl
new file mode 100644
index 0000000..0eb0eab
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestData.aidl
@@ -0,0 +1,31 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+parcelable UrccRequestData {
+ String desc;
+ String res_Path;
+ String res_Value;
+ int res_Id;
+ int event_Id;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
new file mode 100644
index 0000000..af3988f
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/1/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
@@ -0,0 +1,39 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+parcelable UrccRequestParcel {
+ String identity;
+ String[] mParams;
+ vendor.oplus.hardware.urcc.UrccRequestData[] mUrccRequestData;
+ byte[] otherData;
+ String pkgName;
+ vendor.oplus.hardware.urcc.IUrccCallback urccCallback;
+ int type;
+ boolean screenoff_support;
+ int prio;
+ int callingPID;
+ int callingUID;
+ long duration;
+ int handle;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrcc.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrcc.aidl
new file mode 100644
index 0000000..c377943
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrcc.aidl
@@ -0,0 +1,40 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+interface IUrcc {
+ void urccInit();
+ int urccResCtlRequest(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel);
+ int urccResCtlRelease(int mhandle);
+ vendor.oplus.hardware.urcc.UrccRequestData[] urccResStateRequest(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel);
+ int urccResListeningRegister(in vendor.oplus.hardware.urcc.UrccRequestParcel mUrccRequestParcel, vendor.oplus.hardware.urcc.IUrccCallback urccCallback);
+ int urccResListeningUnRegister(int mhandle);
+ String urccPropertyGet(String name);
+ int urccPropertySet(String name, String value);
+ int urccThermalListeningRegister(in int[] types, vendor.oplus.hardware.urcc.IUrccCallback urccCallback);
+ int urccThermalListeningUnRegister(int mhandle);
+ int uahNotifyExt(int src, int type, in int[] args);
+ int setRelatedSysInfo(int cmd, in byte[] info);
+ int urccRuleCtl(int ruleId, int status, in vendor.oplus.hardware.urcc.UrccRequestData[] ruleData);
+ void uahResCtlRequestBypass(in vendor.oplus.hardware.urcc.UrccRequestParcel mRequestParcel);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrccCallback.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrccCallback.aidl
new file mode 100644
index 0000000..34dff1c
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/IUrccCallback.aidl
@@ -0,0 +1,27 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+interface IUrccCallback {
+ void onCallback(in vendor.oplus.hardware.urcc.UrccRequestData[] urccRequestDataArr);
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestData.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestData.aidl
new file mode 100644
index 0000000..0eb0eab
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestData.aidl
@@ -0,0 +1,31 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+parcelable UrccRequestData {
+ String desc;
+ String res_Path;
+ String res_Value;
+ int res_Id;
+ int event_Id;
+}
diff --git a/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
new file mode 100644
index 0000000..af3988f
--- /dev/null
+++ b/interfaces/aidl_api/vendor.oplus.hardware.urcc/current/vendor/oplus/hardware/urcc/UrccRequestParcel.aidl
@@ -0,0 +1,39 @@
+/*
+ * SPDX-FileCopyrightText: 2025 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL file. Do not edit it manually. There are
+// two cases:
+// 1). this is a frozen version file - do not edit this in any case.
+// 2). this is a 'current' file. If you make a backwards compatible change to
+// the interface (from the latest frozen version), the build system will
+// prompt you to update this file with `m <name>-update-api`.
+//
+// You must not make a backward incompatible change to any AIDL file built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package vendor.oplus.hardware.urcc;
+@VintfStability
+parcelable UrccRequestParcel {
+ String identity;
+ String[] mParams;
+ vendor.oplus.hardware.urcc.UrccRequestData[] mUrccRequestData;
+ byte[] otherData;
+ String pkgName;
+ vendor.oplus.hardware.urcc.IUrccCallback urccCallback;
+ int type;
+ boolean screenoff_support;
+ int prio;
+ int callingPID;
+ int callingUID;
+ long duration;
+ int handle;
+}
diff --git a/kernel-headers/include/oplus/oplus_display_panel.h b/kernel-headers/include/oplus/oplus_display_panel.h
index 0743906..422fba0 100644
--- a/kernel-headers/include/oplus/oplus_display_panel.h
+++ b/kernel-headers/include/oplus/oplus_display_panel.h
@@ -30,3 +30,5 @@
#define PANEL_IOCTL_SET_FP_PRESS _IOW(OPLUS_PANEL_IOCTL_BASE, 0x29, unsigned int)
#define PANEL_IOCTL_SET_CABC_STATUS _IOW(OPLUS_PANEL_IOCTL_BASE, 0x59, unsigned int)
#define PANEL_IOCTL_GET_CABC_STATUS _IOWR(OPLUS_PANEL_IOCTL_BASE, 0x5A, unsigned int)
+#define PANEL_IOCTL_SET_PWM_TURBO _IOW(OPLUS_PANEL_IOCTL_BASE, 0x66, unsigned int)
+#define PANEL_IOCTL_GET_PWM_TURBO _IOWR(OPLUS_PANEL_IOCTL_BASE, 0x67, unsigned int)
diff --git a/nrmodeswitcher/OplusRadioResponse.cpp b/nrmodeswitcher/OplusRadioResponse.cpp
index 3884082..692bdf1 100644
--- a/nrmodeswitcher/OplusRadioResponse.cpp
+++ b/nrmodeswitcher/OplusRadioResponse.cpp
@@ -7,199 +7,197 @@
namespace aidl::vendor::oplus::hardware::radio {
-OplusRadioResponse::OplusRadioResponse(int32_t& in_result) : in_result_(in_result) {}
+OplusRadioResponse::OplusRadioResponse(int32_t& result) : result_(result) {}
ndk::ScopedAStatus OplusRadioResponse::setCallbackExtResponse() {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::setNrModeResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) {
- in_result_ = in_result;
+ndk::ScopedAStatus OplusRadioResponse::setNrModeResponse(const OplusRadioResponseInfo& info,
+ int32_t result) {
+ result_ = result;
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::getNrModeResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) {
+ndk::ScopedAStatus OplusRadioResponse::getNrModeResponse(const OplusRadioResponseInfo& info,
+ int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setModemErrorFatalResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::setVoNrEnabledResponse(
- const OplusRadioResponseInfo& in_info) {
+ndk::ScopedAStatus OplusRadioResponse::setVoNrEnabledResponse(const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::getVoNrEnabledResponse(const OplusRadioResponseInfo& in_info,
- bool in_result) {
+ndk::ScopedAStatus OplusRadioResponse::getVoNrEnabledResponse(const OplusRadioResponseInfo& info,
+ bool result) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::setEccListResponse(const OplusRadioResponseInfo& in_info,
- const std::string& in_result) {
+ndk::ScopedAStatus OplusRadioResponse::setEccListResponse(const OplusRadioResponseInfo& info,
+ const std::string& result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::SetHsrModeForListeningResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::SetLogIdForListeningResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::setSlowStartResponse(const OplusRadioResponseInfo& in_info) {
+ndk::ScopedAStatus OplusRadioResponse::setSlowStartResponse(const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::setCtVolteModeResponse(
- const OplusRadioResponseInfo& in_info) {
+ndk::ScopedAStatus OplusRadioResponse::setCtVolteModeResponse(const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::simlockReqResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_result) {
+ndk::ScopedAStatus OplusRadioResponse::simlockReqResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::updateRegionlockBlobResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::updateRegionlockStatusResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getRegionlockStatusResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setNwCongestionCfgResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setModemEsimStatusResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockOperatorIdResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockFeestateResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setSimlockFeestateResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockUnlockStateResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setSimlockFactoryResetTimeResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockFactoryResetTimeResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setSimlockActivateTimeResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockActivateTimeResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockFeatureResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_feature) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& feature) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockLockMarkResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_lockmark) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& lockmark) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockDeviceLockStateResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_lockstate) {
+ const OplusRadioResponseInfo& info, int32_t lockstate) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockDeviceLockinfoResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_lockinfo) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& lockinfo) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockVersionInfoResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_version) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& version) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockMaxRetryResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockCurrentRetryResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setPsDetachAttachActionResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
-ndk::ScopedAStatus OplusRadioResponse::unlockRegionlockResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ndk::ScopedAStatus OplusRadioResponse::unlockRegionlockResponse(const OplusRadioResponseInfo& info,
+ int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::updateRegionlockKeyResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getRegionlockSettingDataResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_result) {
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setRegionlockSettingDataResponse(
- const OplusRadioResponseInfo& in_info, int32_t in_result) {
+ const OplusRadioResponseInfo& info, int32_t result) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::setSimlockOfflineLockResponse(
- const OplusRadioResponseInfo& in_info) {
+ const OplusRadioResponseInfo& info) {
return ndk::ScopedAStatus::ok();
}
ndk::ScopedAStatus OplusRadioResponse::getSimlockOfflineLockResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<int32_t>& in_retryCount) {
+ const OplusRadioResponseInfo& info, const std::vector<int32_t>& retryCount) {
return ndk::ScopedAStatus::ok();
}
diff --git a/nrmodeswitcher/OplusRadioResponse.h b/nrmodeswitcher/OplusRadioResponse.h
index ab305d8..0c72e25 100644
--- a/nrmodeswitcher/OplusRadioResponse.h
+++ b/nrmodeswitcher/OplusRadioResponse.h
@@ -11,83 +11,78 @@ namespace aidl::vendor::oplus::hardware::radio {
class OplusRadioResponse : public BnOplusRadioResponse {
public:
- explicit OplusRadioResponse(int32_t& in_result);
+ explicit OplusRadioResponse(int32_t& result);
ndk::ScopedAStatus setCallbackExtResponse() override;
- ndk::ScopedAStatus setNrModeResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus getNrModeResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus setModemErrorFatalResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus setVoNrEnabledResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus getVoNrEnabledResponse(const OplusRadioResponseInfo& in_info,
- bool in_result) override;
- ndk::ScopedAStatus setEccListResponse(const OplusRadioResponseInfo& in_info,
- const std::string& in_result) override;
- ndk::ScopedAStatus SetHsrModeForListeningResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus SetLogIdForListeningResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus setSlowStartResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus setCtVolteModeResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus simlockReqResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_result) override;
- ndk::ScopedAStatus updateRegionlockBlobResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus updateRegionlockStatusResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus getRegionlockStatusResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus setNwCongestionCfgResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus setModemEsimStatusResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus getSimlockOperatorIdResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus getSimlockFeestateResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus setSimlockFeestateResponse(const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus getSimlockUnlockStateResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
+ ndk::ScopedAStatus setNrModeResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus getNrModeResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus setModemErrorFatalResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus setVoNrEnabledResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus getVoNrEnabledResponse(const OplusRadioResponseInfo& info,
+ bool result) override;
+ ndk::ScopedAStatus setEccListResponse(const OplusRadioResponseInfo& info,
+ const std::string& result) override;
+ ndk::ScopedAStatus SetHsrModeForListeningResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus SetLogIdForListeningResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus setSlowStartResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus setCtVolteModeResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus simlockReqResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& result) override;
+ ndk::ScopedAStatus updateRegionlockBlobResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus updateRegionlockStatusResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus getRegionlockStatusResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus setNwCongestionCfgResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus setModemEsimStatusResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus getSimlockOperatorIdResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus getSimlockFeestateResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus setSimlockFeestateResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus getSimlockUnlockStateResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
ndk::ScopedAStatus setSimlockFactoryResetTimeResponse(
- const OplusRadioResponseInfo& in_info) override;
+ const OplusRadioResponseInfo& info) override;
ndk::ScopedAStatus getSimlockFactoryResetTimeResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus setSimlockActivateTimeResponse(
- const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus getSimlockActivateTimeResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_status) override;
- ndk::ScopedAStatus getSimlockFeatureResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_feature) override;
- ndk::ScopedAStatus getSimlockLockMarkResponse(const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_lockmark) override;
- ndk::ScopedAStatus getSimlockDeviceLockStateResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_lockstate) override;
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus setSimlockActivateTimeResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus getSimlockActivateTimeResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& status) override;
+ ndk::ScopedAStatus getSimlockFeatureResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& feature) override;
+ ndk::ScopedAStatus getSimlockLockMarkResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& lockmark) override;
+ ndk::ScopedAStatus getSimlockDeviceLockStateResponse(const OplusRadioResponseInfo& info,
+ int32_t lockstate) override;
ndk::ScopedAStatus getSimlockDeviceLockinfoResponse(
- const OplusRadioResponseInfo& in_info,
- const std::vector<uint8_t>& in_lockinfo) override;
- ndk::ScopedAStatus getSimlockVersionInfoResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_version) override;
- ndk::ScopedAStatus getSimlockMaxRetryResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus getSimlockCurrentRetryResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus setPsDetachAttachActionResponse(
- const OplusRadioResponseInfo& in_info) override;
- ndk::ScopedAStatus unlockRegionlockResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus updateRegionlockKeyResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& lockinfo) override;
+ ndk::ScopedAStatus getSimlockVersionInfoResponse(const OplusRadioResponseInfo& info,
+ const std::vector<uint8_t>& version) override;
+ ndk::ScopedAStatus getSimlockMaxRetryResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus getSimlockCurrentRetryResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus setPsDetachAttachActionResponse(const OplusRadioResponseInfo& info) override;
+ ndk::ScopedAStatus unlockRegionlockResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus updateRegionlockKeyResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
ndk::ScopedAStatus getRegionlockSettingDataResponse(
- const OplusRadioResponseInfo& in_info, const std::vector<uint8_t>& in_result) override;
- ndk::ScopedAStatus setRegionlockSettingDataResponse(const OplusRadioResponseInfo& in_info,
- int32_t in_result) override;
- ndk::ScopedAStatus setSimlockOfflineLockResponse(
- const OplusRadioResponseInfo& in_info) override;
+ const OplusRadioResponseInfo& info, const std::vector<uint8_t>& result) override;
+ ndk::ScopedAStatus setRegionlockSettingDataResponse(const OplusRadioResponseInfo& info,
+ int32_t result) override;
+ ndk::ScopedAStatus setSimlockOfflineLockResponse(const OplusRadioResponseInfo& info) override;
ndk::ScopedAStatus getSimlockOfflineLockResponse(
- const OplusRadioResponseInfo& in_info,
- const std::vector<int32_t>& in_retryCount) override;
+ const OplusRadioResponseInfo& info, const std::vector<int32_t>& retryCount) override;
private:
- int32_t& in_result_;
+ int32_t& result_;
};
}; // namespace aidl::vendor::oplus::hardware::radio
diff --git a/nrmodeswitcher/main.cpp b/nrmodeswitcher/main.cpp
index 0ac4681..2446517 100644
--- a/nrmodeswitcher/main.cpp
+++ b/nrmodeswitcher/main.cpp
@@ -66,14 +66,14 @@ int main() {
continue;
}
- int32_t in_result = 0;
- auto resp_cb = ndk::SharedRefBase::make<OplusRadioResponse>(in_result);
+ int32_t result = 0;
+ auto resp_cb = ndk::SharedRefBase::make<OplusRadioResponse>(result);
radio->setCallback(resp_cb, nullptr);
bool succeed = false;
for (auto retry = 100; retry > 0; --retry) {
auto status = radio->setNrMode(kOplusRilSerial, mode);
- if (!status.isOk() || in_result != 0) {
+ if (!status.isOk() || result != 0) {
LOG(ERROR) << "setNrMode failed for SIM" << i
<< ", (remaining retries: " << retry - 1 << ")";
std::this_thread::sleep_for(1s);
diff --git a/sepolicy/qti/private/compat/32.0/32.0.ignore.cil b/sepolicy/qti/private/compat/202404/202404.ignore.cil
index 2aae4b2..bf7b25d 100644
--- a/sepolicy/qti/private/compat/32.0/32.0.ignore.cil
+++ b/sepolicy/qti/private/compat/202404/202404.ignore.cil
@@ -5,6 +5,8 @@
(typeattribute new_objects)
(typeattributeset new_objects
( new_objects
+ horae
+ osense_service
system_fingerprint_prop
system_oplus_iris_prop
system_oplus_project_prop
diff --git a/sepolicy/qti/private/compat/33.0/33.0.ignore.cil b/sepolicy/qti/private/compat/33.0/33.0.ignore.cil
deleted file mode 100644
index 2aae4b2..0000000
--- a/sepolicy/qti/private/compat/33.0/33.0.ignore.cil
+++ /dev/null
@@ -1,13 +0,0 @@
-;; new_objects - a collection of types that have been introduced that have no
-;; analogue in older policy. Thus, we do not need to map these types to
-;; previous ones. Add here to pass checkapi tests.
-(type new_objects)
-(typeattribute new_objects)
-(typeattributeset new_objects
- ( new_objects
- system_fingerprint_prop
- system_oplus_iris_prop
- system_oplus_project_prop
- system_oplus_radio_prop
- system_oplus_touch_prop
- vendor_persist_engineer_file))
diff --git a/sepolicy/qti/private/file_contexts b/sepolicy/qti/private/file_contexts
new file mode 100644
index 0000000..9cb8102
--- /dev/null
+++ b/sepolicy/qti/private/file_contexts
@@ -0,0 +1,5 @@
+# Folio daemon
+/system_ext/bin/folio-daemon u:object_r:folio_daemon_exec:s0
+
+# Horae
+/system_ext/bin/horae u:object_r:horae_exec:s0
diff --git a/sepolicy/qti/private/folio_daemon.te b/sepolicy/qti/private/folio_daemon.te
new file mode 100644
index 0000000..6f2122d
--- /dev/null
+++ b/sepolicy/qti/private/folio_daemon.te
@@ -0,0 +1,16 @@
+type folio_daemon, domain, coredomain;
+type folio_daemon_exec, system_file_type, exec_type, file_type;
+
+init_daemon_domain(folio_daemon)
+
+binder_use(folio_daemon)
+
+binder_call(folio_daemon, system_server)
+
+allow folio_daemon permission_service:service_manager find;
+allow folio_daemon sensorservice_service:service_manager find;
+allow folio_daemon virtual_device_native_service:service_manager find;
+
+allow folio_daemon system_server:unix_stream_socket rw_socket_perms_no_ioctl;
+
+allow folio_daemon uhid_device:chr_file rw_file_perms;
diff --git a/sepolicy/qti/private/horae.te b/sepolicy/qti/private/horae.te
new file mode 100644
index 0000000..c4c7ad6
--- /dev/null
+++ b/sepolicy/qti/private/horae.te
@@ -0,0 +1,17 @@
+type horae_exec, exec_type, system_file_type, file_type;
+
+init_daemon_domain(horae)
+
+hal_client_domain(horae, hal_health)
+
+add_service(horae, horae_service)
+
+binder_call(horae, servicemanager)
+binder_call(horae, system_server)
+
+unix_socket_send(horae, statsdw, statsd)
+
+allow horae horae_service:service_manager find;
+allow horae osense_service:service_manager find;
+allow horae surfaceflinger_service:service_manager find;
+allow horae thermal_service:service_manager find;
diff --git a/sepolicy/qti/private/seapp_contexts b/sepolicy/qti/private/seapp_contexts
index 866995f..ac6a476 100644
--- a/sepolicy/qti/private/seapp_contexts
+++ b/sepolicy/qti/private/seapp_contexts
@@ -1,2 +1,2 @@
user=_app seinfo=platform name=org.ifaa.aidl.manager domain=ifaa_app type=app_data_file levelFrom=user
-user=_app seinfo=platform name=org.lineageos.pen domain=pen_app type=app_data_file levelFrom=user
+user=_app isPrivApp=true seinfo=platform name=org.lineageos.pen domain=pen_app type=app_data_file levelFrom=user
diff --git a/sepolicy/qti/private/service.te b/sepolicy/qti/private/service.te
new file mode 100644
index 0000000..9fd94b0
--- /dev/null
+++ b/sepolicy/qti/private/service.te
@@ -0,0 +1,2 @@
+# Horae
+type horae_service, system_api_service, service_manager_type;
diff --git a/sepolicy/qti/private/service_contexts b/sepolicy/qti/private/service_contexts
new file mode 100644
index 0000000..d1abbea
--- /dev/null
+++ b/sepolicy/qti/private/service_contexts
@@ -0,0 +1,5 @@
+# Horae
+horae u:object_r:horae_service:s0
+
+# OSENSE
+osensemanager u:object_r:osense_service:s0
diff --git a/sepolicy/qti/private/surfaceflinger.te b/sepolicy/qti/private/surfaceflinger.te
new file mode 100644
index 0000000..3b80be9
--- /dev/null
+++ b/sepolicy/qti/private/surfaceflinger.te
@@ -0,0 +1 @@
+binder_call(surfaceflinger, horae)
diff --git a/sepolicy/qti/public/attributes b/sepolicy/qti/public/attributes
index bc9de40..0e6b358 100644
--- a/sepolicy/qti/public/attributes
+++ b/sepolicy/qti/public/attributes
@@ -11,3 +11,4 @@ vendor_hal_attribute(oplus_project)
vendor_hal_attribute(oplus_sensor)
vendor_hal_attribute(oplus_touch)
vendor_hal_attribute(oplus_urcc)
+vendor_hal_attribute(subsys)
diff --git a/sepolicy/qti/public/service.te b/sepolicy/qti/public/service.te
new file mode 100644
index 0000000..4f5c849
--- /dev/null
+++ b/sepolicy/qti/public/service.te
@@ -0,0 +1,2 @@
+# OSENSE
+type osense_service, system_server_service, service_manager_type;
diff --git a/sepolicy/qti/public/type.te b/sepolicy/qti/public/type.te
new file mode 100644
index 0000000..fe1917a
--- /dev/null
+++ b/sepolicy/qti/public/type.te
@@ -0,0 +1,2 @@
+# Horae
+type horae, domain, mlstrustedobject, coredomain;
diff --git a/sepolicy/qti/vendor/attributes b/sepolicy/qti/vendor/attributes
new file mode 100644
index 0000000..6f4656f
--- /dev/null
+++ b/sepolicy/qti/vendor/attributes
@@ -0,0 +1,3 @@
+# Reserve
+attribute oplus_reserve_file_type;
+attribute oplus_reserve_radio_file_type;
diff --git a/sepolicy/qti/vendor/device.te b/sepolicy/qti/vendor/device.te
index e641c83..62e353c 100644
--- a/sepolicy/qti/vendor/device.te
+++ b/sepolicy/qti/vendor/device.te
@@ -7,6 +7,11 @@ type vendor_camera_turbo_device, dev_type;
# Charging
type oplus_charger_device, dev_type;
+# eSIM
+type esim_det_device, dev_type;
+type esim_en_device, dev_type;
+type esim_gpio_device, dev_type;
+
# Fingerprint
type fingerprint_device, dev_type;
diff --git a/sepolicy/qti/vendor/file.te b/sepolicy/qti/vendor/file.te
index 2e4cc2e..2aaf01b 100644
--- a/sepolicy/qti/vendor/file.te
+++ b/sepolicy/qti/vendor/file.te
@@ -24,6 +24,9 @@ type vendor_proc_fingerprint, fs_type, proc_type;
# Graphics
type vendor_sysfs_sde_crtc, fs_type, sysfs_type;
+# Horae
+type proc_horae, fs_type, proc_type;
+
# Input
type proc_bus_input, fs_type, proc_type;
@@ -33,6 +36,9 @@ type vendor_proc_mm_fb, fs_type, proc_type;
# NVRAM
type nvram_socket, file_type;
+# Olog
+type vendor_olog_file, file_type, data_file_type;
+
# Performance
type vendor_proc_oplus_ctp, fs_type, proc_type;
type vendor_proc_oplus_scheduler, fs_type, proc_type;
@@ -42,19 +48,28 @@ type vendor_sysfs_cb, fs_type, sysfs_type;
type vendor_proc_oplus_pogo_keyboard, fs_type, proc_type;
# Reserve
-type oplus_reserve_connectivity_file, file_type;
type oplus_reserve_connectivity_felicalock, file_type;
-type oplus_reserve_file, file_type;
+type oplus_reserve_connectivity_file, file_type;
+type oplus_reserve_file, file_type, oplus_reserve_file_type;
type oplus_reserve_media_camera, file_type;
type oplus_reserve_media_dropbox, file_type;
type oplus_reserve_media_engineermode, file_type;
type oplus_reserve_media_file, file_type;
type oplus_reserve_media_log, file_type;
-type oplus_reserve_radio_file, file_type;
+type oplus_reserve_radio_file, file_type, oplus_reserve_radio_file_type;
type oplus_reserve_system_config, file_type;
type oplus_reserve_system_file, file_type;
type oplus_reserve_system_flag, file_type;
type oplus_reserve_system_ssv, file_type;
+type oppo_reserve_file, file_type, oplus_reserve_file_type;
+type oppo_reserve_media_camera, file_type;
+type oppo_reserve_media_coloros, file_type;
+type oppo_reserve_media_dropbox, file_type;
+type oppo_reserve_media_file, file_type;
+type oppo_reserve_media_log, file_type;
+type oppo_reserve_radio_file, file_type, oplus_reserve_radio_file_type;
+type oppo_reserve_system_config, file_type;
+type oppo_reserve_system_file, file_type;
# Secure
type vendor_proc_oppo_secure_common_file, fs_type, proc_type;
@@ -70,7 +85,6 @@ type vendor_sysfs_tof, fs_type, sysfs_type;
# Touch
type oplus_touchdaemon_socket, file_type;
type vendor_persist_oplus_touch_file, file_type, data_file_type;
-type vendor_proc_oplus_touch, fs_type, proc_type;
# Ultrasound
type vendor_proc_ultrasound, fs_type, proc_type;
diff --git a/sepolicy/qti/vendor/file_contexts b/sepolicy/qti/vendor/file_contexts
index 0646dc7..4c02981 100644
--- a/sepolicy/qti/vendor/file_contexts
+++ b/sepolicy/qti/vendor/file_contexts
@@ -41,6 +41,12 @@
# Engineering
/mnt/vendor/persist/engineermode(/.*)? u:object_r:vendor_persist_engineer_file:s0
+# eSIM
+/(odm|vendor/odm)/bin/hw/vendor\.oplus\.hardware\.esim@1\.0-service u:object_r:hal_oplus_esim_aidl_exec:s0
+/dev/esim-det u:object_r:esim_det_device:s0
+/dev/esim-en u:object_r:esim_en_device:s0
+/dev/esim-gpio u:object_r:esim_gpio_device:s0
+
# Fingerprint
/data/vendor/fingerprint(_ori)?(/.*)? u:object_r:fingerprint_vendor_data_file:s0
/mnt/vendor/persist/fingerprint(/.*)? u:object_r:vendor_persist_fingerprint_file:s0
@@ -84,6 +90,9 @@
/dev/block/platform/soc/1d84000\.ufshc/by-name/nonmodemst2 u:object_r:nvram_device:s0
/dev/socket/nvram u:object_r:nvram_socket:s0
+# Olog
+/data/vendor/olog(/.*)? u:object_r:vendor_olog_file:s0
+
# OSENSE
/vendor/bin/hw/vendor\.oplus\.hardware\.osense\.client-service u:object_r:hal_oplus_osense_aidl_exec:s0
@@ -101,6 +110,7 @@
# Performance
/(odm|vendor/odm)/bin/hw/vendor-oplus-hardware-performance-V1-service u:object_r:hal_oplus_performance_aidl_exec:s0
+/vendor/bin/hw/vendor\.oplus\.hardware\.performance-service u:object_r:hal_oplus_performance_aidl_exec:s0
# Pogo pin keyboard
/dev/ttyHS5 u:object_r:oplus_pogo_keyboard_device:s0
@@ -110,7 +120,8 @@
/(odm|vendor/odm)/bin/hw/vendor.oplus.hardware.stability.oplus_project-V1-service u:object_r:hal_oplus_project_aidl_exec:s0
# Radio
-/vendor/bin/nrmodeswitcher u:object_r:vendor_nrmodeswitcher_exec:s0
+/(odm|vendor/odm)/bin/hw/subsys_daemon u:object_r:subsystem_daemon_exec:s0
+/vendor/bin/nrmodeswitcher u:object_r:vendor_nrmodeswitcher_exec:s0
# RMT
/dev/block/platform/soc/1d84000\.ufshc/by-name/oem_dycnvbk u:object_r:vendor_modem_efs_partition_device:s0
@@ -129,6 +140,7 @@
/mnt/vendor/oplusreserve/connectivity/nfclock(/.*)? u:object_r:oplus_reserve_connectivity_felicalock:s0
/mnt/vendor/oplusreserve/media(/.*)? u:object_r:oplus_reserve_media_file:s0
/mnt/vendor/oplusreserve/media/Camera(/.*)? u:object_r:oplus_reserve_media_camera:s0
+/mnt/vendor/oplusreserve/media/ColorOS(/.*)? u:object_r:oppo_reserve_media_coloros:s0
/mnt/vendor/oplusreserve/media/dropbox(/.*)? u:object_r:oplus_reserve_media_dropbox:s0
/mnt/vendor/oplusreserve/media/engineermode(/.*)? u:object_r:oplus_reserve_media_engineermode:s0
/mnt/vendor/oplusreserve/media/log(/.*)? u:object_r:oplus_reserve_media_log:s0
@@ -189,5 +201,7 @@
/vendor/bin/wvmkiller u:object_r:vendor_wvmkiller_exec:s0
# Wlchgmonitor
+/(odm|vendor/odm)/bin/hw/wlschgd u:object_r:wlchgmonitor_exec:s0
/(odm|vendor/odm)/bin/wlchgmonitor u:object_r:wlchgmonitor_exec:s0
/dev/wlchg u:object_r:wlchg_device:s0
+/dev/wls_dev u:object_r:wlchg_device:s0
diff --git a/sepolicy/qti/vendor/genfs_contexts b/sepolicy/qti/vendor/genfs_contexts
index bc18804..e4ba353 100644
--- a/sepolicy/qti/vendor/genfs_contexts
+++ b/sepolicy/qti/vendor/genfs_contexts
@@ -21,6 +21,7 @@ genfscon sysfs /devices/platform/soc/soc:oplus,chg_wls/oplus_mms u:obje
genfscon sysfs /devices/platform/soc/soc:oplus,mms_gauge/oplus_mms u:object_r:vendor_sysfs_usb_supply:s0
genfscon sysfs /devices/virtual/oplus_chg/battery u:object_r:vendor_sysfs_battery_supply:s0
genfscon sysfs /devices/platform/soc/soc:oplus,mms_wired/oplus_mms u:object_r:vendor_sysfs_usb_supply:s0
+genfscon sysfs /devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/soc:qcom,pmic_glink:qcom,battery_charger:oplus,pm8350_charger:oplus,mms_wired/oplus_mms u:object_r:vendor_sysfs_usb_supply:s0
genfscon sysfs /devices/virtual/oplus_chg u:object_r:vendor_sysfs_usb_supply:s0
# Camera
@@ -47,6 +48,9 @@ genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/early_wakeup u:object_r:vendor_sysfs_sde_crtc:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/early_wakeup u:object_r:vendor_sysfs_sde_crtc:s0
+# Horae
+genfscon proc /shell-temp u:object_r:proc_horae:s0
+
# Multimedia feedback
genfscon proc /mm_fb u:object_r:vendor_proc_mm_fb:s0
@@ -81,7 +85,6 @@ genfscon sysfs /module/stmvl53l1 u:object_r:vendor_sysfs_tof:s0
# Touch
genfscon proc /bus/input/devices u:object_r:proc_bus_input:s0
-genfscon proc /shell-temp u:object_r:vendor_proc_oplus_touch:s0
# Ultrasound
genfscon proc /ultrasound u:object_r:vendor_proc_ultrasound:s0
@@ -115,6 +118,7 @@ genfscon sysfs /devices/platform/soc/884000.i2c/i2c-12/12-0028/wakeup u:object_r
genfscon sysfs /devices/platform/soc/884000.i2c/i2c-5/5-0028/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_0_geni_se/880000.spi/spi_master/spi0/spi0.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_0_geni_se/880000.spi/spi_master/spi1/spi1.0/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_1_geni_se/884000.i2c/i2c-9/9-0028/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_2_geni_se/880000.qcom,qup_uart/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_2_geni_se/884000.i2c/i2c-7/7-0010/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/8c0000.qcom,qupv3_2_geni_se/884000.i2c/i2c-8/8-0010/wakeup u:object_r:sysfs_wakeup:s0
@@ -134,6 +138,8 @@ genfscon sysfs /devices/platform/soc/994000.i2c/i2c-5/5-003b/994000.i2c:op,wlchg
genfscon sysfs /devices/platform/soc/994000.i2c/i2c-5/5-0066/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/994000.i2c/i2c-8/8-003b/994000.i2c:op,wlchg_rx@3b:idt,p9415/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/994000.i2c/i2c-8/8-0066/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/9c0000.qcom,qupv3_i2c_geni_se/988000.i2c/i2c-9/9-006f/ufcs/ufcs/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/9c0000.qcom,qupv3_i2c_geni_se/988000.i2c/i2c-9/9-006f/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/9c0000.qcom,qupv3_i2c_geni_se/98c000.i2c/i2c-5/5-003b/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/9c0000.qcom,qupv3_i2c_geni_se/98c000.i2c/i2c-6/6-0036/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/9c0000.qcom,qupv3_i2c_geni_se/9a0000.i2c/i2c-14/14-006f/ufcs/ufcs/wakeup u:object_r:sysfs_wakeup:s0
@@ -151,6 +157,8 @@ genfscon sysfs /devices/platform/soc/a94000.i2c/i2c-9/9-004b/wakeup u:object_r:s
genfscon sysfs /devices/platform/soc/a94000.spi/spi_master/spi1/spi1.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys10/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys9/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_0_geni_se/a80000.i2c/i2c-4/4-0010/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_0_geni_se/a90000.spi/spi_master/spi0/spi0.0/synaptics_tcm_hbp.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a80000.i2c/i2c-10/10-0028/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a80000.i2c/i2c-11/11-0028/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a80000.i2c/i2c-6/6-0028/wakeup u:object_r:sysfs_wakeup:s0
@@ -159,6 +167,7 @@ genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a80000.i2c/i2c-
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a80000.i2c/i2c-9/9-0028/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a8c000.i2c/i2c-10/10-000e/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a8c000.i2c/i2c-11/11-000e/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a8c000.i2c/i2c-13/13-000e/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a8c000.i2c/i2c-15/15-000e/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a8c000.i2c/i2c-9/9-000e/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a90000.i2c/i2c-7/7-004b/wakeup u:object_r:sysfs_wakeup:s0
@@ -166,9 +175,11 @@ genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a90000.i2c/i2c-
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a90000.spi/spi_master/spi0/spi0.0/synaptics_tcm_hbp.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a90000.spi/spi_master/spi0/spi0.0/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a90000.spi/spi_master/spi1/spi1.0/synaptics_tcm_hbp.0/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/ac0000.qcom,qupv3_1_geni_se/a9c000.qcom,qup_uart/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys10/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys9/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/c42d000.qcom,spmi/spmi-0/0-00/c42d000.qcom,spmi:qcom,pmk8350@0:pon_pbs@800/wakeup u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/soc/c42d000.qcom,spmi/spmi-0/0-00/c42d000.qcom,spmi:qcom,pmk8550@0:pon_hlos@1300/c42d000.qcom,spmi:qcom,pmk8550@0:pon_hlos@1300:pwrkey-resin/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/c42d000.qcom,spmi/spmi-0/0-00/c42d000.qcom,spmi:qcom,pmk8550@0:pon_pbs@800/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/ac/wakeup u:object_r:sysfs_wakeup:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/ac/wakeup u:object_r:sysfs_wakeup:s0
diff --git a/sepolicy/qti/vendor/hal_camera_default.te b/sepolicy/qti/vendor/hal_camera_default.te
index 8b3b357..358153e 100644
--- a/sepolicy/qti/vendor/hal_camera_default.te
+++ b/sepolicy/qti/vendor/hal_camera_default.te
@@ -16,6 +16,7 @@ allow hal_camera_default self:capability ipc_lock;
allow hal_camera_default system_server:binder call;
allow hal_camera_default hal_oplus_olc_aidl_service:service_manager find;
+allow hal_camera_default osense_service:service_manager find;
allow hal_camera_default vendor_hal_orms_hwservice:hwservice_manager find;
allow hal_camera_default vendor_hal_osense_hwservice:hwservice_manager find;
diff --git a/sepolicy/qti/vendor/hal_lineage_touch_default.te b/sepolicy/qti/vendor/hal_lineage_touch_default.te
index 91f35ba..0c667f4 100644
--- a/sepolicy/qti/vendor/hal_lineage_touch_default.te
+++ b/sepolicy/qti/vendor/hal_lineage_touch_default.te
@@ -1,5 +1,6 @@
allow hal_lineage_touch_default hal_oplus_touch_aidl_service:service_manager find;
binder_call(hal_lineage_touch_default, hal_oplus_touch_aidl)
+binder_use(hal_lineage_touch_default)
rw_dir_file(hal_lineage_touch_default, vendor_proc_display)
diff --git a/sepolicy/qti/vendor/hal_oplus_esim_aidl.te b/sepolicy/qti/vendor/hal_oplus_esim_aidl.te
new file mode 100644
index 0000000..26d5b71
--- /dev/null
+++ b/sepolicy/qti/vendor/hal_oplus_esim_aidl.te
@@ -0,0 +1,23 @@
+type hal_oplus_esim_aidl, domain;
+binder_use(hal_oplus_esim_aidl)
+
+type hal_oplus_esim_aidl_exec, exec_type, vendor_file_type, file_type;
+init_daemon_domain(hal_oplus_esim_aidl)
+
+add_service(hal_oplus_esim_aidl, hal_oplus_esim_aidl_service)
+
+allow hal_oplus_esim_aidl esim_det_device:chr_file rw_file_perms;
+allow hal_oplus_esim_aidl esim_en_device:chr_file rw_file_perms;
+allow hal_oplus_esim_aidl esim_gpio_device:chr_file rw_file_perms;
+
+allow hal_oplus_esim_aidl mnt_vendor_file:dir search;
+allow hal_oplus_esim_aidl oplus_reserve_file_type:dir search;
+rw_dir_file(hal_oplus_esim_aidl, oplus_reserve_radio_file_type)
+
+allow hal_oplus_esim_aidl block_device:dir search;
+allow hal_oplus_esim_aidl vendor_reserve_partition:blk_file rw_file_perms;
+
+allow hal_oplus_esim_aidl self:qipcrtr_socket create_socket_perms_no_ioctl;
+
+set_prop(hal_oplus_esim_aidl, vendor_oplus_esim_prop)
+set_prop(hal_oplus_esim_aidl, vendor_radio_prop)
diff --git a/sepolicy/qti/vendor/horae.te b/sepolicy/qti/vendor/horae.te
new file mode 100644
index 0000000..d332abd
--- /dev/null
+++ b/sepolicy/qti/vendor/horae.te
@@ -0,0 +1,4 @@
+hal_client_domain(horae, vendor_hal_oplus_charger)
+
+r_dir_file(horae, vendor_proc_oplus_version)
+rw_dir_file(horae, proc_horae)
diff --git a/sepolicy/qti/vendor/init.te b/sepolicy/qti/vendor/init.te
new file mode 100644
index 0000000..3c5027f
--- /dev/null
+++ b/sepolicy/qti/vendor/init.te
@@ -0,0 +1 @@
+allow init vendor_reserve_partition:{ blk_file lnk_file } relabelto;
diff --git a/sepolicy/qti/vendor/oplus_touchdaemon.te b/sepolicy/qti/vendor/oplus_touchdaemon.te
index 8c1417a..523391c 100644
--- a/sepolicy/qti/vendor/oplus_touchdaemon.te
+++ b/sepolicy/qti/vendor/oplus_touchdaemon.te
@@ -25,9 +25,10 @@ allow oplus_touchdaemon vendor_persist_oplus_touch_file:dir rw_dir_perms;
allow oplus_touchdaemon vendor_persist_oplus_touch_file:file create_file_perms;
rw_dir_file(oplus_touchdaemon, proc_bus_input)
+rw_dir_file(oplus_touchdaemon, proc_horae)
rw_dir_file(oplus_touchdaemon, vendor_data_file)
rw_dir_file(oplus_touchdaemon, vendor_proc_display)
-rw_dir_file(oplus_touchdaemon, vendor_proc_oplus_touch)
+set_prop(oplus_touchdaemon, ctl_stop_prop)
set_prop(oplus_touchdaemon, system_oplus_touch_prop)
set_prop(oplus_touchdaemon, vendor_oplus_touch_prop)
diff --git a/sepolicy/qti/vendor/property.te b/sepolicy/qti/vendor/property.te
index 924138e..e963cbc 100644
--- a/sepolicy/qti/vendor/property.te
+++ b/sepolicy/qti/vendor/property.te
@@ -1,3 +1,6 @@
+# eSIM
+vendor_internal_prop(vendor_oplus_esim_prop)
+
# Fingerprint
vendor_internal_prop(vendor_fingerprint_prop)
@@ -10,6 +13,9 @@ vendor_internal_prop(vendor_modem_prop)
# RIL
vendor_internal_prop(vendor_nw_exported_system_prop)
+# Thermal
+vendor_internal_prop(vendor_thermal_engine_prop)
+
# Touch
vendor_internal_prop(vendor_oplus_touch_prop)
diff --git a/sepolicy/qti/vendor/property_contexts b/sepolicy/qti/vendor/property_contexts
index b8311b3..79dff7b 100644
--- a/sepolicy/qti/vendor/property_contexts
+++ b/sepolicy/qti/vendor/property_contexts
@@ -12,6 +12,9 @@ vendor.oppo.camera. u:object_r:vendor_camera_prop:s0
# Display
vendor.dps.dump.composerpid u:object_r:vendor_display_prop:s0
+# eSIM
+ro.vendor.oplus.esim.support u:object_r:vendor_oplus_esim_prop:s0
+
# Fingerprint
persist.vendor.fingerprint. u:object_r:vendor_fingerprint_prop:s0
persist.vendor.side.fp.near.feature.support u:object_r:vendor_fingerprint_prop:s0
@@ -44,6 +47,9 @@ vendor.gsm.serial u:object_r:vendor_nw_exported_system_prop:s0
# Sensors
ro.vendor.oplus.sensor. u:object_r:vendor_sensors_prop:s0
+# Thermal
+vendor.thermal-engine.completed u:object_r:vendor_thermal_engine_prop:s0
+
# Touch
vendor.oplus.touch. u:object_r:vendor_oplus_touch_prop:s0
vendor.oplus.touchDaemon. u:object_r:vendor_oplus_touch_prop:s0
diff --git a/sepolicy/qti/vendor/rild.te b/sepolicy/qti/vendor/rild.te
index ec99146..9bd2653 100644
--- a/sepolicy/qti/vendor/rild.te
+++ b/sepolicy/qti/vendor/rild.te
@@ -1,5 +1,6 @@
allow rild mnt_vendor_file:dir search;
-allow rild oplus_reserve_file:dir search;
+allow rild oplus_reserve_file_type:dir search;
+rw_dir_file(rild, oplus_reserve_radio_file_type)
allow rild vendor_proc_display:file r_file_perms;
diff --git a/sepolicy/qti/vendor/service.te b/sepolicy/qti/vendor/service.te
index 45a0d52..53cd3b6 100644
--- a/sepolicy/qti/vendor/service.te
+++ b/sepolicy/qti/vendor/service.te
@@ -21,6 +21,9 @@ type hal_oplus_displaypanel_aidl_service, hal_service_type, service_manager_type
# Display (Pixelworks)
type hal_display_iris_aidl_service, hal_service_type, service_manager_type;
+# eSIM
+type hal_oplus_esim_aidl_service, hal_service_type, service_manager_type;
+
# Fingerprint Pay
type hal_fingerprintpay_service, hal_service_type, service_manager_type;
@@ -32,7 +35,6 @@ type hal_oplus_olc_aidl_service, hal_service_type, service_manager_type;
# OSENSE
type hal_oplus_osense_aidl_service, hal_service_type, service_manager_type;
-type osense_service, system_server_service, service_manager_type;
# Performance
type hal_oplus_performance_aidl_service, hal_service_type, service_manager_type;
diff --git a/sepolicy/qti/vendor/service_contexts b/sepolicy/qti/vendor/service_contexts
index f3cef94..c9f63b6 100644
--- a/sepolicy/qti/vendor/service_contexts
+++ b/sepolicy/qti/vendor/service_contexts
@@ -24,6 +24,9 @@ vendor.oplus.hardware.displaypanelfeature.IDisplayPanelFeature/default u:objec
# Display (Pixelworks)
vendor.pixelworks.hardware.display.IIris/default u:object_r:hal_display_iris_aidl_service:s0
+# eSIM
+vendor.oplus.hardware.esim.IOplusEsim/default u:object_r:hal_oplus_esim_aidl_service:s0
+
# Fingerprint Pay
vendor.oplus.hardware.biometrics.fingerprintpay.IFingerprintPay/default u:object_r:hal_fingerprintpay_service:s0
@@ -31,7 +34,6 @@ vendor.oplus.hardware.biometrics.fingerprintpay.IFingerprintPay/default u:obj
vendor.oplus.hardware.olc2.IOplusLogCore/default u:object_r:hal_oplus_olc_aidl_service:s0
# OSENSE
-osensemanager u:object_r:osense_service:s0
vendor.oplus.hardware.osense.client.IOsenseAidlHalReporter/default u:object_r:hal_oplus_osense_aidl_service:s0
# Performance
diff --git a/sepolicy/qti/vendor/subsystem_daemon.te b/sepolicy/qti/vendor/subsystem_daemon.te
new file mode 100644
index 0000000..3d45ec9
--- /dev/null
+++ b/sepolicy/qti/vendor/subsystem_daemon.te
@@ -0,0 +1,22 @@
+type subsystem_daemon, domain;
+binder_use(subsystem_daemon)
+
+hal_server_domain(subsystem_daemon, vendor_hal_subsys)
+
+type subsystem_daemon_exec, exec_type, vendor_file_type, file_type;
+init_daemon_domain(subsystem_daemon)
+
+binder_call(vendor_hal_subsys_client, vendor_hal_subsys_server)
+binder_call(vendor_hal_subsys_server, vendor_hal_subsys_client)
+
+hal_attribute_service(vendor_hal_subsys, hal_subsys_service)
+
+allow subsystem_daemon block_device:dir r_dir_perms;
+allow subsystem_daemon self:qipcrtr_socket create_socket_perms_no_ioctl;
+allow subsystem_daemon vendor_reserve_partition:blk_file r_file_perms;
+allow subsystem_daemon vendor_sysfs_soc_sensitive:file r_file_perms;
+
+set_prop(subsystem_daemon, vendor_nw_exported_system_prop)
+set_prop(subsystem_daemon, vendor_radio_prop)
+
+rw_dir_file(subsystem_daemon, vendor_olog_file)
diff --git a/sepolicy/qti/vendor/vendor_hal_imsrtp.te b/sepolicy/qti/vendor/vendor_hal_imsrtp.te
index ee527c0..9e56130 100644
--- a/sepolicy/qti/vendor/vendor_hal_imsrtp.te
+++ b/sepolicy/qti/vendor/vendor_hal_imsrtp.te
@@ -1,5 +1,5 @@
add_service(vendor_hal_imsrtp, hal_imsrtp_service)
-allow vendor_hal_imsrtp hal_subsys_service:service_manager find;
+hal_client_domain(vendor_hal_imsrtp, vendor_hal_subsys)
get_prop(vendor_hal_imsrtp, boot_status_prop)
diff --git a/sepolicy/qti/vendor/vendor_init.te b/sepolicy/qti/vendor/vendor_init.te
index 098fee8..0734e98 100644
--- a/sepolicy/qti/vendor/vendor_init.te
+++ b/sepolicy/qti/vendor/vendor_init.te
@@ -2,4 +2,7 @@ allow vendor_init proc_sched:file w_file_perms;
allow vendor_init vendor_proc_display:file w_file_perms;
set_prop(vendor_init, system_oplus_project_prop)
+set_prop(vendor_init, vendor_camera_prop)
+set_prop(vendor_init, vendor_fingerprint_prop)
set_prop(vendor_init, vendor_oplus_touch_prop)
+set_prop(vendor_init, vendor_thermal_engine_prop)
diff --git a/sepolicy/qti/vendor/vendor_qti_init_shell.te b/sepolicy/qti/vendor/vendor_qti_init_shell.te
index 938bee0..2c5c088 100644
--- a/sepolicy/qti/vendor/vendor_qti_init_shell.te
+++ b/sepolicy/qti/vendor/vendor_qti_init_shell.te
@@ -1,9 +1,11 @@
allow vendor_qti_init_shell proc_cmdline:file r_file_perms;
allow vendor_qti_init_shell proc_page_cluster:file create_file_perms;
+allow vendor_qti_init_shell vendor_olog_file:file create_file_perms;
allow vendor_qti_init_shell vendor_proc_camera:file create_file_perms;
-allow vendor_qti_init_shell vendor_qmcs_file:dir r_file_perms;
-allow vendor_qti_init_shell vendor_spunvm_file:dir r_file_perms;
+allow vendor_qti_init_shell vendor_olog_file:dir rw_dir_perms;
+allow vendor_qti_init_shell vendor_qmcs_file:dir r_dir_perms;
+allow vendor_qti_init_shell vendor_spunvm_file:dir r_dir_perms;
create_dir_file(vendor_qti_init_shell, mnt_vendor_file)
diff --git a/sepolicy/qti/vendor/vendor_thermal-engine.te b/sepolicy/qti/vendor/vendor_thermal-engine.te
index a3cd9ed..559505d 100644
--- a/sepolicy/qti/vendor/vendor_thermal-engine.te
+++ b/sepolicy/qti/vendor/vendor_thermal-engine.te
@@ -1 +1,3 @@
r_dir_file(vendor_thermal-engine, vendor_sysfs_usb_supply)
+
+set_prop(vendor_thermal-engine, vendor_thermal_engine_prop)
diff --git a/vintf/device_framework_matrix.xml b/vintf/device_framework_matrix.xml
index efff044..79db1c2 100644
--- a/vintf/device_framework_matrix.xml
+++ b/vintf/device_framework_matrix.xml
@@ -84,7 +84,7 @@
</hal>
<hal format="aidl" optional="true">
<name>vendor.oplus.hardware.charger</name>
- <version>1-7</version>
+ <version>1-8</version>
<interface>
<name>ICharger</name>
<instance>default</instance>