147 Commits
udc ... bka

Author SHA1 Message Date
Le Hong Duc
7d482dfe60 Revert "sdm845-common: Reduce ZRAM size to 25%"
This reverts commit 080c3bfb27e90d76a974a5528a21b160a8055464.

Reason for revert: 25% is way not enough in 2025
2025-12-10 10:03:58 +07:00
Georg Veichtlbauer
7636b1bbfb sdm845-common: Reduce ZRAM size to 25%
50% is overkill for devices with "only" 6-8GB RAM.

Change-Id: I33a31d8f565da0be9127a21af594f1736c1ff3c9
2025-12-10 10:03:58 +07:00
Le Hong Duc
434439ccf1 sdm845-common: sepolicy: Allow XiaomiParts to access to media player service 2025-12-10 10:03:58 +07:00
Mathieu Chartier
c22ed9d9b6 sdm845-common: Speed profile services and wifi-service to reduce RAM and storage 2025-12-10 10:03:58 +07:00
Gustavo Mendes
9db9168319 sdm845-common: Explicitly disable SF layer cache
Change-Id: Id4c64a45a67ef62abf6fa71ac8d814796dc8e8a8
Signed-off-by: Gustavo Mendes <gusttavo.me@outlook.com>
2025-12-10 10:03:58 +07:00
ghostrider-reborn
e36f375149 sdm845-common: Enable frame pacing for smoother visual performance
- Enabled `vendor.perf.framepacing.enable` to improve visual smoothness by regulating frame timing. This enhancement ensures consistent frame delivery, reducing stuttering and enhancing overall visual quality, particularly in graphics-intensive applications such as games.

Signed-off-by: TogoFire <togofire@mailfence.com>
Signed-off-by: ihsan <ihsanulrahman@gmail.com>
Signed-off-by: Niranjan BR <niranjankannan2003@gmail.com>
Signed-off-by: donjohanliebert <donjohanliebert@gmail.com>
Signed-off-by: ryzenforce990 <superxorn@horizondroid.com>
2025-12-10 10:03:58 +07:00
AnierinB
cfba78d5a7 sdm845-common: parts: Add thermal profiles tile
* Launches ThermalActivity
2025-12-10 10:03:58 +07:00
johnmart19
77bfe9c995 sdm845-common: parts: Update ClearSpearker Activity and Fragment
* Adapt Clear Speaker to S style
* Code cleanup

Co-authored-by: TheScarastic <warabhishek@gmail.com>
Co-authored-by: Joey Huab <joey@evolution-x.org>
2025-12-10 10:03:58 +07:00
johnmart19
30b92a0675 sdm845-common: parts: Update Clear Speaker description 2025-12-10 10:03:58 +07:00
palaych
e6d9367f48 sdm845-common: parts: BootCompletedReceiver: import IntentFilter 2025-12-10 10:03:58 +07:00
TheScarastic
555d1c436d sdm845-common: parts: Adapt Clear Speakers to S style 2025-12-10 10:03:58 +07:00
AshutoshSundresh
a8d912ad01 sdm845-common: parts: Add icon for Clear Speaker 2025-12-10 10:03:58 +07:00
Volodymyr Zhdanov
f93568e23a sdm845-common: parts: Fix Clear Speaker IllegalStateException
* trace:
  E AndroidRuntime: java.lang.IllegalStateException
  E AndroidRuntime: at android.media.MediaPlayer._stop(Native Method)
  E AndroidRuntime: at android.media.MediaPlayer.stop(MediaPlayer.java:1397)

* also do small refactoring while at it
2025-12-10 10:03:58 +07:00
Adithya R
36cfd1e2da sdm845-common: parts: Add headphones warning for clear speaker
Signed-off-by: Pranav Temkar <pranavtemkar@gmail.com>
Change-Id: I70ad24bceac2f6538e1fbfd79d70bd5ca64eee07
Signed-off-by: Carlos Ayrton Lopez Arroyo <15030201@itcelaya.edu.mx>
Signed-off-by: DarkAngelGR <asavvo01@gmail.com>
2025-12-10 10:03:58 +07:00
Adithya R
b5b69d2b9d sdm845-common: parts: Update clear speaker audio from MIUI 12
Signed-off-by: Pranav Temkar <pranavtemkar@gmail.com>
Change-Id: I7aada005798a6ef1e07f3b2424fd02ba58293018
Signed-off-by: Carlos Ayrton Lopez Arroyo <15030201@itcelaya.edu.mx>
Signed-off-by: DarkAngelGR <asavvo01@gmail.com>
2025-12-10 10:03:58 +07:00
Jyotiraditya
e1b1165132 sdm845-common: parts: Implement Clear Speaker
Co-authored-by: Adithya R <radithya2002@gmail.com>
2025-12-10 10:03:58 +07:00
mukul2259
179ad2d578 sdm845-common: parts: Update a couple of icons
* From https://materialdesignicons.com/

Change-Id: Ica1073966362dbdf24480ff649d61be8e1bb1d2e
2025-12-10 10:03:58 +07:00
Le Hong Duc
4fea2e4880 sdm845-common: parts: Add missing proguard.flags
[johnmart19]: Adapt to current included to Parts configurations

Co-authored-by: johnmart19 <johnivan19999@gmail.com>
2025-12-10 10:03:58 +07:00
2d6d7f5fdf sdm845-common: parts: Bootreciever: Use directBootAware
- This way settings can be restored prior to unlocking after reboot.
2025-12-10 10:03:58 +07:00
KanonifyX
b7c4690056 sdm845-common: powerhint: Allow overclock GPU
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Luca Stefani
3e478afe6e sdm845-common: powerhint: Adjust QOS interface
Currently all writes to the dev interface are done
by WriteStringToFd that uses char internally.

The current values seem to expect to be written as s32,
this sadly won't happen and triggers a special case in
the write handling of pm_qos_power_write:
it expects char buffers to be encoded as base16 and
decodes them.
This means the current 44 is actually 0x44 -> 68 seen by
the kernel.

Luckily it seems like both accepted values for this node
don't hit the threshold to enter C2, so it was never
noticed in real usage and didn't effect the device
C-States handling during hints.

Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>
Change-Id: Ic544d4dcaa1edc3de913aed737baf1af88a45360
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Jake Weinstein
a027c016a7 sdm845-common: rootdir: Pin IRQs to specific CPUs
* Pin msm_drm to CPU2, and kgsl-3d0 to CPU1
* The IRQ values were validated from a beryllium running AOSPA Topaz

Change-Id: Ic8b9f45f8b234ad31b762d70d30f7f00c0b4e882
Signed-off-by: Gagan Malvi <malvigagan@gmail.com>
2025-12-10 10:03:58 +07:00
PainKiller3
aae822ca9e sdm845-common: parts: Update thermal profiles drawable icons
* From https://material.io/resources/icons/

Change-Id: I53f581508c722e1013c461c542abeb6582a65bcc
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
ghostrider-reborn
b276ef29e7 sdm845-common: parts: Increase BootCompletedReceiver priority
* Set the priority to SYSTEM_HIGH_PRIORITY to match other system
  services so our settings are restored faster on bootup

Change-Id: I6e4e434603da2e464042100c04624a01a02a96fd
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
jhenrique09
614fecf8b2 sdm845-common: parts: Improve thermal profiles translations
Change-Id: I9e2b3c1c5ba0dc2542496ee1b285c3de5bc96514
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
darkbeast69
a1c7d2d201 sdm845-common: parts: Add Vector icons for always on display
icons taken from https://materialdesignicons.com/

Change-Id: I551932a0536ac42dbadedea944964da3e738dbbb
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
Adithya R
cb7e87a2d4 sdm845-common: parts: Add ACTION_SCREEN_ON intent filter
* this should fix thermal profiles not
   getting restored after turning screen back on

Change-Id: Idb485fc7f1942f1a2d117025fe5c4237afc3ec81
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
Nauval Rizky
b310e3564e sdm845-common: parts: Introduce raise to wake gesture
* Highly inspired by iOS raise to wake
* Add min interval for raise2wake
* Check proximity before wakeup

Signed-off-by: Nauval Rizky <enuma.alrizky@gmail.com>
Signed-off-by: David Setiawan <fryevia@foxmail.com>
Signed-off-by: resist15 <souravhjagtap21@gmail.com>
2025-12-10 10:03:58 +07:00
TheScarastic
18d5e9d2a2 sdm845-common: parts: Inject doze preference through ia
Change-Id: Id62c6ee2e696acb1906413747da912cc950e27d0
2025-12-10 10:03:58 +07:00
arco
1a932489a4 sdm845-common: overlay: Set config_use16BitTaskSnapshotPixelFormat to true
Change-Id: I203c6f54953744e1af67e5b37a72b5b095eabb65

Signed-off-by: Christopher <mizdrake7@gmail.com>
Signed-off-by: kssrao13882 <kssrao13882@gmail.com>
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
ghostrider-reborn
d663a76e46 sdm845-common: overlay: Improve pinner configuration
Signed-off-by: Legendleo90 <akshatleo9456@gmail.com>
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
wshamroukh
60c87f84e9 sdm845-common: sepolicy: Allow mkswap to kill
W mkswap  : type=1400 audit(0.0:9): avc: denied { kill } for capability=5 scontext=u:r:toolbox:s0 tcontext=u:r:toolbox:s0 tclass=capability permissive=0

Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Le Hong Duc
1d7b208191 sdm845-common: sepolicy: Allow XiaomiParts to read system properties 2025-12-10 10:03:58 +07:00
Adam Shih
69c65d6bd6 sdm845-common: sepolicy: Suppress gmscore denials on firmware
Bug: 149543390
Bug: 149062700
Bug: 151195371
Test: boot with no gmscore_app avc error
Change-Id: I4c667b86863121529f7c3a24b9daf615260104c7
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Pig
8d4172e657 sdm845-common: sepolicy: ignore hardless QCOM denials
Change-Id: Ie8f74bde8aeedbd134b11307221c1f930ea4f5dc
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
ZeeLog
21e533fb30 sdm845-common: sepolicy: allow vendor_init & zygote to kill
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Tri Vo
a09a6b6bb1 sdm845-common: sepolicy: Neverallow app open access to /dev/ashmem
- Fixes scroll lag in apps such as twitter etc.

Apps are no longer allowed open access to /dev/ashmem, unless they
target API level < Q.

Bug: 113362644
Test: device boots, Chrome, instant apps work
Change-Id: I23a6dd2451d7b6d8bc0af84ecf9c7203db875971
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Malathi Gottam
636fd8f9e1 sdm845-common: media: Add media codec swap width and height feature
In case any codec of target supports width & height swap,
then this feature needs to be advertised in media_codecs xml
otherwise newly added strict dimension checks in framework
fail hw codec instantiation considering codec cannot handle
format leading to sw fallback despite codec capability.

Change-Id: Ief2c9d6dc4ee05a6798a58a0427b75e8c0a2dedb
Signed-off-by: KanonifyX <kanonify01@gmail.com>
2025-12-10 10:03:58 +07:00
Hadad
7b12560f53 sdm845-common: Don't pin deprecated RenderScript libs.
* No point to keep this in pinner service,
  since it has long been deprecated.
  And the device no longer adopts the
  RenderScript implementation.

* Ref of depedency libs:
  https://source.android.com/docs/core/architecture/vndk/renderscript

Change-Id: I3b2af72b62a3ce92d980552bc7ff38f35fba850a
2025-12-10 10:03:58 +07:00
helliscloser
433530a533 sdm845-common: Explicitly disable "Enable GL comp backpressure"
When blur is enabled,
There is severe lag in; Launcher3 while scrolling apps in App drawer, Scrolling through recents and occasionally on QS pull down.

Enabling or completely removing the prop here d6233e0e7c doesn't seem to make an effect.
Explicitly disabling the "Enable GL comp backpressure" prop seems to slove the issue.

Lag & janks are gone now, even with blur.

Signed-off-by: helliscloser <mrumais@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2025-12-10 10:03:58 +07:00
Vhmit
998d64e32f sdm845-common: Drop force double frame buffers
Because it give lags on QS

Change-Id: Ibafda19da6c8141bf3b1652a8d6c45f872b9bef5
2025-12-10 10:03:58 +07:00
Terminator-J
34e630af7f sdm845-common: init: Kill statsd service
Ugh, it keeps coming back like a bad rash...

Hopefully this can nuke the apex as well,
without us having to track our own fork.
2025-12-10 10:03:58 +07:00
Suren Baghdasaryan
75884cf850 sdm845-common: Disable per-cgroup PSI accounting
Per-cgroup PSI accounting is not used in Android while having small
performance cost. Disable this unused feature.

Bug: 233410456
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I9e8fb209905f9873926754da8c8e295c1655aa8d
Merged-In: I9e8fb209905f9873926754da8c8e295c1655aa8d
[jjpprrrr: Note that this feature requires a backported kernel commit]
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2025-12-10 10:03:58 +07:00
Pranav Vashi
72aa10f45d sdm845-common: sepolicy: Allow vendor init to set fingerprint prop 2025-12-10 10:03:58 +07:00
Le Hong Duc
0d11f3e21f sdm845-common: Remove pocketmode 2025-12-10 10:03:58 +07:00
Pranav Vashi
09edce7030 sdm845-common: dolby: Add profiles overlay for moto dolby
Change-Id: Ided92625cb73f530656e86929b3ba70fea1e940d
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Pranav Vashi
3056964b53 sdm845-common: dolby: Update dax-default from moto
Change-Id: I430adc74c64093bf3c1439e66607567cb6444b80
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Pranav Vashi
cc303d4421 sdm845-common: libstagefright_foundation-v33 moved to lineage compat
Change-Id: Ib1fd8644e6c2567c89d67967f31c62582cc006ef
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
dogpoopy
125b160e19 sdm845-common: Switch dolby soundfx to libswdap
* libhwdap.so doesn't work with devices that doesn't have dolby hardware support
* libswdap.so from https://github.com/reiryuki/Dolby-Atmos-Moto-G52-Magisk-Module.git

[@neobuddy89: Pin libswdap.so from above module]
Change-Id: Icb22599d2d439a837b537b59330f30e558869532
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Pranav Vashi
a0015841a6 sdm845-common: audio: Add dolby to audio effects
Change-Id: Ie4865489f79b617f2568fc29b382c56bb0cd6f11
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Pranav Vashi
a52e10e21a sdm845-common: audio: Apply NLSound 4.0 optimization for dolby
Change-Id: I221799b79f80933cc8302418f1290893722a5368
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
basamaryan
df79dc954f sdm845-common: audio: Forcefully disable volume leveler
sed -i "/volume-leveler-enable/ s/true/false/g" configs/audio/dax-default.xml

Change-Id: I7ceb29291a9e55036d57975f5a28a149c7fcb435
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Fabian Leutenegger
97e049cf08 sdm845-common: Link Dolby Atmos dependencies against v33 libstagefright_foundation
* fixes crashes and absurdly high CPU usage while using dolby

Co-authored-by: Woomymy <woomy@woomy.be>
Change-Id: Ib72b775dae677f3085d0b0e2afcbb709d8690063
Signed-off-by: basamaryan <basam.aryan@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
basamaryan
df4c5927e0 sdm845-common: Build XiaomiDolby
Change-Id: I31ff2c27a479423951c8a645bf1cd65dc6ad6f81
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
madmax7896
54d56617e6 sdm845-common: Import Dolby audio blobs and sepolicy
Squashed with:
commit b1baf8e4109edf71727c39bff18077110174dff2
Author: Yuan Si <do4suki@gmail.com>
Date:   Sat Sep 16 06:35:46 2023 +0800

    sweet: sepolicy: Address more Dolby audio denials

    09-16 06:33:17.209   613   613 E SELinux : avc:  denied  { find } for interface=vendor.dolby.hardware.dms::IDms sid=u:r:mediacodec:s0 pid=1262 scontext=u:r:mediacodec:s0 tcontext=u:object_r:hal_dms_hwservice:s0 tclass=hwservice_manager permissive=0
    09-16 06:33:17.209  1262  8489 E DecDynamicConfig: connectService : Connect to Dolby Native Service failed
    09-16 06:33:17.209  1262  8489 E DecDynamicConfig: checkShareConfig: Dolby service is NULL

    Change-Id: Ideb557073b53e7b31f6535d6053933104b455ae7
    Signed-off-by: Yuan Si <do4suki@gmail.com>

commit e83b80995343c56382e43bf0656ee1e2b79ee067
Author: YuKongA <70465933+YuKongA@users.noreply.github.com>
Date:   Thu Oct 12 00:02:27 2023 +0800

    sweet: sepolicy: Address mediacodec denials

    Partially taken from ec0e9c641f and extended to hal_dms_server

    Change-Id: I51cfbbb2f8b9d83e74ef2f44196e8393189ca3dc
    Signed-off-by: basamaryan <basam.aryan@gmail.com>

commit 0a7aab81667f137c57fa95c4661fa7e43e0e2c1c
Author: Pranav Vashi <neobuddy89@gmail.com>
Date:   Fri Aug 2 20:27:52 2024 +0530

    sweet: Move dax-default to device tree

    Change-Id: Id2054bb5e61bcfe58706e32f44d37fe7524aa912
    Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>

Change-Id: I2d466238525d074269377a82627a816527aefd74
Signed-off-by: Mesquita <mesquita@aospa.co>
Signed-off-by: basamaryan <basam.aryan@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: firebird11 <hbgassel@gmail.com>
2025-12-10 10:03:58 +07:00
Le Hong Duc
dc31c2a5e0 sdm845-common: parts: Drop Dirac 2025-12-10 10:03:58 +07:00
Chenyang Zhong
e78d5611af sdm845-common: Update adreno blobs
* From LA.UM.9.3.r1-02700-sdm845.0, which is slightly newer.

Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
Change-Id: I55a79e5bb5b0b4869c67ada6444c920861ffe77a
2025-12-10 10:03:58 +07:00
Le Hong Duc
bca9ab4cf3 sdm845-common: remove_packages: Update package names 2025-12-10 10:03:58 +07:00
Le Hong Duc
3bd8ce1a2e sdm845-common: remove_packages: Remove Photos
Signed-off-by: Le Hong Duc <hongducthbk123@gmail.com>
2025-12-10 10:03:58 +07:00
Le Hong Duc
76565036ac sdm845-common: remove_packages: Remove arcore 2025-12-10 10:03:58 +07:00
Le Hong Duc
bc6e8716c4 sdm845-common: Use own Evolution fork of hardware/xiaomi 2025-12-10 10:03:58 +07:00
LuK1337
3ed9012299 sdm845-common: Include vendor/debugfs.config
This disables the following kernel configs:
* CONFIG_DEBUG_FS
* CONFIG_PAGE_OWNER

Change-Id: Idbf74e3dee4dccff4708462271e79374e28449ae
2025-12-10 10:03:58 +07:00
Le Hong Duc
50d6e22e0d sdm845-common: overlay: Add CPU temperature divider 2025-12-10 10:03:58 +07:00
Le Hong Duc
864a5ff58e sdm845-common: remove_packages: Update package names
* also restore ScribePrebuilt
2025-12-10 10:03:58 +07:00
Terminator-J
c1581ea136 sdm845-common: overlays: Update doze options
DT2W should probably check proximity sensor first to avoid
spurious pocket battery drain.
2025-12-10 10:03:58 +07:00
Le Hong Duc
68462ab38d sdm845-common: Initialize Evolution X
Change-Id: I0258ac328e84175984816809986aea2d44a35feb
Signed-off-by: Le Hong Duc <hongducthbk123@gmail.com>
2025-12-10 10:03:58 +07:00
Duc Le
4378deb064 sdm845-common: Reserve some free space
* For DFE users
2025-12-10 10:03:58 +07:00
Duc Le
532e771755 sdm845-common: Bring back Chrome 2025-12-10 10:03:58 +07:00
kdrag0n
0d2c1fa036 sdm845-common: overlay: Don't pin camera app in memory
The default camera app can be *huge* in some cases, e.g. when the app in
question is Google Camera. The system will only pin up to the first 80
MiB of the APK file, as well as the first 80 MiB of its odex. There are
several problems with this:

  - We could easily end up with 160 MiB of camera app files pinned,
    which is a tall order with the usable RAM that we have
  - The data that gets pinned may not even be the most critical data for
    launching the camera

Let's disable pinning of the camera app to save precious RAM on this
device.

Change-Id: Ic2f9edd811879e3f18876a508273a9544d8a23e0
2025-12-10 10:03:58 +07:00
Yumi Yukimura
d9b7c12ce8 sdm845-common: wifi: Enable 2.4GHz channel bonding
* Increases 802.11n (40MHz bandwidth) wifi link speed from 72Mbps to 144Mbps

Change-Id: I43ed0fb7e0dc6f6be7053273837543711611a8bb
2025-12-10 10:03:58 +07:00
Le Hong Duc
e3b2534115 sdm845-common: remove_packages: Convert to Android.bp
Signed-off-by: Le Hong Duc <hongducthbk123@gmail.com>
2025-12-10 10:03:58 +07:00
Jesse Chan
fe64c1be9b sdm845-common: overlay: configure SQLite to operate in MEMORY mode
This change yields considerable SQLite performance gains. It
should be generally safe as this device has irremovable battery.

Some OEMs have been doing this for years.

Change-Id: I873c6abfa088de43d2f6dec18d6d106fe23251ba
Signed-off-by: Jesse Chan <jc@lineageos.org>
Signed-off-by: PainKiller3 <ninadpatil100@gmail.com>
2025-12-10 10:03:58 +07:00
David Sehr
d99f4b6f9f sdm845-common: Enable usage of dex2oat64
Use 64-bit dex2oat for better dexopt time.

Bug: 153380900
Test: boot and install an application
Change-Id: I3e7a6e6e9385ff6564d1a2e6dda004ebb061f095
(cherry picked from commit 126f03be80f57a8a0411842011152d9381589b78)
Merged-In: I3e7a6e6e9385ff6564d1a2e6dda004ebb061f095
2025-12-10 10:03:58 +07:00
Alex Sarraf
473c9ec3c6 sdm845-common: props: Disable SF client composition cache
Disable SF client composition cache. Helps with framework
client target fence management.

Change-Id: I73e03e76f51d00fafad38479be00f4005be50665
2025-12-10 10:03:58 +07:00
Pullakavi Srinivas
d74b282932 sdm845-common: props: Disable SF composition prediction model.
CRs-Fixed: 3243885
Change-Id: I64f82a25768b561bb343fdb7686b7d6c020d024a
2025-12-10 10:03:58 +07:00
SamarV-121
a5f861d29c sdm845-common: props: Disable continuous transaction tracing on all build types
Change-Id: I95657a00e38f1229675682e784b20cca12c119b0
2025-12-10 10:03:58 +07:00
Sultanxda
c60f1dafdb sdm845-common: props: Disable vendor.audio.feature.kpi_optimize.enable
We're not using perfd so this is useless.

Change-Id: I862d8bf175c8a99e525f50250ef900cc84da89d9
2025-12-10 10:03:58 +07:00
Georg Veichtlbauer
48015ca1b6 sdm845-common: props: remove obsolete SurfaceFlinger properties
* debug.sf.hw & debug.egl.hw were removed.

Change-Id: I8d38f3257b5f6b56c0f6b79cf4fb406a47d64af8
2025-12-10 10:03:58 +07:00
Nirmal Abraham
261c7c0569 sdm845-common: props: Disable debug.sf.recomputecrop
Disable recompute crop change in SF

Change-Id: Ifd5bae734ccc4962427a64f789cf9890f10f5965
2025-12-10 10:03:58 +07:00
Lucchetto
1a579be1c6 sdm845-common: props: disable phantom process monitoring
Change-Id: Iacf0e8056d3c28fdc15ef497be67d2e1a7ec8b0c
2025-12-10 10:03:58 +07:00
Tim Lin
7bbc721ada sdm845-common: props: fix MT SMS sent during power off
qcril will block any further MT SMS if previous one is not ACKed.
For this bug, IMS service is not ready and resulted in qcril stuck in blocking state.
This solution will add 30s timer to reset blocking state if there is no ACK from Telephony.

Bug: 169549852
Test: MT SMS during power off
Change-Id: I6f52170654925143aeb55f8bc0cf4c379717e718
2025-12-10 10:03:58 +07:00
Long Ling
baf778b742 sdm845-common: props: Set debug.sf.layer_caching_active_layer_timeout_ms to 1000
Avoid SF cache thrashing in some cases.

Bug: 189928400
Test: no flicking issue with the testbuld (removed displaycolor fix)
      and flicking happens after set the prop to 0
Change-Id: I24aa79001ec21cff18ae5ac8ff988f70ed121061
2025-12-10 10:03:58 +07:00
Jun Wang
ccc61227af sdm845-common: props: Disable Skia tracing by default
If the prop "debug.hwui.skia_atrace_enabled" is enabled, too many
skia tracing calls will be printed in every frame. This has obvious
overhead on performance/power, and can cause many janks. So disable
it by default, and user can set it manually if necessary.

Change-Id: I90d28ddb77ced0127f941f2b6e4e491859981e51
2025-12-10 10:03:58 +07:00
Le Hong Duc
ad5d6454b9 sdm845-common: Only remove some unwanted gapps
Signed-off-by: Le Hong Duc <hongducthbk123@gmail.com>
2025-12-10 10:03:58 +07:00
Lunarixus
49e9f74bde sdm845-common: Remove packages at build time 2025-12-10 10:03:58 +07:00
mickaelmendes50
cf48a74a89 sdm845-common: Add Support for ParanoidSense
Change-Id: I75fe56418a40bd559430d6be6d79c80203b8fe7c
2025-12-10 10:03:58 +07:00
Yumi Yukimura
8e90c0ead5 sdm845-common: init: Lower swappiness to 60
Change-Id: Iccae6a9172e2c817217110ca69bb1c459c54cae1
2025-12-10 10:03:58 +07:00
Martin Liu
bdb25edc1b sdm845-common: adjust zram write back policy
The first default zram write back time is 3 hours which
is for go device to quickly save more ram. For Pixel
devices, we have more working set and could bring launch
time impact if we write back too fast. Thus, adjust the
first time write back time to 24 hours which is aligned
with periodic write back time.

Bug: 166739872
Test: boot

Change-Id: If1398bc44db0619cf2e2be87d4813972c0454dba
Signed-off-by: Martin Liu <liumartin@google.com>
2025-12-10 10:03:58 +07:00
Minchan Kim
1c2e663bbe sdm845-common: Enable zram writeback job scheduler
Bug: 140882488
Change-Id: I5489a7ce7a8d73306a6ecf69f57d338b2b0eaad2
Signed-off-by: Minchan Kim <minchan@google.com>
Signed-off-by: Chenyang Zhong <zhongcy95@gmail.com>
2025-12-10 10:03:58 +07:00
Luofan Chen
b9a7eb601e sdm845-common: Setup zram and zram writeback
Following Pixel's way of setting up zram and zram writeback, see https://github.com/LineageOS/android_hardware_google_pixel/tree/lineage-21.0/mm

Change-Id: I9220aa49929f7d37fa1344d8e5eff8a771151341
2025-12-10 10:03:58 +07:00
Sebastiano Barezzi
d8464b7590 sdm845-common: Use logdump as metadata partition
* We have a 64MB unused partition, why not use it

Change-Id: Ie0fafa8285eaebb24589073581ff9575f40c89e9
2025-12-10 10:03:58 +07:00
Michael Bestas
4960bd765a sdm845-common: overlay: Enable battery cycle count
Change-Id: I92bc8363e1c9e2ad54c29a0a30dce992e25f697d
2025-12-10 10:03:50 +07:00
Bruno Martins
466757d495 sdm845-common: parts: Fully migrate to AndroidX
Change-Id: I873a18de1b7382ee9dc0be4da0ff53192a99b1db
2025-12-07 15:06:24 +00:00
Bruno Martins
d8aa9b1a90 sdm845-common: parts: Clean up imports
Change-Id: I483a137865e0e558ecadfb1ed25d0f46daf0f3b2
2025-12-07 15:05:31 +00:00
Bruno Martins
fbbaeb386c sdm845-common: parts: Replace Activity.MODE_PRIVATE with Context.MODE_PRIVATE
Activity.MODE_PRIVATE is redundant because Activity is already a Context.

Change-Id: Ib2e751de93294efe251fd5af272be27438b50025
2025-12-07 15:04:14 +00:00
a04a7f88f5 sdm845-common: parts: Move to PreferenceFragmentCompat
PreferenceFragment was deprecated in API level 28.

https://developer.android.com/jetpack/androidx/releases/preference#1.1.0

Change-Id: Ie8a4b04bd588afbbbc5882349ddbc05f988f80bf
2025-12-01 20:50:47 +00:00
Bruno Martins
ea14f297b8 sdm845-common: livedisplay: Defer initialization
It was starting too early...

 E SunlightEnhancementService: Failed to open /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/disp_param, error=13 (Permission denied)
 E vendor.lineage.livedisplay-service.xiaomi_sdm845: SunlightEnhancement Iface is not supported, gracefully bailing out.

Change-Id: Ie5f97e483dbf8594de5ef3ecdd5ef2736c44a34b
2025-08-16 14:45:43 +01:00
Bruno Martins
1ccaa45839 sdm845-common: livedisplay: Add VINTF fragment
Change-Id: I8172ecf68922086470ac6616ee87f6814811c467
2025-08-16 14:45:43 +01:00
Bruno Martins
4bfcba038e sdm845-common: livedisplay: Migrate to AIDL
Change-Id: I507604ca9f34853ce12a5bc03a33351869e2c9ee
2025-08-16 14:45:41 +01:00
Bruno Martins
b4ed212e0a sdm845-common: livedisplay: Fix LOG_TAG and use EXIT macros
Change-Id: I959028d14c7d4bb2bf84f90144c23dafedcbac49
2025-08-16 10:32:43 +01:00
Bruno Martins
b10d6c5200 sdm845-common: livedisplay: Use pragma once directive
Change-Id: Icb26f68f769ccd202d415d6e4df3568694514fc1
2025-08-16 09:17:11 +01:00
Arian
315d1a5906 sdm845-common: udfps: Switch to unique fd to avoid memory leaks
Change-Id: I746bfd8dbbb20a30ff173ed50b8e0ffaee73bda2
2025-08-07 23:07:53 +01:00
Sebastiano Barezzi
db824d3ec7 sdm845-common: udfps: s/hander/handler
Change-Id: I49726102bf33d54a29f2aae1bea707c9a55694b2
2025-08-07 22:47:15 +01:00
Michael Bestas
200d7740bd sdm845-common: Remove deprecated config_mobile_tcp_buffers/networkAttributes
Change-Id: Ieda947e283cde11cf74a01dc1b438e1deeb902c9
2025-06-16 22:37:10 +00:00
Bruno Martins
aa01a2847f sdm845-common: Set libperfmgr mode extension lib via soong config
Change-Id: I39ac8867d98808832738f58eb6f50d456d6d34c4
2025-04-29 23:48:10 +00:00
Andrey Sprynga
c04204c8ff Revert "sdm845-common: audio: Remove direct flag for VOIP RX"
This reverts commit 3acf78511b.

Reason for revert: Broke calls in some apps, WhatsApp for example.

Change-Id: I901e19e6042b6388b43ff2622bfa9e29f02a30cc
2025-04-21 10:28:11 +00:00
Nolen Johnson
f55ed56610 sdm845-common: Don't declare BOARD_VENDOR
* Only matters when it differs from the device OEM.

Change-Id: Id9af8263cb42dc7a0e3a9ce8677385e224910302
2025-04-19 10:57:40 +01:00
Bruno Martins
4468ef3e61 sdm845-common: parts: Move thermal profiles to system category
Icon taken from google/material-design-icons.

Change-Id: Iefc5ea0426b7aefac7b75a1d72878e4b826f7f33
2025-04-14 00:37:05 +01:00
LuK1337
185aff8ce0 sdm845-common: Add libwfdservice_shim for WFD
e69a5be2449122f90220151f9d01ace15221facf in system/hardware/interfaces
broke the ABI ;'(

Change-Id: I3badfc56581a6bf3de5d7e996fa51f59eb164aae
2025-04-13 17:08:25 +01:00
LuK1337
9abf9d6995 sdm845-common: Build libqti_vndfwk_detect.vendor:32
Before:
audio_hw_extn: spkr_prot_feature_init: Called with feature Enabled, vendor_enhanced_info 0x0

After:
audio_hw_extn: spkr_prot_feature_init: Called with feature Enabled, vendor_enhanced_info 0x3

Change-Id: Ie5c33eafc1e0be2eeda8e0a6bbbc3712e32986e9
2025-04-13 17:08:25 +01:00
Cosmin Tanislav
811394557c sdm845-common: Do not manually build dependencies
Change-Id: I4046d8eeabfc70842898b7034f75cdd6bcfc441b
2025-04-13 17:08:25 +01:00
Aaron Kling
bbc2b7373f sdm845-common: Remove elf files in copy files check
New extract files uses packages instead of copy files

Change-Id: I337c07d13bd350958d4808e1693cc6e03753a96c
2025-04-13 17:08:25 +01:00
Michael Bestas
9d072b0390 sdm845-common: Patch libwfdservice to resolve duplicate dependencies
Fixes:
error: module "libwfdservice" variant
"android_arm_armv8-a_cortex-a76_static": depends on multiple
versions of the same aidl_interface:
android.media.audio.common.types-V2-cpp-source,
android.media.audio.common.types-V4-cpp-source

Change-Id: I8086a80fcc238d6b03d16640ee2c4e134129bbab
2025-04-13 17:08:25 +01:00
Bruno Martins
ca40024bda sdm845-common: Setup ELF checks
Co-authored-by: Aaron Kling <webgeek1234@gmail.com>
Co-authored-by: Cosmin Tanislav <demonsingur@gmail.com>
Co-authored-by: Michael Bestas <mkbestas@lineageos.org>
Change-Id: I09130799d80e7abb8b694f5b8fe7266a5ea74fb4
2025-04-13 17:07:53 +01:00
Bruno Martins
b193dea89f sdm845-common: Remove a bunch of unused blobs
Change-Id: I6ec4018106f8dc1806dcbffab3607e6b00667c58
2025-04-04 22:05:53 +01:00
Bruno Martins
aae24cee54 sdm845-common: Downgrade WFD system stack
This is the latest known to be good stack on these targets
while running V QPR2. Prepare for the upcoming breakage.

Change-Id: I3c6af7bf6368420693797ea194fd56701b45b2be
2025-04-04 22:05:38 +01:00
Kumar Anurag Singh
3acf78511b sdm845-common: audio: Remove direct flag for VOIP RX
Remove direct flag for VOIP RX.

Change-Id: I9ee6f300b7a891afd1ad06c063424509d16d271e
2025-04-01 21:29:08 +01:00
Sebastiano Barezzi
48822669c3 sdm845-common: audio: Use AOSP USB v2 audio HAL
Change-Id: I579e442a8c41ec62acc1e5be7478889bf5bc24b8
2025-03-30 15:44:39 +01:00
Bruno Martins
0c9342553b sdm845-common: sepolicy: Rewrite access to BT and WiFi MAC address files
Change-Id: Ia3c2818488ceabe5d6a555723ce04d6a33631382
2025-03-30 15:44:16 +01:00
Bruno Martins
8c18d0c50d sdm845-common: sepolicy: Remove obsolete NXP NFC and eSE rules
Change-Id: Id9d454fb38ca5cd965afb88fa1310b7314dfc46d
2025-03-30 14:37:03 +01:00
Bruno Martins
c711ffb102 sdm845-common: power: Abstract android.hardware.power-ndk dependency
Change-Id: Ic8f9bab6898121e3b69ef9c5936d4261fe3062fb
2025-03-29 10:24:03 +00:00
Tyler Wear
2409bfa771 sdm845-common: tetheroffload: Version 1.1
Update tetheroffload to version 1.1.

Change-Id: I004e44e416a88a1b39a4c80366df9008722f096b
2025-03-08 11:38:17 +00:00
basamaryan
3d75aa91b2 sdm845-common: Move to Xiaomi fingerprint AIDL
Change-Id: I68dba7184034fd37454c7d32a065f041cb611625
2025-02-11 14:02:46 +00:00
LuK1337
c26e3a25d7 sdm845-common: Switch to common lights HAL
Change-Id: If515e7c3f6e5b6895076f1d8381fb2c22bd1b3de
2025-02-07 18:43:52 +00:00
LuK1337
017afb27e3 sdm845-common: Move WfdCommon boot jar declaration to vendor
Change-Id: I8fa2c0f64692873b432cc252ec88b388a32023a1
2025-01-27 23:20:10 +00:00
Gérard Parat
62c520e4a6 sdm845-common: Switch to python extract-utils
Change-Id: Ifad8b3065537a80acef5f391976374f6b582b430
2025-01-27 23:20:07 +00:00
Michael Bestas
16e90f8bd7 sdm845-common: Remove OMX audio codecs
* OMX HW audio codecs won't work without QCOM A/V enhancements, which
   we don't have on Lineage.

Change-Id: I940be6716b603e848c44839bb87ad690eb55e86f
2025-01-27 22:12:16 +00:00
Michael Bestas
9e92c4b3df sdm845-common: Migrate mount point creation out of Android.mk
Change-Id: Id5986b8a740e45f864eecdd2bd82d9455f128d6b
2025-01-27 20:37:03 +00:00
Bruno Martins
acf734767d sdm845-common: Convert WiFi firmware symlinks to install_symlink targets
The last bit that was preventing building hermetic images.

Change-Id: I75bb7de4593a7992f6015317cf97e088beeba0cb
2025-01-27 15:05:46 +00:00
Bruno Martins
87977b2794 sdm845-common: Drop all Android makefiles inclusion within the tree
Change-Id: I33a163d7243fe1203538d6e37a907acd3976f1d4
2025-01-12 09:35:44 +00:00
Bruno Martins
2c2c848569 sdm845-common: pocketmode: Convert to blueprint
Change-Id: I4ac5625d9d4e7dd2d7cc3120a57bfb593c0cf25c
2025-01-12 09:10:31 +00:00
Bruno Martins
02c35b2ca1 sdm845-common: recovery: Convert Android.mk into .bp
Change-Id: Iac161b544e98a7b99183f8bd9b95a8bc1be8c6c0
2025-01-12 09:10:31 +00:00
Bruno Martins
24cbbe2104 sdm845-common: Rename rootdir to init and migrate to blueprints
Change-Id: I86f1b031fda271f70e7385a9faecef02e939d266
2025-01-12 09:10:28 +00:00
Michael Bestas
f2699a7614 sdm845-common: Update display flags & packages
Required after display HAL blueprint conversion

Change-Id: Ib8ae3114ffae6ea5457cb9829fbbecfd7f065b66
2025-01-08 04:30:29 +02:00
Yumi Yukimura
a7940bf3d1 sdm845-common: Switch to QTI Memtrack AIDL HAL
Change-Id: Ibcbaff02fd56fbccc3a88c01a5f46a89cb212ef5
2025-01-04 03:20:27 +02:00
Bruno Martins
61e629d9f6 sdm845-common: Update WFD system stack from OOS 15.0.0.201(EX01)
Change-Id: Ia31624004a10c5e471a146646237bd240e38d07a
2024-12-24 10:47:34 +00:00
Bruno Martins
34bbb95d4c sdm845-common: libperfmgr-ext: Bump to android.hardware.power-V5-ndk
Change-Id: Ia3dd24ff5f8d396d3db3b061db2df53f7bb4ff81
2024-12-22 11:06:18 +00:00
Kelvin Zhang
a6ff654651 sdm845-common: Explicitly set as an non-AB target
We will be changing AB to be the default, existing non-AB targets
need to explicitly set AB_OTA_UPDATER to false

Test: th
Change-Id: I86a76296937a6abab1b4495cd66a35144348aafd
2024-12-15 13:39:40 +00:00
Marc Bourgoin
f6228f3c34 sdm845-common: Remove copy libutils-v33
With enforced elf checks coming on A16, let's switch to the provided one from compat

Change-Id: I193682ca769e902b7a8b2edd850ea14297a71dec
2024-12-05 14:52:23 +00:00
LuK1337
9940956789 sdm845-common: Shim WFD with libgui_shim/libinput_shim
Change-Id: I42bf06bc6b19942303031ef0147dafa6df127fe5
2024-11-24 18:04:29 +00:00
Michael Bestas
b7364a0d2f sdm845-common: Shim widevine with libcrypto_shim
The following change
e202e51cb0
removed symbols that our libs require.

Change-Id: I1325c34ecec3d339dd68c665010ecb36fa2e6a29
2024-11-24 18:04:29 +00:00
Michael Bestas
e6d162888f sdm845-common: Sync extract scripts with 22 templates
Change-Id: I7963ae050cfb193c5d0c2636da9c1e8f82bcdbdb
2024-11-24 18:04:29 +00:00
Christian Hoffmann
973e795d27 sdm845-common: Align with new recovery structure
Change-Id: Ic3ecf63a2888aac08aeaf40677ae7bfa74912030
2024-11-24 18:04:29 +00:00
Michael Bestas
fb8b166860 sdm845-common: Do not override ro.opengles.version
Change-Id: I84fb4d3f09a519384e005af7bc9085b17c26b7f7
2024-11-24 18:04:29 +00:00
Ethan Chen
4b591c5df0 sdm845-common: Do not override ro.vendor.gpu.available_frequencies
Change-Id: Ib47f28d480580d569a0fcdfaa73e731e2eedd9b7
2024-11-24 18:04:29 +00:00
Bruno Martins
d80ee1fea3 sdm845-common: Declare WFD lib as symlink during extraction
Change-Id: I83e3ec03e1ddc58f3a7df008789b1e31584946e1
2024-11-24 17:29:45 +00:00
Luofan Chen
9b57878eb0 sdm845-common: Remove quotes in TARGET_RECOVERY_PIXEL_FORMAT
Change-Id: Ic400a47f0b4b8d2884082b99df3fe2e09c9438f6
2024-11-24 16:42:50 +00:00
120 changed files with 3053 additions and 1915 deletions

View File

@@ -1,3 +1,8 @@
//
// Copyright (C) 2024 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
soong_namespace {
imports: [
"hardware/google/interfaces",
@@ -5,3 +10,17 @@ soong_namespace {
"hardware/xiaomi",
],
}
install_symlink {
name: "firmware_wlan_mac.bin_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/wlan_mac.bin",
symlink_target: "/mnt/vendor/persist/wlan_mac.bin",
}
install_symlink {
name: "firmware_WCNSS_qcom_cfg.ini_symlink",
vendor: true,
installed_location: "firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini",
symlink_target: "/vendor/etc/wifi/WCNSS_qcom_cfg.ini",
}

View File

@@ -1,63 +0,0 @@
#
# Copyright (C) 2018-2024 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
LOCAL_PATH := $(call my-dir)
ifneq ($(filter beryllium dipper equuleus perseus polaris ursa,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
include $(CLEAR_VARS)
# A/B builds require us to create the mount points at compile time.
# Just creating it for all cases since it does not hurt.
FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
$(FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
BT_FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/bt_firmware
$(BT_FIRMWARE_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(BT_FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/bt_firmware
DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp
$(DSP_MOUNT_POINT): $(LOCAL_INSTALLED_MODULE)
@echo "Creating $(DSP_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/dsp
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) $(BT_FIRMWARE_MOUNT_POINT) $(DSP_MOUNT_POINT)
WCNSS_INI_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini
$(WCNSS_INI_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS config ini link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/etc/wifi/$(notdir $@) $@
WCNSS_MAC_SYMLINK := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin
$(WCNSS_MAC_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS MAC bin link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /mnt/vendor/persist/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(WCNSS_INI_SYMLINK) $(WCNSS_MAC_SYMLINK)
LPFLASH := $(HOST_OUT_EXECUTABLES)/lpflash$(HOST_EXECUTABLE_SUFFIX)
INSTALLED_SUPERIMAGE_DUMMY_TARGET := $(PRODUCT_OUT)/super_dummy.img
$(INSTALLED_SUPERIMAGE_DUMMY_TARGET): $(PRODUCT_OUT)/super_empty.img $(LPFLASH)
$(call pretty,"Target dummy super image: $@")
$(hide) touch $@
$(hide) echo $(CURDIR)
$(hide) $(LPFLASH) $(CURDIR)/$@ $(CURDIR)/$(PRODUCT_OUT)/super_empty.img
.PHONY: super_dummyimage
super_dummyimage: $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
INSTALLED_RADIOIMAGE_TARGET += $(INSTALLED_SUPERIMAGE_DUMMY_TARGET)
endif

View File

@@ -4,24 +4,22 @@
# SPDX-License-Identifier: Apache-2.0
#
BOARD_VENDOR := xiaomi
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
COMMON_PATH := device/xiaomi/sdm845-common
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-2a
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT:= kryo385
TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT_RUNTIME := kryo385
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-2a
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := kryo385
TARGET_2ND_CPU_VARIANT := generic
TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := sdm845
@@ -32,11 +30,12 @@ BOARD_BOOT_HEADER_VERSION := 1
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xA84000 androidboot.hardware=qcom androidboot.console=ttyMSM0 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true loop.max_part=7 androidboot.usbcontroller=a600000.dwc3
BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc
BOARD_KERNEL_CMDLINE += cgroup_disable=pressure
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
BOARD_KERNEL_PAGESIZE := 4096
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_CONFIG := vendor/xiaomi/mi845_defconfig
TARGET_KERNEL_CONFIG := vendor/xiaomi/mi845_defconfig vendor/debugfs.config
TARGET_KERNEL_SOURCE := kernel/xiaomi/sdm845
# Platform
@@ -45,17 +44,10 @@ TARGET_BOARD_PLATFORM := sdm845
# Audio
TARGET_PROVIDES_AUDIO_EXTNS := true
# Camera
TARGET_USES_YCRCB_CAMERA_ENCODE := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(COMMON_PATH)/config.fs
# Graphics
TARGET_USES_GRALLOC1 := true
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
@@ -71,20 +63,22 @@ DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
# LMKD
TARGET_LMKD_STATS_LOG := true
# Partitions
SSI_PARTITIONS := system system_ext product
TREBLE_PARTITIONS := vendor odm
ALL_PARTITIONS := $(SSI_PARTITIONS) $(TREBLE_PARTITIONS)
# Media
TARGET_USES_ION := true
$(foreach p, $(call to-upper, $(ALL_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_FILE_SYSTEM_TYPE := ext4) \
$(eval TARGET_COPY_OUT_$(p) := $(call to-lower, $(p))))
# Partitions
AB_OTA_UPDATER := false
BOARD_BOOTIMAGE_PARTITION_SIZE := 67092480
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_USERDATAIMAGE_PARTITION_SIZE := 57453555712
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_USES_METADATA_PARTITION := true
BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
@@ -97,9 +91,14 @@ BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 3221225472
BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 1073741824
BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := $(ALL_PARTITIONS)
BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor
BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 5163188224 # (BOARD_SUPER_PARTITION_SIZE - 4194304) 4MiB overhead
include vendor/lineage/config/BoardConfigReservedSize.mk
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 20971520 # 20MiB
BOARD_VENDORIMAGE_PARTITION_RESERVED_SIZE := 20971520 # 20MiB
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false
@@ -109,24 +108,6 @@ TARGET_COPY_OUT_PRODUCT := product
TARGET_COPY_OUT_SYSTEM_EXT := system_ext
TARGET_COPY_OUT_VENDOR := vendor
# Partitions - reserved size
$(foreach p, $(call to-upper, $(SSI_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_EXTFS_INODE_COUNT := -1))
$(foreach p, $(call to-upper, $(TREBLE_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_EXTFS_INODE_COUNT := 5120))
$(foreach p, $(call to-upper, $(SSI_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_PARTITION_RESERVED_SIZE := 52428800)) # 50 MB
$(foreach p, $(call to-upper, $(TREBLE_PARTITIONS)), \
$(eval BOARD_$(p)IMAGE_PARTITION_RESERVED_SIZE := 20971520)) # 20 MB
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 1287651328 # 1228 MB
endif
# Power
TARGET_POWER_LIBPERFMGR_MODE_EXTENSION_LIB := //$(COMMON_PATH):libperfmgr-ext-xiaomi
# Properties
TARGET_ODM_PROP += $(COMMON_PATH)/odm.prop
TARGET_PRODUCT_PROP += $(COMMON_PATH)/product.prop
@@ -139,7 +120,7 @@ BOARD_USES_QCOM_HARDWARE := true
TARGET_FWK_SUPPORTS_FULL_VALUEADDS := true
# Recovery
TARGET_RECOVERY_PIXEL_FORMAT := "BGRA_8888"
TARGET_RECOVERY_PIXEL_FORMAT := BGRA_8888
# Releasetools
TARGET_RECOVERY_UPDATER_LIBS := librecovery_updater_xiaomi

View File

@@ -41,7 +41,16 @@
<library name="volume_listener" path="libvolumelistener.so"/>
<library name="audiosphere" path="libasphere.so"/>
<library name="shoebox" path="libshoebox.so"/>
<library name="dirac" path="libdirac.so"/>
<library name="v4a_re" path="libv4a_re.so"/>
<!--DOLBY DAP-->
<library name="dap" path="libswdap.so"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<library name="gamedap" path="libswgamedap.so"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<library name="vqe" path="libswvqe.so"/>
<!--DOLBY END-->
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
@@ -89,7 +98,16 @@
<effect name="notification_helper" library="volume_listener" uuid="0b776dde-0590-11e5-81ba-0025b32654a0"/>
<effect name="audiosphere" library="audiosphere" uuid="184e62ab-2d19-4364-9d1b-c0a40733866c"/>
<effect name="shoebox" library="shoebox" uuid="1eab784c-1a36-4b2a-b7fc-e34c44cab89e"/>
<effect name="dirac" library="dirac" uuid="e069d9e0-8329-11df-9168-0002a5d5c51b"/>
<effect name="v4a_standard_re" library="v4a_re" uuid="90380da3-8536-4744-a6a3-5731970e640f"/>
<!--DOLBY DAP-->
<effect name="dap" library="dap" uuid="9d4921da-8225-4f29-aefa-39537a04bcaa"/>
<!--DOLBY END-->
<!--DOLBY GAME-->
<effect name="gamedap" library="gamedap" uuid="3783c334-d3a0-4d13-874f-0032e5fb80e2"/>
<!--DOLBY END-->
<!--DOLBY VQE-->
<effect name="vqe" library="vqe" uuid="64a0f614-7fa4-48b8-b081-d59dc954616f"/>
<!--DOLBY END-->
</effects>
<postprocess>
<stream type="music">

View File

@@ -77,7 +77,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="hifi_playback" role="source" />
<mixPort name="compress_passthrough" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING"/>
<mixPort name="direct_pcm" role="source"
@@ -185,7 +184,6 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="hifi_input" role="sink" maxOpenCount="1" maxActiveCount="2"/>
</mixPorts>
<devicePorts>
@@ -253,14 +251,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
<devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
@@ -291,11 +281,6 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
</devicePort>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
@@ -321,52 +306,30 @@
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic"/>
<route type="mix" sink="record_24"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="mmap_no_irq_in"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,USB Device In,USB Headset In"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
</routes>
</module>
<!-- Usb Audio HAL -->
<module name="usb" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<xi:include href="/vendor/etc/usbv2_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>

View File

@@ -310,7 +310,7 @@
</module>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<xi:include href="/vendor/etc/usbv2_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>

1857
audio/dax-default.xml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- USB Audio HAL Audio Policy Configuration file -->
<module name="usbv2" halVersion="2.0">
<mixPorts>
<mixPort name="usb_accessory output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="usb_device output" role="source"/>
<mixPort name="usb_device input" role="sink"/>
</mixPorts>
<devicePorts>
<devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink"/>
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink"/>
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source"/>
<devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source"/>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
<route type="mix" sink="USB Device Out"
sources="usb_device output"/>
<route type="mix" sink="USB Headset Out"
sources="usb_device output"/>
<route type="mix" sink="usb_device input"
sources="USB Device In,USB Headset In"/>
</routes>
</module>

View File

@@ -140,6 +140,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
<Limit name="performance-point-3840x2160" value="60" />
@@ -157,6 +158,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-4096x2160" value="30" />
<Limit name="performance-point-3840x2160" value="30" />
@@ -174,6 +176,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -194,6 +197,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -211,6 +215,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -227,6 +232,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
@@ -240,6 +246,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1088" value="30" />
@@ -254,6 +261,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-240" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="24" />
<Limit name="performance-point-4096x2160" value="30" />
@@ -271,6 +279,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="6" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -288,6 +297,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
@@ -304,6 +314,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-4096x2160" value="60" />
@@ -321,6 +332,7 @@ Only the three quirks included above are recognized at this point:
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />

View File

@@ -1,9 +1,7 @@
[
{
"repository": "LineageOS/android_hardware_xiaomi",
"target_path": "hardware/xiaomi",
"remote": "github-non-los",
"branch": "lineage-21"
"repository": "hardware_xiaomi",
"target_path": "hardware/xiaomi"
},
{
"repository": "vendor_xiaomi_sdm845-common",

94
extract-files.py Executable file
View File

@@ -0,0 +1,94 @@
#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
#
# SPDX-FileCopyrightText: 2025 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
from extract_utils.fixups_blob import (
blob_fixup,
blob_fixups_user_type,
)
from extract_utils.fixups_lib import (
lib_fixups,
lib_fixups_user_type,
)
from extract_utils.main import (
ExtractUtils,
ExtractUtilsModule,
)
namespace_imports = [
'device/xiaomi/sdm845-common',
'hardware/qcom-caf/sdm845',
'hardware/qcom-caf/wlan',
'hardware/xiaomi',
'vendor/qcom/opensource/commonsys-intf/display',
'vendor/qcom/opensource/commonsys/display',
'vendor/qcom/opensource/dataservices',
'vendor/qcom/opensource/display',
]
def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
return f'{lib}_{partition}' if partition == 'vendor' else None
lib_fixups: lib_fixups_user_type = {
**lib_fixups,
(
'com.qualcomm.qti.dpm.api@1.0',
'com.qualcomm.qti.imscmservice@1.0',
'com.qualcomm.qti.imscmservice@2.0',
'com.qualcomm.qti.imscmservice@2.1',
'com.qualcomm.qti.imscmservice@2.2',
'com.qualcomm.qti.uceservice@2.0',
'com.qualcomm.qti.uceservice@2.1',
'libmmosal',
'vendor.qti.hardware.radio.ims@1.0',
'vendor.qti.hardware.radio.ims@1.1',
'vendor.qti.hardware.radio.ims@1.2',
'vendor.qti.hardware.radio.ims@1.3',
'vendor.qti.hardware.radio.ims@1.4',
'vendor.qti.hardware.wifidisplaysession@1.0',
'vendor.qti.ims.callinfo@1.0',
'vendor.qti.ims.rcsconfig@1.0',
'vendor.qti.imsrtpservice@2.0',
'vendor.qti.imsrtpservice@2.1',
): lib_fixup_vendor_suffix,
}
blob_fixups: blob_fixups_user_type = {
'system_ext/bin/wfdservice': blob_fixup()
.add_needed('libwfdservice_shim.so'),
'system_ext/etc/permissions/qcrilhook.xml': blob_fixup()
.regex_replace('/product/framework/', '/system_ext/framework/'),
'system_ext/etc/permissions/qti_libpermissions.xml': blob_fixup()
.regex_replace('name="android.hidl.manager-V1.0-java', 'name="android.hidl.manager@1.0-java'),
'system_ext/lib/libwfdmmsrc_system.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib/libwfdservice.so': blob_fixup()
.replace_needed('android.media.audio.common.types-V2-cpp.so', 'android.media.audio.common.types-V4-cpp.so'),
'system_ext/lib64/lib-imsvideocodec.so': blob_fixup()
.add_needed('libgui_shim.so'),
'system_ext/lib64/libwfdnative.so': blob_fixup()
.add_needed('libbinder_shim.so')
.add_needed('libinput_shim.so'),
'vendor/bin/pm-service': blob_fixup()
.add_needed('libutils-v33.so'),
('vendor/lib64/libwvhidl.so', 'vendor/lib64/mediadrm/libwvdrmengine.so'): blob_fixup()
.add_needed('libcrypto_shim.so'),
('vendor/lib64/libdlbdsservice.so', 'vendor/lib/libstagefright_soft_ac4dec.so', 'vendor/lib/libstagefright_soft_ddpdec.so'): blob_fixup()
.replace_needed('libstagefright_foundation.so', 'libstagefright_foundation-v33.so'),
} # fmt: skip
module = ExtractUtilsModule(
'sdm845-common',
'xiaomi',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

View File

@@ -1,117 +0,0 @@
#!/bin/bash
#
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
#
set -e
# Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
ANDROID_ROOT="${MY_DIR}/../../.."
# If XML files don't have comments before the XML header, use this flag
# Can still be used with broken XML files by using blob_fixup
export TARGET_DISABLE_XML_FIXING=true
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
if [ ! -f "${HELPER}" ]; then
echo "Unable to find helper script at ${HELPER}"
exit 1
fi
source "${HELPER}"
# Default to sanitizing the vendor folder before extraction
CLEAN_VENDOR=true
ONLY_COMMON=
ONLY_TARGET=
SECTION=
KANG=
while [ "${#}" -gt 0 ]; do
case "${1}" in
--only-common)
ONLY_COMMON=true
;;
--only-firmware)
ONLY_FIRMWARE=true
;;
--only-target)
ONLY_TARGET=true
;;
-n | --no-cleanup)
CLEAN_VENDOR=false
;;
-k | --kang)
KANG="--kang"
;;
-s | --section)
SECTION="${2}"
shift
CLEAN_VENDOR=false
;;
*)
SRC="${1}"
;;
esac
shift
done
if [ -z "${SRC}" ]; then
SRC="adb"
fi
function blob_fixup() {
case "${1}" in
system_ext/etc/permissions/qcrilhook.xml)
[ "$2" = "" ] && return 0
sed -i "s/\/product\/framework\//\/system_ext\/framework\//g" "${2}"
;;
system_ext/etc/permissions/qti_libpermissions.xml)
[ "$2" = "" ] && return 0
sed -i "s/name=\"android.hidl.manager-V1.0-java/name=\"android.hidl.manager@1.0-java/g" "${2}"
;;
system_ext/lib64/lib-imsvideocodec.so)
[ "$2" = "" ] && return 0
grep -q "libgui_shim.so" "${2}" || ${PATCHELF} --add-needed "libgui_shim.so" "${2}"
;;
vendor/bin/pm-service)
[ "$2" = "" ] && return 0
grep -q libutils-v33.so "${2}" || "${PATCHELF}" --add-needed "libutils-v33.so" "${2}"
;;
vendor/lib/camera/components/com.qti.node.watermark.so)
[ "$2" = "" ] && return 0
grep -q "libpiex_shim.so" "${2}" || ${PATCHELF} --add-needed "libpiex_shim.so" "${2}"
;;
*)
return 1
;;
esac
return 0
}
function blob_fixup_dry() {
blob_fixup "$1" ""
}
if [ -z "${ONLY_TARGET}" ]; then
# Initialize the helper for common device
setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then
# Reinitialize the helper for device
source "${MY_DIR}/../${DEVICE}/extract-files.sh"
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
fi
"${MY_DIR}/setup-makefiles.sh"

62
init/Android.bp Normal file
View File

@@ -0,0 +1,62 @@
//
// Copyright (C) 2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
prebuilt_etc {
name: "fstab.zram",
src: "fstab.zram",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.power.rc",
src: "init.qcom.power.rc",
sub_dir: "init/hw",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.rc",
src: "init.qcom.rc",
sub_dir: "init/hw",
soc_specific: true,
}
prebuilt_etc {
name: "init.qcom.recovery.rc",
src: "init.qcom.recovery.rc",
sub_dir: "init",
recovery: true,
}
prebuilt_etc {
name: "ueventd.qcom.rc",
filename: "ueventd.rc",
src: "ueventd.qcom.rc",
soc_specific: true,
}
sh_binary {
name: "init.qcom.early_boot.sh",
src: "init.qcom.early_boot.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.post_boot.sh",
src: "init.qcom.post_boot.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.sensors.sh",
src: "init.qcom.sensors.sh",
soc_specific: true,
}
sh_binary {
name: "init.qcom.sh",
src: "init.qcom.sh",
soc_specific: true,
}

View File

@@ -47,3 +47,6 @@ fi
misc_link=$(ls -l /dev/block/bootdevice/by-name/misc)
real_path=${misc_link##*>}
setprop persist.vendor.mmi.misc_dev_path $real_path
echo 2 > /proc/irq/7/smp_affinity_list # msm_drm
echo 1 > /proc/irq/493/smp_affinity_list # kgsl-3d0

View File

@@ -132,6 +132,7 @@ on property:init.svc.vendor.charger=running
mount tmpfs tmpfs /data
start vendor.thermal-engine
setprop vendor.usb.controller a600000.dwc3
setprop sys.usb.configfs 1
on enable-low-power
# Set the default IRQ affinity to the silver cluster.
@@ -240,7 +241,7 @@ on enable-low-power
write /sys/devices/platform/soc/${ro.boot.bootdevice}/clkgate_enable 1
write /sys/devices/platform/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1
write /proc/sys/vm/swappiness 100
write /proc/sys/vm/swappiness 60
write /proc/sys/vm/watermark_scale_factor 1
# Enable PowerHAL hint processing

View File

@@ -614,14 +614,6 @@ service chre /vendor/bin/chre
socket chre seqpacket 0660 root system
shutdown critical
# Set GPU OpenGL ES version
on property:vendor.opengles.version=*
setprop ro.opengles.version ${vendor.opengles.version}
# Set gpu available frequencies property
on property:vendor.gpu.available_frequencies=*
setprop ro.vendor.gpu.available_frequencies ${vendor.gpu.available_frequencies}
service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
override
class hal
@@ -711,3 +703,7 @@ on property:init.svc.vendor.hwcomposer-2-3=running
on property:init.svc.vendor.hwcomposer-2-3=restarting
stop ppd
on property:init.svc.statsd=running
# Stop trying to kill my device after 3 days ugh
stop statsd

View File

@@ -1,22 +1,12 @@
//
// Copyright (C) 2019 The LineageOS Project
// SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
cc_binary {
name: "vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845",
init_rc: ["vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845.rc"],
defaults: ["hidl_defaults"],
name: "vendor.lineage.livedisplay-service.xiaomi_sdm845",
init_rc: ["vendor.lineage.livedisplay-service.xiaomi_sdm845.rc"],
vintf_fragments: ["vendor.lineage.livedisplay-service.xiaomi_sdm845.xml"],
relative_install_path: "hw",
srcs: [
"SunlightEnhancement.cpp",
@@ -25,9 +15,9 @@ cc_binary {
vendor: true,
shared_libs: [
"libbase",
"libbinder_ndk",
"libbinder",
"libhidlbase",
"libutils",
"vendor.lineage.livedisplay@2.0",
"vendor.lineage.livedisplay-V1-ndk",
],
}

View File

@@ -1,17 +1,6 @@
/*
* Copyright (C) 2019 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
#define LOG_TAG "SunlightEnhancementService"
@@ -25,11 +14,7 @@
#include "SunlightEnhancement.h"
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
namespace implementation {
namespace {
static constexpr const char* kDispParamPath =
"/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/disp_param";
@@ -52,6 +37,13 @@ bool hasFingerprintOnDisplay() {
return device == "equuleus" || device == "ursa";
}
} // anonymous namespace
namespace aidl {
namespace vendor {
namespace lineage {
namespace livedisplay {
bool SunlightEnhancement::isSupported() {
if (hasAmoledPanel()) {
std::ofstream disp_param_file(kDispParamPath);
@@ -69,26 +61,37 @@ bool SunlightEnhancement::isSupported() {
return false;
}
Return<bool> SunlightEnhancement::isEnabled() {
ndk::ScopedAStatus SunlightEnhancement::getEnabled(bool* _aidl_return) {
std::ifstream hbm_status_file(kHbmStatusPath);
int result = -1;
hbm_status_file >> result;
return !hbm_status_file.fail() && result > 0;
if (hbm_status_file.fail()) {
LOG(ERROR) << "Failed to read current HBM state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
*_aidl_return = result > 0;
return ndk::ScopedAStatus::ok();
}
Return<bool> SunlightEnhancement::setEnabled(bool enabled) {
ndk::ScopedAStatus SunlightEnhancement::setEnabled(bool enabled) {
std::ofstream disp_param_file(kDispParamPath);
if (hasFingerprintOnDisplay()) {
disp_param_file << (enabled ? kDispParamHbmFodOn : kDispParamHbmFodOff);
} else {
disp_param_file << (enabled ? kDispParamHbmOn : kDispParamHbmOff);
}
LOG(DEBUG) << "setEnabled fail " << disp_param_file.fail();
return !disp_param_file.fail();
if (disp_param_file.fail()) {
LOG(ERROR) << "Not possible to write HBM state";
return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION);
}
return ndk::ScopedAStatus::ok();
}
} // namespace implementation
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage
} // namespace vendor
} // namespace aidl

View File

@@ -1,49 +1,27 @@
/*
* Copyright (C) 2019 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H
#define VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H
#pragma once
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
#include <vendor/lineage/livedisplay/2.0/ISunlightEnhancement.h>
#include <aidl/vendor/lineage/livedisplay/BnSunlightEnhancement.h>
namespace aidl {
namespace vendor {
namespace lineage {
namespace livedisplay {
namespace V2_0 {
namespace implementation {
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::sp;
class SunlightEnhancement : public ISunlightEnhancement {
class SunlightEnhancement : public BnSunlightEnhancement {
public:
bool isSupported();
// Methods from ::vendor::lineage::livedisplay::V2_0::ISunlightEnhancement follow.
Return<bool> isEnabled() override;
Return<bool> setEnabled(bool enabled) override;
// Methods from ::aidl::vendor::lineage::livedisplay::BnSunlightEnhancement follow.
ndk::ScopedAStatus getEnabled(bool* _aidl_return) override;
ndk::ScopedAStatus setEnabled(bool enabled) override;
};
} // namespace implementation
} // namespace V2_0
} // namespace livedisplay
} // namespace lineage
} // namespace vendor
#endif // VENDOR_LINEAGE_LIVEDISPLAY_V2_0_SUNLIGHTENHANCEMENT_H
} // namespace aidl

View File

@@ -1,69 +1,53 @@
/*
* Copyright (C) 2019 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* SPDX-FileCopyrightText: 2019-2025 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
#define LOG_TAG "lineage.livedisplay@2.0-service.xiaomi_sdm845"
#define LOG_TAG "vendor.lineage.livedisplay-service.xiaomi_sdm845"
#include <android-base/logging.h>
#include <android/binder_manager.h>
#include <android/binder_process.h>
#include <binder/ProcessState.h>
#include <hidl/HidlTransportSupport.h>
#include "SunlightEnhancement.h"
using android::OK;
using android::sp;
using android::status_t;
using android::hardware::configureRpcThreadpool;
using android::hardware::joinRpcThreadpool;
using ::vendor::lineage::livedisplay::V2_0::ISunlightEnhancement;
using ::vendor::lineage::livedisplay::V2_0::implementation::SunlightEnhancement;
using ::aidl::vendor::lineage::livedisplay::SunlightEnhancement;
int main() {
sp<SunlightEnhancement> sunlightEnhancement;
status_t status;
std::shared_ptr<SunlightEnhancement> se = ndk::SharedRefBase::make<SunlightEnhancement>();
std::string instance = std::string() + SunlightEnhancement::descriptor + "/default";
binder_status_t status;
android::ProcessState::self()->setThreadPoolMaxThreadCount(1);
android::ProcessState::self()->startThreadPool();
LOG(INFO) << "LiveDisplay HAL custom service is starting.";
sunlightEnhancement = new SunlightEnhancement();
if (sunlightEnhancement == nullptr) {
if (se == nullptr) {
LOG(ERROR) << "Can not create an instance of LiveDisplay HAL SunlightEnhancement Iface,"
<< "exiting.";
goto shutdown;
}
if (!sunlightEnhancement->isSupported()) {
if (!se->isSupported()) {
LOG(ERROR) << "SunlightEnhancement Iface is not supported, gracefully bailing out.";
return 1;
return EXIT_SUCCESS;
}
configureRpcThreadpool(1, true /*callerWillJoin*/);
status = sunlightEnhancement->registerAsService();
if (status != OK) {
status = AServiceManager_addService(se->asBinder().get(), instance.c_str());
if (status != STATUS_OK) {
LOG(ERROR) << "Could not register service for LiveDisplay HAL SunlightEnhancement Iface ("
<< status << ")";
goto shutdown;
}
LOG(INFO) << "LiveDisplay HAL custom service is ready.";
joinRpcThreadpool();
ABinderProcess_joinThreadPool();
// Should not pass this line
shutdown:
// In normal operation, we don't expect the thread pool to shutdown
LOG(ERROR) << "LiveDisplay HAL custom service is shutting down.";
return 1;
return EXIT_FAILURE; // Should not reach
}

View File

@@ -2,7 +2,7 @@ on boot
chown system system /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/disp_param
chown system system /sys/devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/hbm_status
service vendor.livedisplay-hal-2-0 /vendor/bin/hw/vendor.lineage.livedisplay@2.0-service.xiaomi_sdm845
class hal
service vendor.livedisplay-hal /vendor/bin/hw/vendor.lineage.livedisplay-service.xiaomi_sdm845
class late_start
user system
group system

View File

@@ -0,0 +1,10 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>vendor.lineage.livedisplay</name>
<version>1</version>
<interface>
<name>ISunlightEnhancement</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

View File

@@ -128,15 +128,6 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.neuralnetworks</name>
<transport>hwbinder</transport>
@@ -195,7 +186,7 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<hal format="hidl">
<name>android.hardware.tetheroffload.control</name>
<transport>hwbinder</transport>
<version>1.0</version>
<version>1.1</version>
<interface>
<name>IOffloadControl</name>
<instance>default</instance>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- PowerOffAlarmService -->
<bool name="config_powerOffAlarmEnabled">true</bool>
<!-- Whether the device supports Smart Pixels -->
<bool name="config_supportSmartPixels">false</bool>
</resources>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2024 The Evolution X Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- FPSInfoService FPS node file path -->
<string name="config_fpsInfoSysNode" translatable="false">/sys/class/drm/sde-crtc-0/measured_fps</string>
<!-- Show 5G toggle in internet dialog when available -->
<bool name="config_supportsVONR">false</bool>
<!-- The CPU temperature divider, if needed -->
<integer name="config_cpuTempDivider" translatable="false">1000</integer>
</resources>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Show battery cycle count -->
<bool name="config_show_battery_cycle_count" translatable="false">true</bool>
</resources>

View File

@@ -39,29 +39,6 @@
<string name="config_mms_user_agent_profile_url" translatable="false"
>http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
<!-- This string array should be overridden by the device to present a list of network
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
<!-- An Array of "[Connection name],[ConnectivityManager.TYPE_xxxx],
[associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet] -->
<!-- the 5th element "resore-time" indicates the number of milliseconds to delay
before automatically restore the default connection. Set -1 if the connection
does not require auto-restore. -->
<!-- the 6th element indicates boot-time dependency-met value. -->
<string-array translatable="false" name="networkAttributes">
<item>wifi,1,1,1,-1,true</item>
<item>mobile,0,0,0,-1,true</item>
<item>mobile_mms,2,0,4,300000,true</item>
<item>mobile_supl,3,0,2,300000,true</item>
<item>mobile_dun,4,0,2,300000,true</item>
<item>mobile_hipri,5,0,3,300000,true</item>
<item>mobile_fota,10,0,2,300000,true</item>
<item>mobile_ims,11,0,2,300000,true</item>
<item>mobile_cbs,12,0,2,300000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>ethernet,9,9,4,-1,true</item>
</string-array>
<!-- This string array should be overridden by the device to present a list of radio
attributes. This is used by the connectivity manager to decide which networks can coexist
based on the hardware -->
@@ -168,24 +145,6 @@
that can be set by the user. -->
<integer name="config_screenBrightnessDoze">17</integer>
<!-- Configure mobile tcp buffer sizes in the form:
rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
If no value is found for the rat-name in use, the system default will be applied.
-->
<string-array name="config_mobile_tcp_buffers">
<item>5gnr:2097152,6291456,16777216,512000,2097152,8388608</item>
<item>lte:2097152,4194304,8388608,262144,524288,1048576</item>
<item>lte_ca:4096,6291456,12582912,4096,1048576,2097152</item>
<item>umts:4094,87380,1220608,4096,16384,1220608</item>
<item>hspa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,1220608,4096,16384,1220608</item>
<item>hsdpa:4094,87380,1220608,4096,16384,1220608</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>gprs:4092,8760,11680,4096,8760,11680</item>
<item>evdo:4094,87380,524288,4096,16384,262144</item>
</string-array>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
@@ -249,13 +208,10 @@
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/system_ext/priv-app/SystemUI/SystemUI.apk"</item>
<item>"/system/bin/surfaceflinger"</item>
<item>/system/lib64/libRScpp.so</item>
<item>/system/lib64/libRS.so</item>
<item>/system/lib64/libRS_internal.so</item>
<item>/system/lib64/libbcinfo.so</item>
<item>/system/lib64/libRSDriver.so</item>
<item>/system/lib64/libRSCpuRef.so</item>
<item>/system/lib64/libblas.so</item>
<item>"/system/lib64/libEGL.so"</item>
<item>"/system/lib64/libhwui.so"</item>
<item>"/vendor/lib64/egl/libGLESv2_adreno.so"</item>
<item>"/vendor/lib64/libgsl.so"</item>
</string-array>
<!-- Vibrator pattern for feedback about touching a virtual key -->
@@ -265,9 +221,6 @@
<item>13</item>
</integer-array>
<!-- Should the pinner service pin the Camera application? -->
<bool name="config_pinnerCameraApp">true</bool>
<!-- Should the pinner service pin the Home application? -->
<bool name="config_pinnerHomeApp">true</bool>
@@ -277,14 +230,6 @@
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- List of biometric sensors on the device, in decreasing strength. Consumed by AuthService
when registering authenticators with BiometricService. Format must be ID:Modality:Strength,
where: IDs are unique per device, Modality as defined in BiometricAuthenticator.java,
and Strength as defined in Authenticators.java -->
<string-array name="config_biometric_sensors" translatable="false" >
<item>0:2:15</item> <!-- ID0:Fingerprint:Strong -->
</string-array>
<!-- Enable Zram writeback feature to allow unused pages in zram be written to flash. -->
<bool name="config_zramWriteback">true</bool>
@@ -315,4 +260,7 @@
running in WAL mode.
Choices are: FULL, NORMAL, OFF. -->
<string name="db_wal_sync_mode" translatable="false">OFF</string>
<!-- Feature flag to store TaskSnapshot in 16 bit pixel format to save memory. -->
<bool name="config_use16BitTaskSnapshotPixelFormat">true</bool>
</resources>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-24 Paranoid Android
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Dolby Atmos -->
<string-array name="dolby_profile_entries">
<item>@string/dolby_profile_dynamic</item>
<item>@string/dolby_profile_video</item>
<item>@string/dolby_profile_music</item>
<item>@string/dolby_profile_game</item>
<item>@string/dolby_profile_voice</item>
</string-array>
<string-array name="dolby_profile_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>8</item>
<item>9</item>
</string-array>
</resources>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023-24 Paranoid Android
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Dolby profiles -->
<string name="dolby_profile_dynamic">Dynamic</string>
<string name="dolby_profile_video">Movie/Video</string>
<string name="dolby_profile_music">Music</string>
<string name="dolby_profile_game">Game</string>
<string name="dolby_profile_voice">Voice</string>
</resources>

View File

@@ -1,7 +0,0 @@
[
"/dev/video0",
"/dev/video1",
"/dev/video2",
"/dev/video32",
"/dev/video33"
]

View File

@@ -1,20 +0,0 @@
#!/system/bin/sh
#
# Copyright (C) 2021 The PixelExperience Project
#
# SPDX-License-Identifier: Apache-2.0
#
SUPER="/dev/block/by-name/system"
mkdir /tmp/super-mnt
mount $SUPER /tmp/super-mnt 2>/dev/null
if [ "$?" = "0" ]; then
echo "Detected stock /system in super partition, flashing super_dummy.img!"
umount /tmp/super-mnt
dd if=/tmp/super_dummy.img of=$SUPER
fi
rmdir /tmp/super-mnt

View File

@@ -16,6 +16,7 @@ android_app {
static_libs: [
"org.lineageos.settings.resources",
"SettingsLib",
],
optimize: {

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
2017-2021 The LineageOS Project
2017-2021,2025 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -31,28 +31,19 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/device_settings_app_name"
android:persistent="true"
android:theme="@style/Theme.SubSettingsBase">
android:theme="@style/Theme.SubSettingsBase"
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true">
<receiver
android:name=".BootCompletedReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<intent-filter android:priority="1000">
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<activity
android:name=".dirac.DiracActivity"
android:exported="false"
android:label="@string/dirac_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.sound" />
</activity>
<service
android:name=".doze.DozeService"
android:exported="true"
@@ -64,9 +55,13 @@
android:exported="false"
android:label="@string/ambient_display_title">
<intent-filter>
<action android:name="org.lineageos.settings.device.DOZE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.display" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/doze_summary" />
</activity>
<activity
@@ -75,16 +70,23 @@
android:label="@string/thermal_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.battery" />
android:value="com.android.settings.category.ia.system" />
<meta-data
android:name="com.android.settings.icon"
android:resource="@drawable/ic_settings_thermal" />
<meta-data
android:name="com.android.settings.icon_tintable"
android:value="true" />
<meta-data
android:name="com.android.settings.order"
android:value="-255" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/thermal_summary" />
<meta-data
android:name="com.android.settings.order"
android:value="1" />
</activity>
<service
@@ -93,5 +95,19 @@
android:permission="ThermalService">
</service>
<activity
android:name=".speaker.ClearSpeakerActivity"
android:exported="false"
android:label="@string/clear_speaker_title">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.sound" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/clear_speaker_summary" />
</activity>
</application>
</manifest>

View File

@@ -1,7 +1,11 @@
-keep class org.lineageos.settings.dirac.* {
*;
}
-keep class org.lineageos.settings.doze.* {
*;
}
-keep class org.lineageos.settings.speaker.* {
*;
}
-keep class org.lineageos.settings.thermal.* {
*;
}

View File

@@ -0,0 +1,9 @@
<!-- drawable/phone_text.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M17,19V5H7V19H17M17,1A2,2 0 0,1 19,3V21A2,2 0 0,1 17,23H7C5.89,23 5,22.1 5,21V3C5,1.89 5.89,1 7,1H17M9,7H15V9H9V7M9,11H13V13H9V11Z" />
</vector>

View File

@@ -4,6 +4,6 @@
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M9.64,13.4C8.63,12.5 7.34,12.03 6,12V15L2,11L6,7V10C7.67,10 9.3,10.57 10.63,11.59C10.22,12.15 9.89,12.76 9.64,13.4M18,15V12C17.5,12 13.5,12.16 13.05,16.2C14.61,16.75 15.43,18.47 14.88,20.03C14.33,21.59 12.61,22.41 11.05,21.86C9.5,21.3 8.67,19.59 9.22,18.03C9.5,17.17 10.2,16.5 11.05,16.2C11.34,12.61 14.4,9.88 18,10V7L22,11L18,15M13,19A1,1 0 0,0 12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19M11,11.12C11.58,10.46 12.25,9.89 13,9.43V5H16L12,1L8,5H11V11.12Z" />
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M 13 7 L 11 7 L 11 9 L 13 9 L 13 7 Z M 13 11 L 11 11 L 11 17 L 13 17 L 13 11 Z M 17 1.01 L 7 1 C 5.9 1 5 1.9 5 3 L 5 21 C 5 22.1 5.9 23 7 23 L 17 23 C 18.1 23 19 22.1 19 21 L 19 3 C 19 1.9 18.1 1.01 17 1.01 Z M 17 19 L 7 19 L 7 5 L 17 5 L 17 19 Z" />
</vector>

View File

@@ -0,0 +1,9 @@
<!-- drawable/cellphone_text.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#000" android:pathData="M17,19V5H7V19H17M17,1A2,2 0 0,1 19,3V21A2,2 0 0,1 17,23H7C5.89,23 5,22.1 5,21V3C5,1.89 5.89,1 7,1H17M9,7H15V9H9V7M9,11H13V13H9V11Z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M15,13L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v8c-1.21,0.91 -2,2.37 -2,4 0,2.76 2.24,5 5,5s5,-2.24 5,-5c0,-1.63 -0.79,-3.09 -2,-4zM11,5c0,-0.55 0.45,-1 1,-1s1,0.45 1,1h-1v1h1v2h-1v1h1v2h-2L11,5z"/>
</vector>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:tint="?android:attr/colorControlNormal"
android:viewportHeight="24">
<path
android:pathData="M0 0h24v24H0z" />
<path
android:fillColor="#FFFFFFFF"
android:pathData="M20 4H4c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2V6c0-1.1-0.9-2-2-2zM7.76 16.24l-1.41 1.41C4.78 16.1 4 14.05 4 12c0-2.05 0.78 -4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s0.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-0.59-3.07-1.76-4.24l1.41-1.41C19.22 7.9 20 9.95 20 12c0 2.05-0.78 4.1-2.34 5.66zM12 10c-1.1 0-2 0.9-2 2s0.9 2 2 2 2-0.9 2-2-0.9-2-2-2z" />
</vector>

View File

@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?android:attr/colorControlNormal"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M17 3H21V5H17V3M17 7H21V9H17V7M17 11H21V13H17.75L17 12.1V11M21 15V17H19C19 16.31 18.9 15.63 18.71 15H21M7 3V5H3V3H7M7 7V9H3V7H7M7 11V12.1L6.25 13H3V11H7M3 15H5.29C5.1 15.63 5 16.31 5 17H3V15M15 13V5C15 3.34 13.66 2 12 2S9 3.34 9 5V13C6.79 14.66 6.34 17.79 8 20S12.79 22.66 15 21 17.66 16.21 16 14C15.72 13.62 15.38 13.28 15 13M12 4C12.55 4 13 4.45 13 5V8H11V5C11 4.45 11.45 4 12 4Z" />
</vector>

View File

@@ -1,19 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="5.50297"
android:scaleY="5.52411"
android:translateX="-59.0634"
android:translateY="-57.934">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M10.961 13.514c0 -1.078 0.874 -1.952 1.953 -1.952 0.555 0 1.057 0.232 1.412 0.604l-0.583 0.141c-0.236 -0.162 -0.522 -0.257 -0.829 -0.257 -0.809 0 -1.465 0.655 -1.465 1.464l0 0c0 0.135 -0.109 0.244 -0.244 0.244 -0.134 0 -0.244 -0.109 -0.244 -0.244l0 0zm3.417 0c0 -0.094 -0.009 -0.185 -0.026 -0.274l0.429 -0.297c0.055 0.181 0.085 0.373 0.085 0.571 0 0.135 -0.109 0.244 -0.244 0.244 -0.135 0 -0.244 -0.109 -0.244 -0.244l0 0zm-0.02 -1.097c0.102 -0.028 0.212 0.022 0.256 0.121 0.045 0.101 0.007 0.219 -0.085 0.275l0 0 -1.313 0.833c-0.011 0.008 -0.023 0.016 -0.035 0.023l-0.001 0 0 0c-0.013 0.008 -0.025 0.014 -0.039 0.02 -0.226 0.101 -0.491 0 -0.592 -0.226 -0.101 -0.225 0 -0.491 0.226 -0.592 0.026 -0.012 0.052 -0.021 0.079 -0.027l1.504 -0.427 0 0z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 20.38 8.57 L 19.15 10.42 C 19.743 11.603 20.034 12.915 19.995 14.238 C 19.957 15.561 19.591 16.853 18.93 18 L 5.07 18 C 4.211 16.51 3.855 14.783 4.055 13.075 C 4.255 11.367 5 9.769 6.179 8.517 C 7.359 7.266 8.911 6.428 10.604 6.128 C 12.297 5.827 14.042 6.081 15.58 6.85 L 17.43 5.62 C 15.547 4.412 13.312 3.871 11.085 4.083 C 8.858 4.295 6.765 5.248 5.143 6.789 C 3.522 8.33 2.463 10.372 2.138 12.585 C 1.813 14.798 2.24 17.058 3.35 19 C 3.524 19.302 3.775 19.554 4.077 19.729 C 4.379 19.904 4.721 19.998 5.07 20 L 18.92 20 C 19.272 20.001 19.619 19.91 19.925 19.734 C 20.23 19.558 20.484 19.305 20.66 19 C 21.581 17.404 22.044 15.584 21.996 13.742 C 21.948 11.9 21.393 10.106 20.39 8.56 Z M 10.59 15.41 C 10.838 15.659 11.148 15.837 11.487 15.928 C 11.826 16.019 12.184 16.019 12.523 15.928 C 12.862 15.837 13.172 15.659 13.42 15.41 L 19.08 6.92 L 10.59 12.58 C 10.341 12.828 10.163 13.138 10.072 13.477 C 9.981 13.816 9.981 14.174 10.072 14.513 C 10.163 14.852 10.341 15.162 10.59 15.41 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

View File

@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 12 2 C 6.48 2 2 6.48 2 12 C 2 17.52 6.48 22 12 22 C 17.52 22 22 17.52 22 12 C 22 6.48 17.52 2 12 2 Z M 11 19.93 C 7.05 19.44 4 16.08 4 12 C 4 11.38 4.08 10.79 4.21 10.21 L 9 15 L 9 16 C 9 17.1 9.9 18 11 18 L 11 19.93 Z M 17.9 17.39 C 17.64 16.58 16.9 16 16 16 L 15 16 L 15 13 C 15 12.45 14.55 12 14 12 L 8 12 L 8 10 L 10 10 C 10.55 10 11 9.55 11 9 L 11 7 L 13 7 C 14.1 7 15 6.1 15 5 L 15 4.59 C 17.93 5.78 20 8.65 20 12 C 20 14.08 19.2 15.97 17.9 17.39 Z"
android:fillColor="?android:attr/colorAccent"
android:pathData="M2.546,5.862C4.557,2.772 8.042,0.727 12,0.727C15.958,0.727 19.443,2.772 21.454,5.862C21.584,5.947 21.674,6.086 21.694,6.246C22.697,7.931 23.273,9.899 23.273,12C23.273,18.222 18.222,23.273 12,23.273C5.778,23.273 0.727,18.222 0.727,12C0.727,9.899 1.303,7.931 2.306,6.246C2.326,6.086 2.416,5.947 2.546,5.862ZM7.784,18.049L5.229,18.049C6.602,19.585 8.49,20.651 10.62,20.977C9.503,20.219 8.537,19.221 7.784,18.049ZM18.771,18.049L16.31,18.049C15.564,19.211 14.608,20.202 13.503,20.957C15.583,20.61 17.424,19.555 18.771,18.049ZM13.235,18.049L10.86,18.049C11.207,18.703 11.606,19.307 12.047,19.852C12.488,19.307 12.888,18.703 13.235,18.049ZM6.086,13.083L2.983,13.083C3.101,14.074 3.379,15.016 3.79,15.882L6.713,15.882C6.393,15.001 6.178,14.062 6.086,13.083ZM21.017,13.083L18.008,13.083C17.916,14.062 17.702,15.001 17.382,15.882L20.21,15.882C20.621,15.016 20.899,14.074 21.017,13.083ZM14.67,13.083L9.424,13.083C9.503,14.057 9.689,14.997 9.962,15.882L14.132,15.882C14.406,14.997 14.591,14.057 14.67,13.083ZM6.78,7.939L3.877,7.939C3.418,8.854 3.109,9.858 2.983,10.917L6.086,10.917C6.184,9.872 6.422,8.871 6.78,7.939ZM20.123,7.939L17.315,7.939C17.672,8.871 17.91,9.872 18.008,10.917L21.017,10.917C20.891,9.858 20.582,8.854 20.123,7.939ZM14.076,7.939L10.019,7.939C9.714,8.877 9.509,9.877 9.424,10.917L14.67,10.917C14.585,9.877 14.38,8.877 14.076,7.939ZM10.62,3.023C8.574,3.336 6.751,4.333 5.393,5.772L7.901,5.772C8.637,4.677 9.56,3.742 10.62,3.023ZM13.503,3.043C14.551,3.759 15.465,4.687 16.193,5.772L18.607,5.772C17.276,4.361 15.499,3.376 13.503,3.043ZM12.047,4.148C11.647,4.643 11.281,5.187 10.957,5.772L13.138,5.772C12.814,5.187 12.448,4.643 12.047,4.148Z" />
android:strokeWidth="1"/>
</vector>

View File

@@ -1,19 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.879929"
android:scaleY="0.883309"
android:translateX="1.44085"
android:translateY="0.746289">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M20.764 21.26l-17.528 0c-1.07 0 -1.939 -0.868 -1.939 -1.939l0 -11.324c0 -1.07 0.869 -1.939 1.939 -1.939l4.534 0C7.982 5.01 8.91 4.22 10.02 4.22l3.96 0c1.11 0 2.037 0.79 2.25 1.838l4.534 0c1.07 0 1.939 0.869 1.939 1.939l0 11.324c0 1.071 -0.869 1.939 -1.939 1.939zM12 8.646c2.767 0 5.013 2.246 5.013 5.013 0 2.767 -2.246 5.013 -5.013 5.013 -2.767 0 -5.013 -2.246 -5.013 -5.013 0 -2.767 2.246 -5.013 5.013 -5.013zM3.674 7.257c0.624 0 1.131 0.507 1.131 1.131 0 0.624 -0.507 1.131 -1.131 1.131 -0.624 0 -1.131 -0.507 -1.131 -1.131 0 -0.624 0.507 -1.131 1.131 -1.131z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 9 3 L 7.17 5 L 4 5 C 2.9 5 2 5.9 2 7 L 2 19 C 2 20.1 2.9 21 4 21 L 20 21 C 21.1 21 22 20.1 22 19 L 22 7 C 22 5.9 21.1 5 20 5 L 16.83 5 L 15 3 L 9 3 Z M 12 18 C 9.24 18 7 15.76 7 13 C 7 10.24 9.24 8 12 8 C 14.76 8 17 10.24 17 13 C 17 15.76 14.76 18 12 18 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

View File

@@ -1,19 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.05866"
android:scaleY="1.05866"
android:translateX="-0.652026"
android:translateY="-0.703971">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M11.066 10.383l0 -2.773 -2.033 -2.033c-0.364 -0.365 -0.364 -0.956 0 -1.321 0.365 -0.364 0.956 -0.364 1.321 0l0.712 0.713 0 -1.111c0 -0.515 0.419 -0.934 0.934 -0.934 0.515 0 0.934 0.419 0.934 0.934l0 1.111 0.712 -0.713c0.365 -0.364 0.956 -0.364 1.321 0 0.364 0.365 0.364 0.956 0 1.321l-2.033 2.033 0 2.773 2.401 -1.387 0.744 -2.777c0.134 -0.498 0.646 -0.794 1.144 -0.66 0.498 0.133 0.794 0.646 0.66 1.143L17.622 7.676 18.584 7.12c0.447 -0.257 1.018 -0.104 1.276 0.342 0.258 0.446 0.104 1.018 -0.342 1.276l-0.962 0.555 0.973 0.261c0.498 0.133 0.794 0.646 0.661 1.144 -0.134 0.497 -0.646 0.793 -1.144 0.66L16.269 10.614 13.868 12l2.401 1.386 2.777 -0.744c0.498 -0.133 1.01 0.163 1.144 0.66 0.133 0.498 -0.163 1.011 -0.661 1.144l-0.973 0.261 0.962 0.555c0.446 0.258 0.6 0.83 0.342 1.276 -0.258 0.446 -0.829 0.599 -1.276 0.342l-0.962 -0.556 0.261 0.974c0.134 0.497 -0.162 1.01 -0.66 1.143 -0.498 0.134 -1.01 -0.162 -1.144 -0.66l-0.744 -2.777 -2.401 -1.387 0 2.886 2.033 2.034c0.364 0.364 0.364 0.956 0 1.32 -0.365 0.365 -0.956 0.365 -1.321 0l-0.712 -0.712 0 0.997c0 0.515 -0.419 0.934 -0.934 0.934 -0.515 0 -0.934 -0.419 -0.934 -0.934l0 -0.997 -0.712 0.712c-0.365 0.365 -0.956 0.365 -1.321 0 -0.364 -0.364 -0.364 -0.956 0 -1.32l2.033 -2.034 0 -2.886 -2.499 1.443 -0.744 2.778C7.689 18.335 7.177 18.631 6.679 18.498 6.181 18.365 5.885 17.852 6.019 17.354L6.28 16.381 5.416 16.88C4.969 17.137 4.398 16.984 4.14 16.538 3.882 16.092 4.036 15.52 4.482 15.262L5.346 14.764 4.372 14.503C3.875 14.369 3.579 13.857 3.712 13.359 3.846 12.861 4.358 12.565 4.856 12.699L7.633 13.443 10.132 12 7.633 10.557 4.856 11.301C4.358 11.435 3.846 11.139 3.712 10.641 3.579 10.143 3.875 9.631 4.372 9.497L5.346 9.236 4.482 8.738C4.036 8.48 3.882 7.908 4.14 7.462 4.398 7.016 4.969 6.863 5.416 7.12L6.28 7.619 6.019 6.646C5.885 6.148 6.181 5.635 6.679 5.502 7.177 5.369 7.689 5.665 7.823 6.162l0.744 2.778 2.499 1.443z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 14.59 8 L 12 10.59 L 9.41 8 L 8 9.41 L 10.59 12 L 8 14.59 L 9.41 16 L 12 13.41 L 14.59 16 L 16 14.59 L 13.41 12 L 16 9.41 L 14.59 8 Z M 12 2 C 6.47 2 2 6.47 2 12 C 2 17.53 6.47 22 12 22 C 17.53 22 22 17.53 22 12 C 22 6.47 17.53 2 12 2 Z M 12 20 C 7.59 20 4 16.41 4 12 C 4 7.59 7.59 4 12 4 C 16.41 4 20 7.59 20 12 C 20 16.41 16.41 20 12 20 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

View File

@@ -1,18 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.0930942"
android:scaleY="0.0934518"
android:translateX="19.4408"
android:translateY="9.49012">
<path
android:fillColor="?android:attr/colorAccent"
android:pathData="M0 57.121c-22.463 -12.601 -36.159 -9.862 -42.734 0 -6.574 9.862 -20.819 24.106 -42.186 6.574 -10.987 -9.015 -22.91 -21.121 -31.769 -31.918 -17.532 -21.367 -3.287 -35.612 6.575 -42.186 9.861 -6.575 12.601 -20.272 0 -42.734 -12.601 -22.463 -33.421 -16.437 -33.421 -16.437 0 0 -22.462 6.575 -32.324 48.213 -8.889 37.534 35.637 88.416 44.502 98.083 0 0 57.942 56.011 99.581 46.149 41.638 -9.861 48.212 -32.324 48.212 -32.324 0 0 6.027 -20.819 -16.436 -33.42"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path_1"
android:pathData="M 20.01 15.38 C 18.78 15.38 17.59 15.18 16.48 14.82 C 16.13 14.7 15.74 14.79 15.47 15.06 L 13.9 17.03 C 11.07 15.68 8.42 13.13 7.01 10.2 L 8.96 8.54 C 9.23 8.26 9.31 7.87 9.2 7.52 C 8.83 6.41 8.64 5.22 8.64 3.99 C 8.64 3.45 8.19 3 7.65 3 L 4.19 3 C 3.65 3 3 3.24 3 3.99 C 3 13.28 10.73 21 20.01 21 C 20.72 21 21 20.37 21 19.82 L 21 16.37 C 21 15.83 20.55 15.38 20.01 15.38 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

View File

@@ -1,19 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="0.921041"
android:scaleY="0.924579"
android:translateX="0.752324"
android:translateY="0.893459">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M10.228 14.833c-0.006 0 -0.894 0.008 -1.83 1.069 -0.716 0.812 -1.981 2.473 -3.218 3.16 -0.07 0.041 -0.143 0.078 -0.218 0.111 -0.311 0.143 -0.619 0.217 -0.913 0.192l-0.015 0C3.63 19.362 3.252 19.254 2.924 19.066 1.702 18.44 1.782 17.099 1.782 17.099c0 -0.07 0.004 -0.139 0.01 -0.206C1.847 15.696 2.143 9.661 2.563 8.549 3.102 6.316 5.114 4.656 7.51 4.656l9.423 0c2.478 0 4.545 1.775 4.997 4.123 0.383 1.539 0.65 6.984 0.702 8.114 0.006 0.067 0.009 0.136 0.009 0.206 0 0 0.081 1.341 -1.142 1.967 -0.327 0.188 -0.706 0.296 -1.109 0.299l-0.015 0c-0.294 0.025 -0.602 -0.049 -0.914 -0.192 -0.074 -0.033 -0.147 -0.07 -0.218 -0.111 -1.236 -0.687 -2.502 -2.348 -3.217 -3.16 -0.936 -1.061 -1.824 -1.069 -1.83 -1.069l-3.968 0zM8.247 6.379c1.935 0 3.507 1.571 3.507 3.507 0 1.935 -1.572 3.507 -3.507 3.507 -1.936 0 -3.507 -1.572 -3.507 -3.507 0 -1.936 1.571 -3.507 3.507 -3.507zm9.138 4.16c0.454 0 0.823 0.369 0.823 0.823 0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.454 0.369 -0.823 0.823 -0.823zm-8.421 0.07l0 0.814c0 0.399 -0.324 0.723 -0.723 0.723 -0.399 0 -0.723 -0.324 -0.723 -0.723l0 -0.814 -0.815 0C6.304 10.609 5.98 10.285 5.98 9.886 5.98 9.487 6.304 9.163 6.703 9.163l0.815 0 0 -0.815c0 -0.399 0.324 -0.723 0.723 -0.723 0.399 0 0.723 0.324 0.723 0.723l0 0.815 0.815 0c0.399 0 0.723 0.324 0.723 0.723 0 0.399 -0.324 0.722 -0.723 0.723l-0.815 0zm10.72 -0.723c0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.369 -0.823 0.823 -0.823 0.454 0 0.823 0.368 0.823 0.823zm-2.952 0c0 0.454 -0.369 0.823 -0.823 0.823 -0.455 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.368 -0.823 0.823 -0.823 0.454 0 0.823 0.368 0.823 0.823zm0.653 -2.3c0.454 0 0.823 0.369 0.823 0.824 0 0.454 -0.369 0.823 -0.823 0.823 -0.454 0 -0.823 -0.369 -0.823 -0.823 0 -0.455 0.369 -0.824 0.823 -0.824z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 21 6 L 3 6 C 1.9 6 1 6.9 1 8 L 1 16 C 1 17.1 1.9 18 3 18 L 21 18 C 22.1 18 23 17.1 23 16 L 23 8 C 23 6.9 22.1 6 21 6 Z M 11 13 L 8 13 L 8 16 L 6 16 L 6 13 L 3 13 L 3 11 L 6 11 L 6 8 L 8 8 L 8 11 L 11 11 L 11 13 Z M 15.5 15 C 14.67 15 14 14.33 14 13.5 C 14 12.67 14.67 12 15.5 12 C 16.33 12 17 12.67 17 13.5 C 17 14.33 16.33 15 15.5 15 Z M 19.5 12 C 18.67 12 18 11.33 18 10.5 C 18 9.67 18.67 9 19.5 9 C 20.33 9 21 9.67 21 10.5 C 21 11.33 20.33 12 19.5 12 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.05866"
android:scaleY="1.05866"
android:translateX="-0.652026"
android:translateY="-0.703971">
<path
android:fillColor="?android:attr/colorControlNormal"
android:fillType="evenOdd"
android:pathData="M11.066 10.383l0 -2.773 -2.033 -2.033c-0.364 -0.365 -0.364 -0.956 0 -1.321 0.365 -0.364 0.956 -0.364 1.321 0l0.712 0.713 0 -1.111c0 -0.515 0.419 -0.934 0.934 -0.934 0.515 0 0.934 0.419 0.934 0.934l0 1.111 0.712 -0.713c0.365 -0.364 0.956 -0.364 1.321 0 0.364 0.365 0.364 0.956 0 1.321l-2.033 2.033 0 2.773 2.401 -1.387 0.744 -2.777c0.134 -0.498 0.646 -0.794 1.144 -0.66 0.498 0.133 0.794 0.646 0.66 1.143L17.622 7.676 18.584 7.12c0.447 -0.257 1.018 -0.104 1.276 0.342 0.258 0.446 0.104 1.018 -0.342 1.276l-0.962 0.555 0.973 0.261c0.498 0.133 0.794 0.646 0.661 1.144 -0.134 0.497 -0.646 0.793 -1.144 0.66L16.269 10.614 13.868 12l2.401 1.386 2.777 -0.744c0.498 -0.133 1.01 0.163 1.144 0.66 0.133 0.498 -0.163 1.011 -0.661 1.144l-0.973 0.261 0.962 0.555c0.446 0.258 0.6 0.83 0.342 1.276 -0.258 0.446 -0.829 0.599 -1.276 0.342l-0.962 -0.556 0.261 0.974c0.134 0.497 -0.162 1.01 -0.66 1.143 -0.498 0.134 -1.01 -0.162 -1.144 -0.66l-0.744 -2.777 -2.401 -1.387 0 2.886 2.033 2.034c0.364 0.364 0.364 0.956 0 1.32 -0.365 0.365 -0.956 0.365 -1.321 0l-0.712 -0.712 0 0.997c0 0.515 -0.419 0.934 -0.934 0.934 -0.515 0 -0.934 -0.419 -0.934 -0.934l0 -0.997 -0.712 0.712c-0.365 0.365 -0.956 0.365 -1.321 0 -0.364 -0.364 -0.364 -0.956 0 -1.32l2.033 -2.034 0 -2.886 -2.499 1.443 -0.744 2.778C7.689 18.335 7.177 18.631 6.679 18.498 6.181 18.365 5.885 17.852 6.019 17.354L6.28 16.381 5.416 16.88C4.969 17.137 4.398 16.984 4.14 16.538 3.882 16.092 4.036 15.52 4.482 15.262L5.346 14.764 4.372 14.503C3.875 14.369 3.579 13.857 3.712 13.359 3.846 12.861 4.358 12.565 4.856 12.699L7.633 13.443 10.132 12 7.633 10.557 4.856 11.301C4.358 11.435 3.846 11.139 3.712 10.641 3.579 10.143 3.875 9.631 4.372 9.497L5.346 9.236 4.482 8.738C4.036 8.48 3.882 7.908 4.14 7.462 4.398 7.016 4.969 6.863 5.416 7.12L6.28 7.619 6.019 6.646C5.885 6.148 6.181 5.635 6.679 5.502 7.177 5.369 7.689 5.665 7.823 6.162l0.744 2.778 2.499 1.443z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
</vector>

View File

@@ -1,19 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:name="vector"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<group
android:scaleX="1.20862"
android:scaleY="1.21327"
android:translateX="-0.686496"
android:translateY="-0.544151">
<path
android:fillColor="?android:attr/colorAccent"
android:fillType="evenOdd"
android:pathData="M13.29 18.046l-8.091 0c-1.277 0 -2.315 -1.037 -2.315 -2.315l0 -4.631c0 -1.277 1.038 -2.315 2.315 -2.315l8.091 0c1.272 0 2.305 1.027 2.315 2.296l1.307 -0.754c0.065 -0.038 0.135 -0.067 0.21 -0.086l0.002 0 0 0 0 0 0 0c0.062 -0.015 0.126 -0.023 0.188 -0.023l0.001 0 0.003 0c0.146 0.001 0.283 0.041 0.401 0.11 0.11 0.065 0.205 0.156 0.276 0.272 0.043 0.071 0.076 0.15 0.096 0.233l0 0.002c0.014 0.059 0.02 0.119 0.02 0.178l0 0.001 0 4.803 0 0.001c0 0.059 -0.006 0.119 -0.02 0.178l0 0.001 0 0 0 0 0 0.001c-0.02 0.084 -0.053 0.162 -0.096 0.233 -0.071 0.116 -0.166 0.208 -0.276 0.272 -0.118 0.07 -0.255 0.11 -0.401 0.11l0 0 0 0 -0.003 0 -0.001 0c-0.062 0 -0.126 -0.007 -0.188 -0.023l0 0 0 0 0 0 -0.002 0c-0.075 -0.018 -0.145 -0.047 -0.21 -0.085L15.605 15.75c-0.01 1.269 -1.043 2.296 -2.315 2.296zm-1.773 -4.63c0 -0.107 -0.027 -0.214 -0.083 -0.313l0 0 0 0 -0.001 -0.002 -0.001 0C11.409 13.06 11.381 13.023 11.349 12.988 11.305 12.94 11.254 12.9 11.198 12.869L7.919 10.975C7.867 10.945 7.811 10.922 7.752 10.908l-0.001 -0.001 0 0 0 0 0 0C7.702 10.895 7.652 10.889 7.602 10.889l0 0 -0.002 0 -0.001 0 0 0C7.484 10.89 7.376 10.921 7.283 10.976 7.196 11.027 7.12 11.099 7.064 11.191 7.03 11.247 7.004 11.309 6.989 11.375l0 0.001 0 0 0 0 0 0.001c-0.011 0.046 -0.016 0.094 -0.016 0.141l0 0 0 3.795 0 0.001c0 0.047 0.005 0.094 0.016 0.141l0 0.001c0.015 0.066 0.041 0.128 0.075 0.185 0.056 0.091 0.132 0.163 0.219 0.214 0.093 0.055 0.201 0.087 0.316 0.087l0.003 0 0 0c0.05 0 0.1 -0.006 0.149 -0.018l0 0 0 0 0 0 0.001 0c0.059 -0.015 0.115 -0.038 0.167 -0.068l3.279 -1.893c0.056 -0.032 0.107 -0.072 0.151 -0.119 0.032 -0.035 0.06 -0.073 0.083 -0.113l0.001 -0.001 0.001 -0.001 0 -0.001 0 0c0.056 -0.098 0.083 -0.206 0.083 -0.312zM6.026 4.848c0.955 0 1.731 0.776 1.731 1.731C7.757 7.535 6.981 8.31 6.026 8.31 5.07 8.31 4.295 7.535 4.295 6.579 4.295 5.624 5.07 4.848 6.026 4.848Zm4.986 -2.216c1.567 0 2.839 1.272 2.839 2.839 0 1.567 -1.272 2.839 -2.839 2.839 -1.567 0 -2.839 -1.272 -2.839 -2.839 0 -1.567 1.272 -2.839 2.839 -2.839z"
android:strokeLineJoin="round"
android:strokeMiterLimit="1.41421" />
</group>
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:name="path"
android:pathData="M 21 3 L 3 3 C 1.89 3 1 3.89 1 5 L 1 17 C 1 18.1 1.89 19 3 19 L 8 19 L 8 21 L 16 21 L 16 19 L 21 19 C 22.1 19 22.99 18.1 22.99 17 L 23 5 C 23 3.89 22.1 3 21 3 Z M 21 17 L 3 17 L 3 5 L 21 5 L 21 17 Z M 16 11 L 9 15 L 9 7 Z"
android:fillColor="?android:attr/colorAccent"
android:strokeWidth="1"/>
</vector>

Binary file not shown.

View File

@@ -1,98 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2018 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!-- Values for Dirac headset pref -->
<string-array name="dirac_headset_pref_entries" translatable="false">
<item>@string/dirac_headset_default</item>
<item>@string/dirac_headset_earbuds</item>
<item>@string/dirac_headset_in_ear_2013</item>
<item>@string/dirac_headset_piston_1</item>
<item>@string/dirac_headset_general</item>
<item>@string/dirac_headset_general_inear</item>
<item>@string/dirac_headset_piston_basic</item>
<item>@string/dirac_headset_piston_2</item>
<item>@string/dirac_headset_piston_standard</item>
<item>@string/dirac_headset_headphone</item>
<item>@string/dirac_headset_piston_youth</item>
<item>@string/dirac_headset_piston_color</item>
<item>@string/dirac_headset_in_ear</item>
<item>@string/dirac_headset_capsule</item>
<item>@string/dirac_headset_in_ear_pro</item>
<item>@string/dirac_headset_comfort</item>
<item>@string/dirac_headset_reduction_noise</item>
<item>@string/dirac_headset_cancelling</item>
<item>@string/dirac_headset_half_in_ear</item>
<item>@string/dirac_headset_in_ear2</item>
<item>@string/dirac_headset_earphone_basic</item>
<item>@string/dirac_headset_earphone</item>
</string-array>
<string-array name="dirac_headset_pref_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>22</item>
<item>23</item>
</string-array>
<!-- Values for Dirac preset pref -->
<string-array name="dirac_preset_pref_entries" translatable="false">
<item>@string/dirac_preset_default</item>
<item>@string/dirac_preset_rock</item>
<item>@string/dirac_preset_jazz</item>
<item>@string/dirac_preset_pop</item>
<item>@string/dirac_preset_classical</item>
<item>@string/dirac_preset_hiphop</item>
<item>@string/dirac_preset_blues</item>
<item>@string/dirac_preset_electronic</item>
<item>@string/dirac_preset_country</item>
<item>@string/dirac_preset_dance</item>
<item>@string/dirac_preset_metal</item>
</string-array>
<string-array name="dirac_preset_pref_values" translatable="false">
<item>"0,0,0,0,0,0,0"</item>
<item>"4,2,-2,0,-2,-2,4"</item>
<item>"0,0,0,-2,-3,0,0"</item>
<item>"0,-3,-5,0,0,-3,0"</item>
<item>"0,0,0,0,3,6,6"</item>
<item>"3,3,-3,0,-3,0,2"</item>
<item>"2,4,-6,4,0,1,2"</item>
<item>"3,3,-1,0,-3,0,0"</item>
<item>"0,0,-2,-2,2,2,0"</item>
<item>"0,4,2,0,-2,-2,4"</item>
<item>"2,0,0,-2,-4,0,0"</item>
</string-array>
</resources>

View File

@@ -15,57 +15,26 @@
limitations under the License.
-->
<resources>
<!-- Dirac settings -->
<string name="dirac_enable">Enable dirac</string>
<string name="dirac_title">Dirac sound enhancer</string>
<string name="dirac_headset_title">Headset type</string>
<string name="dirac_preset_title">Sound preset</string>
<!-- Dirac settings: headset types -->
<string name="dirac_headset_default">Default</string>
<string name="dirac_headset_earbuds">Mi Earbuds</string>
<string name="dirac_headset_in_ear_2013">Mi In-Ear (2013)</string>
<string name="dirac_headset_piston_1">Mi Piston 1</string>
<string name="dirac_headset_general">General Earbuds</string>
<string name="dirac_headset_general_inear">General In-Ear</string>
<string name="dirac_headset_piston_basic">Basic Edition</string>
<string name="dirac_headset_piston_2">Mi Piston 2</string>
<string name="dirac_headset_piston_standard">Mi Piston 3</string>
<string name="dirac_headset_headphone">Mi Headphones</string>
<string name="dirac_headset_piston_youth">Youth Edition</string>
<string name="dirac_headset_piston_color">Color Edition</string>
<string name="dirac_headset_in_ear">Mi In-Ear</string>
<string name="dirac_headset_capsule">Mi Capsule</string>
<string name="dirac_headset_in_ear_pro">Mi In-Ear Pro</string>
<string name="dirac_headset_comfort">Mi Comfort</string>
<string name="dirac_headset_reduction_noise">Mi Noise Cancelling (Type-C)</string>
<string name="dirac_headset_cancelling">Mi Noise Cancelling (3.5mm)</string>
<string name="dirac_headset_half_in_ear">Mi Half In-Ear</string>
<string name="dirac_headset_in_ear2">Mi In-Ear 2</string>
<string name="dirac_headset_earphone_basic">Mi Earphones Basic</string>
<string name="dirac_headset_earphone">Mi Earphones</string>
<!-- Dirac settings: equalizer presets -->
<string name="dirac_preset_default">Default</string>
<string name="dirac_preset_rock">Rock</string>
<string name="dirac_preset_jazz">Jazz</string>
<string name="dirac_preset_pop">Pop</string>
<string name="dirac_preset_classical">Classical</string>
<string name="dirac_preset_hiphop">Hip Hop</string>
<string name="dirac_preset_blues">Blues</string>
<string name="dirac_preset_electronic">Electronic</string>
<string name="dirac_preset_country">Country</string>
<string name="dirac_preset_dance">Dance</string>
<string name="dirac_preset_metal">Metal</string>
<!-- Ambient settings -->
<string name="doze_summary">Advanced Ambient Display Preferences</string>
<!-- Thermal profiles -->
<string name="thermal_title">Thermal profiles</string>
<string name="thermal_summary">Adjust per-app thermal profiles for optimum performance</string>
<string name="thermal_default">Default</string>
<string name="thermal_benchmark">Benchmark</string>
<string name="thermal_default">No optimization</string>
<string name="thermal_benchmark">Performance</string>
<string name="thermal_browser">Browser</string>
<string name="thermal_camera">Camera</string>
<string name="thermal_dialer">Dialer</string>
<string name="thermal_gaming">Gaming</string>
<string name="thermal_streaming">Streaming</string>
<!-- Raise to wake strings-->
<string name="raise_to_wake_gesture_title">Raise to wake</string>
<string name="raise_to_wake_gesture_summary">Wake up the device instead of pulsing notification</string>
<!-- Clear Speaker -->
<string name="clear_speaker_title">Clear speaker</string>
<string name="clear_speaker_summary">Play a 30-second audio to clear the speaker</string>
<string name="clear_speaker_description">Run this feature once or twice if you find that your speaker is lightly blocked by dust. Set media volume to maximum.\n\nIf the speaker is blocked heavily, run this feature 25 times while shaking your device with the speaker facing downwards.\n\nWARNING: Ensure that any headphones are unplugged.</string>
</resources>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/clear_speaker_title">
<SwitchPreference
android:key="clear_speaker_pref"
android:title="@string/clear_speaker_title"
android:icon="@drawable/ic_speaker_cleaner_icon"
android:summary="@string/clear_speaker_summary"/>
<com.android.settingslib.widget.FooterPreference
android:key="footer_preference"
android:title="@string/clear_speaker_description"
android:selectable="false" />
</PreferenceScreen>

View File

@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2018,2021 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/dirac_title">
<com.android.settingslib.widget.MainSwitchPreference
android:defaultValue="false"
android:key="dirac_enable"
android:title="@string/dirac_enable" />
<ListPreference
android:key="dirac_headset_pref"
android:entries="@array/dirac_headset_pref_entries"
android:entryValues="@array/dirac_headset_pref_values"
android:defaultValue="0"
android:title="@string/dirac_headset_title"
android:summary="%s" />
<ListPreference
android:key="dirac_preset_pref"
android:entries="@array/dirac_preset_pref_entries"
android:entryValues="@array/dirac_preset_pref_values"
android:defaultValue="0,0,0,0,0,0,0"
android:title="@string/dirac_preset_title"
android:summary="%s" />
</PreferenceScreen>

View File

@@ -31,6 +31,7 @@
<SwitchPreferenceCompat
android:key="always_on_display"
android:disableDependentsState="true"
android:icon="@drawable/ic_display"
android:title="@string/ambient_display_always_on_title"
android:summary="@string/ambient_display_always_on_summary"
android:persistent="false" />
@@ -46,6 +47,14 @@
android:title="@string/pick_up_gesture_title"
android:summary="@string/pick_up_gesture_summary" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:disableDependentsState="true"
android:key="gesture_raise_to_wake"
android:summary="@string/raise_to_wake_gesture_summary"
android:title="@string/raise_to_wake_gesture_title"
android:icon="@drawable/ic_raise" />
</PreferenceCategory>
<PreferenceCategory

View File

@@ -20,9 +20,9 @@ package org.lineageos.settings;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import org.lineageos.settings.dirac.DiracUtils;
import org.lineageos.settings.doze.DozeUtils;
import org.lineageos.settings.thermal.ThermalUtils;
@@ -34,7 +34,6 @@ public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
if (DEBUG) Log.d(TAG, "Received boot completed intent");
DiracUtils.initialize();
DozeUtils.checkDozeService(context);
ThermalUtils.startService(context);
}

View File

@@ -1,35 +0,0 @@
/*
* Copyright (C) 2018,2021-2022 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class DiracActivity extends CollapsingToolbarBaseActivity {
private static final String TAG_DIRAC = "dirac";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new DiracSettingsFragment(), TAG_DIRAC).commit();
}
}

View File

@@ -1,86 +0,0 @@
/*
* Copyright (C) 2018,2020-2021 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.os.Bundle;
import android.widget.CompoundButton;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragment;
import com.android.settingslib.widget.MainSwitchPreference;
import org.lineageos.settings.R;
public class DiracSettingsFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
private static final String PREF_ENABLE = "dirac_enable";
private static final String PREF_HEADSET = "dirac_headset_pref";
private static final String PREF_PRESET = "dirac_preset_pref";
private MainSwitchPreference mSwitchBar;
private ListPreference mHeadsetType;
private ListPreference mPreset;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.dirac_settings);
DiracUtils.initialize();
boolean enhancerEnabled = DiracUtils.isDiracEnabled(getActivity());
mSwitchBar = (MainSwitchPreference) findPreference(PREF_ENABLE);
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.setChecked(enhancerEnabled);
mHeadsetType = (ListPreference) findPreference(PREF_HEADSET);
mHeadsetType.setOnPreferenceChangeListener(this);
mHeadsetType.setEnabled(enhancerEnabled);
mPreset = (ListPreference) findPreference(PREF_PRESET);
mPreset.setOnPreferenceChangeListener(this);
mPreset.setEnabled(enhancerEnabled);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
switch (preference.getKey()) {
case PREF_HEADSET:
DiracUtils.setHeadsetType(Integer.parseInt(newValue.toString()));
return true;
case PREF_PRESET:
DiracUtils.setLevel(String.valueOf(newValue));
return true;
default:
return false;
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSwitchBar.setChecked(isChecked);
DiracUtils.setMusic(isChecked);
mHeadsetType.setEnabled(isChecked);
mPreset.setEnabled(isChecked);
}
}

View File

@@ -1,76 +0,0 @@
/*
* Copyright (C) 2018 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.media.audiofx.AudioEffect;
import java.util.UUID;
public class DiracSound extends AudioEffect {
private static final int DIRACSOUND_PARAM_HEADSET_TYPE = 1;
private static final int DIRACSOUND_PARAM_EQ_LEVEL = 2;
private static final int DIRACSOUND_PARAM_MUSIC = 4;
private static final UUID EFFECT_TYPE_DIRACSOUND =
UUID.fromString("e069d9e0-8329-11df-9168-0002a5d5c51b");
private static final String TAG = "DiracSound";
public DiracSound(int priority, int audioSession) {
super(EFFECT_TYPE_NULL, EFFECT_TYPE_DIRACSOUND, priority, audioSession);
}
public int getMusic() throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] value = new int[1];
checkStatus(getParameter(DIRACSOUND_PARAM_MUSIC, value));
return value[0];
}
public void setMusic(int enable) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_MUSIC, enable));
}
public int getHeadsetType() throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] value = new int[1];
checkStatus(getParameter(DIRACSOUND_PARAM_HEADSET_TYPE, value));
return value[0];
}
public void setHeadsetType(int type) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(DIRACSOUND_PARAM_HEADSET_TYPE, type));
}
public float getLevel(int band) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
int[] param = new int[2];
byte[] value = new byte[10];
param[0] = DIRACSOUND_PARAM_EQ_LEVEL;
param[1] = band;
checkStatus(getParameter(param, value));
return new Float(new String(value)).floatValue();
}
public void setLevel(int band, float level) throws IllegalStateException,
IllegalArgumentException, UnsupportedOperationException {
checkStatus(setParameter(new int[]{DIRACSOUND_PARAM_EQ_LEVEL, band},
String.valueOf(level).getBytes()));
}
}

View File

@@ -1,65 +0,0 @@
/*
* Copyright (C) 2018,2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.dirac;
import android.content.Context;
public final class DiracUtils {
protected static DiracSound mDiracSound;
private static boolean mInitialized;
public static void initialize() {
if (!mInitialized) {
mDiracSound = new DiracSound(0, 0);
mDiracSound.setMusic(mDiracSound.getMusic());
mDiracSound.setHeadsetType(mDiracSound.getHeadsetType());
setLevel(getLevel());
mInitialized = true;
}
}
protected static void setMusic(boolean enable) {
mDiracSound.setMusic(enable ? 1 : 0);
}
protected static boolean isDiracEnabled(Context context) {
return mDiracSound != null && mDiracSound.getMusic() == 1;
}
protected static void setLevel(String preset) {
String[] level = preset.split("\\s*,\\s*");
for (int band = 0; band <= level.length - 1; band++) {
mDiracSound.setLevel(band, Float.valueOf(level[band]));
}
}
protected static String getLevel() {
String selected = "";
for (int band = 0; band <= 6; band++) {
int temp = (int) mDiracSound.getLevel(band);
selected += String.valueOf(temp);
if (band != 6) selected += ",";
}
return selected;
}
protected static void setHeadsetType(int paramInt) {
mDiracSound.setHeadsetType(paramInt);
}
}

View File

@@ -66,7 +66,8 @@ public class DozeService extends Service {
private void onDisplayOn() {
if (DEBUG) Log.d(TAG, "Display on");
if (DozeUtils.isPickUpEnabled(this)) {
if (DozeUtils.isPickUpEnabled(this) ||
DozeUtils.isRaiseToWakeEnabled(this)) {
mPickupSensor.disable();
}
if (DozeUtils.isHandwaveGestureEnabled(this) ||
@@ -77,7 +78,8 @@ public class DozeService extends Service {
private void onDisplayOff() {
if (DEBUG) Log.d(TAG, "Display off");
if (DozeUtils.isPickUpEnabled(this)) {
if (DozeUtils.isPickUpEnabled(this) ||
DozeUtils.isRaiseToWakeEnabled(this)) {
mPickupSensor.enable();
}
if (DozeUtils.isHandwaveGestureEnabled(this) ||

View File

@@ -29,7 +29,7 @@ public class DozeSettingsActivity extends CollapsingToolbarBaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
getSupportFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new DozeSettingsFragment(), TAG_DOZE).commit();
}

View File

@@ -1,6 +1,6 @@
/*
* Copyright (C) 2015 The CyanogenMod Project
* 2017-2023 The LineageOS Project
* 2017-2025 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,27 +17,23 @@
package org.lineageos.settings.doze;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.widget.CompoundButton;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceFragment;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreferenceCompat;
import com.android.settingslib.widget.MainSwitchPreference;
import org.lineageos.settings.R;
public class DozeSettingsFragment extends PreferenceFragment implements
public class DozeSettingsFragment extends PreferenceFragmentCompat implements
Preference.OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
private MainSwitchPreference mSwitchBar;
@@ -45,6 +41,7 @@ public class DozeSettingsFragment extends PreferenceFragment implements
private SwitchPreferenceCompat mAlwaysOnDisplayPreference;
private SwitchPreferenceCompat mPickUpPreference;
private SwitchPreferenceCompat mRaiseToWakePreference;
private SwitchPreferenceCompat mHandwavePreference;
private SwitchPreferenceCompat mPocketPreference;
@@ -52,10 +49,10 @@ public class DozeSettingsFragment extends PreferenceFragment implements
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.doze_settings);
setPreferencesFromResource(R.xml.doze_settings, rootKey);
SharedPreferences prefs = getActivity().getSharedPreferences("doze_settings",
Activity.MODE_PRIVATE);
Context.MODE_PRIVATE);
if (savedInstanceState == null && !prefs.getBoolean("first_help_shown", false)) {
showHelp();
}
@@ -80,6 +77,10 @@ public class DozeSettingsFragment extends PreferenceFragment implements
mPickUpPreference.setEnabled(dozeEnabled);
mPickUpPreference.setOnPreferenceChangeListener(this);
mRaiseToWakePreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
mRaiseToWakePreference.setEnabled(dozeEnabled);
mRaiseToWakePreference.setOnPreferenceChangeListener(this);
mHandwavePreference = (SwitchPreferenceCompat) findPreference(DozeUtils.GESTURE_HAND_WAVE_KEY);
mHandwavePreference.setEnabled(dozeEnabled);
mHandwavePreference.setOnPreferenceChangeListener(this);
@@ -99,6 +100,8 @@ public class DozeSettingsFragment extends PreferenceFragment implements
} else {
pickupSensorCategory.setDependency(DozeUtils.ALWAYS_ON_DISPLAY);
proximitySensorCategory.setDependency(DozeUtils.ALWAYS_ON_DISPLAY);
mPickUpPreference.setDependency(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
mPocketPreference.setDependency(DozeUtils.GESTURE_RAISE_TO_WAKE_KEY);
}
}
@@ -127,6 +130,7 @@ public class DozeSettingsFragment extends PreferenceFragment implements
mAlwaysOnDisplayPreference.setEnabled(isChecked);
mPickUpPreference.setEnabled(isChecked);
mRaiseToWakePreference.setEnabled(isChecked);
mHandwavePreference.setEnabled(isChecked);
mPocketPreference.setEnabled(isChecked);
}
@@ -138,7 +142,7 @@ public class DozeSettingsFragment extends PreferenceFragment implements
.setPositiveButton(R.string.dialog_ok,
(dialog, which) -> {
getActivity()
.getSharedPreferences("doze_settings", Activity.MODE_PRIVATE)
.getSharedPreferences("doze_settings", Context.MODE_PRIVATE)
.edit()
.putBoolean("first_help_shown", true)
.commit();

View File

@@ -1,4 +1,4 @@
/*
/*
* Copyright (C) 2015 The CyanogenMod Project
* 2017-2019,2021 The LineageOS Project
*
@@ -17,6 +17,9 @@
package org.lineageos.settings.doze;
import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
import static android.provider.Settings.Secure.DOZE_ENABLED;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -29,9 +32,6 @@ import android.util.Log;
import androidx.preference.PreferenceManager;
import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
import static android.provider.Settings.Secure.DOZE_ENABLED;
public final class DozeUtils {
private static final String TAG = "DozeUtils";
@@ -47,6 +47,7 @@ public final class DozeUtils {
protected static final String CATEG_PROX_SENSOR = "proximity_sensor";
protected static final String GESTURE_PICK_UP_KEY = "gesture_pick_up";
protected static final String GESTURE_RAISE_TO_WAKE_KEY = "gesture_raise_to_wake";
protected static final String GESTURE_HAND_WAVE_KEY = "gesture_hand_wave";
protected static final String GESTURE_POCKET_KEY = "gesture_pocket";
@@ -123,6 +124,10 @@ public final class DozeUtils {
protected static boolean isPickUpEnabled(Context context) {
return isGestureEnabled(context, GESTURE_PICK_UP_KEY);
}
public static boolean isRaiseToWakeEnabled(Context context) {
return isGestureEnabled(context, GESTURE_RAISE_TO_WAKE_KEY);
}
protected static boolean isHandwaveGestureEnabled(Context context) {
return isGestureEnabled(context, GESTURE_HAND_WAVE_KEY);
@@ -133,8 +138,8 @@ public final class DozeUtils {
}
public static boolean sensorsEnabled(Context context) {
return isPickUpEnabled(context) || isHandwaveGestureEnabled(context)
|| isPocketGestureEnabled(context);
return isPickUpEnabled(context) || isRaiseToWakeEnabled(context) ||
isHandwaveGestureEnabled(context) || isPocketGestureEnabled(context);
}
protected static Sensor getSensor(SensorManager sm, String type) {

View File

@@ -23,6 +23,8 @@ import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.SystemClock;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.util.Log;
import java.util.concurrent.ExecutorService;
@@ -35,11 +37,15 @@ public class PickupSensor implements SensorEventListener {
private static final String TAG = "PickupSensor";
private static final int MIN_PULSE_INTERVAL_MS = 2500;
private static final int MIN_WAKEUP_INTERVAL_MS = 1000;
private static final int WAKELOCK_TIMEOUT_MS = 300;
private SensorManager mSensorManager;
private Sensor mSensor;
private Context mContext;
private ExecutorService mExecutorService;
private PowerManager mPowerManager;
private WakeLock mWakeLock;
private long mEntryTimestamp;
@@ -47,6 +53,8 @@ public class PickupSensor implements SensorEventListener {
mContext = context;
mSensorManager = mContext.getSystemService(SensorManager.class);
mSensor = DozeUtils.getSensor(mSensorManager, "xiaomi.sensor.pickup");
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mExecutorService = Executors.newSingleThreadExecutor();
}
@@ -56,17 +64,24 @@ public class PickupSensor implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
boolean isRaiseToWake = DozeUtils.isRaiseToWakeEnabled(mContext);
if (DEBUG) Log.d(TAG, "Got sensor event: " + event.values[0]);
long delta = SystemClock.elapsedRealtime() - mEntryTimestamp;
if (delta < MIN_PULSE_INTERVAL_MS) {
if (delta < (isRaiseToWake ? MIN_WAKEUP_INTERVAL_MS : MIN_PULSE_INTERVAL_MS)) {
return;
}
mEntryTimestamp = SystemClock.elapsedRealtime();
if (event.values[0] == 1) {
DozeUtils.launchDozePulse(mContext);
if (isRaiseToWake) {
mWakeLock.acquire(WAKELOCK_TIMEOUT_MS);
mPowerManager.wakeUp(SystemClock.uptimeMillis(),
PowerManager.WAKE_REASON_GESTURE, TAG);
} else {
DozeUtils.launchDozePulse(mContext);
}
}
}

View File

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2020 Paranoid Android
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.speaker;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.MenuItem;
import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity;
public class ClearSpeakerActivity extends CollapsingToolbarBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fragment fragment = getFragmentManager().findFragmentById(com.android.settingslib.collapsingtoolbar.R.id.content_frame);
ClearSpeakerFragment clearSpeakerFragment;
if (fragment == null) {
clearSpeakerFragment = new ClearSpeakerFragment();
getFragmentManager().beginTransaction()
.add(com.android.settingslib.collapsingtoolbar.R.id.content_frame, clearSpeakerFragment)
.commit();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finishAfterTransition();
return true;
}
return super.onOptionsItemSelected(item);
}
}

View File

@@ -0,0 +1,111 @@
/*
* Copyright (C) 2023 Paranoid Android
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.settings.speaker;
import android.content.res.AssetFileDescriptor;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragment;
import androidx.preference.SwitchPreference;
import org.lineageos.settings.R;
import java.io.IOException;
public class ClearSpeakerFragment extends PreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static final String TAG = "ClearSpeakerFragment";
private static final String PREF_CLEAR_SPEAKER = "clear_speaker_pref";
private static final int PLAY_DURATION_MS = 30000;
private Handler mHandler = new Handler(Looper.getMainLooper());
private MediaPlayer mMediaPlayer;
private SwitchPreference mClearSpeakerPref;
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.clear_speaker_settings);
mClearSpeakerPref = findPreference(PREF_CLEAR_SPEAKER);
mClearSpeakerPref.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mClearSpeakerPref) {
boolean value = (Boolean) newValue;
if (value && startPlaying()) {
mHandler.removeCallbacksAndMessages(null);
mHandler.postDelayed(this::stopPlaying, PLAY_DURATION_MS);
return true;
}
}
return false;
}
@Override
public void onStop() {
super.onStop();
stopPlaying();
}
public boolean startPlaying() {
getActivity().setVolumeControlStream(AudioManager.STREAM_MUSIC);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
mMediaPlayer.setLooping(true);
try (AssetFileDescriptor afd = getResources().openRawResourceFd(
R.raw.clear_speaker_sound)) {
mMediaPlayer.setDataSource(afd);
mMediaPlayer.setVolume(1.0f, 1.0f);
mMediaPlayer.prepare();
mMediaPlayer.start();
mClearSpeakerPref.setEnabled(false);
} catch (IOException | IllegalArgumentException e) {
Log.e(TAG, "Failed to play speaker clean sound!", e);
return false;
}
return true;
}
public void stopPlaying() {
if (mMediaPlayer != null && mMediaPlayer.isPlaying()) {
try {
mMediaPlayer.stop();
} catch (IllegalStateException e) {
Log.e(TAG, "Failed to stop media player!", e);
} finally {
mMediaPlayer.reset();
mMediaPlayer.release();
mMediaPlayer = null;
}
}
mClearSpeakerPref.setEnabled(true);
mClearSpeakerPref.setChecked(false);
}
}

View File

@@ -28,7 +28,7 @@ public class ThermalActivity extends CollapsingToolbarBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(
getSupportFragmentManager().beginTransaction().replace(
com.android.settingslib.collapsingtoolbar.R.id.content_frame,
new ThermalSettingsFragment(), TAG_THERMAL).commit();
}

View File

@@ -76,6 +76,7 @@ public class ThermalService extends Service {
private void registerReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
this.registerReceiver(mIntentReceiver, filter);
}

View File

@@ -37,7 +37,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.preference.PreferenceFragment;
import androidx.preference.PreferenceFragmentCompat;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -51,7 +51,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ThermalSettingsFragment extends PreferenceFragment
public class ThermalSettingsFragment extends PreferenceFragmentCompat
implements ApplicationsState.Callbacks {
private AllPackagesAdapter mAllPackagesAdapter;

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2018 The OmniROM Project
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.lineageos.settings.thermal;
import android.annotation.TargetApi;
import android.content.Intent;
import android.service.quicksettings.TileService;
@TargetApi(24)
public class ThermalTileService extends TileService {
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onTileAdded() {
super.onTileAdded();
}
@Override
public void onTileRemoved() {
super.onTileRemoved();
}
@Override
public void onStartListening() {
super.onStartListening();
}
@Override
public void onStopListening() {
super.onStopListening();
}
@Override
public void onClick() {
super.onClick();
Intent ThermalProfiles = new Intent(this, ThermalActivity.class);
ThermalProfiles.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityAndCollapse(ThermalProfiles);
}
}

View File

@@ -1,17 +0,0 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := XiaomiPocketMode
LOCAL_CERTIFICATE := platform
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_PRIVILEGED_MODULE := true
LOCAL_SYSTEM_EXT_MODULE := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
include $(BUILD_PACKAGE)

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 The CyanogenMod Project
Copyright (C) 2017-2018 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lineageos.pocketmode"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:label="XiaomiPocketMode"
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true"
android:persistent="true">
<receiver android:name=".BootCompletedReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<service android:name=".PocketModeService"
android:permission="PocketModeService">
</service>
</application>
</manifest>

View File

@@ -1,3 +0,0 @@
-keep class org.lineageos.pocketmode.* {
*;
}

View File

@@ -1,36 +0,0 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.pocketmode;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.UserHandle;
import android.util.Log;
public class BootCompletedReceiver extends BroadcastReceiver {
private static final String TAG = "XiaomiPocketMode";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Starting");
context.startServiceAsUser(new Intent(context, PocketModeService.class),
UserHandle.CURRENT);
}
}

View File

@@ -1,84 +0,0 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.pocketmode;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
import android.util.Log;
public class PocketModeService extends Service {
private static final String TAG = "PocketModeService";
private static final boolean DEBUG = false;
private ProximitySensor mProximitySensor;
@Override
public void onCreate() {
if (DEBUG) Log.d(TAG, "Creating service");
mProximitySensor = new ProximitySensor(this);
IntentFilter screenStateFilter = new IntentFilter();
screenStateFilter.addAction(Intent.ACTION_SCREEN_OFF);
screenStateFilter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mScreenStateReceiver, screenStateFilter);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (DEBUG) Log.d(TAG, "Starting service");
return START_STICKY;
}
@Override
public void onDestroy() {
if (DEBUG) Log.d(TAG, "Destroying service");
this.unregisterReceiver(mScreenStateReceiver);
mProximitySensor.disable();
super.onDestroy();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void onDeviceUnlocked() {
if (DEBUG) Log.d(TAG, "Device unlocked");
mProximitySensor.disable();
}
private void onDisplayOff() {
if (DEBUG) Log.d(TAG, "Display off");
mProximitySensor.enable();
}
private BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
onDeviceUnlocked();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
onDisplayOff();
}
}
};
}

View File

@@ -1,90 +0,0 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* 2017-2019 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.lineageos.pocketmode;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.FileUtils;
import android.util.Log;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class ProximitySensor implements SensorEventListener {
private static final String TAG = "PocketModeProximity";
private static final boolean DEBUG = false;
private static final String FP_PROX_NODE =
"/sys/devices/platform/soc/soc:fingerprint_goodix/proximity_state";
private ExecutorService mExecutorService;
private Context mContext;
private Sensor mSensor;
private SensorManager mSensorManager;
public ProximitySensor(Context context) {
mContext = context;
mSensorManager = mContext.getSystemService(SensorManager.class);
mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mExecutorService = Executors.newSingleThreadExecutor();
}
private Future<?> submit(Runnable runnable) {
return mExecutorService.submit(runnable);
}
@Override
public void onSensorChanged(SensorEvent event) {
setFPProximityState(event.values[0] < mSensor.getMaximumRange());
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
/* Empty */
}
private void setFPProximityState(boolean isNear) {
try {
FileUtils.stringToFile(FP_PROX_NODE, isNear ? "1" : "0");
} catch (IOException e) {
Log.e(TAG, "Failed to write to " + FP_PROX_NODE, e);
}
}
protected void enable() {
if (DEBUG) Log.d(TAG, "Enabling");
submit(() -> {
mSensorManager.registerListener(this, mSensor,
SensorManager.SENSOR_DELAY_NORMAL);
});
}
protected void disable() {
if (DEBUG) Log.d(TAG, "Disabling");
submit(() -> {
mSensorManager.unregisterListener(this, mSensor);
});
// Ensure FP is left enabled
setFPProximityState(/* isNear */ false);
}
}

View File

@@ -1,11 +1,13 @@
cc_library_static {
name: "libperfmgr-ext-xiaomi",
defaults: [
"android.hardware.power-ndk_shared",
],
vendor: true,
srcs: [
"power-mode.cpp",
],
shared_libs: [
"android.hardware.power-V4-ndk",
"libbase",
],
}

View File

@@ -53,7 +53,7 @@
"Name": "GPUMaxFreq",
"Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq",
"Values": [
"710000000",
"999999999",
"342000000"
],
"DefaultIndex": 0,
@@ -213,8 +213,8 @@
"Name": "PMQoSCpuDmaLatency",
"Path": "/dev/cpu_dma_latency",
"Values": [
"44",
"100"
"2c",
"64"
],
"HoldFd": true
},
@@ -356,7 +356,7 @@
"PowerHint": "LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 5000,
"Value": "44"
"Value": "2c"
},
{
"PowerHint": "LAUNCH",
@@ -428,7 +428,7 @@
"PowerHint": "AUDIO_LAUNCH",
"Node": "PMQoSCpuDmaLatency",
"Duration": 2000,
"Value": "44"
"Value": "2c"
},
{
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
@@ -440,7 +440,7 @@
"PowerHint": "AUDIO_STREAMING_LOW_LATENCY",
"Node": "PMQoSCpuDmaLatency",
"Duration": 0,
"Value": "44"
"Value": "2c"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
@@ -458,7 +458,7 @@
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "GPUMaxFreq",
"Duration": 0,
"Value": "710000000"
"Value": "999999999"
}
]
}

View File

@@ -5,8 +5,10 @@ vendor/bin/adsprpcd
vendor/etc/init/vendor.qti.adsprpc-guestos-service.rc
vendor/lib64/libadsp_default_listener.so
vendor/lib64/libadsprpc.so
vendor/lib64/libfastrpc_utf_stub.so
vendor/lib/libadsp_default_listener.so
vendor/lib/libadsprpc.so
vendor/lib/libfastrpc_utf_stub.so
# ADSP modules
vendor/lib/rfsa/adsp/capi_v2_aptX_Classic.so
@@ -23,17 +25,6 @@ vendor/lib/rfsa/adsp/libsns_device_mode_skel.so
vendor/lib/rfsa/adsp/libsns_low_lat_stream_skel.so
# Audio
vendor/lib64/hw/audio.primary.sdm845.so
vendor/lib64/libacdb-fts.so
vendor/lib64/libacdbrtac.so
vendor/lib64/libadiertac.so
vendor/lib64/libaudcal.so
vendor/lib64/libaudioalsa.so
vendor/lib64/libaudio_log_utils.so
vendor/lib64/libaudioparsers.so
vendor/lib64/libaudioroute_ext.so
vendor/lib64/libcsd-client.so
vendor/lib64/libqtigef.so
vendor/lib/hw/audio.primary.sdm845.so
vendor/lib/vndk/libxlog.so
vendor/lib/libacdb-fts.so
@@ -45,19 +36,9 @@ vendor/lib/libaudioalsa.so
vendor/lib/libaudio_log_utils.so
vendor/lib/libaudioparsers.so
vendor/lib/libaudioroute_ext.so
vendor/lib/libcsd-client.so
vendor/lib/libqtigef.so
# Audio extensions
vendor/lib64/liba2dpoffload.so
vendor/lib64/libbatterylistener.so
vendor/lib64/libcomprcapture.so
vendor/lib64/libexthwplugin.so
vendor/lib64/libhdmiedid.so
vendor/lib64/libhdmipassthru.so
vendor/lib64/libhfp.so
vendor/lib64/libsndmonitor.so
vendor/lib64/libspkrprot.so
vendor/lib/liba2dpoffload.so
vendor/lib/libbatterylistener.so
vendor/lib/libcomprcapture.so
@@ -71,39 +52,24 @@ vendor/lib/libspkrprot.so
# Audio FX modules
system/etc/permissions/audiosphere.xml
system/framework/audiosphere.jar
vendor/lib64/soundfx/libasphere.so
vendor/lib64/soundfx/libdirac.so
vendor/lib64/soundfx/libshoebox.so
vendor/lib/soundfx/libasphere.so
vendor/lib/soundfx/libdirac.so
vendor/lib/soundfx/libshoebox.so
# Bluetooth (A2DP)
vendor/lib64/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.bluetooth_sar@1.0-impl.so
vendor/lib64/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib64/btaudio_offload_if.so
vendor/lib64/libbluetooth_audio_session_qti.so
vendor/lib64/vendor.qti.hardware.bluetooth_sar@1.0.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_audio@2.0-impl.so
vendor/lib/hw/vendor.qti.hardware.bluetooth_sar@1.0-impl.so
vendor/lib/hw/vendor.qti.hardware.btconfigstore@1.0-impl.so
vendor/lib/btaudio_offload_if.so
vendor/lib/libbluetooth_audio_session_qti.so
vendor/lib/vendor.qti.hardware.bluetooth_sar@1.0.so
# CDSP
vendor/bin/cdsprpcd
vendor/lib64/libcdsp_default_listener.so
vendor/lib64/libcdsprpc.so
vendor/lib64/libfastrpc_utf_stub.so
vendor/lib64/libsdsprpc.so
vendor/lib64/libsysmon_cdsp_skel.so
vendor/lib64/libmdsprpc.so
vendor/lib/libcdsp_default_listener.so
vendor/lib/libcdsprpc.so
vendor/lib/libfastcrc.so
vendor/lib/libfastrpc_utf_stub.so
vendor/lib/libsdsprpc.so
vendor/lib/libsysmon_cdsp_skel.so
vendor/lib/libmdsprpc.so
@@ -150,7 +116,6 @@ vendor/lib64/libcneoplookup.so
vendor/lib64/libcneqmiutils.so
vendor/lib64/libwms.so
vendor/lib64/libwqe.so
vendor/lib64/libxml.so
vendor/lib64/vendor.qti.data.factory@2.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.api@1.0.so
vendor/lib64/vendor.qti.hardware.data.cne.internal.constants@1.0.so
@@ -167,21 +132,11 @@ vendor/lib64/vendor.qti.latency@2.0.so
vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service
vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc
vendor/lib64/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
vendor/lib/hw/vendor.qti.hardware.capabilityconfigstore@1.0-impl.so
# Display (HDR) - from PNX - RKQ1.200906.002
vendor/lib/libhdr_tm.so|1e8a647523db0a09c9587a77f1f7b132a03c2354
vendor/lib64/libhdr_tm.so|7ac38563480eab0583cb440e667a44cfa596167a
# Display (SDM) - from PNX - RKQ1.200906.002
vendor/lib/libdisplayqos.so|7b83c36716bae758c71d34b85401d7d77afa2c23
vendor/lib/libqseed3.so|ea8d3775ab13c9ebfcdc2a02e60f56cc49a9d695
vendor/lib/libsdedrm.so|b11f16f16cdeaecb492b7ff2274cc02bd604bf0f
vendor/lib/libsdm-color.so|a18425c4e29bf76f25145d8f839108886283a45f
vendor/lib/libsdm-diag.so|52c1b843b733165284445b00cb8525063994f502
vendor/lib/libsdm-disp-vndapis.so|8f433d5996f90c584530ed5a6eba504c3b4cc2b1
vendor/lib/libsdmextension.so|872876273741968fda9006853979d9da1accc4fb
vendor/lib/libtinyxml2_1.so|f00b8f6218271d57fd1fb67b192db956e42e66fb
vendor/lib64/libdisplayqos.so|c3d45315871e402053dd1f353e9bde5cbf757277
vendor/lib64/libqseed3.so|f5990f19a99ec5f33b5a262493c4e642a1429f69
vendor/lib64/libsdedrm.so|5113b02d32b886281a790c8c323498195ec780f8
@@ -196,14 +151,6 @@ vendor/bin/hw/vendor.display.color@1.0-service|a9d360976833d863f74df381298de696d
vendor/bin/mm-pp-dpps|e825298dc12603df29c35aa6ad86fd0d0a7646a2
vendor/bin/ppd|8b60669c32f091dd5832579892c91dc3eb0e8130
vendor/etc/init/vendor.display.color@1.0-service.rc|5ad673f879b3685a0e79b5633437e5499cb94f48
vendor/lib/libdisp-aba.so|9271ecfa4d389d99bc592ab2a460eacef7515836
vendor/lib/vendor.display.color@1.0.so|640ab2b9c2f0077634ed74263c5558076d431203
vendor/lib/vendor.display.color@1.1.so|732531bbea59f5c1a90f409350d290607189c47f
vendor/lib/vendor.display.color@1.2.so|f1ea074c629f1fc27000efb44617f7e8386b12d4
vendor/lib/vendor.display.color@1.3.so|1467fbb9cbbb331da846fd2bcc3e644b55723bd5
vendor/lib/vendor.display.color@1.4.so|3b7f6a489f66b2cc8b3e5a467b9fe3f95a59c775
vendor/lib/vendor.display.color@1.5.so|e97e31b9567f9a6f9031063d2356e7391ba719e3
vendor/lib/vendor.display.postproc@1.0.so|251c33b11743f5e24ca220b220da367996f3077b
vendor/lib64/libdisp-aba.so|e76d6756cbb0532bc83ff98a06c4ca02fecdd8fe
vendor/lib64/vendor.display.color@1.0.so|253cd210899ea79133c7b7b9d31429e4a8d43c32
vendor/lib64/vendor.display.color@1.1.so|fe9b373785571bb890db27523b804dc7d4411bca
@@ -213,6 +160,24 @@ vendor/lib64/vendor.display.color@1.4.so|1396673668977af0a8afeaa64f891c3b356f958
vendor/lib64/vendor.display.color@1.5.so|f1c12eb133698917385d48913358eaffd9a10879
vendor/lib64/vendor.display.postproc@1.0.so|e56b66d744dd77bd87afbb30cab558acf15709fb
# Dolby
vendor/bin/hw/vendor.dolby.hardware.dms@2.0-service
vendor/etc/init/vendor.dolby.hardware.dms@2.0-service.rc
vendor/etc/media_codecs_dolby_audio.xml
vendor/etc/vintf/manifest/manifest_vendor.dolby.hardware.dms.xml
vendor/lib/libdapparamstorage.so
vendor/lib/libdeccfg.so
vendor/lib/libstagefright_soft_ac4dec.so
vendor/lib/libstagefright_soft_ddpdec.so
vendor/lib/soundfx/libswdap.so|810d0e266e4a77f06cba72fe8bdde2e1ede4f9f9
vendor/lib/soundfx/libswgamedap.so
vendor/lib/soundfx/libswvqe.so
vendor/lib/vendor.dolby.hardware.dms@2.0.so
vendor/lib64/libdapparamstorage.so
vendor/lib64/libdlbdsservice.so
vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so
vendor/lib64/vendor.dolby.hardware.dms@2.0.so
# DPM - from lemonadep - TP1A.220624.003
system_ext/bin/dpmd|d158b6ac01005a63fc69a2bd2aa948903d86757c
system_ext/etc/dpm/dpm.conf|95e27da8c989e96c6faea6f0697bce11955b62a5
@@ -229,7 +194,7 @@ system_ext/lib64/libdpmtcm.so|57b6c42d581305d8ef16aa127cd4cd1672d2e7f1
system_ext/priv-app/dpmserviceapp/dpmserviceapp.apk|1850acd0249751c5bcfba2e0bebcbe52c766a79c
vendor/bin/dpmQmiMgr|2da835936abc23f39903e68a63c5e7303edac1e7
vendor/etc/init/dpmQmiMgr.rc|1538743661a5c48c15cd105beaad20f72953885a
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so|3a407eb9cfe4bda97d793d0b671389aee7afe48f
vendor/lib64/com.qualcomm.qti.dpm.api@1.0.so;MODULE_SUFFIX=_vendor|3a407eb9cfe4bda97d793d0b671389aee7afe48f
vendor/lib64/libdpmqmihal.so|2656dc27e2da38a482d639701647520d259ff50b
# DRM
@@ -251,71 +216,51 @@ vendor/lib64/libspl.so
vendor/lib64/libssd.so
vendor/lib64/libStDrvInt.so
vendor/lib64/libtzdrmgenprov.so
vendor/lib/libcppf.so
vendor/lib/libdrmfs.so
vendor/lib/libdrmtime.so
vendor/lib/libGPreqcancel.so
vendor/lib/libGPreqcancel_svc.so
vendor/lib/libqisl.so
vendor/lib/libQSEEComAPI.so
vendor/lib/librpmb.so
vendor/lib/libSecureUILib.so
vendor/lib/libsecureui.so
vendor/lib/libsecureui_svcsock.so
vendor/lib/libspl.so
vendor/lib/libssd.so
vendor/lib/libStDrvInt.so
vendor/lib/libtzdrmgenprov.so
# ESE
vendor/bin/hw/vendor.qti.esepowermanager@1.0-service
vendor/etc/init/vendor.qti.esepowermanager@1.0-service.rc
vendor/lib64/hw/vendor.qti.esepowermanager@1.0-impl.so
vendor/lib64/vendor.qti.esepowermanager@1.0.so
vendor/lib/hw/vendor.qti.esepowermanager@1.0-impl.so
vendor/lib/vendor.qti.esepowermanager@1.0.so
# Gatekeeper
vendor/bin/hw/android.hardware.gatekeeper@1.0-service-qti
vendor/etc/init/android.hardware.gatekeeper@1.0-service-qti.rc
vendor/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so
vendor/lib/hw/android.hardware.gatekeeper@1.0-impl-qti.so
# Graphics (Adreno) - from PNX - RKQ1.200906.002
vendor/lib/egl/eglSubDriverAndroid.so|cc5acc02889131a29b624b4c19ab90b8273f393d
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so|ae30bbf20dc911308407da99cb263e8de6b2eecb
vendor/lib/egl/libGLESv1_CM_adreno.so|b94ba8188a14dd262abac1b8d667bce3319cf344
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so|fc0454b2c9d9997f9b7f0b320482fac6db5cab2c
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so|2ac81ee05dd4afb34ef6e56342ee1757f2db1409
vendor/lib/egl/libq3dtools_esx.so|86bab4e474d680accbc76582c9905fe6824f702d
vendor/lib/libC2D2.so|267be7bd6768fa3b9bed2b9a42062cb5a77ca59b
vendor/lib/libCB.so|c4c8fbcb73a48aa1dc14a453b47ed7f1223bb933
vendor/lib/libOpenCL.so|cbc00e31eedea81f43cc7358181a794503b867b1
vendor/lib/libVkLayer_q3dtools.so|a52a6eba8415169a5895b4615f879f966f81d5e2
vendor/lib/libadreno_utils.so|0796bc7ce75dbad3d85e52d3aacd4ba8b59fbaf3
vendor/lib/libc2d30_bltlib.so|950c705e6dbc02b646a0129e66e94e192f5cd87f
vendor/lib/libgpudataproducer.so|c8623c9b2e8f330e7f5e77e5d435677719bf5688
vendor/lib/libgsl.so|777dab024670cceb8c60054cfadcccef33151640
vendor/lib/libllvm-glnext.so|a20bdbe458c401e9c1726f475f50fb52f9f6fa12
vendor/lib/libllvm-qcom.so|063963a7d6dfa90c6fa2cbca55943b23a870e02a
vendor/lib/libpvr.so|9d7e50e1deb16ef03e05141e1babcc49160f840c
vendor/lib64/egl/eglSubDriverAndroid.so|cd1cb25bfd16f15e0d7c6495493359838a1b6e96
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so|96a44c8e3c18c534eb1f333956541955e9f5bd7e
vendor/lib64/egl/libGLESv1_CM_adreno.so|e2e8a079e680bf92f686fb79146651c158f6e130
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so|ba9e5618266e50a4d2ef723756e08979e0b4d12b
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so|046be35d03cbea2c73a1339eefa1bffc87ab6ebc
vendor/lib64/egl/libq3dtools_esx.so|fe5b3f2dabe3b927544d109ac7d7926d8e3275d6
vendor/lib64/libC2D2.so|6fb775e393ce7161b30e3a71fa0f320e86374425
vendor/lib64/libCB.so|bfb47fec90627dd68df536dbb4734453ebae1cf6
vendor/lib64/libOpenCL.so|4eefe5848a02894166a337abbbc5baddb72c46fb
vendor/lib64/libVkLayer_q3dtools.so|4fc15fd2c49e32b2151fb00034d389d45cf240c1
vendor/lib64/libadreno_utils.so|010d7079615cf09413640521ed2db53e91721437
vendor/lib64/libc2d30_bltlib.so|aa37c84cf6cc1e1ac670b433c97d0bf41308f9ca
vendor/lib64/libgpudataproducer.so|7d3c8de131f4d64a8ec82840e097f78f8b9ce004
vendor/lib64/libgsl.so|edcab73069716f117394de07be423331631f9366
vendor/lib64/libllvm-glnext.so|c11e3f0f5b6d21d1badcca3bc8cac947c781deeb
vendor/lib64/libllvm-qcom.so|a80c58c8f316af15a7a2d089536f824836f6c056
vendor/lib64/libpvr.so|ac4805ba7a7c78570a60340d01248d258046e456
# Graphics (Adreno) - from LA.UM.9.3.r1-02700-sdm845.0
vendor/lib/egl/eglSubDriverAndroid.so|de8684b7f60397dde4f7b334074e64fc22bfe529
vendor/lib/egl/libEGL_adreno.so;SYMLINK=vendor/lib/libEGL_adreno.so|e73369c2ec0751d6912518de205106d4ee19291c
vendor/lib/egl/libGLESv1_CM_adreno.so|715f3463528f1e74ffa02627ee5916a09e0748f5
vendor/lib/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib/libGLESv2_adreno.so|e117aacc5e112209a3f69f2dc49496f4eed3f104
vendor/lib/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib/libq3dtools_adreno.so|9ec9c053592e58be935e8ae5e0a9d362c101773a
vendor/lib/egl/libq3dtools_esx.so|f7136820d0221d380ccd8a79c4d72ebe70daba7d
vendor/lib/libC2D2.so|91f015cad79024fdbb6a5603cce48693e58a4510
vendor/lib/libCB.so|9fdab0a0d88a3a6b8ad328101b39fb7a354b4e02
vendor/lib/libOpenCL.so|6bf59a4c37d3c744448380408f238b87b481b7b5
vendor/lib/libVkLayer_q3dtools.so|b28f8ce0300626dd703cf87972444f7b7bccd1fd
vendor/lib/libadreno_utils.so|6976022499301813c46c57bba63d7c2bb7f04732
vendor/lib/libc2d30_bltlib.so|71703a543760e40ba26cde07c2d41416cc9331ec
vendor/lib/libgpudataproducer.so|7dd0b44a49747f79d74b6ecabe168f8b5128a1a8
vendor/lib/libgsl.so|3290f0f64edbd499cfc2ae00cd817cd94a85f7e0
vendor/lib/libllvm-glnext.so|89591f95f2321b6ae70d91609efcae3761beb00c
vendor/lib/libllvm-qcom.so|80b415741f1ac890cff1a4756b1c1fe84edc5747
vendor/lib64/egl/eglSubDriverAndroid.so|d6dc70f08a0e68e897c2c8a956a8c2f3e036c540
vendor/lib64/egl/libEGL_adreno.so;SYMLINK=vendor/lib64/libEGL_adreno.so|5d517d4b294073bf2773b8223a59c3b4827fd26c
vendor/lib64/egl/libGLESv1_CM_adreno.so|0a2a648ca2dcd887ea62860bbfa2ef397f01d42d
vendor/lib64/egl/libGLESv2_adreno.so;SYMLINK=vendor/lib64/libGLESv2_adreno.so|366d1e8188e583ae6a923a37f9318b38ad88c7ff
vendor/lib64/egl/libq3dtools_adreno.so;SYMLINK=vendor/lib64/libq3dtools_adreno.so|189b9c3d400c6a98c87582b8df0910530cba6d44
vendor/lib64/egl/libq3dtools_esx.so|2799b3480cd2c08532ab58b20fe7829e5628a1ac
vendor/lib64/libC2D2.so|175115cc36fd471f9eb83af76be21b5f602b9460
vendor/lib64/libCB.so|e41ce1d944691107ef081b1d618a4c7d82680416
vendor/lib64/libOpenCL.so|ee804e05a12dffd74f98a426d00039a8cfcb5662
vendor/lib64/libVkLayer_q3dtools.so|b5a0185f857bb35eb200bf3964fcf7b368dac1f2
vendor/lib64/libadreno_utils.so|50916234ddd7ec94540c18747f9c0e80bae29b84
vendor/lib64/libc2d30_bltlib.so|b7c7bbc41f317833927d9bf75fbf9b411dd63a96
vendor/lib64/libgpudataproducer.so|b6084218f08ca019b4121d5c4346c8cf56d58535
vendor/lib64/libgsl.so|b22d3ff79e080a834e67e2103f8b90c6a5c10a2d
vendor/lib64/libllvm-glnext.so|696e4a70a6bed9eb9efb8f76ee463f00ca3b4da6
vendor/lib64/libllvm-qcom.so|79164daddbfb3c9c7b31933d7dfe144ddf2c858d
# Graphics (Adreno firmware)
vendor/firmware/a630_gmu.bin
@@ -326,9 +271,9 @@ vendor/firmware/a630_zap.b02
vendor/firmware/a630_zap.elf
vendor/firmware/a630_zap.mdt
# Graphics (Vulkan) - from PNX - RKQ1.200906.002
vendor/lib/hw/vulkan.adreno.so|b2680e5b899d75fa3f82b457635e15c6998202a4
vendor/lib64/hw/vulkan.adreno.so|fcc99045aaf7eed0925ac2b64ff2af085212954a
# Graphics (Vulkan) - from LA.UM.9.3.r1-02700-sdm845.0
vendor/lib/hw/vulkan.adreno.so|dfa5eaa05520e4728ee58959c706974eca2432d2
vendor/lib64/hw/vulkan.adreno.so|7fe53628fbaf5a4c866fd82c6254021d670c7d83
# Hotword enrollment
product/priv-app/HotwordEnrollmentOKGoogleWCD9340/HotwordEnrollmentOKGoogleWCD9340.apk|1cbc6ae6490cfc6e16619773809b9afcc9998f91
@@ -369,12 +314,12 @@ vendor/etc/init/ims_rtp_daemon.rc
vendor/etc/init/imsdatadaemon.rc
vendor/etc/init/imsqmidaemon.rc
vendor/etc/init/imsrcsd.rc
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so
vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so
vendor/lib64/com.qualcomm.qti.uceservice@2.0.so
vendor/lib64/com.qualcomm.qti.uceservice@2.1.so
vendor/lib64/com.qualcomm.qti.imscmservice@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.imscmservice@2.2.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.uceservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/com.qualcomm.qti.uceservice@2.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/librcc.so
vendor/lib64/lib-imscmservice.so
vendor/lib64/lib-imsdpl.so
@@ -388,18 +333,18 @@ vendor/lib64/lib-rtpcore.so
vendor/lib64/lib-rtpsl.so
vendor/lib64/lib-siputility.so
vendor/lib64/lib-uceservice.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.1.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.2.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.3.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.4.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.hardware.radio.ims@1.5.so
vendor/lib64/vendor.qti.hardware.radio.ims@1.6.so
vendor/lib64/vendor.qti.ims.callinfo@1.0.so
vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so
vendor/lib64/vendor.qti.imsrtpservice@2.0.so
vendor/lib64/vendor.qti.ims.callinfo@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.ims.rcsconfig@1.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.imsrtpservice@2.0.so;MODULE_SUFFIX=_vendor
vendor/lib64/vendor.qti.imsrtpservice@2.1-service-Impl.so
vendor/lib64/vendor.qti.imsrtpservice@2.1.so
vendor/lib64/vendor.qti.imsrtpservice@2.1.so;MODULE_SUFFIX=_vendor
# IPA firmware
vendor/etc/init/ipa_fws.rc
@@ -415,18 +360,12 @@ vendor/firmware/ipa_fws.mdt
vendor/bin/msm_irqbalance
vendor/etc/msm_irqbalance.conf
# Keymaster
vendor/lib64/libkeymasterdeviceutils.so
vendor/lib64/libkeymasterprovision.so
vendor/lib64/libkeymasterutils.so
# Listen
vendor/lib64/hw/sound_trigger.primary.sdm845.so|36f4868c560deaffc07e661893e145167d707fbe
vendor/lib64/libcapiv2svacnn.so
vendor/lib64/libcapiv2vop.so
vendor/lib64/libgcs-calwrapper.so
vendor/lib64/libgcs-ipc.so
vendor/lib64/libgcs-osal.so
vendor/lib64/libgcs.so
vendor/lib64/libjnihelper.so
vendor/lib64/liblistenjni.so
vendor/lib64/liblistensoundmodel2.so
vendor/lib64/libmulawdec.so
vendor/lib/hw/sound_trigger.primary.sdm845.so|5454d56f9e19a8bcc00c1f3cd0bf305406c125a5
vendor/lib/libadpcmdec.so
vendor/lib/libcapiv2svacnn.so
@@ -435,7 +374,6 @@ vendor/lib/libgcs-calwrapper.so
vendor/lib/libgcs-ipc.so
vendor/lib/libgcs-osal.so
vendor/lib/libgcs.so
vendor/lib/libjnihelper.so
vendor/lib/liblistenjni.so
vendor/lib/liblistensoundmodel2.so
vendor/lib/libmulawdec.so
@@ -457,37 +395,14 @@ vendor/lib64/unnhal-acc-hvx.so
vendor/lib/rfsa/adsp/libhexagon_nn_skel.so
# OMX - from PNX - RKQ1.200906.002
vendor/lib/libOmxAacDec.so|3d90cded7de2423503025d115e2788e0eff7390f
vendor/lib/libOmxAlacDec.so|0f0e8be4b1558fb7ab87c3b8dfa7f7a2cf33fe75
vendor/lib/libOmxAmrDec.so|942bb36c76ff125849b947acd1dbb8edcfee8b16
vendor/lib/libOmxAmrwbplusDec.so|6869d09e4499824a476d3b036e025b5d70a83c70
vendor/lib/libOmxApeDec.so|8de514dddfbd5a09f740cecbaf73bfb8c290ca9a
vendor/lib/libOmxDsdDec.so|5a58c8b54578c6c7520666df4040a422fea67df9
vendor/lib/libOmxEvrcDec.so|58d55a09798ae13c90829c7ced2e7fee1c61d8b1
vendor/lib/libOmxG711Dec.so|254245293c12e4d32217b0704bff5f676f4bb5de
vendor/lib/libOmxQcelp13Dec.so|6c55114663ba69f2c2a7e6c69989fc79d67977b3
vendor/lib/libOmxVideoDSMode.so|5862b9d707ca00cd87b70a7f581df49fa3304d2c
vendor/lib/libOmxVpp.so|7a9a96445b55f28013ea8f4ed767c7e245420c4f
vendor/lib/libOmxWmaDec.so|eab25fd58910bbeb57812c75fd3c5511c60fa592
vendor/lib/libdsd2pcm.so|427be2997fcd72e94c33d08b2cf1fde5bf969fd4
vendor/lib64/libOmxAacDec.so|98b894101c87beb61f0f1e5a9e3c6ea430441bdd
vendor/lib64/libOmxAlacDec.so|3298ac6565f5362e7ed5c4196cfacc1c8811fa72
vendor/lib64/libOmxAmrDec.so|f5302be684af636aa4b3101f268856fc7706a2a0
vendor/lib64/libOmxAmrwbplusDec.so|a98845715e128e6c2649289988e4ff4de1ef9f8b
vendor/lib64/libOmxApeDec.so|61416c5ed237a741e524b36c2b5c58a067896e9b
vendor/lib64/libOmxEvrcDec.so|e4d98d61ad8588956b7f4f937dd720164d584f7e
vendor/lib64/libOmxG711Dec.so|53675a26d5386c868127304c6dfe9dd130f106f8
vendor/lib64/libOmxQcelp13Dec.so|65952f3680f9865ea601de764037637d6ee8c990
vendor/lib64/libOmxVpp.so|a87440c7838b6f03726d97a4a52b695bb4c6e8f8
vendor/lib64/libOmxWmaDec.so|7b2a714a74fea03a403a7d0edef61db2f70d7d4e
# Peripheral manager
vendor/bin/pm-proxy
vendor/bin/pm-service
vendor/lib64/libperipheral_client.so
vendor/lib64/libspcom.so
vendor/lib/libperipheral_client.so
vendor/lib/libspcom.so
# Power-off alarm - from caymanslm - SKQ1.211103.001
product/app/PowerOffAlarm/PowerOffAlarm.apk:system_ext/app/PowerOffAlarm/PowerOffAlarm.apk|f0a86fc11b38c059912303857bc4c79155430bcc
@@ -506,7 +421,6 @@ vendor/lib64/libdiag.so
vendor/lib64/libdsi_netctrl.so
vendor/lib64/libdsutils.so
vendor/lib64/libidl.so
vendor/lib64/libqcci_legacy.so
vendor/lib64/libqcmaputils.so
vendor/lib64/libqdi.so
vendor/lib64/libqdp.so
@@ -520,13 +434,9 @@ vendor/lib64/libqmi_encdec.so
vendor/lib64/libqminvapi.so
vendor/lib64/libqmiservices.so
vendor/lib/libdiag.so
vendor/lib/libdsi_netctrl.so
vendor/lib/libdsutils.so
vendor/lib/libidl.so
vendor/lib/libqcci_legacy.so
vendor/lib/libqcmaputils.so
vendor/lib/libqdi.so
vendor/lib/libqdp.so
vendor/lib/libqmi.so
vendor/lib/libqmi_cci.so
vendor/lib/libqmi_client_helper.so
@@ -584,6 +494,7 @@ vendor/lib64/libril-qcril-hook-oem.so
vendor/lib64/librilqmiservices.so
vendor/lib64/libsettings.so
vendor/lib64/libsystem_health_mon.so
vendor/lib64/libxml.so
vendor/lib64/qcrild_librilutils.so
vendor/lib64/qtibus.so
vendor/lib64/qtimutex.so
@@ -602,26 +513,7 @@ vendor/lib64/vendor.qti.hardware.radio.uim@1.2.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.0.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_client@1.1.so
vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so
vendor/lib/libconfigdb.so
vendor/lib/liblqe.so
vendor/lib/libmdmdetect.so
vendor/lib/libnetmgr.so
vendor/lib/libnetmgr_common.so
vendor/lib/libnetmgr_nr_fusion.so
vendor/lib/libnetmgr_rmnet_ext.so
vendor/lib/libpdmapper.so
vendor/lib/libpdnotifier.so
vendor/lib/libqcrilFramework.so
vendor/lib/libqrtr.so
vendor/lib/libqsocket.so
vendor/lib/libril-qc-ltedirectdisc.so
vendor/lib/libril-qc-radioconfig.so
vendor/lib/libril-qcril-hook-oem.so
vendor/lib/librilqmiservices.so
vendor/lib/libsettings.so
vendor/lib/libsystem_health_mon.so
vendor/lib/qcrild_librilutils.so
vendor/lib/qtimutex.so
vendor/radio/qcril_database/qcril.db
vendor/radio/qcril_database/upgrade/0_initial.sql
vendor/radio/qcril_database/upgrade/1_version_intro.sql
@@ -641,23 +533,18 @@ vendor/lib64/libsensorcal.so
vendor/lib64/libsensorslog.so
vendor/lib64/libssc.so
vendor/lib64/libssc_default_listener.so
vendor/lib64/libssccalapi.so
vendor/lib64/libsns_device_mode_stub.so
vendor/lib64/libsns_fastRPC_util.so
vendor/lib64/libsns_low_lat_stream_stub.so
vendor/lib64/libsnsdiaglog.so
vendor/lib64/vendor.qti.hardware.sensorscalibrate@1.0.so
vendor/lib/hw/vendor.qti.hardware.sensorscalibrate@1.0-impl.so
vendor/lib/libsensorcal.so
vendor/lib/libsensorslog.so
vendor/lib/libssc.so
vendor/lib/libssc_default_listener.so
vendor/lib/libssccalapi.so
vendor/lib/libsns_device_mode_stub.so
vendor/lib/libsns_fastRPC_util.so
vendor/lib/libsns_low_lat_stream_stub.so
vendor/lib/libsnsdiaglog.so
vendor/lib/vendor.qti.hardware.sensorscalibrate@1.0.so
# Snapdragon Computer Vision Engine
vendor/etc/scve/facereco/gModel.dat
@@ -720,24 +607,17 @@ vendor/lib64/libGPQTEEC_vendor.so
vendor/lib64/libGPTEE_vendor.so
vendor/lib64/libQTEEConnector_vendor.so
vendor/lib64/vendor.qti.hardware.qteeconnector@1.0.so
vendor/lib/hw/vendor.qti.hardware.qteeconnector@1.0-impl.so
vendor/lib/libGPQTEEC_vendor.so
vendor/lib/libGPTEE_vendor.so
vendor/lib/libQTEEConnector_vendor.so
vendor/lib/vendor.qti.hardware.qteeconnector@1.0.so
# Trusted User Interface
vendor/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti
vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc
vendor/lib64/vendor.qti.hardware.tui_comm@1.0.so
vendor/lib/vendor.qti.hardware.tui_comm@1.0.so
# Widevine DRM
vendor/bin/hw/android.hardware.drm@1.2-service.widevine
vendor/etc/init/android.hardware.drm@1.2-service.widevine.rc
vendor/lib64/mediadrm/libwvdrmengine.so
vendor/lib64/libwvhidl.so
vendor/lib/mediadrm/libwvdrmengine.so
# VPP - from PNX - RKQ1.200906.002
vendor/bin/vppservice|555301b19a86374900159423c88efd7bd9cea2f9
@@ -758,27 +638,27 @@ vendor/lib64/vendor.qti.hardware.vpp@1.2.so|ca1906012d0ab6dc9048aa49703833512308
vendor/bin/cnss-daemon
vendor/bin/nv_mac
# WiFi Display (system) - from KB2001 14.0.0.81(EX01)
system/framework/WfdCommon.jar|a661c494d064b79a3f71579592411fada1ea232f
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe
# WiFi Display (system) - from lemonadep - UKQ1.230924.001
system/framework/WfdCommon.jar;BOOT_JAR|a661c494d064b79a3f71579592411fada1ea232f
system_ext/bin/wfdservice|400d123df78c1ed2e9643ff3ddf5ee5748f954fe|8a0be1b9478adf4b44a1ba34f045b1871f64ac5c
system_ext/etc/init/wfdservice.rc|907def8565d8f91f531ca7dfad880af05d540b0c
system_ext/etc/seccomp_policy/wfdservice.policy|5b3592c965f16b2d55ac89d56d8d3c49a6b5800b
system_ext/etc/wfdconfigsink.xml|cb78df66948314a75080a4161321fb3111a0785a
system_ext/lib/com.qualcomm.qti.wifidisplayhal@1.0.so|cb88bc73bf9f44d7da000a41d38b309ffdf71370
system_ext/lib/libmmosal.so|e806f8040b4e59c6e08e437734a2176090a94ae3
system_ext/lib/libmmparser_lite.so|873d818fbfa0ce01a1f9cd951c1fba32d4159735
system_ext/lib/libmmparser_lite.so|61bbc90e3a26a64007eb9b0871b43cce72ee6b7e
system_ext/lib/libmmrtpdecoder.so|4fc76315f11ff5fe416f36b66c9422ef05eae182
system_ext/lib/libmmrtpencoder.so|0fa2096eec29eec395f6bd88d7d1049a127e090c
system_ext/lib/libwfdavenhancements.so|581db496334d2adb76e6c6af67620f49ca24eabd
system_ext/lib/libwfdclient.so|a9639d9f269880700bac6fc06e8302702fb0ab32
system_ext/lib/libwfdcommonutils.so|b738182e77f3e7faf72460f09ebdfca7de5e0c23
system_ext/lib/libwfdconfigutils.so|df70b2da2b8aff916a1c2f6e7365d87cf1c4ffdf
system_ext/lib/libwfdconfigutils.so|a52a96e2699f3a5ad79838e356cd90838e26218b
system_ext/lib/libwfddisplayconfig.so|f46fe63fb3d58c143dc92741a962167af3d8b928
system_ext/lib/libwfdmminterface.so|5844114d7cc823090a70fe4f44cbda0ddf585ebd
system_ext/lib/libwfdmmsink.so|23fb5c836fc06865b229c30b46998e41c0624dac
system_ext/lib/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc
system_ext/lib/libwfdmmsrc_system.so|0adfc69a5560158f3a6803ba720acc795d6d05dc|f4395e4a22bed41fdbe86c988caba7d46cf0c8bf
system_ext/lib/libwfdrtsp.so|afd69963c2bd59bdb3ff23e01710c61ed90c5d87
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2
system_ext/lib/libwfdservice.so|07e6d0e00393a8c068f75b46531d2e75fdaebde2|679e2cb2b25374a57dfd860286da96abeee04f36
system_ext/lib/libwfdsinksm.so|875171cc6ae534dd941eec1c87b78d5961e19c06
system_ext/lib/libwfduibcinterface.so|e90fa4920b010bd6ef2bd78c2d2644cbd0fcbffa
system_ext/lib/libwfduibcsink.so|91af548471c395a958e6155dd9be19cccbe482d3
@@ -787,16 +667,16 @@ system_ext/lib/libwfduibcsrc.so|a0b1c73015c449468db0d2776fdfcc56dfeee53b
system_ext/lib/libwfduibcsrcinterface.so|2e24ec6a075407664488b4214eef35cb2ca845f4
system_ext/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|45a0a8cd9f1aa5cbe69b113192d42bc42e32e9c3
system_ext/lib64/libmmosal.so|8488b27e6a9cda05c68181e8bf20afa7ba345222
system_ext/lib64/libmmparser_lite.so|afd7b441e1bce732c14f5f8f49821d43bb2ee791
system_ext/lib64/libmmparser_lite.so|59d550a52773722f1fe515bd5fba86918cf6f54e
system_ext/lib64/libmmrtpdecoder.so|0da526d51135ea58236ab6bcc2d1b7484931df24
system_ext/lib64/libmmrtpencoder.so|fafe00d1ed3d691c6d2c2d963144218764cad5ae
system_ext/lib64/libwfdclient.so|0070b1e88cee6ebaf17dcb02c2706232cc087071
system_ext/lib64/libwfdcommonutils.so|14b3bd86703f2aca0abb1232d2304e626c1af644
system_ext/lib64/libwfdconfigutils.so|3b2d91fe7efefd81a0b5cdff59b9918c063fa7a9
system_ext/lib64/libwfdconfigutils.so|6f1a3a862ddde4245ea58ad310101df620d3a00b
system_ext/lib64/libwfddisplayconfig.so|5fd7bf7abaedfe890442f88183c49755b25c39aa
system_ext/lib64/libwfdmminterface.so|3f16acefbe87741a5841c1c70cf74ff917299c4c
system_ext/lib64/libwfdmmsink.so|8150b750357b606475521b491f78d566673f9888
system_ext/lib64/libwfdnative.so|6d6dad5e631bc4d63463f608c47f3f9e5493944f
system_ext/lib64/libwfdnative.so;SYMLINK=system_ext/priv-app/WfdService/lib/arm64/libwfdnative.so|92ec61d464c07d9e9020cf413489cdc01fb19abc|3112f3492eb52db39ca1d091d9d25f64d625e670
system_ext/lib64/libwfdrtsp.so|8181e44d7c1f722218fabd8fe3bf788454a3f586
system_ext/lib64/libwfdsinksm.so|c4d68ecbe0accd24296c18444e5a82b6a24be8d8
system_ext/lib64/libwfduibcinterface.so|dca32fe063bdba7ce3b131b16cf112b793ae03ad
@@ -815,7 +695,7 @@ vendor/etc/seccomp_policy/wfdhdcphalservice.policy|a489ab323be4be2df3de9f84a6b5e
vendor/etc/seccomp_policy/wfdvndservice.policy|b46f0c22a1f9b65c6750205e161c0a3f84ac716b
vendor/etc/seccomp_policy/wifidisplayhalservice.policy|f113f27e0e301a18baf0ade08c23071a27c7dc52
vendor/lib/libFileMux_proprietary.so|e59edd4604a7c73147118161cab5b7ac6bb16c82
vendor/lib/libmmosal.so|57185feced72009af2df1b09117702c9fae7182b
vendor/lib/libmmosal.so;MODULE_SUFFIX=_vendor|57185feced72009af2df1b09117702c9fae7182b
vendor/lib/libmmrtpdecoder_proprietary.so|9232f505ea8f0c1e9f81a049c583fba32a450d73
vendor/lib/libmmrtpencoder_proprietary.so|d8386b78c976d94867455c67dd10d63e8a343363
vendor/lib/libwfdcodecv4l2_proprietary.so|70a2900804160bc53bb19c11e81278ffde0c5fee
@@ -838,9 +718,8 @@ vendor/lib/libwfduibcsinkinterface_proprietary.so|64b802f12ffb30418a072d0ebf3c26
vendor/lib/libwfduibcsrc_proprietary.so|b78df6ab7acb850f2adb875ccecb1a3c3539f4d2
vendor/lib/libwfduibcsrcinterface_proprietary.so|91837ba6b6692e1d553ece3aa4469dd64f164a04
vendor/lib/libwfdutils_proprietary.so|cae4c266704da4ce15b59c13f57ccf8f1391b699
vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so|fdba1b3c11ace4b0415be4e5944cdb288cd35f58
vendor/lib/vendor.qti.hardware.wifidisplaysession@1.0.so;MODULE_SUFFIX=_vendor|fdba1b3c11ace4b0415be4e5944cdb288cd35f58
vendor/lib/vendor.qti.hardware.wifidisplaysessionl@1.0-halimpl.so|044c6cfd4bc603e4aa372ab1a3d287a8d8e5fc48
vendor/lib64/libwfdhdcpcp.so|ba43f54ee4e34562b31c9595d2ad0639033e8fdc
# WiFi Display (vendor) - from lemonadep - TP1A.220624.003
vendor/etc/wfdconfig.xml|4f863ac9a71bafff8afc14e8fab26af979bbb1d6

14
recovery/Android.bp Normal file
View File

@@ -0,0 +1,14 @@
//
// Copyright (C) 2025 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
cc_library_static {
name: "librecovery_updater_xiaomi",
include_dirs: [
"bootable/deprecated-ota/edify/include",
"bootable/recovery",
"bootable/recovery/otautil/include",
],
srcs: ["recovery_updater.cpp"],
}

View File

@@ -1,11 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := \
bootable/recovery \
bootable/recovery/edify/include \
bootable/recovery/otautil/include
LOCAL_SRC_FILES := recovery_updater.cpp
LOCAL_MODULE := librecovery_updater_xiaomi
include $(BUILD_STATIC_LIBRARY)

View File

@@ -1,6 +1,6 @@
# Copyright (C) 2009 The Android Open Source Project
# Copyright (c) 2011, The Linux Foundation. All rights reserved.
# Copyright (C) 2017-2024 The LineageOS Project
# Copyright (C) 2017-2023 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -17,13 +17,6 @@
import common
import re
def FullOTA_InstallBegin(info):
AddImage(info, "RADIO", "super_dummy.img", "/tmp/super_dummy.img");
info.script.AppendExtra('package_extract_file("install/bin/flash_super_dummy.sh", "/tmp/flash_super_dummy.sh");')
info.script.AppendExtra('set_metadata("/tmp/flash_super_dummy.sh", "uid", 0, "gid", 0, "mode", 0755);')
info.script.AppendExtra('run_program("/tmp/flash_super_dummy.sh");')
return
def FullOTA_InstallEnd(info):
OTA_InstallEnd(info)
return
@@ -40,8 +33,8 @@ def IncrementalOTA_Assertions(info):
AddTrustZoneAssertion(info, info.target_zip)
return
def AddImage(info, dir, basename, dest):
path = dir + "/" + basename
def AddImage(info, basename, dest):
path = "IMAGES/" + basename
if path not in info.input_zip.namelist():
return
@@ -51,8 +44,8 @@ def AddImage(info, dir, basename, dest):
info.script.AppendExtra('package_extract_file("%s", "%s");' % (basename, dest))
def OTA_InstallEnd(info):
AddImage(info, "IMAGES", "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "IMAGES", "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
AddImage(info, "dtbo.img", "/dev/block/bootdevice/by-name/dtbo")
AddImage(info, "vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta")
return
def AddTrustZoneAssertion(info, input_zip):

View File

@@ -0,0 +1,14 @@
cc_library_shared {
name: "RemovePackages",
overrides: [
"arcore",
"GoogleTTS",
"Photos",
"SoundAmplifierPrebuilt",
"SwitchAccessPrebuilt",
"talkback",
"Tycho",
"VoiceAccessPrebuilt",
],
compile_multilib: "64",
}

View File

@@ -1,27 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := RemovePackages
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_OVERRIDES_PACKAGES := \
AdaptiveVPNPrebuilt-10307 \
AiWallpapers \
arcore-1.42 \
Backgrounds \
Chrome \
GoogleTTS \
PixelLiveWallpaperPrebuilt \
PixelWallpapers2024 \
ScribePrebuilt \
SoundAmplifierPrebuilt \
SwitchAccessPrebuilt \
talkback \
Photos \
Tycho \
VoiceAccessPrebuilt
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := /dev/null
include $(BUILD_PREBUILT)

View File

@@ -1,74 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.zram
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.zram
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.early_boot.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.early_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.post_boot.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.post_boot.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.power.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.power.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.recovery.qcom.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.recovery.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := ueventd.qcom.rc
LOCAL_MODULE_STEM := ueventd.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/ueventd.qcom.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.sensors.sh
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.qcom.sensors.sh
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
include $(BUILD_PREBUILT)

160
sdm845.mk
View File

@@ -1,5 +1,5 @@
#
# Copyright (C) 2018-2024 The LineageOS Project
# Copyright (C) 2018-2025 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -19,7 +19,8 @@ PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS := true
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
$(LOCAL_PATH)/overlay-lineage
$(LOCAL_PATH)/overlay-lineage \
$(LOCAL_PATH)/overlay-evolution
PRODUCT_ENFORCE_RRO_TARGETS := *
@@ -71,12 +72,10 @@ PRODUCT_PACKAGES += \
android.hardware.audio.service \
android.hardware.soundtrigger@2.2-impl:32 \
audio.r_submix.default \
audio.usb.default \
libaudioroute.vendor \
audio.usbv2.default \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libtinycompress \
libvolumelistener \
tinymix
@@ -87,31 +86,25 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration_a2dp_offload_disabled.xml \
$(LOCAL_PATH)/audio/bluetooth_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_hearing_aid_audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/dax-default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/dolby/dax-default.xml \
$(LOCAL_PATH)/audio/graphite_ipc_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/graphite_ipc_platform_info.xml \
$(LOCAL_PATH)/audio/listen_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/listen_platform_info.xml \
$(LOCAL_PATH)/audio/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml
$(LOCAL_PATH)/audio/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
$(LOCAL_PATH)/audio/usbv2_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usbv2_audio_policy_configuration.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0.vendor \
android.hardware.bluetooth.audio-impl \
audio.bluetooth.default \
vendor.qti.hardware.bluetooth_audio@2.0.vendor \
vendor.qti.hardware.btconfigstore@1.0.vendor
audio.bluetooth.default
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl:32 \
android.hardware.camera.provider@2.4-service \
libdng_sdk.vendor \
libgui_shim \
libpiex_shim \
vendor.qti.hardware.camera.device@1.0.vendor
android.hardware.camera.provider@2.4-service
# Common init scripts
PRODUCT_PACKAGES += \
@@ -119,24 +112,18 @@ PRODUCT_PACKAGES += \
init.qcom.early_boot.sh \
init.qcom.post_boot.sh \
init.qcom.rc \
init.qcom.recovery.rc \
init.qcom.power.rc \
init.qcom.sensors.sh \
init.qcom.sh \
init.qcom.usb.rc \
init.qcom.usb.sh \
init.recovery.qcom.rc \
ueventd.qcom.rc \
usb_compositions.conf
ueventd.qcom.rc
# Configstore
PRODUCT_PACKAGES += \
disable_configstore
# Cgroup and task profiles
PRODUCT_COPY_FILES += \
system/core/libprocessgroup/profiles/cgroups_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/cgroups.json \
system/core/libprocessgroup/profiles/task_profiles_28.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
# Context Hub
PRODUCT_PACKAGES += \
android.hardware.contexthub@1.0-impl.generic \
@@ -147,44 +134,25 @@ PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
# Device-specific settings
PRODUCT_PACKAGES += \
XiaomiDolby \
XiaomiParts
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.composer@2.3-service \
android.hardware.graphics.mapper@2.0-impl-qti-display \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
gralloc.sdm845 \
hwcomposer.sdm845 \
libdisplayconfig.qti \
libdisplayconfig.system.qti \
libqdMetaData \
libqdMetaData.system \
libtinyxml \
memtrack.sdm845 \
vendor.display.config@1.0.vendor \
vendor.display.config@2.0 \
hwcomposer.qcom \
vendor.qti.hardware.display.allocator@1.0-service \
vendor.qti.hardware.display.config-V5-ndk
vendor.qti.hardware.memtrack-service
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.3.vendor \
android.hardware.drm-service.clearkey
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.xiaomi
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor \
libion.vendor
# GNSS
PRODUCT_PACKAGES += \
android.hardware.gnss@2.0.vendor
android.hardware.biometrics.fingerprint-service.xiaomi
# fastbootd
PRODUCT_PACKAGES += \
@@ -195,18 +163,6 @@ PRODUCT_PACKAGES += \
android.hardware.health-service.qti \
android.hardware.health-service.qti_recovery
# HIDL
PRODUCT_PACKAGES += \
android.hidl.allocator@1.0.vendor \
android.hidl.base@1.0 \
android.hidl.base@1.0.vendor \
android.hidl.memory@1.0.vendor \
libhidlmemory.vendor \
libhidltransport \
libhidltransport.vendor \
libhwbinder \
libhwbinder.vendor
# HotwordEnrollement app permissions
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/permissions/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
@@ -224,13 +180,9 @@ PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml
# Keymaster
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.0.vendor
# Lights
PRODUCT_PACKAGES += \
android.hardware.light-service.xiaomi
android.hardware.light-service.lineage
# Lineage Health
PRODUCT_PACKAGES += \
@@ -238,21 +190,15 @@ PRODUCT_PACKAGES += \
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@2.0-service-sdm
vendor.lineage.livedisplay-service.sdm
# Media
PRODUCT_PACKAGES += \
libavservices_minijail \
libc2dcolorconvert \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libOmxVdec \
libOmxVenc \
libstagefrighthw
libstagefrighthw \
libstagefright_foundation-v33
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
@@ -267,60 +213,36 @@ PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2_video.xml
# Mlipay
PRODUCT_PACKAGES += \
vendor.xiaomi.hardware.mlipay@1.1.vendor:64 \
vendor.xiaomi.hardware.mtdservice@1.0.vendor:64
# Native libraries whitelist
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
# Net
PRODUCT_PACKAGES += \
android.system.net.netd@1.1.vendor
# Neural Network
PRODUCT_PACKAGES += \
android.hardware.neuralnetworks@1.2.vendor
# Partitions
PRODUCT_USE_DYNAMIC_PARTITIONS := true
PRODUCT_PACKAGES += \
vendor_bt_firmware_mountpoint \
vendor_dsp_mountpoint \
vendor_firmware_mnt_mountpoint
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/partitions/flash_super_dummy.sh:install/bin/flash_super_dummy.sh
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service.lineage-libperfmgr \
android.hardware.power@1.2.vendor \
libqti-perfd-client
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/power/configs/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json
# Protobuf
PRODUCT_PACKAGES += \
libprotobuf-cpp-full-vendorcompat \
libprotobuf-cpp-lite-vendorcompat
$(call soong_config_set,power_libperfmgr,mode_extension_lib,//$(LOCAL_PATH):libperfmgr-ext-xiaomi)
# QTI
PRODUCT_PACKAGES += \
libqti_vndfwk_detect.vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/qti_whitelist.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/sysconfig/qti_whitelist.xml \
$(LOCAL_PATH)/permissions/system_ext-privapp-permissions-qti.xml:$(TARGET_COPY_OUT_SYSTEM_EXT)/etc/permissions/privapp-permissions-qti.xml
# Radio
# QTI fwk-detect
PRODUCT_PACKAGES += \
android.hardware.secure_element@1.0.vendor \
android.hardware.radio@1.4.vendor \
android.hardware.radio.config@1.2.vendor \
android.hardware.radio.deprecated@1.0.vendor \
libjson \
librmnetctl \
libsqlite.vendor:64
libqti_vndfwk_detect.vendor:32
# Recovery
PRODUCT_PACKAGES += \
@@ -336,10 +258,8 @@ PRODUCT_COPY_FILES += \
# Sensors
PRODUCT_PACKAGES += \
android.frameworks.sensorservice@1.0.vendor \
android.hardware.sensors@1.0-impl:64 \
android.hardware.sensors@1.0-service \
libsensorndkbridge
android.hardware.sensors@1.0-service
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
@@ -353,8 +273,6 @@ PRODUCT_SOONG_NAMESPACES += \
# Speed profile services and wifi-service to reduce RAM and storage
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE := true
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION := frameworks/base/config/boot-image-profile.txt
# Telephony
PRODUCT_PACKAGES += \
@@ -375,23 +293,17 @@ PRODUCT_PACKAGES += \
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service.dual_role_usb \
android.hardware.usb.gadget@1.2-service-qti
android.hardware.usb@1.3-service.dual_role_usb
# Vibrator
PRODUCT_PACKAGES += \
vendor.qti.hardware.vibrator.service
# VNDK
PRODUCT_COPY_FILES += \
prebuilts/vndk/v33/arm64/arch-arm64-armv8-a/shared/vndk-sp/libutils.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libutils-v33.so
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi-service \
hostapd \
libwifi-hal-qcom \
libwpa_client \
WifiOverlay \
wpa_supplicant \
wpa_supplicant.conf
@@ -404,16 +316,10 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini
# WiFi Display
# WiFi firmware symlinks
PRODUCT_PACKAGES += \
android.media.audio.common.types-V2-cpp \
libnl \
libpng.vendor \
libprocessgroup.vendor \
libwfdaac_vendor
PRODUCT_BOOT_JARS += \
WfdCommon
firmware_wlan_mac.bin_symlink \
firmware_WCNSS_qcom_cfg.ini_symlink
# Inherit the proprietary files
$(call inherit-product, vendor/xiaomi/sdm845-common/sdm845-common-vendor.mk)

View File

@@ -22,3 +22,11 @@ allow xiaomiparts_app sysfs_thermal:file w_file_perms;
# Allow XiaomiParts to get settingsdebug.instant.packages prop
get_prop(xiaomiparts_app, settingslib_prop)
# Allow XiaomiParts to read specific system properties
get_prop(xiaomiparts_app, system_prop)
get_prop(xiaomiparts_app, exported_system_prop)
# Allow XiaomiParts to access to media player service
allow xiaomiparts_app mediaserver_service:service_manager find;
binder_call(xiaomiparts_app, mediaserver)

4
sepolicy/vendor/attributes vendored Normal file
View File

@@ -0,0 +1,4 @@
# HALs
attribute hal_dms;
attribute hal_dms_client;
attribute hal_dms_server;

1
sepolicy/vendor/donaudit.te vendored Normal file
View File

@@ -0,0 +1 @@
dontaudit untrusted_app ashmem_device:chr_file open;

9
sepolicy/vendor/dontaudit.te vendored Normal file
View File

@@ -0,0 +1,9 @@
# Ignore harmless QCOM denials
dontaudit {
gmscore_app
init
priv_app
} {
bt_firmware_file
firmware_file
}:filesystem getattr;

View File

@@ -4,6 +4,7 @@ type fingerprint_data_file, data_file_type, file_type;
type gps_data_file, data_file_type, file_type;
type gps_socket, file_type;
type thermal_data_file, data_file_type, file_type;
type vendor_convergence_data_file, data_file_type, file_type;
type proc_tp, proc_type, fs_type;

View File

@@ -12,11 +12,12 @@
/(vendor|system/vendor)/bin/remosaic_daemon u:object_r:remosaic_daemon_exec:s0
# Data files
/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0
/data/vendor/fpc(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/goodix(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/gps(/.*)? u:object_r:gps_data_file:s0
/data/vendor/mac_addr(/.*)? u:object_r:vendor_convergence_data_file:s0
/data/vendor/syna(/.*)? u:object_r:fingerprint_data_file:s0
/data/vendor/mac_addr(/.*)? u:object_r:wifi_vendor_data_file:s0
/data/vendor/thermal(/.*)? u:object_r:thermal_data_file:s0
# Executables
@@ -49,10 +50,10 @@
/sys/devices/platform/soc/[a-z0-9]+.i2c/i2c-[0-9]/[0-9]-[a-z0-9]+/leds/ir(/.*)? u:object_r:sysfs_leds:s0
# HALs
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.3-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
/vendor/bin/hw/android\.hardware\.light-service\.xiaomi u:object_r:hal_light_default_exec:s0
/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint-service\.xiaomi u:object_r:hal_fingerprint_default_exec:s0
/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-qti u:object_r:hal_neuralnetworks_default_exec:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay@2\.0-service\.xiaomi_sdm845 u:object_r:hal_lineage_livedisplay_qti_exec:s0
/vendor/bin/hw/vendor\.lineage\.livedisplay-service\.xiaomi_sdm845 u:object_r:hal_lineage_livedisplay_qti_exec:s0
/vendor/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0
# Persist files
/mnt/vendor/persist/audio(/.*)? u:object_r:persist_audio_file:s0

View File

@@ -11,6 +11,7 @@ genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys6/restart_level u
genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-0061/power_supply/idt u:object_r:sysfs_wireless_supply:s0
genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys1/restart_level u:object_r:sysfs_ssr_toggle:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/idle_state u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/wireless u:object_r:sysfs_wireless_supply:s0
genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/white u:object_r:sysfs_graphics:s0
genfscon sysfs /devices/platform/soc/soc:fingerprint_fpc/device_prepare u:object_r:sysfs_fingerprint:s0

Some files were not shown because too many files have changed in this diff Show More