Compare commits

...

343 commits

Author SHA1 Message Date
41a4583106 Update bliss_dre.mk 2025-04-26 18:31:15 -04:00
6dfa4f8d34 Update lineage_dre.mk 2025-04-26 18:30:46 -04:00
eb15871769 Update device.mk 2025-04-26 18:29:42 -04:00
6926918ff4 Update BoardConfig.mk 2025-04-26 18:28:58 -04:00
a50d4522e5 Update AndroidProducts.mk 2025-04-26 18:27:16 -04:00
fe6ea00b68 Update Android.mk 2025-04-26 18:26:35 -04:00
3db65c9ea2 Update Android.bp 2025-04-26 18:25:47 -04:00
LuK1337
c3f110a620 dre: libwfdservice_shim_v1 -> libwfdservice_shim
Change-Id: Idf65dd61a2de80dfcbf72a8b75b6ca59234df573
2025-04-05 15:37:55 -05:00
Nick Reuter
ce21efc124 dre: sort blob_fixups
Change-Id: I81eee57646aad470b99b0ace0f5a92bdb22e0ead
2025-04-03 16:49:51 -05:00
LuK1337
04dbb0a4b7 dre: Add libwfdservice_shim_v1 for WFD
e69a5be2449122f90220151f9d01ace15221facf in system/hardware/interfaces
broke the ABI ;'(

Change-Id: I60691f2bab3f52fd9ade36ed6fcf6a2ef13a18c9
2025-04-03 16:49:38 -05:00
Anand S
038c148153 dre: Add migration to turn off persist.vendor.radio.poweron_opt
If this value 1 it breaks SMS receiving.

Change-Id: I7f56ecaac51abb6525c6022d92eac1c285ab0688
2025-03-29 14:23:14 -05:00
Arian
3a3d3af33f dre: Generate qcrilNr.db during build
Change-Id: I1f3425713b9b5b1cc7185bc94124b9f01efe3abb
2025-03-29 14:23:02 -05:00
Nick Reuter
02d95c71e9 dre: Add qcril_database files missed during blob update
Change-Id: Ic5280b9f4beac68273032268afb71d19ff3e0ed4
2025-03-25 16:22:40 -05:00
Michael Bestas
12f74ba4a3 dre: Enable ELF checks for libwpa_client dependent libs
Change-Id: I490df02b68da4b9a7088a239672a1dcace66d270
2025-03-25 16:22:31 -05:00
Albert Tang
46c0a47f0f dre: Import LVIMFS libs from DE2117_11.C.34
Change-Id: I69531f5056b1cf90b940f9dc09de53bf1134ae2f
2025-03-06 18:29:02 -08:00
Michael Bestas
610a175646 dre: Enable UFFD GC
Kernel has support for it now.

Change-Id: I3863ee71477f321fe47646571b857fdc39a1902b
2025-03-06 18:28:46 -08:00
Yan Yan
c046b4f19d dre: Add feature flag for IPSEC_TUNNEL_MIGRATION
This commit adds the IPSEC_TUNNEL_MIGRATION feature flag,
with XFRM_MIGRATE used as the implementation

Bug: 273379472
Test: build, flash and verify with "adb shell pm list features"
Test: atest IpSecManagerTunnelTest
Change-Id: Id2ee3e65183e32ea63f6251ba921e1e4c6b09ed0
2025-03-06 18:28:46 -08:00
Yumi Yukimura
6f6627e73e dre: manifest: Bump target-level to 6
Change-Id: I8d419d248f29b7d316a87d55e19ae7ff141e19a5
2025-03-06 18:28:46 -08:00
Tyler Wear
8ce167833a dre: tetheroffload: Version 1.1
Update tetheroffload to version 1.1.

Change-Id: I004e44e416a88a1b39a4c80366df9008722f096b
2025-03-06 18:28:46 -08:00
Kumar Anurag Singh
a0aa46e5d8 dre: audio: Remove direct flag for VOIP RX
Remove direct flag for VOIP RX.

Change-Id: I9ee6f300b7a891afd1ad06c063424509d16d271e
2025-03-06 18:28:46 -08:00
Albert Tang
1408ace291 dre: Swap to OSS audio_io_policy.conf
The 24-bit stuff from oplus is useless anyway.

Change-Id: I8a16002c1afe2c5c4d710b785ff376a7b0273399
2025-03-06 18:28:46 -08:00
LuK1337
29faac8c00 dre: Migrate to avbtool --set_verification_disabled_flag
Change-Id: Ib73f4d97a923b25e25848b24a3554cdd4de1a5ae
2025-03-06 18:28:46 -08:00
LuK1337
5641b0442f Revert "dre: Disable WiFi Aware & RTT for unsupported target"
This reverts commit 98080a2194cdf19a9fa8178a8bc2215cf9a66cad.

Test: run CtsVerifier tool
Change-Id: Ibe8c64d2ba95326594e3103c3cff4c03153e11b9
2025-03-06 18:28:46 -08:00
Albert Tang
bf711e18a8 dre: Drop duplicate audio_platform_info.xml
Change-Id: I02a4279ccec7351c146900f7dada512b29486189
2025-03-01 22:26:04 -08:00
Bruno Martins
020dc6a61d dre: Use aidl sensors multihal
Change-Id: I21da3da39e9726dca693d6bcbe42e93be861f7c7
2025-02-24 19:40:45 -08:00
Michael Bestas
6d84147ff1 dre: Remove unused media_codecs_c2_audio inclusion
Change-Id: Ia163033eb53d24faf74c09f301f227dea9f89a1a
2025-02-24 19:40:45 -08:00
Michael Bestas
96029cfecb fixup! dre: Remove software omx codec references
Change-Id: Ib96c6ff0a0ad7cd9769a008b2b0669effc62db7c
2025-02-24 19:40:45 -08:00
Michael Bestas
2e429556a1 dre: Import media_codecs*.xml from vendor
Change-Id: Ic874270d8bc50e854109556b663cffae22025324
2025-02-24 19:40:45 -08:00
LuK1337
6384736719 dre: Ship lvimfs params files
Change-Id: Iaa653c71094f0cbadcb50692de0a9296d1b006e9
2025-02-24 19:40:45 -08:00
Nick Reuter
035a3a74c2 dre: Copy audio configs to device tree
* audio_platform_info.xml is a copy of audio_platform_info_intcodec.xml
   as it is the closest in comparision to stock

Change-Id: I733f848dd221c21171413711e835f9e77ae70e13
2025-02-24 19:40:45 -08:00
Michael Bestas
c2a9564491 dre: Migrate mount point creation out of Android.mk
Change-Id: Id5986b8a740e45f864eecdd2bd82d9455f128d6b
2025-02-24 19:40:45 -08:00
LuK1337
e49fea649d dre: Reserve more space on /product
Change-Id: I25884eb89ea7d4cbe2b82504c21c83c8513095aa
2025-02-24 19:40:45 -08:00
Luofan Chen
aa2560cffb dre: Define TARGET_GRALLOC_HANDLE_HAS_RESERVED_SIZE
Otherwise the error happens:
```
qdgralloc: Invalid gralloc handle (at 0xb400007004aa1580): ver(12/12) ints(23/22) fds(2/2)
```

Change-Id: Ia62146e8e4bef1342dc964724bd0d088656ad4bc
2025-02-24 19:40:45 -08:00
Nick Reuter
00bfc3b725 dre: organize tree to match sm8350-common
Change-Id: Ia5a9a9a70d662c3fcfef9a30c8fa78acc734b59a
2025-02-24 19:40:45 -08:00
P.Adarsh Reddy
a84d257640 dre: Enforce android-S new launch debugfs restrictions
Change-Id: I78878e1c4177c07d66b13e5659d4360252c5f87b
2025-02-24 19:40:45 -08:00
SagarMakhar
f1051e96cc dre: Turn off persist.vendor.radio.poweron_opt
It's set to 1 in qcril_database migrations. Sed the property
to something else so it defaults to 0.

When the value is 1 it breaks SMS receiving without QTI telephony.

Change-Id: I7f56ecaac51abb6525c6022d92eac1c285ab0688
2025-02-24 19:40:07 -08:00
Albert Tang
49f47b2936 Revert "dre: Set saturated color mode as default"
Keep saturated mode around, in case we need it again.

This reverts commit aa3aceda39.

Change-Id: I0a0c874c9e8934c27ff0df4aaee44cf78aa61103
2025-02-15 12:06:06 -08:00
Albert Tang
00821c77cc dre: Fix sRGB mode in qdcm calibation data
qdcm_calib_data_default.xml has features 2, 7 and 8 disabled for sRGB.
Do the same thing for nt36672c to fix sRGB here.

Change-Id: Ieee41c8a224bf73ad92b5fdcbb2c5d3c4ee2f9ca
2025-02-15 12:05:09 -08:00
Albert Tang
aa3aceda39 dre: Set saturated color mode as default
All other color modes are borked from V QPR1 onwards.

Change-Id: I9e4137a24473f16f3e385cade1d61ef767535557
2025-02-11 10:53:10 -08:00
LuK1337
dcc2c3fa37 dre: Enable elfchecks for camera libs
Reference: I23190f0b83c9e28aa2624a7575544b0eaf5c83c8
Change-Id: I18b0b07bf3a435dd449106653e3ca458b4f07b69
2025-02-11 10:53:00 -08:00
dianlujitao
9acfd5598e dre: move to aidl bootctrl hal
Change-Id: I50fd09148097f0cda03c1a105340a3fd5f55ce8d
2025-02-11 10:52:47 -08:00
danascape
f2c8225ae9 dre: Drop atrace HAL
It is deprecated in Android 14.

Change-Id: I5af8056853058ad29be7debb5c5af5dea83d84a9
2025-02-06 14:39:23 -08:00
LuK1337
6c2484f942 dre: Move WfdCommon boot jar declaration to vendor
Change-Id: I8fa2c0f64692873b432cc252ec88b388a32023a1
2025-02-06 14:39:23 -08:00
Pawin Vongmasa
3298af0f05 dre: Move input surface to CCodec
Test: atest CtsMediaTestCases -- \
--module-arg CtsMediaTestCases:size:small
Bug: 131800183

Change-Id: I8783a7de4a4fdf7ff2eac6697c71f6592c9a9e06
2025-02-06 14:39:23 -08:00
Michael Bestas
a4a325f15e dre: Disable OMX service
Change-Id: I5381e098af64271f9d71c484262e1710e8fcacea
2025-02-02 10:40:55 -08:00
dianlujitao
a27d857000 dre: remove OMX
* OMX HW video codecs are no longer used after enabling Codec2
 * OMX HW audio codecs won't work without QCOM A/V enhancements, which
   we don't have on Lineage.

Change-Id: I65852151c8fb6387add5fc4402ba3f13c97b5f64
2025-02-02 10:40:55 -08:00
SebaUbuntu
72f32ab5a3 dre: overlay: Remove config_defaultPeakRefreshRate
* Our hwcomposer already correctly reports display modes

Change-Id: Ic84ee92914b0c50e6e4f1a64d5b729b8ee8c6985
2025-02-02 10:40:55 -08:00
LuK1337
8dfb14cd39 dre: Move network scan overlay to OPlusSettingsResTarget
Change-Id: I5a5a8feea72a74ffaefd598d5e80bec92783d2ea
2025-02-02 10:40:55 -08:00
Ashok Mutyala
2a9c6383cb dre: init: Mlock limited to 64 KB
In Android 14 and higher, the platform reduces the maximum
memory that can be locked using mlock() to 64 KB per process.
In previous versions, the limit was 64 MB per process.
The new restriction promotes better memory management
across apps and the system.

Test: CtsInitTestCases#MemLockLimit

Signed-off-by: Ashok Mutyala <quic_amutyala@quicinc.com>
Change-Id: I883bff0c1e4bd540a1fae9ab0ea35ebdf4da5255
2025-02-02 10:40:55 -08:00
Randall Huang
4d4f07bd89 dre: fstab: data=journal,commit=1 for /metadata
Since Ext4 doesn't implement "-o sync", it commits metadata at every 5 secs.
This may cause /metadata corruption.

Bug: 162883014
Change-Id: Icd38754bad1b1529d01165ea8c703c214d20bb4b
Signed-off-by: Randall Huang <huangrandall@google.com>
2025-02-02 10:40:55 -08:00
Nick Reuter
53611738e8 dre: use the default display flags
Change-Id: Id10513c5e250aa7e9d805b652e538d71fd4b92b8
2025-02-02 10:40:55 -08:00
Nick Reuter
8671c7c353 fixup! dre: do not manually build dependencies
Change-Id: I88b191c3b23b44a34b0d1841984e6d31079e60ed
2025-02-02 10:40:55 -08:00
PRANAY BHARGAV BHAVARAJU
01ae51cb94 dre: avoid setting permission for /dev/hw_random
Below patch from system/core is setting required access policy
for /dev/hw_random. And CTS test is updated accordingly

https://android-review.googlesource.com/c/platform/system/core/+/2229337
https://android-review.googlesource.com/c/platform/cts/+/2232052

Change-Id: I762dfa3b1e84dee6c49fc178b5b75cf1c134cfb7
2025-02-02 10:40:55 -08:00
Nick Reuter
04882b6545 dre: Address missing libbinder symbols in libwfdnative
_ZN7android6binder12atrace_beginEmPKc
_ZN7android6binder10atrace_endEm

Change-Id: I942d51721461dbbf9c8d0f2f32128529bb7480c3
2024-12-19 20:18:09 -08:00
Nick Reuter
24f2a2590b dre: Bump libwfdservice to android.media.audio.common.types-V4
Change-Id: I81060d8c73430a9598c676e18dc04e31a2f31c0c
2024-12-19 19:46:40 -08:00
LuK1337
97fb165d39 Revert "dre: Build 64-bit only libvndfwk_detect_jni.qti.vendor"
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

This reverts commit ebce0090de.

Change-Id: Ie5c33eafc1e0be2eeda8e0a6bbbc3712e32986e9
2024-12-05 12:23:15 -08:00
Nick Reuter
384d8c5c98 dre: update kernel scripts from fogos U1UGS34.23-110-2-1
Change-Id: I6e008352da977617e1b21c8e7b9f80df58cfdfbf
2024-11-30 13:14:02 -08:00
Nick Reuter
09e4c842fe dre: switch to upstream sensors
Change-Id: I01783774fabda178aefa42c460c7650fc1ce5e70
2024-11-30 13:05:44 -08:00
Nick Reuter
ffb04a39b7 dre: cleanup Touchscreen firmware
Symlink the carrier variant to global as the binaries are identical

Change-Id: Id12c46fa6b491ead5018e257e7289631a79dc492
2024-11-30 12:59:08 -08:00
Nick Reuter
1b16f3e1e0 dre: update bluetooth from LE2125_14.0.0.720(EX01)
Change-Id: Iade950a471a5b49d2f2d96a61ee83437b2cb5ee6
2024-11-30 12:30:26 -08:00
LuK1337
fd4cc1741a dre: Build wvmkiller
Change-Id: I1505f82dfa92933f2a2fcf5f4b3c96ce4f17c4fb
2024-11-30 12:30:26 -08:00
Luofan Chen
be01fa8dac dre: Build composer service from source
Change-Id: Id9b5920e1be26e9d5417f8e0b2a9e0a295b6e47a
2024-11-30 12:23:55 -08:00
Manoj Basapathi
0448188c4a holi: enable single reg, update HALs.
- Enable IMS RCS single reg
- update ims factory HAL to 2.2
- update qtiradio HAL to 2.7

Change-Id: I641e71a34e36c3d56e0d196c9db98ba240f73788
2024-11-30 12:23:55 -08:00
Pengfei Xiao
5a857c85a8 IMS: Enable IImsRadio v1.7
This change is to enable IImsRadio v1.7

Change-Id: Ic63fd0f1b450174910a5b327547a6c471f119284
CRs-Fixed: 2983955
2024-11-30 12:23:55 -08:00
Susheel Nyamala
c2ccc8596f Uprev QtiRadio HAL to 2.6
Update QtiRadio HAL version to 2.6

Change-Id: Ifd5aafb27dadd912b3bc38c259330b56416ae951
CRs-Fixed: 2854788
2024-11-30 12:23:55 -08:00
Nick Reuter
fecfefb74f dre: update blobs from CPH2467_14.0.0.1320(EX01)
Pin device specific libs, and switch to CPH2467 as default

Change-Id: Ib8c9dd09a18dcd0851c4505187d7ddbdb4faf259
2024-11-30 12:23:12 -08:00
LuK1337
0c0fec03a1 dre: Add libsecureui_svcsock.so and its dependencies
QSEECOMD: : Init dlopen(libsecureui.so, RLTD_NOW) is failed.... dlopen
failed: library "libsecureui_svcsock.so" not found: needed by
/vendor/lib64/libsecureui.so in namespace (default)

QSEECOMD: : Init dlopen(libsecureui.so, RLTD_NOW) is failed.... dlopen
failed: library "vendor.qti.hardware.tui_comm@1.0.so" not found: needed
by /vendor/lib64/libsecureui_svcsock.so in namespace (default)

Change-Id: I4ca32e61d5186cdde898a11d462f49ec9e491503
2024-11-26 15:22:07 -08:00
Albert Tang
7ad0fea5b9 dre: livedisplay: Disable sunlight enhancement
Our panel does not support high brightness mode.

Change-Id: Id836295a231e6afca15ef71c15c5fb41f8029b8e
2024-11-26 15:22:07 -08:00
Albert Tang
262f219c38 dre: Update from OOS 11.C.34
Change-Id: I81889c67ef5969da5e66ba4fb6761003943d3d60
2024-11-11 21:58:31 -06:00
LuK1337
02a84ee9f9 dre: ruff check --fix
Change-Id: I8c94472a9b3b42f8bc35cda27d00ff9dc9705a55
2024-11-10 05:52:31 -06:00
LuK1337
2d65dd72e0 dre: Use common lib_fixups
Change-Id: I862e547f3375184729eb1a909bb7d6f676d45dfe
2024-11-10 05:52:31 -06:00
LuK1337
ebce0090de dre: Build 64-bit only libvndfwk_detect_jni.qti.vendor
symlink_target: "/vendor/lib64/libvndfwk_detect_jni.qti.so".

Change-Id: I651706330ff88bda8920ec0a8670ebe1a434acac
2024-11-10 05:52:31 -06:00
Michael Bestas
5eb0d72622 dre: ELF checks are enabled by default
Change-Id: I5740f4c8d359831b4cb794912c5d650f55c33f17
2024-11-10 05:52:31 -06:00
LuK1337
2d0542b13b dre: Declare adsp_avs_config.acdb symlink during extraction
Change-Id: I5a328db61cbd83fe292522b90f21b85e94986381
2024-11-10 05:52:31 -06:00
dianlujitao
9695808593 dre: Nuke ATFWD
It's normally not used at all.

Change-Id: Idb824b3b8c783b6ac962e604df05f9154beb4ed2
2024-11-10 05:52:31 -06:00
Albert Tang
08ccefecf0 dre: Ship FM2
This device is able to use FM Radio, so we might as well use it.

Change-Id: I791e4ca732feabd543dadc885f4ab0940e1cf3f4
2024-11-10 05:52:31 -06:00
LuK1337
485ca14a4a dre: Adjust override prop key names
Change-Id: I436bbf425023dbe54cf3e2c35f50a5575511bc38
2024-10-30 16:27:51 -05:00
Albert Tang
1a345a987a dre: Sort proprietary-files.txt
Also drop duplicate entries

Change-Id: Idb55c746dbcbc42dc9d56b09d860f4d579058642
2024-10-30 16:27:51 -05:00
Bruno Martins
460360443d dre: Unset BUILD_BROKEN_DUP_RULES
Overriden commands? Not anymore.

Change-Id: Id435e0fda13babadd5fbc2fe1c790e5a1fdba6df
2024-10-30 16:27:50 -05:00
LuK1337
eab870359c dre: Re-setup ELF checks
Change-Id: I89154af89a7be70fa3702ac3a74adf8bd087b6ef
2024-10-30 16:27:40 -05:00
LuK1337
6266fbca9d dre: Switch to py extract utils
Change-Id: Ia13b728464495ff208ca1a706847b11af5c93ae8
2024-10-30 16:26:54 -05:00
LuK1337
7c01cafcf5 dre: Update WFD system stack from OOS 14.0.0.710(EX01)
Change-Id: Ica1450a1568fe9c7eb8087ed0fa567493150af5d
2024-10-30 16:26:54 -05:00
LuK1337
867f02e976 dre: Shim WFD with libgui_shim/libinput_shim
Change-Id: I42bf06bc6b19942303031ef0147dafa6df127fe5
2024-10-27 09:28:30 -05:00
Bruno Martins
d8c0f9c89c dre: Declare WFD lib as symlink during extraction
Change-Id: I83e3ec03e1ddc58f3a7df008789b1e31584946e1
2024-10-27 09:28:30 -05:00
Albert Tang
d500d4719c dre: Address other checkelf issues
Change-Id: I498b0978021f21e1bd1ca9ba7f9e4a93929ead36
2024-10-27 09:28:20 -05:00
Michael Bestas
4e9ab622b7 dre: Enable ELF checks for libwfdmmsrc_proprietary
Change-Id: I7eecffc5481b44451094a6816e50436ad084db7a
2024-10-26 10:13:17 -05:00
Aaron Kling
e58b63bb92 dre: Remove elf files in copy files check
New extract files uses packages instead of copy files

Change-Id: I337c07d13bd350958d4808e1693cc6e03753a96c
2024-10-26 10:13:17 -05:00
Michael Bestas
3ab8caec3e dre: extract-files improvements
Change-Id: I517698ca3b5a93e10a5b167417631c7f8d0ab9e2
2024-10-26 10:13:17 -05:00
Michael Bestas
83e230b3de dre: 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-V3-cpp-source

Change-Id: I8086a80fcc238d6b03d16640ee2c4e134129bbab
2024-10-26 10:13:17 -05:00
Michael Bestas
594e8e1c20 dre: Work around using prebuilt HWC
After enabling ELF checks and switching prebuilts to modules,
the init and vintf files are no longer automatically built.

Change-Id: I48fcab53a7c8128b18e1399d9afadcfd5c85b116
2024-10-26 10:13:17 -05:00
Cosmin Tanislav
171d01a1c7 dre: do not manually build dependencies
Change-Id: I4046d8eeabfc70842898b7034f75cdd6bcfc441b
2024-10-26 10:13:17 -05:00
Michael Bestas
b3b7493eec dre: Disable ELF checks for certain libraries
Change-Id: I61dbc3559b43becc22f69ae2c1c3e8edf95e2483
2024-10-26 10:13:17 -05:00
Cosmin Tanislav
6c1e0528b6 dre: skip dependencies which aren't defined in .bp
Change-Id: I01a653661856495788c05b720c0577dac44998a4
2024-10-26 10:13:17 -05:00
Michael Bestas
c05da9de89 dre: fix QCOM WFD ELF checks
Change-Id: If3d64c1cfa8fb6d30ca29a3260d2ebe51c9ffd2f
2024-10-26 10:13:17 -05:00
Cosmin Tanislav
73149b58ae dre: fix vendor.qti.imsrtpservice@3.0 ELF checks
Change-Id: Ia1995d0a3360317843685082e3226ab30f124d09
2024-10-26 10:13:17 -05:00
Cosmin Tanislav
4e436a30f3 dre: fix com.qualcomm.qti.dpm.api@1.0 ELF checks
Change-Id: I759752ccc133d7047d415eb83c5d3c55820437a4
2024-10-26 10:13:17 -05:00
Aaron Kling
29f5285274 dre: Add vendor soong imports to extract
Change-Id: Ib19e69dc35af6b04519eeb695228af65f3d01d2a
2024-10-07 19:17:57 -05:00
Michael Bestas
ce340bbc57 dre: Sync extract scripts with 22 templates
Change-Id: I7963ae050cfb193c5d0c2636da9c1e8f82bcdbdb
2024-10-07 16:57:41 -05:00
Michael Bestas
fa9d414d86 dre: Shim widevine with libcrypto_shim
The following change
e202e51cb0
removed symbols that our libs require.

Change-Id: I1325c34ecec3d339dd68c665010ecb36fa2e6a29
2024-10-07 16:56:47 -05:00
Michael Bestas
0c8d606929 dre: Switch to AIDL USB HAL
Change-Id: I70f6a4e57eef577d86987bfae44f381a4f107624
2024-10-07 16:55:54 -05:00
Michael Bestas
04739e0390 dre: Switch to AIDL thermal HAL
Change-Id: I6ae621194044ab66fad69b9ef997b3b347bf6120
2024-10-07 16:55:38 -05:00
Michael Bestas
1e9e2a9ea6 dre: Remove media_codecs_google_c2*
AOSP codecs can be used by default and it is not necessary to include
them device side.

Change-Id: I8227b06f0466b614f12fa9008402b92461ea3dd0
2024-09-22 10:18:27 -05:00
Michael Bestas
4867d5e3ee dre: Use AOSP default Codec2/OMX ranks
debug.stagefright.ccodec=4
is the default value in frameworks.

debug.stagefright.omx_default_rank=0
was used to rank OMX SW codecs lower than OMX HW codecs
but we have removed all OMX SW codecs now.

Change-Id: Idf55ec02c2c0f4d2fa73f949cffef0d820a54570
2024-09-22 10:18:27 -05:00
Aaron Kling
ec768a0c76 dre: Remove software omx codec references
These are no longer available as of Android 14 QPR3. The C2 codecs
available by default in the swcodec apex will be used instead.

Change-Id: I8cdf3e700823779a7382c66c3df8410d41209b7c
2024-09-22 10:18:19 -05:00
Bruno Martins
9f85aa4e46 dre: Remove software OMX blobs
Default to C2 codecs from swcodec apex.

Change-Id: I32f0b0abe680c1f350268115a3cc5488a2a57ec3
2024-09-19 11:04:13 -05:00
Michael Bestas
d18f03ed8a dre: Sync extract scripts with templates
Change-Id: I98a36854c5a0c0390592911bb2558b34eff77efc
2024-09-19 11:04:11 -05:00
Bruno Martins
4315cd23c7 dre: Return to stock IMS system stack
Change-Id: I72f838ce6602ee8de1635572791cb7743860a1d7
2024-08-29 13:47:10 -05:00
LuK1337
1a1d988411 dre: Switch to common device_framework_matrix.xml
Change-Id: Idc99a59a377bb3284634a62c0a1ae545bcd4e1e2
2024-08-29 13:44:45 -05:00
LuK1337
952a90ce17 dre: audio: Disable ULL mode
* Ultra low latency playback is currently broken. Crackling audio
   can be well noticed while playing WhatsApp audio messages or even
   during some games.
 * This patch routes all audio that normally used audio-ull-playback
   paths to low-latency-playback paths instead, thus meaning we're
   switching from ULL to LL mode.

Change-Id: I7d672f1ff10b984c8096c9c4ca83475e730fd16f
2024-08-24 21:15:25 -05:00
Yumi Yukimura
c55f76d555 dre: Switch to QTI Memtrack AIDL HAL
Change-Id: Ibcbaff02fd56fbccc3a88c01a5f46a89cb212ef5
2024-08-22 18:01:06 -05:00
George Chang
2a4dfa5de9 Switch NFC from HIDL to AIDL
Bug: 216290344
Test: atest NfcNciInstrumentationTests
Test: atest VtsAidlHalNfcTargetTest
Merged-In: I33d07604e87a2d9466a3a857e281ee4b611330a8
Change-Id: I33d07604e87a2d9466a3a857e281ee4b611330a8
2024-08-22 18:00:58 -05:00
Bruno Martins
e2db1ff35b dre: Convert packages disallowed to use aux cameras to prop
Change-Id: I02a4711bfb5f4cebf87d6f2d8a02f47f00c2d62f
2024-08-22 17:59:41 -05:00
Albert Tang
dd72fc6451 dre: Update from OOS 11.C.33
Change-Id: Id444227ff609885d4757e80cc6bcc7a425b0c8e7
2024-08-20 11:17:36 -05:00
Suren Baghdasaryan
c747af4dc8 dre: Replace writepid with task_profiles command for cgroup migration
writepid command usage to join a cgroup has been deprecated in favor
of a more flexible approach using task_profiles. This way cgroup path
is not hardcoded and cgroup changes can be easily made. Replace
writepid with task_profiles command to migrate between cgroups.

Bug: 191283136
Test: build and boot
Change-Id: I12fe7186af1ee5db6f19d485987e78ae0792c606
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
2024-08-19 17:12:23 -05:00
Michael Bestas
d62372d358 dre: Remove bdroid_buildcfg.h
As of I3c7aed1bdb45db728d319f7d757400e44d232283 the Bluetooth stack
defaults to reasonable defaults that should work for all devices.

Change-Id: I056d63c4c8a2727e384172e964dc0000b6773504
2024-08-19 17:12:23 -05:00
Jprimero15
6509c10017 dre: Add Natural and Boosted Color Modes
Change-Id: I934d5932d640f84d63871bb40d0836f68af0c389
2024-08-19 17:12:23 -05:00
LuK1337
da8871005f dre: Build erofs odm, vendor and vendor_dlkm images
Making these partitions erofs saves ~674MB, which lets us reserve
significantly more space on /product.

Change-Id: I88984f6137c0bc9f01da742a7a485445c2162157
2024-08-19 17:12:23 -05:00
LuK1337
e14a490f4a dre: Patch configs to drop NFC logging levels
Co-authored-by: Georg Veichtlbauer <georg@vware.at>
Change-Id: I42bcd622dea35dd69f4fc6bb72a4767ca69af5c3
2024-08-19 17:12:23 -05:00
Georg Veichtlbauer
f77ae41e15 dre: Convert ADSP AVS config symlink to install_symlink target
Change-Id: I058d05bbed239cc07a6e3094adb37422ce44716e
2024-08-19 17:12:23 -05:00
Paul Crowley
d8c4a9a0e5 dre: Remove wait_for_keymaster and all references
No longer needed now init listens for property changes on a
separate thread.

Bug: 186580823
Test: Cuttlefish boots successfully
Change-Id: Ief3a546d2154231d18957c2f703bd128966d7288
2024-08-19 17:12:23 -05:00
basamaryan
55045b7e42 dre: Don't explicitly include updatable_apex.mk
It is inherited by base_system.mk as of QPR2

Change-Id: I020a05b233f61ea28d03199cbc76051e6e97e1dc
2024-08-19 17:12:23 -05:00
Bruno Martins
3a3034953e dre: Unset BUILD_BROKEN_INCORRECT_PARTITION_IMAGES
Qualcomm targets can now build hermetic partitions.

Change-Id: I241105e01d85fea983b34846ca675666ac07541b
2024-07-16 00:53:25 -05:00
Nolen Johnson
9fd9918f3d dre: overlay-lineage: Drop default HardwareKeys overlay
Change-Id: I0b11c55b159f8b04b2cae526ffb1b144cbaaa897
2024-07-12 10:54:03 -05:00
Bruno Martins
2c57242638 dre: Declare EGL libs as symlinks during extraction
Change-Id: I4b2f3e79b5e518889d9771bf8990e27babca8b61
2024-07-12 10:54:03 -05:00
Bruno Martins
3ee0c84ab0 dre: Mark CNE symlink target as required package
Change-Id: I0bfe65ba61b6aa9916fe6459be2a84d772939a2f
2024-07-12 10:54:03 -05:00
Bruno Martins
bb9e49c038 dre: Declare IMS libs as symlinks during extraction
Change-Id: Ia1b8097d28dd4888232fe383b830515b1b9bafaa
2024-07-12 10:54:03 -05:00
Bruno Martins
871f99d6c7 dre: Convert WiFi firmware symlinks to install_symlink targets
The last bit that was preventing building hermetic images.

Change-Id: I75bb7de4593a7992f6015317cf97e088beeba0cb
2024-07-12 10:53:51 -05:00
Bruno Martins
7620c53bcf dre: Move to new RFS install_symlink targets
Change-Id: I9560fd0da00958d9349a0881b5a5f64a2c02e495
2024-07-11 11:21:34 -05:00
Michael Bestas
e9f6f8d910 dre: Drop COMMON_LUNCH_CHOICES
As of 14 QPR2 this is broken, let's remove it instead of updating it
every 3 months. breakfast is the way to go.

Change-Id: I097bd54b894d9a49c7ce8b1ab6f343349e268fd8
2024-07-11 11:17:39 -05:00
Albert Tang
b84af64fcc dre: Update from OOS 11.C.32
Change-Id: I0f0e48bc8fa29ac439515126e0f7d7652ec71983
2024-06-21 12:00:16 -05:00
Michael Bestas
5f2f434c6f dre: overlay: Enable battery cycle count
Change-Id: I92bc8363e1c9e2ad54c29a0a30dce992e25f697d
2024-06-21 11:59:54 -05:00
Michael Bestas
0b9a253868 dre: Build missing libraries for 14 QPR3
Change-Id: I6a84526ca1e9f4e5140c8068646433cab3fe85b2
2024-06-21 11:59:43 -05:00
Chirayu Desai
4c5783bf01 dre: Disable UFFD GC
Unable to determine UFFD GC flag for kernel version "5.4.268-qgki".
You can fix this by explicitly setting PRODUCT_ENABLE_UFFD_GC to "true" or
"false" based on the kernel version.
1. Set PRODUCT_ENABLE_UFFD_GC to "true" if the kernel supports userfaultfd(2)
   and MREMAP_DONTUNMAP.
2. Set PRODUCT_ENABLE_UFFD_GC to "false" otherwise.

Change-Id: Ie77d9a86a7fe94e4cade1868ffea27194f724e03
2024-06-21 11:59:43 -05:00
Chirayu Desai
bb1d8db952 dre: Don't set BOARD_API_LEVEL
build/make/core/board_config.mk:1001: error: BOARD_API_LEVEL must not
set manully. The build system automatically sets this value..

Change-Id: If59ae9dea6cb13701d7217a1c0a355d4e07113eb
2024-06-21 11:59:43 -05:00
Albert Tang
a998c0b181 dre: Update from OOS 11.C.31
No security patch update this time.

Change-Id: I0eba8582f5fda0c4e28bebd643e3579471ac812c
2024-05-22 10:28:46 -05:00
Albert Tang
77cc831c25 dre: Update from OOS 11.C.30
Change-Id: I3ea70c166bd78801a04a59ad453f14c6ddb45475
2024-05-09 19:46:41 -05:00
Jake Weinstein
57906249ee dre: Do not balance msm_drm and kgsl_3d0 IRQs
These are critical for display performance and should not be balanced
in order to improve latency and responsiveness.

And also affine them.

Change-Id: If49ecb8757d133a7fad0d7946837b35403e57c2a
2024-04-30 11:27:50 -05:00
Bruno Martins
adef2d52a3 dre: Use the common device compatibility matrix from QCOM
Change-Id: I0c0f3ecddbe6d7b232cc0d13c78ca58094e4e720
2024-04-30 11:20:01 -05:00
Alessio Balsini
2558113d92 dre: Use FUSE passthrough by default
Enable the persist.sys.fuse.passthrough.enable flag for the device
configuration to enable the FUSE passthrough feature.
This feature has been enabled on Cuttlefish, Wembley and Redbull devices for
months and no issues have been detected yet.

Bug: 168023149
Test: 'adb shell getprop | grep persist.sys.fuse.passthrough.enable',
    ScopedStorageTest
Signed-off-by: Alessio Balsini <balsini@google.com>
Change-Id: I3f39b02af436f7e508bb70efc702565a667a051c
2024-04-30 11:18:45 -05:00
Cole Faust
509171b097 dre: Add BUILD_BROKEN_INCORRECT_PARTITION_IMAGES
Qcom has issues that prevent it from working with a hermetic
partition build.

Bug: 205632228
Test: Presubmits
Change-Id: I490a29da38a6f68e7dd3650d8140cb11adaa8c7a
2024-04-17 10:31:27 -05:00
Albert Tang
f8c1356f3b dre: Import missing Perf LM libraries
Change-Id: If159e211e93016b5fb79dba9cb9109ebe13e8e0a
2024-03-17 11:27:44 -05:00
Albert Tang
7de03cce19 dre: Update from OOS 11.C.29
Change-Id: I3d4dfe3257bc5d39a0b4f381571640ff856a02d3
2024-02-24 21:42:55 -06:00
Albert Tang
cef33f952e dre: Don't store media config files locally
Change-Id: Ieb27d0c570aa2888038b4ac0cc69559ff6c8c8e7
2024-02-06 13:09:56 -06:00
Georg Veichtlbauer
29bd1b8cd2 dre: Inherit generic overlays from OPlus
Change-Id: I7ecb6c9ea6636450076918bef6dce9986342ae3e
2023-12-30 21:13:27 -06:00
Josh Wu
dcb1867a5a dre: Switch BtAudio to AIDL
Test: m
Bug: 203490261
Change-Id: I4b8ac40d5ad410b89eb6a0573d740d86471ecfc7
Merged-In: I4b8ac40d5ad410b89eb6a0573d740d86471ecfc7
2023-12-30 21:13:27 -06:00
Michael Bestas
b85828b4cf dre: Inherit common partition reserved sizes
Change-Id: I444ce2fcd37cdfa58d83a7e872dc547fb05a2a89
2023-12-18 10:00:26 -06:00
Suren Baghdasaryan
9865abc0e6 dre: Replace direct pid writes with setting task profiles for audio interfaces
For easy transition from SchedTune to UtilClamp, direct access to these
cgroups should be abstracted by using task profiles. Replace writepid
commands with new task_profiles command.

Bug: 155419956
Test: change .rc file and confirm task profile is applied
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Ide373c283359cf4b73af4cb0813d8c0306942595
2023-12-18 10:00:26 -06:00
Bruno Martins
330a07a092 dre: overlay: Remove obsolete config_keyboardTapVibePattern
Change-Id: Ic89566183d2cdc4a20ea83f462c56a14184621ae
2023-12-18 10:00:26 -06:00
Rick Yiu
d71c9fb394 dre: Remove some camera-daemon commands
Those commands have moved to init.rc.

Bug: 170507876
Bug: 171740453
Test: build pass
Change-Id: Icfe520e7f7367461607cc8fb5e524d9699e79124
2023-12-18 10:00:26 -06:00
Sebastiano Barezzi
0d96dca686 dre: Keep building health HIDL interface lib in vendor
* GNSS HAL needs it

Change-Id: Id2e1b2844d195d41fc67a0224e0dc39573f7702e
2023-12-18 10:00:26 -06:00
Bruno Martins
fa5ed0b1cf dre: Move to QTI health AIDL service
The health AIDL HAL service provides functionalities of charger,
therefore system charger at /system/bin/charger is deprecated.
On top of that, QTI health AIDL HAL service enables suspend by
default, the equivalent of setting ro.charger.enable_suspend
for legacy charger.

Change-Id: I59c23e7974cea1174b0161f31a535fa3afa1e5c9
2023-12-18 10:00:26 -06:00
Kamal Wadhwa
a9cc222504 Remove charger service restart and modem partition mount calls for HOLI
Holi supports linux based charging and not via ADSP,
hence remove the modem partition mount logic.
This improves the entry time into power-off charging mode.

Change-Id: I69337e773f6078bc0847b7db199fc21e8c975a8a
2023-12-18 10:00:26 -06:00
basamaryan
1e0021ccc9 dre: Build libprotobuf-cpp-full-3.9.1-vendorcompat
For now this is implicitly built by lineage specific
libprotobuf-cpp-lite-3.9.1-vendorcompat lib, but in the future this
might not be the case.

Change-Id: I724e933e046cbf631c078321d55550b96ca998da
2023-12-18 10:00:26 -06:00
Bruno Martins
44a6bcdd3e dre: Migrate to restructured sepolicy_vndr
The new folder structure now looks like this:

  device/qcom/sepolicy_vndr
  ├─ legacy-um (meant for sdm845 until sm8350)
  ├─ sm8450
  └─ sm8550

SEPolicy.mk placed in the root automatically redirects devices to the
proper subfolder.

Change-Id: I4ed1a06af779909d64172da294c4a99a3ae9ba0d
2023-12-18 10:00:26 -06:00
LuK1337
ff6a34afe0 dre: Update libstdc++.vendor target name
Change-Id: I9fb48d50df7b8b74d19bfb05b3d9c2ca169bf3e2
2023-12-18 10:00:26 -06:00
LuK1337
9725e4fb45 dre: Build libprotobuf-cpp-lite-3.9.1-vendorcompat
Change-Id: I0aac742db9c2b4b3e48ee20158f19405863893c2
2023-12-18 10:00:26 -06:00
Gabriel Biren
91c1031176 dre: Update makefile to use the AIDL Wifi Vendor HAL.
Bug: 274964641
Test: Pre-submit tests
Change-Id: I4d9114377fe75b593bbfe6a59f03d8f5d607d6a1
2023-12-18 10:00:26 -06:00
Albert Tang
e336fb6479 dre: Correct wlan kernel module name
Change-Id: Ia8454a97a85b380d3dbb1e8d60b20824f3ffc0c7
2023-12-16 10:25:13 -06:00
Albert Tang
22e113fbe0 dre: Update from OOS 11.C.28
Change-Id: Ic0b13fc5f185e8c86ab508e32522331d733f74c2
2023-12-15 14:56:39 -06:00
Neel Chauhan
6b0f0ee9b0 dre: Remove old Sprint APNs
Sprint's LTE network is now dead: https://www.t-mobile.com/support/coverage/t-mobile-network-evolution

Change-Id: If7b934bec5b2bfc19d4e4e0409666420deadbeef
2023-12-07 11:02:23 -06:00
Albert Tang
a12f90ad4c dre: Update from OOS 11.C.27
Change-Id: I7308917e53234dd4f35bd996962b47642011a332
2023-12-07 16:07:21 +00:00
Albert Tang
110bdcd8a7 dre: Update from OOS 11.C.26
Change-Id: Icfd22b3fa37ca53858b876b401da596bfdae6745
2023-10-25 16:15:53 -05:00
SGCMarkus
f0cfa62f3c dre: Set BOARD_[SHIPPING]_API_LEVEL to 30
IMS needs this, as it won't connect to its own HIDL service when
ro.board.api_level is not set.

Change-Id: I2d8346b02e2b874e7ea76f4f0a36bf5764ea4a74
2023-10-18 09:22:36 -05:00
Albert Tang
c10df7143d dre: Update from OOS 11.C.25
Change-Id: Ica00a6eead0ea823d2a4615b1af926109cccc051
2023-09-03 14:48:59 -05:00
Albert Tang
95308b94a9 dre: Update from OOS 11.C.24
Change-Id: Ie3ac1535d232d925293f68162f25797e04ebb665
2023-06-30 17:10:44 -05:00
Michael Bestas
1e3ebd5caf dre: Build Lineage Health HAL
Change-Id: I70cc903a03ac9fa3303bb8fa039c9de4806449bf
2023-06-02 10:34:13 -05:00
Tim Lin
81395d416b dre: qcril: 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
2023-06-02 10:33:54 -05:00
Albert Tang
337b36a0e5 dre: Import c2_manifest_vendor.xml
Hardware accelerated video decoding is not available without this

Change-Id: Ia434f45d03af16669110e8c142df67bcc0f4a051
2023-06-02 10:33:43 -05:00
Albert Tang
8f9be60336 dre: proprietary-files.txt: Drop .lic file
Change-Id: I545ce92a6cad832dff1f5615c0d23b22094384e0
2023-05-30 14:56:11 -05:00
Albert Tang
2b3dc1628c dre: overlay: Correct cpu.clusters.cores
Cluster 0 has six CPU cores, not four

Change-Id: I1a67976f1d7957dbfd5316f2d852f9bcd1e787ca
2023-05-23 18:56:31 -05:00
Albert Tang
c1ddc5cef0 dre: Extract missing imsdaemon blob
IMS fails without this

Change-Id: I92ac76b50ffe4c93931208dcb3843f781cb5d3a5
2023-05-22 12:31:49 -05:00
Bruno Martins
493e5f4182 dre: Only ship with disabled A2DP offload configuration
A2DP hardware offload is broken since A13 QPR1 merge.

Change-Id: Idca3373669e28a0afd627daa79ebb0254abb5c74
2023-05-08 10:27:21 -05:00
Jakub Pawlowski
709c6daead dre: Use bluetooth.audio@2.1
bluetooth.audio@2.1 adds new functionalities required for Bluetooth LE
Audio development

Bug: 150670922
Change-Id: Iac2ece0c029a38fef82e81f5ba3ba491163818ef
2023-05-08 10:27:07 -05:00
Albert Tang
6efca624f0 dre: audio: Re-import holi configuration from CLO
* OnePlus has only one change now, but it's useless
* Keep A2DP removal changes in

Change-Id: I5b33f36b138f3e4833907ec4ed2e638ccb42fd8f
2023-05-07 15:57:47 -05:00
Melody Olvera
4b962b3b6f dre: init: Remove racey printk setups
Configure printk from init.qcom.sh only.

Change-Id: I4eff77fd5cd121f31156c2fbdac1208dec6c9ac5
2023-05-07 15:57:47 -05:00
Andrzej Perczak
284502d40e dre: Symlink libvndfwk_detect_jni.qti for CneApp
Needed by CneApp.

dlopen failed: library "/system_ext/lib64/libvndfwk_detect_jni.qti.so" needed or dlopened by "/apex/com.android.art/lib64/libnativeloader.so" is not accessible for the namespace "vendor-classloader-namespace"

Change-Id: I400f03c3cb60acdc4263c24b1096c5961142f03f
2023-05-07 15:57:17 -05:00
Alexander Koskovich
d009011248 dre: Move recovery resources to /vendor_boot
* https://source.android.com/devices/bootloader/partitions/vendor-boot-partitions

Change-Id: I6ffae14aef4597c7f8c787bfaeece69db0e38394
2023-05-07 15:57:17 -05:00
Alexander Koskovich
a51cd13aa3 dre: Make fstab available to vendor ramdisk
Change-Id: I7a34ac9fb0e0779669bdbb8aa2a91302a0fac101
2023-05-07 15:57:17 -05:00
Albert Tang
b71b6fbcfc dre: Update from OOS 11.C.23
Change-Id: Ic9fb9586bd5d8bcc3dd04c11a415066b141bd723
2023-05-05 08:06:16 -05:00
Nick Reuter
16981a495a dre: init: only process props for carrier devices
Change-Id: Ia32508c4c03ea6fd48bc82d60f702cae1e127bde
2023-04-24 08:20:54 -05:00
Alexander Koskovich
7e05eef029 dre: init: Set model based on project codename
Co-authored-by: dianlujitao <dianlujitao@lineageos.org>
Change-Id: I06f9acda3fe77f57a1bc24ee5a802db0ab3b8d60
2023-04-24 08:20:54 -05:00
Albert Tang
f8e7669aa3 dre: overlay: Remove color modes
This is not present in stock OOS (both 11 and 12), and the kernel lacks
any support for them.

Change-Id: I84488285d48ab42b259751cd55444f272d9bd3b6
2023-04-24 08:20:35 -05:00
Michael Bestas
41e3a9e8c3 dre: Add board-info.txt
* Fixes flashall in fastbootd

Change-Id: Iae2f33113317cfaadeff7a3610463880077c35e0
2023-04-21 16:55:53 -05:00
Michael Bestas
43624b572c dre: Build fastboot custom HAL
* This adds getprop functionality in fastbootd.

Change-Id: I4906f6e9dcc00d37a7fa97e0139ba536f00755fa
2023-04-21 16:55:44 -05:00
Albert Tang
482cb4efbe dre: Fix sdcard support
"encryptable=footer" is broken

Change-Id: Ia80bff24fb553a0a10f18600ba6f52705153bb21
2023-04-21 03:19:11 +02:00
Albert Tang
5de9562561 dre: sepolicy: Move battery entries to hardware/oplus
Change-Id: I9b1dedf972de3b3fbff0d757d30f95fd7a2a2789
2023-04-17 14:33:17 -05:00
Albert Tang
dec9804d47 dre: Update from OOS 11.C.22
Change-Id: I0fbd8e91fe924d04ed7dcdc0606be54f0d0b7987
2023-04-17 09:34:56 -05:00
Albert Tang
0426db17b2 dre: Update from OOS 11.C.20
Change-Id: I70dd661bc57bdca00c7d8c8fa7eb76ca161cc596
2023-04-13 10:19:50 -05:00
LuK1337
b4fb0c355e dre: Use libcamera_metadata_shim for unlocking cameras
Change-Id: I985c6e317b36d8cdc6b41a9f9f625b293a8987eb
2023-04-13 10:19:49 -05:00
Albert Tang
76d62af9ed dre: Patch hotword sysconfig
Change-Id: I428f4299197cbe5379e9288dbc49ed9fe31e37c4
2023-04-13 10:19:49 -05:00
Georg Veichtlbauer
127623e395 dre: Remove aptX(HD) encoder shared libs
Encoder shared libraries are no longer required as of Android 13 QPR2.

Change-Id: I893a9000070cb2582ada0af91547f5176e6fea84
2023-04-10 20:56:16 -05:00
LuK1337
af5d195b69 dre: Repatch PowerOffAlarm.apk
apktool d PowerOffAlarm.apk
sed -i 's/oplus.permission.OPLUS_COMPONENT_SAFE/org.codeaurora.permission.POWER_OFF_ALARM/g' **/*.*
apktool b PowerOffAlarm
mv PowerOffAlarm/dist/PowerOffAlarm.apk .
rm -rf PowerOffAlarm

Change-Id: Iad10dc6b14cacdf22ab9fb39525c8f1a00548ab0
2023-04-10 20:56:16 -05:00
Kishor Krishna Bhat
acd79ebf24 dre: Remove frozen and unfrozen cgroup
Removed frozen and unfrozen cgroup configuration which
are outdated and are also not required. This passes
testFreezerKillExitCode test case.

Change-Id: I8fef53a3b957d529cd6ace75e648ce8a5847e046
Signed-off-by: Kishor Krishna Bhat <quic_kishkris@quicinc.com>
2023-04-10 20:56:16 -05:00
Albert Tang
e79aee3bbf dre: Import task_profiles.json
Change-Id: I922e83abeb47706303f2b83698ea07c09a65b069
2023-04-10 20:56:16 -05:00
LuK1337
fd732c0a74 dre: overlay-lineage: Configure aux camera for Aperture
Change-Id: I543f078dd4dba30e1b22737d5c22d591e3fb34e6
2023-04-10 20:56:03 -05:00
Michael Bestas
c426c6bd4b dre: Remove leftover A2DP input configuration
Change-Id: I29e7c09f9ba13717a996755e4f9320485cacdff0
2023-02-14 21:15:53 -06:00
Edwin Moquete
7a8ba5de0c dre: Remove unused persist.bluetooth.a2dp_offload.cap property
This prop has no effect as of T QPR1.

See: cf25e33147

Change-Id: Ic762812dd59429d344ccc55c01bf96b0ffd6dbab
2023-02-14 21:15:53 -06:00
Edwin Moquete
e95c402869 dre: Restore vendor bluetooth props
These are read by the BT audio blobs, even without the
QTI BT stack.

Change-Id: Ia2335bedfd7e19899c2cb32c23fcc664f2cfe8ce
2023-02-14 21:15:53 -06:00
althafvly
9a431a2322 dre: Inherit launch_with_vendor_ramdisk for vAB
- sm4350 devices have a vendor_boot partition

Change-Id: I5c344890bc12ee769e2f27369a4151b469271a51
2023-02-10 10:06:43 -06:00
Dan Pasanen
3bae34ec95 dre: Enable config_vibrateOnIconAnimation
* Need those sexy vibes.

Change-Id: If5671135879f6f4069d0ed881b41b0a243890349
2023-02-10 10:06:43 -06:00
Michael Bestas
6ee40466e6 dre: Compile the kernel without GCC
Change-Id: I882c0d8600f88c1bb939c7ee247230ec5e70338a
2023-02-10 10:06:43 -06:00
jabashque
2a0087a04c dre: Disallow aux cam usage for Zoom
Zoom seems to try using camera ID 2 for the back camera instead of
camera ID 0. Block access to aux camera for Zoom to force it to use
camera ID 0 for the back camera.

Change-Id: I99d79259a2a3adefb72a5ffed5fbbb37bd8b756d
2023-02-10 10:06:43 -06:00
LuK1337
4831b7afb9 dre: Migrate vendor.camera.aux.packageexcludelist to overlay
Change-Id: Iee884cc98b5fada492b27e8085de98ae08406cf4
2023-02-10 10:06:43 -06:00
Bruno Martins
08cc2b73e0 dre: Create IMS symlinks
Change-Id: I25d011323268b2f25c98e38441df633fb91e0715
2023-02-10 10:06:43 -06:00
Aaron Kling
d500a981a2 dre: Remove references to a2dp module
APM would fail to parse the config anyway:

  E DevicesFactoryHAL: loadAudioInterface couldn't load audio hw module audio.a2dp (No such file or directory)
  W DevicesFactoryHalHidl: The specified device name is not recognized: "a2dp"
  E AudioFlinger: loadHwModule() error -22 loading module a2dp
  W APM_AudioPolicyManager: could not open HW module a2dp

Change-Id: Iaa1be881cfe8f8474cef0ba46e1b0a62b59e14be
2023-02-10 10:06:43 -06:00
Bruno Martins
29eeb7cafd dre: Switch to AOSP BT stack
Change-Id: Ice6c2b0735aa7cb4b2e638a794c778883e706c97
2023-02-10 10:06:43 -06:00
Bruno Martins
2cd76d66b2 dre: Migrate to AIDL ClearKey DRM HAL
Change-Id: Iad5cc1176978137c647069197b33f49fb4d98ab2
2022-12-15 18:50:53 -06:00
Michael Bestas
5bedce0348 dre: Fix disabling A2DP offload
Change-Id: I49c717a19afb2491b6280670fdbfe8765813a4dc
2022-12-15 18:50:53 -06:00
Bruno Martins
535982b6d4 dre: Ship dependencies for S blobs
Change-Id: I36f92cf324ee0b1379e224b8a4415c4886bc2d11
2022-12-15 18:50:53 -06:00
LuK1337
fd763c826c dre: Pull appropriate USB props from vendor_product.mk
Change-Id: I93b25c5d0989c83d1c8d7b7946a083771febdddd
2022-12-15 18:50:53 -06:00
Alexander Koskovich
92081d81fd dre: Update device that aptX is pulled from
* Same SHAs, but nice to note that it's the same on
   the newest release available.

Change-Id: I5c862470ac6f54251c8fa61984c734a51d89a750
2022-12-15 18:50:53 -06:00
Michael Bestas
2852296ff8 dre: Remove persist.sys.fflag.override.settings_bluetooth_hearing_aid
This has been replaced by `bluetooth.profile.asha.central.enabled`

Change-Id: I0bb72ec01a77f790ebeb594e45c695e9a087dc43
2022-12-15 18:50:53 -06:00
Alexander Koskovich
dbb445de25 dre: Move Bluetooth power overlays to sysprops
* These were moved to sysprops in Android 13 [1] and while
   frameworks reads the values directly from power_profile.xml
   Bluetooth app reads from the properties.

 [1] 976d33062b%5E%21/#F0

Change-Id: I5bff67a15c537e8a47a19f30776fca6bf2c9fbe5
2022-12-15 18:50:53 -06:00
Alice Kuo
053210fbd1 dre: Disable LE audio related profiles
Bug: 231671426
Test: build
Change-Id: I57eaa7abe70e4c7739c707b09dc95530e10b5586
2022-12-15 18:50:53 -06:00
Sal Savage
30669050a8 dre: Use the ?= operator so BT properties can be overridden
System properties set with the "=" operator cannot be overriden. This
device is used elsewhere in the system and some of the properties need
to be overridden. The "?=" operator will use the assigned value if no
other values are assigned elsewhere, allowing for overrides.

Bug: 230638462
Test: adb shell getprop | grep bluetooth
Merged-In: Ie29700e8b87f6f3fc2da741411dfbe94fa56ca36
Change-Id: Ie29700e8b87f6f3fc2da741411dfbe94fa56ca36
2022-12-15 18:50:53 -06:00
Sal Savage
f6ad7132cd dre: Set default the Bluetooth class of device
The class of device is a string with a list of uint8t values:
90,2,12

The meaning is as follows:
{Service Field, Major class, Minor class}

Service Field: 0x5A -> 90
    Bit 17: Networking
    Bit 19: Capturing
    Bit 20: Object Transfer
    Bit 22: Telephony
MAJOR_CLASS: 0x02 -> 2 (Phone)
MINOR_CLASS: 0x0C -> 12 (Smart Phone)

Bug: 217452259
Test: make -j; -- check that bluetooth.device.class_of_device is
correct

Merged-In: I75a6fb83a6149f58372b7aa46ccc190fd4451ab0
Change-Id: I75a6fb83a6149f58372b7aa46ccc190fd4451ab0
2022-12-15 18:50:53 -06:00
Sal Savage
8cc553454c dre: Update LE Audio profile properties
Bug: 217448211
Test: atest BluetoothInstrumentationTests
Merged-In: I0d23d92ae4d75d6658c2ab2ca25122dd5ac68300
Change-Id: I0d23d92ae4d75d6658c2ab2ca25122dd5ac68300
2022-12-15 18:50:53 -06:00
Alexander Koskovich
4fe805701c dre: Move BT profiles props to vendor
* Makes it GSI compatible

Change-Id: I8f7caf241d508af59c16482e6185c42f23f8a460
2022-12-15 18:50:53 -06:00
Sal Savage
7a5ee8c328 dre: Enable Bluetooth profiles with product.prop
Bug: 217448211
Test: make -j
Merged-In: I0a76275baf2c80894b6be71d79b3265021ac921b
Change-Id: I0a76275baf2c80894b6be71d79b3265021ac921b
2022-12-15 18:50:53 -06:00
Woody Lin
b7798f1084 dre: Enable zygote critical window
Bug: 141948707
Change-Id: I5dc57312118b0f6d95fc9fe164363ec7e15f1b51
2022-12-15 18:50:53 -06:00
Edwin Moquete
7f8e345483 dre: Switch to legacy sepolicy_vndr
Change-Id: I13229c3057bf32c81b0fdace075f0791cb8ad380
2022-12-15 18:50:53 -06:00
Bowgo Tsai
59fb32fef9 dre: Removing GSI keys
Those keys will be embedded into VtsSecurityAvb on host side
instead, to verify the GSI image used on the device.

Bug: 149806769
Test: build and checks those keys are removed from
      $OUT/recovery/root/first_stage_ramdisk/avb/
Change-Id: I8a002ba6f1421fb460056ccae6572050bdb0ce3c
2022-12-15 18:50:53 -06:00
Albert Tang
859d381258 dre: overlay: Remove keyguard_indication_margin_bottom
This was mainly for UDFPS, which we do not have.

Change-Id: I5d6c984328d50515498d48fd1926c581fb61f7f2
2022-11-06 17:12:05 -06:00
Albert Tang
b9d9126ad0 dre: init: Load WLAN module during boot
Change-Id: I358d8e580996f9c5eb0bbd60f523ffcf160aea39
2022-11-06 17:12:05 -06:00
Albert Tang
4292f08385 dre: nfc: Use modified libnfc-hal-st.conf
Change-Id: I1c30f5d9e5a7212dfcda8cab168fb9d7eaccd1eb
2022-11-06 17:12:05 -06:00
Albert Tang
0a5706caf6 dre: audio: Fix audio policy configuration
Change-Id: I671912f888065474b85eb8515193a18abb8bed12
2022-11-06 17:12:05 -06:00
Albert Tang
adaa58d2ca dre: Update from OOS 11.C.16
Change-Id: Iadfe003a3ee0a7303de279debbd1708238877bf1
2022-11-06 17:12:03 -06:00
Albert Tang
5d02516f7a dre: Switch to oplus fingerprint HAL
The generic fingerprint HAL no longer works here.

Change-Id: Ibe16dd5f1e5c30de179c034e15b68ffb4a6f72ec
2022-11-06 17:11:02 -06:00
Albert Tang
da0d89af57 dre: overlay: Decommonize and restore from DE2117_11.C.15
Change-Id: Ib311d07854c7168668bd5d22d8c78eab74ac5af5
2022-11-06 17:11:02 -06:00
Albert Tang
cd0b7722b2 dre: Set faceunlock and enginner HALs as optional
Change-Id: Ia331733bd67701c2e58fb9e5df75d2801ee44efc
2022-11-06 17:11:02 -06:00
Albert Tang
44e20470d2 dre: Sync modules.load with DE2117_11.C.15
Change-Id: If6e9b7fcc8fa8fa355848ee8fb6f3dbb46ab777a
2022-11-06 17:11:02 -06:00
LuK1337
51d6e79867 dre: Extract hotword apps to correct directory
Fixes device blobs extract.

Change-Id: Ibdff2fcb3e49497733487c58b34404cb62e95280
2022-11-06 17:11:02 -06:00
Alexander Koskovich
6f00df6960 dre: Drop debug.sf.latch_unsignaled from system_ext.prop
* Already exists in vendor.prop

Change-Id: I4b98724aadf261e5b06c0135e305ffce455c14ae
2022-11-06 17:11:02 -06:00
Santiago Seifert
b80212bdfc dre: Unpin updatable-media from memory
Bug: 214499288
Test: Presubmit
Change-Id: I83757ae6a053ec6b10b08322c4e76d988f1a4a48
2022-11-06 17:11:02 -06:00
Jayachandran C
b59ef5ea4a dre: Move default network property to vendor partition
This fixes GSI image overriding the default value

Bug: 153852350
Test: Manually verified after flashing the GSI image
Change-Id: I78b415862c420c23121ec03d6953814cd628ea9a
2022-11-06 17:11:02 -06:00
LuK1337
fdd6de8d14 dre: Disallow aux cam usage for Telegram / Telegram X
These seem to misbehave when they reach certain camera IDs.

Change-Id: Ib07269215d76a09bf5b305bfb6ae9b84f5c5a7d3
2022-11-06 17:11:02 -06:00
LuK1337
64700b2cd1 dre: Register IHighTouchPollingRate interface
Change-Id: I3c48324cd201e810f04ccaa39898d7c8e43fa2e5
2022-11-06 17:11:02 -06:00
LuK1337
cfed861db7 dre: overlay: Add VZW MMS UA profile config
config_mms_user_agent_profile_url seems dead but nonetheless stock still
seems to use it.

Change-Id: I78efbbfb5e2012f54905565e208a3b75fa05bf56
2022-11-06 17:11:02 -06:00
Alexander Koskovich
f5ba6792a2 dre: overlay: Move OPlusWifiResCommon to hardware/oplus
Change-Id: I0751a3271fcdeed3a5e43cf37ae49f67f75285b4
2022-11-06 17:11:02 -06:00
kocolin
c948487909 dre: Add some libraries to pinner list
Add some librart which will load during camera launch to reduce camera
launch time in I/O busy case.

Bug: 165825997
Test: Camera_checklist, dumpsys pinner
Change-Id: I48b5503ad674dc19cda940c44878291171fa4536
2022-11-06 17:11:02 -06:00
Alexander Koskovich
5f56fa086c dre: overlay: Don't translate some strings
Change-Id: I1ea88f84af03f157894c11f857fc59ad0a4bae88
2022-11-06 17:11:02 -06:00
Alexander Koskovich
ad5ad0568b dre: overlay: Drop explicit 'sdk_version' declaration
* We don't need to manually set this anymore.

Change-Id: I1239ba541636e53f8ea4373d3815024f2cd60824
2022-11-06 17:11:02 -06:00
Alexander Koskovich
9da020832f dre: Don't disable inband ringing as per OOS
Change-Id: Id424be6405464348d64410e91ca1d38f208ee465
2022-11-06 17:11:02 -06:00
Alexander Koskovich
d4135351bf dre: Define OPA device model ID for GMS
Change-Id: I3098054e9176fd3c4962791858e1047bbb94964a
2022-11-06 17:11:02 -06:00
Alexander Koskovich
93f3520fc8 dre: Add some relevant properties wanted by RMT storage
Change-Id: Ie354fd5a07e3673bcd5dcb4e067af55f20ba45a1
2022-11-06 17:11:02 -06:00
LuK1337
211108ed5e dre: Use hardware/oplus/sepolicy/qti
Keep certain policies here for now.

Change-Id: I8d1f4c402a4e9ce8d97cf315d32148f88089c4c5
2022-11-06 17:11:02 -06:00
Alexander Koskovich
0edc4e9c42 dre: Drop unused audio properties
* ro.vendor.audio.sdk.ssr: False is default
   vendor.audio.enable.mirrorlink: Unused in AOSP
   vendor.audio.safx.pbe.enabled: False is default

Change-Id: If30194f5bcd4f69edf7ac43fe3725db4fe9b3da1
2022-11-06 17:11:02 -06:00
Alexander Koskovich
f651152569 dre: Move oplus specific properties to /odm
* Easier to track changes if we know everything in
   vendor.prop is from QCOM.

Change-Id: I02e65c4d4e4df344672fb4c04cf7ccace3b07b60
2022-11-06 17:11:02 -06:00
Alexander Koskovich
6db1973e9a dre: Update to Boot Control HAL v1.2
Change-Id: Ib5d06c9b0c7e2ed000eb03a9bf18e4d78cc8740d
2022-11-06 17:11:02 -06:00
Alexander Koskovich
cfbc0ffd45 dre: Move bootctrl and gpt-utils to hardware/oplus
Change-Id: Icccbb163ab5b1678a7e6a6b042afbf52ec1e6c85
2022-11-06 17:11:02 -06:00
Michael Bestas
28bd6e8beb dre: bootctrl: Remove bootctrl.holi target
* This is no longer used after switching to QTI 1.1 impl

Change-Id: Id770b77da62c3b16eaea83cec366b299b1ea49d2
2022-11-06 17:11:02 -06:00
Alexander Koskovich
8a48076979 dre: Disable WiFi Aware & RTT for unsupported target
* Lahaina is supposed to be a supported target, but
   some CTS tests fail. Oplus also disables these in
   OOS.

Change-Id: I5921e0f4ecb2140a5610059bdd16cc6e99d7d725
2022-11-06 17:11:02 -06:00
Alexander Koskovich
612812765a dre: Move DTC_EXT definition to vendor/lineage
Change-Id: I452ec4dabfd6abf052f020fe48527403df873f5f
2022-11-06 17:11:02 -06:00
Alexander Koskovich
e57cbb4e30 dre: Move LLVM=1 and LLVM_IAS=1 to BoardConfigKernel
Change-Id: I994ed59207aaad159d8f5363be21a0a1357374e6
2022-11-06 17:11:02 -06:00
Pratham Pratap
6dba679fe2 dre: Set sys.usb.mtp.batchcancel for MTP over FFS
* Currently, cancelEvents in MTP will cancel the requests one by
   one, and it will check each response to confirm success or
   failure. However, if kernel usb controller driver got the
   cancel request, the driver will handle all requests in the same
   endpoint so that the second io_cancel in cancelEvents will be
   useless causing the cancelEvents to return error and fail the
   transfer.

 * Fix this by setting sys.usb.mtp.batchcancel for the targets
   using MTP over FFS.

Change-Id: Icea9a2815c79ff710ee887d02e4c99dfe5ad6361
2022-11-06 17:11:02 -06:00
Alexander Koskovich
e34cc81234 dre: Drop vendor.media.vpp.oplus.version
* Used by system_ext/lib64/liboplusstagefright.so
   and Oplus' surfaceflinger, neither of which we
   have.

Change-Id: Id04538d5c7ed3424fbb8aab9031aa929c7e2fe01
2022-11-06 17:11:02 -06:00
Alexander Koskovich
433a1d18eb dre: Drop implied Bluetooth properties
Change-Id: Ibf99eb0a1cfec92b849403db710df3239e1de203
2022-11-06 17:11:02 -06:00
Alexander Koskovich
edd6ad958f dre: Set media performance class to 30, per OOS
Change-Id: I17b658aeaaabd7159f9fcc4d04e73f45a3980069
2022-11-06 17:11:02 -06:00
Alexander Koskovich
5a3e4cce50 dre: Remove unused Bluetooth property
Change-Id: I1fa94bd94dad1a091091497d57b6d2698cef0c04
2022-11-06 17:11:02 -06:00
Alexander Koskovich
f4b1c659d9 dre: init: Update display panel firmware if newer
[TP0]touchpanel: tp_fw_update_work: fw_name = tp/19825/FW_S6SY792_SAMSUNG.bin
[TP0]touchpanel: fw_name_fae is tp/19825/FW_S6SY792_SAMSUNG_FAE.bin
sec-s6sy792 2-0048: Direct firmware load for tp/19825/FW_S6SY792_SAMSUNG_FAE.bin failed with error -2
sec-s6sy792 2-0048: Falling back to sysfs fallback for: tp/19825/FW_S6SY792_SAMSUNG_FAE.bin
[TP0]touchpanel: retry times 0
[TP]sec-s6sy792: sec_fw_update is called, force update:0
[TP]sec-s6sy792: img version in bin is 0x28240117, img version in ic is 0x28240117
[TP]sec-s6sy792: config version in bin is 0x28240108, config version in ic is 0x28240108
[TP]touch_interface: read block_1, free once.
[TP]touch_interface: read block_1, kzalloc success(len:1152, buf_size:1152).
[TP]sec-s6sy792: update firmware state: no need update!
[TP0]touchpanel: release all touch point and key, clear tp touch down flag
[TP]touch_interface: read block_2, kzalloc success(len:1, buf_size:256).
[TP]sec-s6sy792: sec_change_to_np_mode: change to np_mode time: 0 success!
[TP]sec-s6sy792: sec_enable_fingerprint_mode: touchhold_enable: 0 success!
[TP]sec-s6sy792: sec_enable_black_gesture, enable = 0
[TP]sec-s6sy792: sec_enable_black_gesture: 0 times change black gesture success
[TP]sec-s6sy792: limit_switch is 1
[TP]sec-s6sy792: sec_enable_charge_mode: state: 0 success!
[TP]sec-s6sy792: sec_enable_headset_mode: state: 0 success!
[TP0]touchpanel: add qos request in touch driver.
[TP0]touchpanel: fw update finished

Change-Id: Iba517b59fe2856ed6f991c07e0362b1be203af45
2022-11-06 17:11:02 -06:00
LuK1337
e141fe303f dre: overlay: Set max network scan search time to 254
Matches value found in stock TeleServiceQcom.

Change-Id: If2b224298ffe731f8ccfd0b4f3b6d8a257b6f968
2022-11-06 17:11:02 -06:00
hpnightowl
4060e892f5 dre: Drop audio.a2dp.default
-
5be591a6f6

Change-Id: Ib71c1abd381468ec3621d60e5ca959f738f51168
2022-11-06 17:11:02 -06:00
Alexander Koskovich
dd92adce89 dre: Define boot image security patch
Change-Id: I2471d3412577fee8e7bca40743b38a2fc765884c
2022-11-06 17:11:02 -06:00
Alexander Koskovich
70b87d266d dre: Match chained vbmeta images with OOS
Change-Id: Ic2b8c7101d3734747221d5fc66fa26f11c7b06b2
2022-11-06 17:11:02 -06:00
Alexander Koskovich
97c072f261 dre: Switch to SHA256_RSA4096 to match OOS
Change-Id: I9309c6ee4ea0f9085fe2bac1372f30476b404faa
2022-11-06 17:11:02 -06:00
Alexander Koskovich
fddc7ebf3b dre: Enable LLVM integrated assembler
* Disabled by default even with LLVM=1, but this is
   another GCC dependency we can remove. Google has
   been doing this for a while now.

   https://android.googlesource.com/kernel/msm/+/b009f0a1a

Change-Id: I1ca23607682299182da0a6e14594ba2e2de00a4a
2022-11-06 17:11:02 -06:00
Alexander Koskovich
312af2154e dre: overlay: Define audio safety overlays
* From android_framework_res_overlay.audio.product.2083C

Change-Id: Ib7be879ccce9d152ad4baaa6948b6d7141699d08
2022-11-06 17:11:02 -06:00
Alexander Koskovich
7ddab57b20 dre: overlay: Import some WiFi overlays from OplusWifiResource
Change-Id: I6a8354276467b95bb02c9a8b30b5952094be6f2e
2022-11-06 17:11:02 -06:00
LuK1337
7ddea65881 dre: overlay: Declare eUICC device capabilities
From framework_res_overlay.network.fussi.2083C.

Change-Id: Ia0a23bbacd4d5e89fac4f784719a52f60d5ceeb5
2022-11-06 17:11:02 -06:00
Dyneteve
83c6461ee7 dre: CarrierConfig: Remove "SIM x is HD capable" message
sed -i '/config_update_service_status/ s/true/false/g' \
       overlay/CarrierConfigResCommon/res/xml/vendor.xml

Change-Id: I26ce187483d6d8c18bcd1901cd6d71ca6ec1e31f
2022-11-06 17:11:02 -06:00
LuK1337
4a51b5df89 dre: Use correct rollback index location for vbmeta_system
Change-Id: I022d7670290e0a1a9649c5d7d479e3763ec7d166
2022-10-11 08:31:24 -05:00
Sebastiano Barezzi
1e9df7a732 dre: Remove TARGET_ENABLE_MEDIADRM_64
* It's only used when building drm@1.0 HIDL

Change-Id: I06412e2dd2bb48d798be4ef6e9a26a17b65277a7
2022-10-11 08:31:24 -05:00
LuK1337
6cf14d3057 dre: init: Set SSR restart level to 'RELATED'
Change-Id: I32fc08c9ad36b9c8ebfc019fc87a19eece18f0b4
2022-10-11 08:31:24 -05:00
Michael Bestas
835ab39661 dre: Automatically add apk/jar/vintf fragments to PRODUCT_PACKAGES
Change-Id: Iaa9d66b0bbdc55f046ee1347cbf83c7eecebb35e
2022-10-11 08:31:24 -05:00
Alexander Koskovich
0a16cb3286 dre: Change GPS proxy app to default one
* This was the default in CAF before OnePlus changed
   it to com.oplus.locationproxy. This is apart of the
   framework 'oplus-lbs-services', which we don't use
   in Lineage.

Change-Id: I5144d32a6f63de5109ca2cc408bc895f621c1260
2022-10-11 08:31:24 -05:00
Albert Tang
fa0473e516 dre: Move GNSS files back to proprietary-files.txt
They won't be edited, so don't store them locally.

Change-Id: I4fb340553442e1ddaf09c9ea81743c0745999e1a
2022-10-11 08:31:24 -05:00
Alexander Koskovich
61cd2f935a dre: Import GPS configuration from DE2117_11_C.15
Change-Id: I64c78ddc6af425117af8dd85f2fc9a49ac3bb942
2022-10-11 08:31:24 -05:00
Cassie
94795728d8 dre: overlay: Use the new auto network selection UI
Change-Id: I76698911103601d5f3ad67e1099790af8c2fdc18
2022-10-11 08:31:24 -05:00
Alexander Koskovich
7d1a1c52a7 dre: Switch to SPDX license identifiers
* Might as well be consistent.

Change-Id: Ib95789a0286785ba3b0b6df265291e87a13d2ef8
2022-10-11 08:31:24 -05:00
LuK1337
0988c92cb4 dre: overlay: Restore default config_proximityCheckTimeout
Apparently we can no longer expect proximity sensor to reply within
100ms...

Change-Id: Ifdeda8b9a310da9bd19b7d000b6ac7aa060ae742
2022-10-11 08:31:24 -05:00
Vishalcj17
e7b7c5a976 dre: Steal SurfaceFlinger offsets from taro
* Before:
   Jitter: 0.6ms
   Total duration: 7.1ms

 * After:
   Jitter: 0.3ms
   Total duration: 6.4ms

Change-Id: I878eb5cd7acb1fa322b28fce61ea59d8bfa47932
2022-10-11 08:31:24 -05:00
Alexander Koskovich
8e8185245e dre: Sync display properties with holi
* Remove properties that aren't referenced anywhere
   and ones where the value is the default.

Change-Id: I0b68179c7d8d32ca5bde0b959e57e2146b8537a3
2022-10-11 08:31:24 -05:00
Lisa Liu
8c02147eeb dre: Enable LZ4 compression for ramdisks
* This shortens the time to unpack initramfs.

Change-Id: Id23daba43ae7a6003cbde29480d2f433f344df73
2022-10-11 08:31:24 -05:00
Alexander Koskovich
48c9c3d2b2 dre: init: Fix "Invalid section keyword found" on ueventd
Change-Id: I8a3eb3abea82feb5e1a92cc859cd6498ee68666e
2022-10-11 08:31:24 -05:00
Deevana Murthy Bandaru
8f6bbb0444 dre: Enable suspend while charging
Change-Id: I1b0258b1ae80d35a104ef976738ad843c053f60f
2022-10-11 08:31:24 -05:00
Alexander Koskovich
57d7ef06b4 dre: Drop ro.charger.disable_init_blank
* Don't need this on a modern platform like holi.

Change-Id: I567429a34059247a488bf513217dccefd60bb1d3
2022-10-11 08:31:24 -05:00
Alexander Koskovich
7d88bbcf44 dre: Drop persist.vendor.overlay.izat.optin
* Not used by anything.

Change-Id: Ia726deecdfe9bc07fbfe758ed006bf39e154a834
2022-10-11 08:31:24 -05:00
Alexander Koskovich
2157b4f312 dre: Drop camera.disable_zsl_mode
* Set as apart of calibrationOutput_uw.rc.

Change-Id: I7ac6c4ad993509c40b42518a574f8945a2934127
2022-10-11 08:31:24 -05:00
Alexander Koskovich
426a9e28f5 dre: Remove radio properties where the value is the default
Change-Id: I46a4fd1bc358fa7503a470054e8c6cd14ccfd1c0
2022-10-11 08:31:24 -05:00
Alexander Koskovich
89c8af1e55 dre: Remove ro.com.android.dataroaming override
* build/make/target/product/full_base_telephony.mk
   24:    ro.com.android.dataroaming?=true

 * system_ext/etc/build.prop:ro.com.android.dataroaming=false
   vendor/build.prop:ro.com.android.dataroaming=true

   In QSSI builds the partition priority is: odm, vendor,
   product, system_ext, system.

Change-Id: Ia90d73ce62a156e4b88731cffd4d5f7a6dd795e6
2022-10-11 08:31:24 -05:00
Alexander Koskovich
73bd7212e4 dre: Drop QSPM vendor property
* Only used in system_ext libraries that we don't include.

Change-Id: I5ddcb48558df9b396cf4753aca9044978d3ddcb5
2022-10-11 08:31:24 -05:00
Alexander Koskovich
45d6b0b943 dre: Drop PASR properties
* vendor.power.pasr.enabled is unused and vendor.pasr.activemode.enabled
   is only used on property:vendor.pasr.enabled=true, which isn't the
   case since we disable memory hotplugging kernel.

verify_pasr_support()
{
         if [ -d /sys/kernel/mem-offline ]; then
                setprop vendor.pasr.enabled true
         fi
}

Change-Id: I73145cb15bd970eaec3bd96f87a48c44e3115a3b
2022-10-11 08:31:24 -05:00
Alexander Koskovich
13c31dcd58 dre: Drop shutdown wait time property
* Can't find anything that uses it.

Change-Id: I146158a8f37fb888a3ae88e5241ab68f62d69194
2022-10-11 08:31:24 -05:00
Alexander Koskovich
b2de3cc369 dre: Drop vendor camera properties
* Unused, at least for us.

Change-Id: Icf0f599db2ed1d19be2a93f3ee362686333a2792
2022-10-11 08:31:24 -05:00
Alexander Koskovich
0225f34c01 dre: Drop some audio packages
* All of these are implied, except libcirrusspkrprot
   which was removed as we are not using any Cirrus
   hardware, and even hardware supported by it is hard
   to find in production.

Change-Id: Iad7824105bd2c22899365f8a5fc0a9e73d36beda
2022-10-11 08:31:24 -05:00
Alexander Koskovich
5a36ce2a00 dre: Sync audio properties with QSSI & MANNAR
* Remove all values that are assumed false.

Change-Id: I8885cb0af27c66aabdc4b2561e0eef48c60220cd
2022-10-11 08:31:24 -05:00
Revathi Uddaraju
ca1f276b3d dre: Enable multi-stage SVA
Change-Id: I5bced49059bb5d98c647e7688899a1314ef1571d
2022-10-11 08:31:24 -05:00
Alexander Koskovich
165f9ed5ec dre: Remove virtual framebuffer
* It's largely for testing purposes and it consumes
   a large amount of memory. If your hardware doesn't
   have graphics then it can be useful, which isn't the
   case for shipped devices.

Change-Id: I2348718ad3afba846498572161fa7e83dd8b7ce9
2022-10-11 08:31:24 -05:00
Etan Cohen
51993dba27 dre: overlay: Depend on carrier provisioning for WFC
Change-Id: I2cdeb1e39a68922dc8489998f65dcc6c891da31c
2022-10-11 08:31:24 -05:00
Glen Kuhne
54eee440db dre: overlay: Set default hotspot SSID prefix
Change-Id: I2b5310c2acfd4e0110244fb17cf6bd5552bf81d7
2022-10-11 08:31:24 -05:00
LuK1337
cf7ca4e244 dre: overlay: Disable AOD by default
Change-Id: I474ec8ab718140c30c1032adca6946461bba593e
2022-10-11 08:31:24 -05:00
Pavan Kumar M
eb6ffeace8 dre: hidl: Add v1.0 MwqemAdapter HIDL entry
Change-Id: I78a1b779d762f34856215397d879908df748fa3c
CRs-Fixed: 2823635
2022-10-11 08:31:24 -05:00
Alexander Koskovich
edf1762796 dre: Update IMS from SKQ1.220303.001
* Closest QSSI tag is LA.QSSI.12.0.r1-06800-qssi.0.

Change-Id: Ief930b8b8eae1da02cc22185e3709c53ee69ca70
2022-10-11 08:31:23 -05:00
Alexander Koskovich
22fa99ecf3 dre: overlay: Import relevant custom changes made prior to RROs
Change-Id: Id3e5c5548088209a2459217dcdfe78fb59ff7221
2022-10-11 08:31:23 -05:00
Alexander Koskovich
7919db86e7 dre: overlay: Import CarrierConfig changes from DE2117_11.C.15
Change-Id: If5dbeed7534c80db6712044e6898f59b11f17941
2022-10-11 08:31:23 -05:00
Alexander Koskovich
a438632768 dre: overlay: Use CarrierConfig DTMF & CSP booleans
* Overlays were deprecated awhile ago for these.

Change-Id: I51b70aa15f128186063ce52446cb67715a957185
2022-10-11 08:31:23 -05:00
Jake Weinstein
6d68cf9ffa dre: overlay: Disable global mode and CDMA choices
* Cleans up mobile network settings.

 * CAF already disables world mode in CarrierConfig
   which is the proper way to do it, so remove the
   overlay entierly since it's deprecated anyways.

Change-Id: Ib331062fa77a18661bbfcd1a49f62ddf9144228c
2022-10-11 08:31:23 -05:00
Alexander Koskovich
380b359fd0 dre: Import cleaned MANNAR RROs from DE2117_11.C.15
Change-Id: I6c668a7fb81fbe69fbdb9c75725bb586010c75d9
2022-10-11 08:31:23 -05:00
Alexander Koskovich
7a78cdb010 dre: Pick up QSSI overlays from hardware/oplus
Change-Id: I796c4ca9939a70f7917303d509a51dba150f5174
2022-10-11 08:31:23 -05:00
Alexander Koskovich
3250dfc3de dre: Import CarrierConfig RRO from DE2117_11.C.15
* Remove anything that the value is already the default,
   or deprecated.

Change-Id: I597a93b580754a7fde51d051accfffca54c22482
2022-10-11 08:31:23 -05:00
Alexander Koskovich
7bc48ae239 dre: overlay: Atomize
Change-Id: I972d46e1dafb03b42249193fd033e91c4e3b3bc5
2022-10-11 08:31:23 -05:00
Albert Tang
8d724e7675 dre: Cleanup BoardConfig and packages
Change-Id: I050052f6249fa3348038dd9536c11a3931acf95c
2022-10-11 08:31:23 -05:00
Alexander Koskovich
ee67669b42 Revert "sm8250-common: enable unspecialized app process pool"
* Does not appear to work anymore, denials all over.

This reverts commit e6554e26d6.

Change-Id: I16e4c5bbad3a443e7b69b669f173d5869b29c633
2022-10-11 08:31:23 -05:00
Mohammad Asaad Akram
028a88312d dre: Enable asynchronous library events in WPA supplicant
Change-Id: I3b028afa54605bd57d9fb5700d792cb9e5e0e76f
2022-10-11 08:31:23 -05:00
Etan Cohen
c23823da98 dre: Declare WiFi Aware support to WiFi HAL
* The Wi-Fi Aware feature added in Android 8.0 enables
   supporting devices to discover, connect, and range
   (added in Android 9) to one another directly using
   the Wi-Fi Aware protocol without internet or cellular
   network access.

 * This feature, built upon the Wi-Fi Alliance (WFA) Wi-Fi
   Aware specification (versions 2.0 and 3.0), allows easy
   sharing of high-throughput data among trusted devices
   and apps that are otherwise off-network.

   https://source.android.com/devices/tech/connect/wifi-aware

Change-Id: I18ff20e7466b8e8fd598381b730fb7db391e9ad4
2022-10-11 08:31:23 -05:00
Christopher N. Hesse
90a2a607e6 dre: Enforce vendor tree presence
A compiled build has no chance of booting without the prebuilt
binaries, so fail the build if those are not present.

Change-Id: I8124a5f92a75490ce48422b9d760764733efe37e
2022-10-11 08:31:23 -05:00
Alexander Koskovich
09f5250dc9 dre: Drop PRODUCT_BUILD_SUPER_PARTITION
* Super image is not generated by a default 'm' build,
   but we at least want it for dist builds.

Change-Id: Ia12a5314632509fcd309d51ddf757efdc37499c3
2022-10-11 08:31:23 -05:00
Naman Padhiar
1357bcf66f dre: init: Bring WPSS out of reset on init
Change-Id: Ia7e6d0644102147a56869d22de5d26faae3cbb63
2022-10-11 08:31:23 -05:00
Alexander Koskovich
a99a36b875 dre: Move properties to their respective partitions
* They don't have permission to be set otherwise.

Change-Id: I63aa83d0ff316c5fe0c90df85f0951c4d3a19e06
2022-10-11 08:31:23 -05:00
Alexander Koskovich
4f1bc6a399 dre: Sync properties with OOS
Change-Id: I7b53d83d9acd46fd91f842f552338952a95f86d3
2022-10-11 08:31:23 -05:00
Alexander Koskovich
ae5da56035 dre: Copy PFM licenses to persist
* This is read by the feature enabler client. OOS already
   does this but we want to make sure we're doing this for
   users upgrading from Lineage 18.1.

Change-Id: I1d112d9cea6f3d0e87cdf12898587c7bacf8de9c
2022-10-11 08:31:23 -05:00
Alexander Koskovich
76847dfb0f dre: init: Set 'ro.separate.soft' to project name
Change-Id: I4ae6281c323a68e0f21af5b0c4e2a578fe80794a
2022-10-11 08:31:23 -05:00
LuK1337
ef5d44adaf dre: Regenerate config.fs
Change-Id: I73e85d9d33f87dafef930bad0c2d7c08ef31d7c2
2022-10-11 08:31:23 -05:00
LuK1337
b4cde8f64f dre: Remove audio_amplifier.holi from PRODUCT_PACKAGES
No longer needed.

Change-Id: Iff01273b155a10510a63927326294f45c178c862
2022-10-11 08:31:23 -05:00
LuK1337
bc48b8ea85 dre: Remove wifi-mac-generator
No longer needed.

Change-Id: I68bf87be2a8613e6c83ed71ea5b9c4b832e4dba7
2022-10-11 08:31:23 -05:00
LuK1337
bbcb64a0ce dre: Switch doze to android.sensor.tilt_detector
Change-Id: Ieb91a64f7e03f6d4a6e755c35c68054817e858f2
2022-10-11 08:31:23 -05:00
Albert Tang
7ac8b2e584 dre: Update audio configuration from DE2117_11.C.15
Change-Id: I4b05937d5e853e836b2735838b7f7e86ff4761f4
2022-10-11 08:31:23 -05:00
Alexander Koskovich
03b3625313 dre: Switch to hardware/oplus
Change-Id: Ifb472cf1cd5f4c198394de41bc5d337d1f066b16
2022-10-11 08:31:23 -05:00
Albert Tang
af2cf817e7 dre: Remove building audio HAL 4.0
This was needed by sensors.ssc.so in OOS 11, but not in OOS 12.

Change-Id: I32f82433d74ccffb5cae78846117b1f59c8eaaac
2022-10-11 08:31:23 -05:00
Alexander Koskovich
a8fffbcca3 dre: Update WCNSS configuration from DE2117_11.C.15
* OnePlus reads MAC address from QMI DMS now.

 * Since that was the only custom change, move back
   to proprietary files.

This commit is a partial revert of 83d0538609.

Change-Id: I9e89def5258f9085e7169a1a6753cbdabd1d548c
2022-10-11 08:31:23 -05:00
Alexander Koskovich
273c9562ff dre: init: Use the same PID/VIDs from OOS
Change-Id: Ieaa52f748c75272b80fa6f3e7018cdb71e3a2f7f
2022-10-11 08:31:23 -05:00
Albert Tang
c6a5802e47 dre: init: Add st21nfc device entry
Change-Id: Ie55b061c1a5cc695e487690feea22245f18c418a
2022-10-11 08:31:23 -05:00
Alexander Koskovich
51ba5a3de2 dre: init: Add oplusreserve1 ueventd entry
Change-Id: I3aa6e23e38d9e525e0e1d823e0933ab81c8f81af
2022-10-11 08:31:23 -05:00
Alexander Koskovich
234c55f48c dre: init: Load WiFi firmware from ODM
Change-Id: Id18a7aea8d38a62bb871f588d3620583a0e4e562
2022-10-11 08:31:23 -05:00
Alexander Koskovich
6d5dddd02a dre: Add oplus_sensor_fb
Change-Id: I289d5e3270fe0b3e8b185b4bf22f1d9c59209f48
2022-10-11 08:31:23 -05:00
Alexander Koskovich
3deb110867 dre: init: Chown used display nodes
Change-Id: Iea4985c06e6094464b5b5dfa7a06294e895a9971
2022-10-11 08:31:23 -05:00
Alexander Koskovich
5ba23790d0 dre: init: Add vendor_dlkm fstab entry
Change-Id: Id265ea956fd8d9d3ea7b598f960b9eede07a921e
2022-10-11 08:31:23 -05:00
Jimmy Chen
b9667921a4 dre: Move WiFi supplicant service definition to dedicated RC
Change-Id: I7c448ecb511a738903ebe3702fefdf2cb13c3be3
2022-10-11 08:31:23 -05:00
Alexander Koskovich
34a40e275c dre: Pick up USB configurations from QCOM
* If we want to override anything in particular, e.g.
   PID/VIDs we will create a seperate script named
   'init.oplus.usb.rc'.

Change-Id: I83882d8992eb367211871130c163f4ca5689fcd4
2022-10-11 08:31:23 -05:00
Alexander Koskovich
5dc7536c35 dre: Add rest of QTI scripts to proprietary-files
* We won't be touching these.

Change-Id: Iec07925125b8fc27e807dea635ef2b17f5c7898b
2022-10-11 08:31:23 -05:00
Albert Tang
fd363c65df dre: Import QCOM scripts from LA.UM.9.16.r1-10900-MANNAR.QSSI12.0
Change-Id: I351b26ce78e4a40475eecdbee438e33cd52e5d08
2022-10-11 08:31:23 -05:00
Alexander Koskovich
8170122ba9 dre: Nuke rootdir from orbit
Change-Id: I163b5a68e2791ba379add991bf68cd171e722ba0
2022-10-11 08:31:23 -05:00
Albert Tang
b0d5291408 dre: Update blobs to Android 12 (DE2117_11.C.15)
Change-Id: Ie768fe44ebb2c09218a805de674e45f96ab7d12b
2022-10-11 08:31:07 -05:00
197 changed files with 11459 additions and 21879 deletions

View file

@ -1,3 +1,22 @@
//
// Copyright (C) 2021-2024 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
// Copyright (C) 2019-Current A-Team Digital Solutions
//
soong_namespace {
imports: ["hardware/qcom-caf/bootctrl"],
}
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: "/odm/vendor/etc/wifi/WCNSS_qcom_cfg.ini",
}

View file

@ -1,99 +1,9 @@
#
# Copyright (C) 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.
#
# Copyright (C) 2021-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2019-Current A-Team Digital Solutions
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),dre)
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)
RFS_MSM_ADSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/adsp/
$(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM ADSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_CDSP_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/cdsp/
$(RFS_MSM_CDSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM CDSP folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/cdsp $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/cdsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
$(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM MPSS folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
$(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating RFS MSM SLPI folder structure: $@"
@rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/slpi $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
WIFI_FIRMWARE_SYMLINKS := $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld
$(WIFI_FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Creating wifi firmware symlinks: $@"
@mkdir -p $@
$(hide) ln -sf /mnt/vendor/persist/WCNSS_qcom_cfg.ini $@/WCNSS_qcom_cfg.ini
$(hide) ln -sf /mnt/vendor/persist/wlan_mac.bin $@/wlan_mac.bin
ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_CDSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS) $(WIFI_FIRMWARE_SYMLINKS)
endif

View file

@ -13,11 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Copyright (C) 2019-Current A-Team Digital Solutions
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/lineage_dre.mk
COMMON_LUNCH_CHOICES := \
lineage_dre-user \
lineage_dre-userdebug \
lineage_dre-eng
$(LOCAL_DIR)/bliss_dre.mk

View file

@ -1,23 +1,6 @@
#
# Copyright (C) 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.
#
BUILD_BROKEN_DUP_RULES := true
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
BOARD_VENDOR := oneplus
# Copyright (C) 2021-2024 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2019-Current A-Team Digital Solutions
DEVICE_PATH := device/oneplus/dre
@ -55,13 +38,11 @@ TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := generic
TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385
# Assert
TARGET_OTA_ASSERT_DEVICE := OnePlusN200,OnePlusN200TMO,dre
# Audio
AUDIO_FEATURE_ENABLED_AHAL_EXT := false
AUDIO_FEATURE_ENABLED_DLKM := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := false
AUDIO_FEATURE_ENABLED_EXT_AMPLIFIER := true
AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true
AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true
AUDIO_FEATURE_ENABLED_GKI := true
@ -69,6 +50,7 @@ AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
AUDIO_FEATURE_ENABLED_INSTANCE_ID := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
BOARD_SUPPORTS_OPENSOURCE_STHAL := true
BOARD_SUPPORTS_SOUND_TRIGGER := true
BOARD_USES_ALSA_AUDIO := true
@ -78,39 +60,32 @@ USE_CUSTOM_AUDIO_POLICY := 1
TARGET_BOOTLOADER_BOARD_NAME := holi
TARGET_NO_BOOTLOADER := true
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INLUDE_DIR := $(DEVICE_PATH)/bluetooth
TARGET_USE_QTI_BT_STACK := true
# Camera
TARGET_USES_QTI_CAMERA_DEVICE := true
USE_DEVICE_SPECIFIC_CAMERA := true
# Display
TARGET_GRALLOC_HANDLE_HAS_RESERVED_SIZE := true
TARGET_HAS_WIDE_COLOR_DISPLAY := false
TARGET_SCREEN_DENSITY := 450
TARGET_USES_COLOR_METADATA := true
TARGET_USES_DISPLAY_RENDER_INTENTS := true
TARGET_USES_DRM_PP := true
TARGET_USES_GRALLOC4 := true
TARGET_USES_HWC2 := true
TARGET_USES_ION := true
TARGET_USES_QCOM_DISPLAY_BSP := true
TARGET_USES_QTI_MAPPER_2_0 := true
TARGET_USES_QTI_MAPPER_EXTENSIONS_1_1 := true
# DRM
TARGET_ENABLE_MEDIADRM_64 := true
# Filesystem
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# Health
TARGET_HEALTH_CHARGING_CONTROL_CHARGING_PATH := /sys/class/oplus_chg/battery/mmi_charging_enable
# HIDL
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
$(DEVICE_PATH)/device_framework_matrix.xml \
hardware/oplus/vintf/device_framework_matrix.xml \
hardware/qcom-caf/common/vendor_framework_compatibility_matrix.xml \
vendor/lineage/config/device_framework_matrix.xml
DEVICE_MATRIX_FILE := $(DEVICE_PATH)/compatibility_matrix.xml
DEVICE_MATRIX_FILE := hardware/qcom-caf/common/compatibility_matrix.xml
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
ODM_MANIFEST_FILES := $(DEVICE_PATH)/manifest_odm.xml
# Init
TARGET_INIT_VENDOR_LIB := //$(DEVICE_PATH):libinit_oplus
# Kernel
BOARD_BOOT_HEADER_VERSION := 3
@ -127,45 +102,35 @@ BOARD_KERNEL_CMDLINE := \
service_locator.enable=1 \
swiotlb=0 \
iptable_raw.raw_before_defrag=1 \
ip6table_raw.raw_before_defrag=1 \
video=vfb:640x400,bpp=32,memsize=3072000
ip6table_raw.raw_before_defrag=1
BOARD_KERNEL_IMAGE_NAME := Image
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_SEPARATED_DTBO := true
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
TARGET_KERNEL_ADDITIONAL_FLAGS := \
DTC_EXT=$(shell pwd)/prebuilts/misc/linux-x86/dtc/dtc \
LLVM=1
BOARD_RAMDISK_USE_LZ4 := true
TARGET_KERNEL_SOURCE := kernel/oneplus/sm4350
TARGET_KERNEL_CONFIG := vendor/holi-qgki_defconfig
TARGET_KERNEL_NO_GCC := true
# Kernel modules
BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load))
BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := $(strip $(shell cat $(DEVICE_PATH)/modules.load.recovery))
BOOT_KERNEL_MODULES := $(BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD)
# Metadata
BOARD_USES_METADATA_PARTITION := true
# Partitions
BOARD_PRODUCTIMAGE_MINIMAL_PARTITION_RESERVED_SIZE := false
-include vendor/lineage/config/BoardConfigReservedSize.mk
BOARD_BOOTIMAGE_PARTITION_SIZE := 100663296
BOARD_DTBOIMG_PARTITION_SIZE := 8388608
BOARD_USERDATAIMAGE_PARTITION_SIZE := 54429298688
BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296
ifneq ($(WITH_GMS),true)
BOARD_PRODUCTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_PRODUCTIMAGE_PARTITION_RESERVED_SIZE := 958769746
BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE := 1441097161
BOARD_SYSTEM_EXTIMAGE_EXTFS_INODE_COUNT := -1
BOARD_SYSTEM_EXTIMAGE_PARTITION_RESERVED_SIZE := 92160000
endif
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_ONEPLUS_DYNAMIC_PARTITIONS_PARTITION_LIST := odm product system system_ext vendor vendor_dlkm
BOARD_ONEPLUS_DYNAMIC_PARTITIONS_SIZE := 5837979648
BOARD_SUPER_PARTITION_GROUPS := oneplus_dynamic_partitions
@ -186,52 +151,71 @@ TARGET_TAP_TO_WAKE_NODE := "/proc/touchpanel/double_tap_enable"
# Properties
TARGET_ODM_PROP += $(DEVICE_PATH)/odm.prop
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
TARGET_PRODUCT_PROP += $(DEVICE_PATH)/product.prop
TARGET_SYSTEM_EXT_PROP += $(DEVICE_PATH)/system_ext.prop
TARGET_VENDOR_PROP += $(DEVICE_PATH)/vendor.prop
# Recovery
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
BOARD_USES_RECOVERY_AS_BOOT := true
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/init/fstab.qcom
TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
# RIL
CUSTOM_APNS_FILE := $(DEVICE_PATH)/configs/apns-conf.xml
ENABLE_VENDOR_RIL_SERVICE := true
# Security patch level
VENDOR_SECURITY_PATCH := 2022-03-01
# Security
BOOT_SECURITY_PATCH := 2024-10-05
VENDOR_SECURITY_PATCH := $(BOOT_SECURITY_PATCH)
# SEPolicy
include device/qcom/sepolicy_vndr/SEPolicy.mk
include hardware/oplus/sepolicy/qti/SEPolicy.mk
BOARD_VENDOR_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
# Verified Boot
BOARD_AVB_ENABLE := true
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_hashtree_disabled_flag
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 2
BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --set_verification_disabled_flag
BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA4096
BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 4
BOARD_AVB_DTBO_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_DTBO_ALGORITHM := SHA256_RSA4096
BOARD_AVB_DTBO_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_DTBO_ROLLBACK_INDEX_LOCATION := 3
BOARD_AVB_VBMETA_SYSTEM := system system_ext product
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
BOARD_AVB_VENDOR_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
BOARD_AVB_VENDOR_BOOT_ALGORITHM := SHA256_RSA4096
BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_VENDOR_BOOT_ROLLBACK_INDEX_LOCATION := 1
# Wi-Fi
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
WIFI_DRIVER_DEFAULT := qca_cld3
BOARD_WPA_SUPPLICANT_DRIVER := $(BOARD_HOSTAPD_DRIVER)
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := $(BOARD_HOSTAPD_PRIVATE_LIB)
BOARD_WPA_SUPPLICANT_PRIVATE_LIB_EVENT := "ON"
WIFI_DRIVER_STATE_CTRL_PARAM := "/dev/wlan"
WIFI_DRIVER_STATE_OFF := "OFF"
WIFI_DRIVER_STATE_ON := "ON"
WIFI_HIDL_FEATURE_AWARE := true
WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
WPA_SUPPLICANT_VERSION := VER_0_8_X
# Include the proprietary files BoardConfig.
-include vendor/oneplus/dre/BoardConfigVendor.mk
include vendor/oneplus/dre/BoardConfigVendor.mk

View file

@ -1,166 +0,0 @@
# List of profiles for the output device session where stream is routed.
# A stream opened with the inputs attributes which match the "flags" and
# "formats" as specified in the profile is routed to a device at
# sample rate specified under "sampling_rates" and bit width under
# "bit_width" and the topology extracted from the acdb data against
# the "app_type".
#
# the flags and formats are specified using the strings corresponding to
# enums in audio.h and audio_policy.h. They are concatenated with "|"
# without space or "\n".
# the flags and formats should match the ones in "audio_policy.conf"
outputs {
#ifdef VENDOR_EDIT
#if OP_FEATURE_MM_24BIT == 1
#zhangyu@MM.Audio, 2021/01/28, Use 24bit to playback
default {
flags AUDIO_OUTPUT_FLAG_PRIMARY
formats AUDIO_FORMAT_PCM_24_BIT_PACKED
sampling_rates 48000
bit_width 24
app_type 69937
}
#else
# default {
# flags AUDIO_OUTPUT_FLAG_PRIMARY
# formats AUDIO_FORMAT_PCM_16_BIT
# sampling_rates 48000
# bit_width 16
# app_type 69937
# }
#endif
#endif
proaudio {
flags AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69943
}
voip_rx {
flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
app_type 69946
}
#ifdef VENDOR_EDIT
#if OP_FEATURE_MM_24BIT == 1
#zhangyu@MM.Audio, 2021/01/28, Use 24bit to playback
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_24_BIT_PACKED
sampling_rates 48000
bit_width 24
app_type 69936
}
#else
# deep_buffer {
# flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
# formats AUDIO_FORMAT_PCM_16_BIT
# sampling_rates 48000
# bit_width 16
# app_type 69936
# }
#endif
#endif
direct_pcm_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
direct_pcm_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_8_24_BIT|AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 24
app_type 69940
}
direct_pcm_32 {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_32_BIT
sampling_rates 44100|48000|88200|96000|176400|192000|352800|384000
bit_width 32
app_type 69942
}
compress_passthrough {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING|AUDIO_OUTPUT_FLAG_COMPRESS_PASSTHROUGH
formats AUDIO_FORMAT_DTS|AUDIO_FORMAT_DTS_HD|AUDIO_FORMAT_DSD
sampling_rates 32000|44100|48000|88200|96000|176400|192000|352800
bit_width 16
app_type 69941
}
compress_offload_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2|AUDIO_FORMAT_AAC_LATM_LC|AUDIO_FORMAT_AAC_LATM_HE_V1|AUDIO_FORMAT_AAC_LATM_HE_V2
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69936
}
compress_offload_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2|AUDIO_FORMAT_AAC_LATM_LC|AUDIO_FORMAT_AAC_LATM_HE_V1|AUDIO_FORMAT_AAC_LATM_HE_V2
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 24
app_type 69940
}
}
inputs {
record_16bit {
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69938
}
record_24bit {
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 24
app_type 69948
}
record_32bit {
formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 32
app_type 69949
}
record_compress_16 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|44100|48000|88200|96000|176400|192000
bit_width 16
app_type 69938
}
record_compress_24 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_24_BIT_PACKED|AUDIO_FORMAT_PCM_24_BIT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 24
app_type 69948
}
record_compress_32 {
flags AUDIO_INPUT_FLAG_COMPRESS
formats AUDIO_FORMAT_PCM_32_BIT|AUDIO_FORMAT_PCM_FLOAT
sampling_rates 44100|48000|88200|96000|176400|192000
bit_width 32
app_type 69949
}
voip_tx {
flags AUDIO_INPUT_FLAG_VOIP_TX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 8000|16000|32000|48000
bit_width 16
app_type 69946
}
low_latency_voip_tx {
flags AUDIO_INPUT_FLAG_FAST|AUDIO_INPUT_FLAG_VOIP_TX
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type
}
}

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@ -82,8 +82,11 @@
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="33"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="5"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="42"/>
<!--#Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/09/22, Add for hearing-aid support-->
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY2" type="in" id="41"/>
<!--#Isha.Padiyar@MULTIMEDIA.AUDIODRIVER.HAL, 2022/09/22, Add for hearing-aid support-->
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_RECORD_VOIP_LOW_LATENCY" type="in" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_ULL" type="out" id="13" />
<usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="23" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="12" />
@ -92,16 +95,20 @@
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="12" />
<usecase name="USECASE_AUDIO_PLAYBACK_MMAP" type="out" id="29" />
<usecase name="USECASE_AUDIO_RECORD_MMAP" type="in" id="29" />
<!-- chenchen@MM.audio, 2021/03/05, fix USECASE_AUDIO_A2DP_ABR_FEEDBACK wrong pmc id start -->
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="35" />
<usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="35" />
<!-- chenchen@MM.audio, 2021/03/05, fix USECASE_AUDIO_A2DP_ABR_FEEDBACK wrong pmc id end -->
<usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
<usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="23" />
<usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="36" />
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="23" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="23" />
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback-->
<usecase name="USECASE_AUDIO_OPLUS_KTV" type="in" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV" type="out" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV_USB_HS" type="in" id="33" />
<usecase name="USECASE_AUDIO_OPLUS_KTV_USB_HS" type="out" id="33" />
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback end-->
</pcm_ids>
<config_params>
<!-- In the below value string, the value indicates default mono -->
@ -109,16 +116,33 @@
<param key="mono_speaker" value="right"/>
<param key="true_32_bit" value="true"/>
<param key="hifi_filter" value="false"/>
<!-- chenchen@MM.audio, 2020/12/28, fix speaker big noise issue start -->
<!-- param key="native_audio_mode" value="multiple_mix_dsp"/-->
<param key="native_audio_mode" value="false"/>
<!-- chenchen@MM.audio, 2020/12/28, fix speaker big noise issue end -->
<param key="hfp_pcm_dev_id" value="39"/>
<param key="input_mic_max_count" value="4"/>
<!-- In the below value string, the value indicates whether the -->
<!-- target does not supports speaker and headphone working on -->
<!-- different fractional and integer sampling rate -->
<param key="spkr_hph_single_be_native_concurrency" value="true"/>
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for audio conifg begin -->
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/10, change mic count to 2 for N200 from R -->
<!-- <param key="oppo_mic_count" value="1"/> -->
<param key="oplus_mic_count" value="2"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/10, change mic count to 2 for N200 from R end-->
<param key="oppo_speaker_id" value="1"/>
<param key="oppo_multi_record" value="false"/>
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for audio conifg config end -->
<!--#Juqiang.Geng@MULTIMEDIA.AUDIODRIVER.HAL.OPLUS_FEATURE_AP_LVIMFS, 2020/08/24, Add for AP LVIMFS-->
<param key="record_use_ap_lvimfs" value="enable"/>
<!--#Juqiang.Geng@MULTIMEDIA.AUDIODRIVER.HAL, 2020/08/24, Add for AP LVIMFS end-->
<!--#Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/13, Add for tty mode-->
<param key="oplus_tty_support" value="0"/>
<!--#Nan.Zhong@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/13, Add for tty mode end-->
<!--#Le.LI@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/20, Add for smartPa eng support-->
<param key="emsmartcalibratesupport" value="0"/>
<!--#Le.LI@MULTIMEDIA.AUDIODRIVER.HAL, 2020/11/20, Add for smartPa eng support end-->
<!--Run.Zhang@MULTIMEDIA.AUDIODRIVER.FEATURE, 2021/04/09 , Add for headphone volume match to impedance -->
<param key="enable_hp_impedance_match" value="true"/>
<param key="hp_impedance_match_threshold" value="65"/>
<!--Run.Zhang@MULTIMEDIA.AUDIODRIVER.FEATURE, 2021/04/09 , Add for headphone volume match to impedance end-->
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic -->
<param key="camcorder_switch_mic" value="true"/>
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic end -->
</config_params>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
@ -128,12 +152,7 @@
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<acdb_ids>
<!-- chenchen@MM.audio, 2020/11/24, modify speaker acdb id from 14 to 15 start -->
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15"/>
<!-- chenchen@MM.audio, 2020/11/24, modify speaker acdb id from 14 to 15 end -->
<!-- chenchen@MM.Audio, 2021/03/08, Add for dummy dev START -->
<device name="SND_DEVICE_OUT_DUMMY" acdb_id="15"/>
<!-- chenchen@MM.Audio, 2021/03/08, Add for dummy dev END -->
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="15"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="124"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="101"/>
@ -157,16 +176,60 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="191"/>
<device name="SND_DEVICE_IN_VOICE_HEARING_AID" acdb_id="11"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC-->
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41"/>
<!-- chenchen@MM.audio, 2021/01/23, modify handset-mic to dual mic start -->
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" acdb_id="103"/>
<device name="SND_DEVICE_IN_VOICE_HAC_HANDSET_DMIC" acdb_id="105"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC end-->
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for oplus FTM config begin -->
<device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7"/>
<device name="SND_DEVICE_IN_UNPROCESSED_USB_HEADSET_MIC" acdb_id="133"/>
<device name="SND_DEVICE_OUT_MMI_SPEAKER_PLAYBACK" acdb_id="99"/>
<device name="SND_DEVICE_OUT_MMI_LEFT_SPEAKER_PLAYBACK" acdb_id="124"/>
<device name="SND_DEVICE_OUT_MMI_RECEIVER_PLAYBACK" acdb_id="30"/>
<device name="SND_DEVICE_OUT_ENGINNER_RECIVER_TEST" acdb_id="30"/>
<device name="SND_DEVICE_IN_MAIN_MIC_RECORD" acdb_id="104"/>
<device name="SND_DEVICE_IN_SEC_MIC_RECORD" acdb_id="104"/>
<device name="SND_DEVICE_IN_ANC_MIC_RECORD" acdb_id="104"/>
<device name="SND_DEVICE_IN_MMI_MIC_RECORD" acdb_id="144"/>
<device name="SND_DEVICE_IN_MMI_ANC_MIC_RECORD" acdb_id="144"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="14"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" acdb_id="14"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/10, change voice headset headphone id to 10 sync R -->
<!--<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" acdb_id="9"/>
<device name="SND_DEVICE_OUT_VOICE_HEADSET" acdb_id="9"/> -->
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" acdb_id="10"/>
<device name="SND_DEVICE_OUT_VOICE_HEADSET" acdb_id="10"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/10, change voice headset headphone id to 10 sync R -->
<device name="SND_DEVICE_IN_HEADSET_MIC" acdb_id="23"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" acdb_id="46"/>
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for oplus FTM config end -->
<device name="SND_DEVICE_OUT_DUMMY" acdb_id="15"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_HEARING_TEST" acdb_id="91"/>
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic -->
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO_SWITCH" acdb_id="34"/>
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic end-->
<device name="SND_DEVICE_IN_HANDSET_MIC" acdb_id="34"/>
<!-- chenchen@MM.audio, 2021/01/23, modify handset-mic to dual mic end -->
<!-- chenchen@MM.audio, 2021/01/23, modify ok google voice search mic id to 109 start -->
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="109"/>
<!-- chenchen@MM.audio, 2021/01/23, modify ok google voice search mic id to 109 end -->
<!-- chenchen@MM.Audio, 2020/01/28, instagram camcorder device force using acdb id 34 start -->
<device name="SND_DEVICE_IN_CAMCORDER_LANDSCAPE" acdb_id="34"/>
<!-- chenchen@MM.Audio, 2020/01/28,instagram camcorder device force using acdb id 34 end -->
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="35"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="43"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC" acdb_id="41"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_TMIC" acdb_id="43"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" acdb_id="108"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="108"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" acdb_id="114"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" acdb_id="114"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" acdb_id="111"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" acdb_id="111"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" acdb_id="117"/>
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="117"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_AEC" acdb_id="156"/>
<device name="SND_DEVICE_IN_HANDSET_TMIC_NS" acdb_id="156"/>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_AEC" acdb_id="160"/>
<device name="SND_DEVICE_IN_SPEAKER_TMIC_NS" acdb_id="160"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback-->
<device name="SND_DEVICE_IN_HEADSET_MIC_KTV" acdb_id="98"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_KTV" acdb_id="98"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback end-->
</acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@ -198,6 +261,9 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_1" interface="RX_CDC_DMA_RX_1-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES_EXTERNAL_2" interface="RX_CDC_DMA_RX_1-and-RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_HANDSET" backend="handset" interface="RX_CDC_DMA_RX_0"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC-->
<device name="SND_DEVICE_OUT_VOICE_HAC_HANDSET" backend="handset" interface="RX_CDC_DMA_RX_0"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC end-->
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" backend="handset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="RX_CDC_DMA_RX_1"/>
@ -242,6 +308,9 @@
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO" interface="TX_CDC_DMA_TX_3"/>
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic -->
<device name="SND_DEVICE_IN_HANDSET_DMIC_STEREO_SWITCH" interface="TX_CDC_DMA_TX_3"/>
<!--chenshuyun@MULTIMEDIA.AUDIODRIVER.HAL, 2022/01/21, Add for camcorder switch mic end-->
<device name="SND_DEVICE_IN_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" interface="TX_CDC_DMA_TX_3"/>
@ -280,6 +349,9 @@
<device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="SLIMBUS_7_TX"/>
<device name="SND_DEVICE_IN_CAMCORDER_MIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_DMIC" interface="TX_CDC_DMA_TX_3"/>
<!--Vincent.chen@MULTIMEDIA@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC-->
<device name="SND_DEVICE_IN_VOICE_HAC_HANDSET_DMIC" interface="TX_CDC_DMA_TX_3"/>
<!--Vincent.chen@MULTIMEDIA.AUDIODRIVER.HAL, 2021/11/10, add for HAC end-->
<device name="SND_DEVICE_IN_VOICE_DMIC_SB" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC_SB" interface="TX_CDC_DMA_TX_3"/>
@ -326,12 +398,25 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="RX_CDC_DMA_RX_1-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_SWB" backend="speaker-and-bt-sco-swb" interface="RX_CDC_DMA_RX_1-and-SLIMBUS_7_RX"/>
<device name="SND_DEVICE_OUT_HEADPHONES_DSD" backend="headphones-dsd" interface="RX_CDC_DMA_RX_5"/>
<!-- zhangyu@MM.Audio 2021/02/03, add backedn to solve QACT not realtime show. -->
<device name="SND_DEVICE_IN_HANDSET_MIC_REC_KARAOKE" interface="TX_CDC_DMA_TX_3"/>
<!-- zhangyu@MM.Audio 2021/02/03, add backedn to solve QACT not realtime show.end -->
<!-- chenchen@MM.Audio, 2021/03/08, Add for dummy dev START -->
<device name="SND_DEVICE_OUT_DUMMY" backend="dummy" interface="RT_PROXY_DAI_001_RX"/>
<!-- chenchen@MM.Audio, 2021/03/08, Add for dummy dev END -->
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for oplus FTM config begin -->
<device name="SND_DEVICE_OUT_MMI_RECEIVER_PLAYBACK" backend="handset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_ENGINNER_RECIVER_TEST" backend="handset" interface="RX_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_MMI_SPEAKER_PLAYBACK" interface="RX_CDC_DMA_RX_1"/>
<device name="SND_DEVICE_OUT_MMI_LEFT_SPEAKER_PLAYBACK" interface="RX_CDC_DMA_RX_1"/>
<device name="SND_DEVICE_IN_MAIN_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_SEC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_ANC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MMI_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_MMI_ANC_MIC_RECORD" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_IN_HANDSET_MIC_HEARING_TEST" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<!--#Le.li@PSW.MM.AudioDriver.HAL, 2020/10/11, Add for oplus FTM config end -->
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback-->
<device name="SND_DEVICE_IN_HEADSET_MIC_KTV" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
<device name="SND_DEVICE_IN_USB_HEADSET_MIC_KTV" backend="usb-headset-mic" interface="USB_AUDIO_TX"/>
<!--Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.OPLUS_FEATURE_KTV, 2017/04/05, Add for ktv loopback end-->
<!-- Kaijia.Lin@PSW.MM.AudioDriver.HAL, 2019/10/12, Add for dummy dev START -->
<device name="SND_DEVICE_OUT_DUMMY" backend="dummy" interface="AFE_PCM_RX"/>
<!-- Kaijia.Lin@PSW.MM.AudioDriver.HAL, 2019/10/12, Add for dummy dev END -->
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
@ -385,8 +470,6 @@
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC">
<mic_info mic_device_id="builtin_mic_1"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
<mic_info mic_device_id="builtin_mic_2"
channel_mapping="AUDIO_MICROPHONE_CHANNEL_MAPPING_PROCESSED"/>
</snd_dev>
<snd_dev in_snd_device="SND_DEVICE_IN_VOICE_DMIC_TMUS">
<mic_info mic_device_id="builtin_mic_1"
@ -494,3 +577,4 @@
</input_snd_device>
</snd_devices>
</audio_platform_info>

View file

@ -0,0 +1,452 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- 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.
-->
<!--
Changes from Qualcomm Innovation Center are provided under the following license:
Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the
disclaimer below) provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="haptics output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<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>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="incall_music_uplink" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="fast input" role="sink"
flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="quad mic" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="usb_surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
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" />
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
encodedFormats="AUDIO_FORMAT_SBC AUDIO_FORMAT_AAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_LDAC AUDIO_FORMAT_CELT AUDIO_FORMAT_APTX_ADAPTIVE AUDIO_FORMAT_APTX_TWSP">
<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">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
<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>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough,voip_rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<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,Telephony Rx"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="quad mic"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired 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"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT A2DP Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<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" 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" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL for hearing aid -->
<xi:include href="/vendor/etc/bluetooth_hearing_aid_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View file

@ -0,0 +1,431 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- 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.
-->
<!--
Changes from Qualcomm Innovation Center are provided under the following license:
Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted (subject to the limitations in the
disclaimer below) provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Qualcomm Innovation Center, Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
<globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Telephony Tx</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="haptics output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
<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>
<mixPort name="direct_pcm" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000,352800,384000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_FLAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_ALAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_APE"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_DTS"
samplingRates="32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1"/>
<profile name="" format="AUDIO_FORMAT_DTS_HD"
samplingRates="32000,44100,48000,64000,88200,96000,128000,176400,192000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_WMA_PRO"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_2POINT1,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_PENTA,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_6POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_LC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V1"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_ADTS_HE_V2"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="incall_music_uplink" role="source"
flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="fast input" role="sink"
flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
<mixPort name="quad mic" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
<mixPort name="usb_surround_sound" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_INDEX_MASK_2,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
</mixPort>
<mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
<profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
<profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</mixPort>
<mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
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" />
</mixPorts>
<devicePorts>
<!-- Output devices declaration, i.e. Sink DEVICE PORT -->
<devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000"/>
</devicePort>
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,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">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</devicePort>
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
<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>
<route type="mix" sink="Earpiece"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,haptics output"/>
<route type="mix" sink="HDMI"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,compress_passthrough,voip_rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,direct_pcm,compressed_offload"/>
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx"/>
<route type="mix" sink="USB Device Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="USB Headset Out"
sources="primary output,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx,incall_music_uplink"/>
<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,Telephony Rx"/>
<route type="mix" sink="usb_surround_sound"
sources="USB Device In,USB Headset In"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="quad mic"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired Headset Mic"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In,Wired 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"/>
<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" 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" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="USB Host Out"
sources="usb_accessory output"/>
</routes>
</module>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="/vendor/etc/bluetooth_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>

View file

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2020 The Linux Foundation. All rights reserved.
Not a contribution.
-->
<!-- Copyright (C) 2018 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.
-->
<!-- Bluetooth Audio HAL Audio Policy Configuration file -->
<module name="bluetooth" halVersion="2.0">
<mixPorts>
<!-- Hearing AIDs Audio Ports -->
<mixPort name="hearing aid output" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="24000,16000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
</mixPorts>
<devicePorts>
<!-- Hearing AIDs Audio Ports -->
<devicePort tagName="BT Hearing Aid Out" type="AUDIO_DEVICE_OUT_HEARING_AID" role="sink"/>
</devicePorts>
<routes>
<route type="mix" sink="BT Hearing Aid Out"
sources="hearing aid output"/>
</routes>
</module>

File diff suppressed because it is too large Load diff

View file

@ -56,6 +56,12 @@
<ctl name="VA_AIF1_CAP Mixer DEC7" value="0" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DEC3 MUX" value="MSM_DMIC" />
<ctl name="VA DEC4 MUX" value="MSM_DMIC" />
<ctl name="VA DEC5 MUX" value="MSM_DMIC" />
<ctl name="VA DEC6 MUX" value="MSM_DMIC" />
<ctl name="VA DEC7 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="ZERO" />
<ctl name="VA DMIC MUX1" value="ZERO" />
<ctl name="VA DMIC MUX2" value="ZERO" />
@ -72,11 +78,14 @@
<ctl name="VA SMIC MUX5" value="ZERO" />
<ctl name="VA SMIC MUX6" value="ZERO" />
<ctl name="VA SMIC MUX7" value="ZERO" />
<ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
<ctl name="EC Reference Channels" value="Zero"/>
<ctl name="EC Reference Bit Format" value="0"/>
<ctl name="EC Reference SampleRate" value="0"/>
<ctl name="ADC2_MIXER Switch" value="0" />
<ctl name="ADC2 MUX" value="ZERO" />
<ctl name="LPI Enable" value="0" />
<ctl name="ADC2 Volume" value="12" />
<ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
<ctl name="ADC2_BCS Disable" value="0" />
@ -241,17 +250,13 @@
</path>
<path name="listen-ape-handset-mic">
<!-- chenchen@MM.audio, 2020/12/31, integrate for ok google hotword start -->
<!--ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC2" /-->
<ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
<ctl name="VA SMIC MUX0" value="SWR_MIC0" />
<ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
<ctl name="ADC1_MIXER Switch" value="1" />
<!-- chenchen@MM.audio, 2020/12/31, integrate for ok google hotword end -->
<ctl name="VA SMIC MUX0" value="SWR_MIC4" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
</path>
<path name="listen-ape-handset-mic-preproc">
@ -262,10 +267,44 @@
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Two" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA DEC0 MUX" value="SWR_MIC" />
<ctl name="VA SMIC MUX0" value="SWR_MIC4" />
<ctl name="ADC2 ChMap" value="SWRM_TX2_CH1" />
<ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="VA DEC1 MUX" value="SWR_MIC" />
<ctl name="VA SMIC MUX1" value="SWR_MIC0" />
<ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
<ctl name="ADC1_MIXER Switch" value="1" />
</path>
<path name="listen-ape-handset-tmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Three" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
<ctl name="VA DMIC MUX1" value="DMIC2" />
<ctl name="VA DMIC MUX2" value="DMIC5" />
</path>
<path name="listen-ape-handset-qmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Four" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="VA DEC0 MUX" value="MSM_DMIC" />
<ctl name="VA DEC1 MUX" value="MSM_DMIC" />
<ctl name="VA DEC2 MUX" value="MSM_DMIC" />
<ctl name="VA DEC3 MUX" value="MSM_DMIC" />
<ctl name="VA DMIC MUX0" value="DMIC1" />
<ctl name="VA DMIC MUX1" value="DMIC2" />
<ctl name="VA DMIC MUX2" value="DMIC3" />
<ctl name="VA DMIC MUX3" value="DMIC5" />
</path>
<path name="listen-ape-headset-mic">

View file

@ -1,6 +1,4 @@
#
# Copyright (C) 2021-2022 The LineageOS Project
#
# Copyright (C) 2021-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.
# You may obtain a copy of the License at
@ -12,19 +10,20 @@
# 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.
#
# Copyright (C) 2019-Current A-Team Digital Solutions
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
TARGET_SUPPORTS_OMX_SERVICE := false
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from dre device
$(call inherit-product, device/oneplus/dre/device.mk)
# Inherit some common Lineage stuff.
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
# Inherit some common Bliss stuff.
$(call inherit-product, vendor/bliss/config/common_full_phone.mk)
PRODUCT_NAME := lineage_dre
PRODUCT_NAME := bliss_dre
PRODUCT_DEVICE := dre
PRODUCT_MANUFACTURER := OnePlus
PRODUCT_BRAND := OnePlus
@ -33,8 +32,9 @@ PRODUCT_MODEL := DE2117
PRODUCT_GMS_CLIENTID_BASE := android-oneplus
PRODUCT_BUILD_PROP_OVERRIDES += \
PRIVATE_BUILD_DESC="OnePlusN200-user 11 release-keys" \
TARGET_DEVICE=OnePlusN200 \
TARGET_PRODUCT=OnePlusN200
BUILD_FINGERPRINT := OnePlus/OnePlusN200/OnePlusN200:11/RKQ1.201217.002/2203021418:user/release-keys
BuildDesc="OnePlusN200-user 12 SKQ1.210216.001 R.1a8c53e-1-16457e release-keys" \
BuildFingerprint=OnePlus/OnePlusN200/OnePlusN200:12/SKQ1.210216.001/R.1a8c53e-1-16457e:user/release-keys \
DeviceName=OnePlusN200 \
DeviceProduct=OnePlusN200 \
SystemDevice=OnePlusN200 \
SystemName=OnePlusN200

View file

@ -0,0 +1,14 @@
--- a/init.kernel.post_boot-blair.sh
+++ b/init.kernel.post_boot-blair.sh
@@ -32,11 +32,6 @@
#=============================================================================
function configure_zram_parameters() {
- # Moto yangbq2: Skip this if we are using zram from fstab.
- using_zram_from_fstab=`getprop ro.boot.using_zram_from_fstab`
- if [ "$using_zram_from_fstab" == "true" ]; then
- return
- fi
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}

View file

@ -0,0 +1,14 @@
--- a/init.kernel.post_boot-holi.sh
+++ b/init.kernel.post_boot-holi.sh
@@ -32,11 +32,6 @@
#=============================================================================
function configure_zram_parameters() {
- # Moto yangbq2: Skip this if we are using zram from fstab.
- using_zram_from_fstab=`getprop ro.boot.using_zram_from_fstab`
- if [ "$using_zram_from_fstab" == "true" ]; then
- return
- fi
MemTotalStr=`cat /proc/meminfo | grep MemTotal`
MemTotal=${MemTotalStr:16:8}

View file

@ -1,33 +0,0 @@
/*
* Copyright (c) 2013, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2012 The Android Open Source Project
* Copyright (C) 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "OnePlus Nord N200"
// Disables read remote device feature
#define MAX_ACL_CONNECTIONS 16
#define MAX_L2CAP_CHANNELS 32
#define BLE_VND_INCLUDED TRUE
#define GATT_MAX_PHY_CHANNEL 10
// skips conn update at conn completion
#define BT_CLEAN_TURN_ON_DISABLED 1
#define AVDT_NUM_SEPS 35
#endif

1
board-info.txt Normal file
View file

@ -0,0 +1 @@
require board=holi|OnePlusN200

View file

@ -1,28 +0,0 @@
//
// Copyright (C) 2018 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.
//
cc_library {
name: "bootctrl.holi",
defaults: ["bootctrl_hal_defaults"],
static_libs: ["libgptutils.oneplus_holi"],
}
cc_library_shared {
name: "android.hardware.boot@1.1-impl-qti",
stem: "android.hardware.boot@1.0-impl-1.1-qti",
defaults: ["android.hardware.boot@1.1-impl-qti_defaults"],
static_libs: ["libgptutils.oneplus_holi"],
}

View file

@ -1,109 +0,0 @@
<!-- Copyright (c) 2017, The Linux Foundation. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of The Linux Foundation nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<compatibility-matrix version="2.0" type="device">
<hal format="hidl" optional="false">
<name>android.frameworks.schedulerservice</name>
<version>1.0</version>
<interface>
<name>ISchedulingPolicyService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.frameworks.sensorservice</name>
<version>1.0</version>
<interface>
<name>ISensorManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.allocator</name>
<version>1.0</version>
<interface>
<name>IAllocator</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.manager</name>
<version>1.0</version>
<interface>
<name>IServiceManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.memory</name>
<version>1.0</version>
<interface>
<name>IMapper</name>
<instance>ashmem</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.hidl.token</name>
<version>1.0</version>
<interface>
<name>ITokenManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>android.system.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystore</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.qccsyshal</name>
<version>1.0</version>
<interface>
<name>IQccsyshal</name>
<instance>qccsyshal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.sigma_miracast</name>
<version>1.0</version>
<interface>
<name>Isigma_miracast</name>
<instance>sigmahal</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.qti.hardware.wifi.keystore</name>
<version>1.0</version>
<interface>
<name>IKeystoreExt</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

View file

@ -25,6 +25,12 @@ value:2908
[AID_VENDOR_QTR]
value:2909
[AID_VENDOR_LAUNCHER]
value:2988
[AID_VENDOR_SAURES]
value:2989
[bt_firmware/]
mode: 0771
user: AID_SYSTEM

View file

@ -1,6 +0,0 @@
<apn carrier="Sprint LTE internet" mcc="310" mnc="120" apn="x.ispsn" type="default,mms,supl,hipri,dun" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
<apn carrier="Sprint EHRPD internet" mcc="310" mnc="120" apn="x.ispsn" type="default,mms,supl,hipri" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
<apn carrier="Sprint internet" mcc="310" mnc="120" apn="x.ispsn" type="mms,supl,hipri" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
<apn carrier="Sprint CdmaNai" mcc="312" mnc="530" apn="x.ispsn" type="default,mms,supl,hipri,dun" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
<apn carrier="Sprint 312530 EHRPD internet" mcc="312" mnc="530" apn="x.ispsn" type="default,mms,supl,hipri" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
<apn carrier="Sprint 312530 internet" mcc="312" mnc="530" apn="x.ispsn" type="mms,supl,hipri" mmsc="http://mms.sprintpcs.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2015-2020 The Linux Foundation. All rights reserved.
Not a contribution.
Copyright (C) 2012 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.
-->
<Included>
<Decoders>
<MediaCodec name="OMX.google.opus.decoder" type="audio/opus" update="true" rank="100"/>
<MediaCodec name="OMX.google.raw.decoder" type="audio/raw" update="true" rank="1"/>
<!-- SimpleOMXComponet based software decoder-->
</Decoders>
</Included>

View file

@ -1,867 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2013 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.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ATTLIST EncoderProfile cameraId (0|1|2|3|4|5) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
]>
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<CamcorderProfiles cameraId="0">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="2">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="3">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="4">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="5">
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="758" maxBitRate="288000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23050"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="5525" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<!--
FIXME:
We do not check decoder capabilities at present
At present, we only check whether windows media is visible
for TEST applications. For other applications, we do
not perform any checks at all.
-->
<VideoDecoderCap name="wmv" enabled="false"/>
<AudioDecoderCap name="wma" enabled="false"/>
</MediaSettings>

View file

@ -1,511 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2020 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a contribution.
Copyright (C) 2012-2019 The Linux Foundation. All rights reserved.
Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE MediaSettings [
<!ELEMENT MediaSettings (CamcorderProfiles,
EncoderOutputFileFormat+,
VideoEncoderCap+,
AudioEncoderCap+,
VideoDecoderCap,
AudioDecoderCap)>
<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
<!ELEMENT EncoderProfile (Video, Audio)>
<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
<!ATTLIST EncoderProfile cameraId (0|1|2|3) #REQUIRED>
<!ELEMENT Video EMPTY>
<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
<!ATTLIST Video bitRate CDATA #REQUIRED>
<!ATTLIST Video width CDATA #REQUIRED>
<!ATTLIST Video height CDATA #REQUIRED>
<!ATTLIST Video frameRate CDATA #REQUIRED>
<!ELEMENT Audio EMPTY>
<!ATTLIST Audio codec (amrnb|amrwb|aac|lpcm) #REQUIRED>
<!ATTLIST Audio bitRate CDATA #REQUIRED>
<!ATTLIST Audio sampleRate CDATA #REQUIRED>
<!ATTLIST Audio channels (1|2|6) #REQUIRED>
<!ELEMENT ImageEncoding EMPTY>
<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
<!ELEMENT ImageDecoding EMPTY>
<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
<!ELEMENT Camera EMPTY>
<!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxHFRFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxHFRFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxHFRMode CDATA #REQUIRED>
<!ELEMENT AudioEncoderCap EMPTY>
<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma|lpcm) #REQUIRED>
<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
<!ATTLIST AudioEncoderCap minChannels (1|2|6) #REQUIRED>
<!ATTLIST AudioEncoderCap maxChannels (1|2|6) #REQUIRED>
<!ELEMENT VideoDecoderCap EMPTY>
<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT AudioDecoderCap EMPTY>
<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
<!ELEMENT VideoEditorCap EMPTY>
<!ATTLIST VideoEditorCap maxInputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxInputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameWidth CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxOutputFrameHeight CDATA #REQUIRED>
<!ATTLIST VideoEditorCap maxPrefetchYUVFrames CDATA #REQUIRED>
<!ELEMENT ExportVideoProfile EMPTY>
<!ATTLIST ExportVideoProfile name (h264|h263|m4v) #REQUIRED>
<!ATTLIST ExportVideoProfile profile CDATA #REQUIRED>
<!ATTLIST ExportVideoProfile level CDATA #REQUIRED>
]>
<!--
This file is used to declare the multimedia profiles and capabilities
on an android-powered device.
-->
<MediaSettings>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<!-- Back Camera -->
<CamcorderProfiles cameraId="0">
<!-- low: 176 x 144 30fps -->
<EncoderProfile quality="low" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- high: 1920 x 1080 30fps -->
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- qcif: 176 x 144 30fps -->
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- qvga: 320 x 240 30fps -->
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<!-- cif: 352 x 288 30fps -->
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 480p: 720 x 480 30fps -->
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 720p: 1280 x 720 60fps -->
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 1080p: 1920 x 1080 30fps -->
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_qcif: 176 x 144 30fps -->
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- timelapse_cif: 352 x 288 30fps -->
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="720000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_480p: 640 x 480 30fps -->
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_720p: 1280 x 720 30fps -->
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_1080p: 1920 x 1080 30fps -->
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- Front Camera -->
<CamcorderProfiles cameraId="1">
<!-- low: 176 x 144 30fps -->
<EncoderProfile quality="low" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- high: 1920 x 1080 30fps -->
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- qcif: 176 x 144 30fps -->
<EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
<Video codec="h264"
bitRate="128000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- qvga: 320 x 240 30fps -->
<EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<!-- cif: 352 x 288 30fps -->
<EncoderProfile quality="cif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="720000"
width="352"
height="288"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 480p: 720 x 480 30fps -->
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 720p: 1280 x 720 30fps -->
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="12000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- 1080p: 1920 x 1080 30fps -->
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_qcif: 176 x 144 30fps -->
<EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<!-- timelapse_cif: 352 x 288 30fps -->
<EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="1200000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_480p: 720 x 480 30fps -->
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="5000000"
width="720"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<!-- timelapse_720p: 1280 x 720 30fps -->
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="8000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<EncoderOutputFileFormat name="3gp" />
<EncoderOutputFileFormat name="mp4" />
<!--
If a codec is not enabled, it is invisible to the applications
In other words, the applications won't be able to use the codec
or query the capabilities of the codec at all if it is disabled
-->
<VideoEncoderCap name="hevc" enabled="true"
minBitRate="64000" maxBitRate="60000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="60000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="758" maxBitRate="288000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23050"
minSampleRate="16000" maxSampleRate="16000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrnb" enabled="true"
minBitRate="5525" maxBitRate="12200"
minSampleRate="8000" maxSampleRate="8000"
minChannels="1" maxChannels="1" />
<!--
FIXME:
We do not check decoder capabilities at present
At present, we only check whether windows media is visible
for TEST applications. For other applications, we do
not perform any checks at all.
-->
<VideoDecoderCap name="wmv" enabled="false"/>
<AudioDecoderCap name="wma" enabled="false"/>
</MediaSettings>

View file

@ -1,32 +0,0 @@
libAlgoInterface.so
libAlgoProcess.so
vendor.qti.hardware.camera.postproc@1.0.so
libPolarrRender.so
libapsexif.so
libapsjpeg.so
libmpbase.so
libarcsoft_high_dynamic_range.so 64
libarcsoft_low_light_hdr.so 64
libarcsoft_hdr_couple_api.so 64
libarcsoft_high_dynamic_range_couple.so 64
libCOppLceTonemapAPI.so
libVDSuperPhotoAPI.so
libFaceBeautyCap.so
libstface_fd_api.so
libVDDualCameraBlurlessAPI.so 64
libSNPE.so 64
libc++_shared.so 64
libstdc++.so
libarcsoft_dualcam_bokeh_api.so 64
libPlatformValidatorShared.so 64
libcvface_api.so
libsnpe_dsp_domains_v3.so 64
libPolarrRender.so
libXDocProcessSDK.so
libqti-perfd-client.so
libadsprpc.so
libcdsprpc.so
libsdsprpc.so
libfastcvopt.so
liblistensoundmodel2.so
libOpenCL.so

566
configs/task_profiles.json Normal file
View file

@ -0,0 +1,566 @@
{
"Attributes": [
{
"Name": "LowCapacityCPUs",
"Controller": "cpuset",
"File": "background/cpus"
},
{
"Name": "HighCapacityCPUs",
"Controller": "cpuset",
"File": "foreground/cpus"
},
{
"Name": "MaxCapacityCPUs",
"Controller": "cpuset",
"File": "top-app/cpus"
},
{
"Name": "AudioAppCapacityCPUs",
"Controller": "cpuset",
"File": "audio-app/cpus"
},
{
"Name": "MemLimit",
"Controller": "memory",
"File": "memory.limit_in_bytes"
},
{
"Name": "MemSoftLimit",
"Controller": "memory",
"File": "memory.soft_limit_in_bytes"
},
{
"Name": "MemSwappiness",
"Controller": "memory",
"File": "memory.swappiness"
},
{
"Name": "UClampMin",
"Controller": "cpu",
"File": "cpu.uclamp.min"
},
{
"Name": "UClampMax",
"Controller": "cpu",
"File": "cpu.uclamp.max"
}
],
"Profiles": [
{
"Name": "HighEnergySaving",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "background"
}
}
]
},
{
"Name": "NormalPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": ""
}
}
]
},
{
"Name": "HighPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "foreground"
}
}
]
},
{
"Name": "MaxPerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "top-app"
}
}
]
},
{
"Name": "RealtimePerformance",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpu",
"Path": "rt"
}
}
]
},
{
"Name": "AudioAppPerformance",
"Actions" : [
{
"Name" : "JoinCgroup",
"Params" :
{
"Controller": "cpu",
"Path": "audio-app"
}
}
]
},
{
"Name": "VrKernelCapacity",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": ""
}
}
]
},
{
"Name": "VrServiceCapacityLow",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "system/background"
}
}
]
},
{
"Name": "VrServiceCapacityNormal",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "system"
}
}
]
},
{
"Name": "VrServiceCapacityHigh",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "system/performance"
}
}
]
},
{
"Name": "VrProcessCapacityLow",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "application/background"
}
}
]
},
{
"Name": "VrProcessCapacityNormal",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "application"
}
}
]
},
{
"Name": "VrProcessCapacityHigh",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "application/performance"
}
}
]
},
{
"Name": "ProcessCapacityLow",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "background"
}
}
]
},
{
"Name": "ProcessCapacityNormal",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": ""
}
}
]
},
{
"Name": "ProcessCapacityHigh",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "foreground"
}
}
]
},
{
"Name": "ProcessCapacityMax",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "top-app"
}
}
]
},
{
"Name": "ServiceCapacityLow",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "system-background"
}
}
]
},
{
"Name": "ServiceCapacityRestricted",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "restricted"
}
}
]
},
{
"Name": "CameraServiceCapacity",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "cpuset",
"Path": "camera-daemon"
}
}
]
},
{
"Name": "AudioAppCapacity",
"Actions" : [
{
"Name" : "JoinCgroup",
"Params" :
{
"Controller": "cpuset",
"Path": "audio-app"
}
}
]
},
{
"Name": "BlkIOForeground",
"Actions" : [
{
"Name" : "JoinCgroup",
"Params" :
{
"Controller": "blkio",
"Path": ""
}
}
]
},
{
"Name": "BlkIOBackground",
"Actions" : [
{
"Name" : "JoinCgroup",
"Params" :
{
"Controller": "blkio",
"Path": "bg"
}
}
]
},
{
"Name": "LowIoPriority",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "blkio",
"Path": "background"
}
}
]
},
{
"Name": "NormalIoPriority",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "blkio",
"Path": ""
}
}
]
},
{
"Name": "HighIoPriority",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "blkio",
"Path": ""
}
}
]
},
{
"Name": "MaxIoPriority",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "blkio",
"Path": ""
}
}
]
},
{
"Name": "TimerSlackHigh",
"Actions": [
{
"Name": "SetTimerSlack",
"Params":
{
"Slack": "5000000"
}
}
]
},
{
"Name": "TimerSlackNormal",
"Actions": [
{
"Name": "SetTimerSlack",
"Params":
{
"Slack": "50000"
}
}
]
},
{
"Name": "PerfBoost",
"Actions": [
{
"Name": "SetClamps",
"Params":
{
"Boost": "50%",
"Clamp": "0"
}
}
]
},
{
"Name": "PerfClamp",
"Actions": [
{
"Name": "SetClamps",
"Params":
{
"Boost": "0",
"Clamp": "30%"
}
}
]
},
{
"Name": "LowMemoryUsage",
"Actions": [
{
"Name": "SetAttribute",
"Params":
{
"Name": "MemSoftLimit",
"Value": "16MB"
}
},
{
"Name": "SetAttribute",
"Params":
{
"Name": "MemSwappiness",
"Value": "150"
}
}
]
},
{
"Name": "HighMemoryUsage",
"Actions": [
{
"Name": "SetAttribute",
"Params":
{
"Name": "MemSoftLimit",
"Value": "512MB"
}
},
{
"Name": "SetAttribute",
"Params":
{
"Name": "MemSwappiness",
"Value": "100"
}
}
]
},
{
"Name": "SystemMemoryProcess",
"Actions": [
{
"Name": "JoinCgroup",
"Params":
{
"Controller": "memory",
"Path": "system"
}
}
]
}
],
"AggregateProfiles": [
{
"Name": "SCHED_SP_DEFAULT",
"Profiles": [ "TimerSlackNormal" ]
},
{
"Name": "SCHED_SP_BACKGROUND",
"Profiles": [ "HighEnergySaving", "LowIoPriority", "TimerSlackHigh" ]
},
{
"Name": "SCHED_SP_FOREGROUND",
"Profiles": [ "HighPerformance", "HighIoPriority", "TimerSlackNormal" ]
},
{
"Name": "SCHED_SP_TOP_APP",
"Profiles": [ "MaxPerformance", "MaxIoPriority", "TimerSlackNormal" ]
},
{
"Name": "SCHED_SP_RT_APP",
"Profiles": [ "RealtimePerformance", "MaxIoPriority", "TimerSlackNormal" ]
},
{
"Name": "CPUSET_SP_DEFAULT",
"Profiles": [ "TimerSlackNormal" ]
},
{
"Name": "CPUSET_SP_BACKGROUND",
"Profiles": [ "HighEnergySaving", "ProcessCapacityLow", "LowIoPriority", "TimerSlackHigh" ]
},
{
"Name": "CPUSET_SP_FOREGROUND",
"Profiles": [ "HighPerformance", "ProcessCapacityHigh", "HighIoPriority", "TimerSlackNormal" ]
},
{
"Name": "CPUSET_SP_TOP_APP",
"Profiles": [ "MaxPerformance", "ProcessCapacityMax", "MaxIoPriority", "TimerSlackNormal" ]
},
{
"Name": "CPUSET_SP_SYSTEM",
"Profiles": [ "ServiceCapacityLow", "TimerSlackNormal" ]
},
{
"Name": "CPUSET_SP_RESTRICTED",
"Profiles": [ "ServiceCapacityRestricted", "TimerSlackNormal" ]
}
]
}

499
device.mk
View file

@ -1,56 +1,17 @@
#
# Copyright (C) 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.
#
# Copyright (C) 2021-2025 The LineageOS Project
# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2019-Current A-Team Digital Solutions
# Enable project quotas and casefolding for emulated storage without sdcardfs
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
# Enable updating of APEXes
$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk)
# Enable virtual A/B OTA
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk)
# Include GSI keys
$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk)
# Setup dalvik vm configs
$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
# Get non-open-source specific aspects
$(call inherit-product, vendor/oneplus/dre/dre-vendor.mk)
# Set product shipping level
PRODUCT_SHIPPING_API_LEVEL := 30
# Additional native libraries
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
# Overlays
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
$(LOCAL_PATH)/overlay-lineage
PRODUCT_ENFORCE_RRO_TARGETS := *
# Add common definitions for Qualcomm
$(call inherit-product, hardware/qcom-caf/common/common.mk)
# AAPT
PRODUCT_AAPT_CONFIG := normal
PRODUCT_AAPT_PREF_CONFIG := xxhdpi
# A/B
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/launch_with_vendor_ramdisk.mk)
AB_OTA_POSTINSTALL_CONFIG += \
RUN_POSTINSTALL_system=true \
POSTINSTALL_PATH_system=system/bin/otapreopt_script \
@ -60,7 +21,7 @@ AB_OTA_POSTINSTALL_CONFIG += \
AB_OTA_POSTINSTALL_CONFIG += \
RUN_POSTINSTALL_vendor=true \
POSTINSTALL_PATH_vendor=bin/checkpoint_gc \
FILESYSTEM_TYPE_vendor=ext4 \
FILESYSTEM_TYPE_vendor=erofs \
POSTINSTALL_OPTIONAL_vendor=true
PRODUCT_PACKAGES += \
@ -69,71 +30,54 @@ PRODUCT_PACKAGES += \
# ANT+
PRODUCT_PACKAGES += \
AntHalService-Soong \
com.dsi.ant@1.0.vendor
# Atrace
PRODUCT_PACKAGES += \
android.hardware.atrace@1.0-service
AntHalService-Soong
# Audio
PRODUCT_PACKAGES += \
android.hardware.audio@6.0-impl \
android.hardware.audio.effect@6.0-impl \
android.hardware.audio.service \
android.hardware.bluetooth.audio@2.0-impl \
android.hardware.bluetooth.audio-impl \
android.hardware.soundtrigger@2.3-impl \
audio.a2dp.default \
audio.bluetooth.default \
audio.primary.holi \
audio.r_submix.default \
audio.usb.default \
audio_amplifier.holi \
audioadsprpcd \
liba2dpoffload \
libaudiopreprocessing \
libbatterylistener \
libbundlewrapper \
libcirrusspkrprot \
libcomprcapture \
libdownmix \
libdynproc \
libeffectproxy \
libexthwplugin \
libhdmiedid \
libhfp \
libldnhncr \
libqcompostprocbundle \
libqcomvisualizer \
libqcomvoiceprocessing \
libreverbwrapper \
libsndmonitor \
libspkrprot \
libssrec \
libvisualizer \
libvolumelistener \
sound_trigger.primary.holi:32
# SM8350 audio HAL has SM4350 configurations.
AUDIO_HAL_DIR := hardware/qcom-caf/sm8350/audio
PRODUCT_COPY_FILES += \
$(AUDIO_HAL_DIR)/configs/common/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(AUDIO_HAL_DIR)/configs/common/bluetooth_qti_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/bluetooth_qti_audio_policy_configuration.xml \
$(AUDIO_HAL_DIR)/configs/common/bluetooth_qti_hearing_aid_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/bluetooth_qti_hearing_aid_audio_policy_configuration.xml \
$(AUDIO_HAL_DIR)/configs/holi/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(AUDIO_HAL_DIR)/configs/holi/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
$(AUDIO_HAL_DIR)/configs/holi/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.xml \
$(AUDIO_HAL_DIR)/configs/holi/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
$(AUDIO_HAL_DIR)/configs/holi/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
$(AUDIO_HAL_DIR)/configs/holi/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \
$(AUDIO_HAL_DIR)/configs/holi/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
$(LOCAL_PATH)/audio/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf \
$(LOCAL_PATH)/audio/audio_platform_info_intcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_intcodec.xml \
$(AUDIO_HAL_DIR)/configs/holi/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration_a2dp_offload_disabled.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/audio_policy_configuration.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/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
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/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio/sku_holi/r_submix_audio_policy_configuration.xml \
@ -143,20 +87,9 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
# Authsecret
PRODUCT_PACKAGES += \
android.hardware.authsecret@1.0.vendor
# Bluetooth
PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0.vendor \
vendor.qti.hardware.bluetooth_audio@2.0.vendor \
vendor.qti.hardware.btconfigstore@1.0.vendor \
vendor.qti.hardware.btconfigstore@2.0.vendor
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml
@ -167,20 +100,13 @@ TARGET_SCREEN_WIDTH := 1080
# Boot control
PRODUCT_PACKAGES += \
android.hardware.boot@1.1-impl-qti \
android.hardware.boot@1.1-impl-qti.recovery \
android.hardware.boot@1.1-service \
bootctrl.holi \
bootctrl.holi.recovery
PRODUCT_PACKAGES_DEBUG += \
bootctl
android.hardware.boot-service.qti \
android.hardware.boot-service.qti.recovery
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.4-impl \
android.hardware.camera.provider@2.4-service_64 \
vendor.qti.hardware.camera.postproc@1.0.vendor
android.hardware.camera.provider@2.4-service_64
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \
@ -188,90 +114,55 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml
# Common init scripts
PRODUCT_PACKAGES += \
charger_fstab.qti \
fstab.qcom \
ftm_power_config.sh \
init.class_main.sh \
init.cust.rc \
init.kernel.post_boot.sh \
init.oem.debug.rc \
init.oem.rc \
init.oem_ftm.rc \
init.oem_rf.rc \
init.qcom.class_core.sh \
init.qcom.early_boot.sh \
init.qcom.factory.rc \
init.qcom.post_boot.sh \
init.qcom.rc \
init.qcom.sh \
init.qcom.usb.rc \
init.qcom.usb.sh \
init.qti.chg_policy.sh \
init.qti.dcvs.sh \
init.qti.kernel.rc \
init.qti.kernel.sh \
init.qti.qcv.rc \
init.qti.qcv.sh \
init.stnfc.rc \
init.stnfc.sh \
init.recovery.qcom.rc \
init.target.rc \
init.uicc.rc \
ueventd.qcom.rc \
vendor.oem_ftm.rc \
vendor.oem_ftm_svc_disable.rc \
vendor_modprobe.sh
# Dalvik
$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
# Device ID Attestation
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml
# DebugFS
PRODUCT_SET_DEBUGFS_RESTRICTIONS := true
# Display
PRODUCT_PACKAGES += \
android.hardware.graphics.common-V1-ndk_platform.vendor \
android.hardware.graphics.mapper@3.0-impl-qti-display \
android.hardware.graphics.mapper@4.0-impl-qti-display \
android.hardware.memtrack@1.0-impl \
android.hardware.memtrack@1.0-service \
init.qti.display_boot.sh \
libdisplayconfig.qti \
libdisplayconfig.qti.vendor \
libmemutils \
libqdMetaData \
libsdmcore \
libsdmutils \
libtinyxml \
memtrack.default \
vendor.display.config@1.0 \
vendor.display.config@1.0.vendor \
vendor.display.config@1.1.vendor \
vendor.display.config@1.2.vendor \
vendor.display.config@1.3.vendor \
vendor.display.config@1.4.vendor \
vendor.display.config@1.5.vendor \
vendor.display.config@1.6.vendor \
vendor.display.config@1.7.vendor \
vendor.display.config@1.8.vendor \
vendor.display.config@1.9.vendor \
vendor.display.config@1.10.vendor \
vendor.display.config@1.11.vendor \
vendor.display.config@1.12.vendor \
vendor.display.config@1.13.vendor \
vendor.display.config@1.14.vendor \
vendor.display.config@1.15.vendor \
vendor.display.config@2.0 \
vendor.display.config@2.0.vendor \
vendor.oneplus.hardware.display@1.0.vendor \
vendor.qti.hardware.display.allocator-service \
vendor.qti.hardware.display.composer-service \
vendor.qti.hardware.display.mapper@1.0.vendor \
vendor.qti.hardware.display.mapper@1.1.vendor \
vendor.qti.hardware.display.mapper@2.0.vendor \
vendor.qti.hardware.display.mapper@3.0.vendor \
vendor.qti.hardware.display.mapper@4.0.vendor
vendor.qti.hardware.memtrack-service
PRODUCT_COPY_FILES += \
hardware/qcom-caf/sm8350/display/config/snapdragon_color_libs_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/snapdragon_color_libs_config.xml
# Doze
PRODUCT_PACKAGES += \
OplusDoze
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm-service.clearkey \
wvmkiller
# Fastboot
PRODUCT_PACKAGES += \
android.hardware.fastboot@1.1-impl.custom \
fastbootd
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.3-service.oplus
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
# FM Radio
PRODUCT_PACKAGES += \
FM2 \
qcom.fmradio
# GPS
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml
# Graphics
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
@ -279,187 +170,113 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_1.xml \
frameworks/native/data/etc/android.software.vulkan.deqp.level-2020-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml
# Doze
PRODUCT_PACKAGES += \
OnePlusDoze
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.3.vendor \
android.hardware.drm@1.4-service.clearkey
# fastbootd
PRODUCT_PACKAGES += \
fastbootd
# Fingerprint
PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.1-service \
vendor.oneplus.fingerprint.extension@1.0.vendor
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0.vendor
# GPS
PRODUCT_PACKAGES += \
android.hardware.gnss.measurement_corrections@1.1.vendor \
android.hardware.gnss.visibility_control@1.0.vendor \
android.hardware.gnss@2.1.vendor
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/gps/flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \
$(LOCAL_PATH)/gps/gnss_antenna_info.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gnss_antenna_info.conf \
$(LOCAL_PATH)/gps/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \
$(LOCAL_PATH)/gps/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \
$(LOCAL_PATH)/gps/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \
$(LOCAL_PATH)/gps/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \
$(LOCAL_PATH)/gps/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml
# Health
PRODUCT_PACKAGES += \
android.hardware.health@2.1-impl \
android.hardware.health@2.1-service
android.hardware.health-service.qti
# HIDL
PRODUCT_PACKAGES += \
libhidltransport.vendor \
libhwbinder.vendor
# HotwordEnrollement app permissions
# Hotword enrollment
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/privapp-permissions-hotword.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/privapp-permissions-hotword.xml
# Init
PRODUCT_PACKAGES += \
fstab.qcom \
fstab.qcom.vendor_ramdisk \
init.class_main.sh \
init.oplus.rc \
init.qcom.early_boot.sh \
init.qcom.rc \
init.qcom.recovery.rc \
init.qcom.sh \
init.qcom.usb.rc \
init.qcom.usb.sh \
init.target.rc \
ueventd.oplus.rc \
ueventd.qcom.rc
# IPACM
PRODUCT_PACKAGES += \
ipacm \
IPACM_cfg.xml \
libipanat \
liboffloadhal
IPACM_cfg.xml
# Keymaster
# Kernel
PRODUCT_ENABLE_UFFD_GC := true
# Lineage Health
PRODUCT_PACKAGES += \
android.hardware.keymaster@4.1.vendor
vendor.lineage.health-service.default
# LiveDisplay
PRODUCT_PACKAGES += \
vendor.lineage.livedisplay@2.1-service.oneplus
vendor.lineage.livedisplay@2.1-service.oplus
$(call soong_config_set,OPLUS_LINEAGE_LIVEDISPLAY_HAL,ENABLE_SE,false)
# Media
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/configs/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi.xml \
$(LOCAL_PATH)/configs/media_codecs_holi_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi_vendor.xml \
$(LOCAL_PATH)/configs/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(LOCAL_PATH)/configs/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi.xml \
$(LOCAL_PATH)/configs/media_codecs_performance_holi_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi_vendor.xml \
$(LOCAL_PATH)/configs/media_codecs_vendor_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_vendor_audio.xml \
$(LOCAL_PATH)/configs/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \
$(LOCAL_PATH)/configs/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_holi.xml \
$(LOCAL_PATH)/configs/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \
$(LOCAL_PATH)/configs/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_ODM)/etc/media_profiles_V1_0.xml
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_c2.xml \
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 \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video_le.xml
PRODUCT_PACKAGES += \
libavservices_minijail \
libavservices_minijail.vendor \
libavservices_minijail_vendor \
libcodec2_hidl@1.0.vendor
# Net
PRODUCT_PACKAGES += \
android.system.net.netd@1.1.vendor \
netutils-wrapper-1.0
# Neural Network
PRODUCT_PACKAGES += \
android.hardware.neuralnetworks@1.3.vendor
$(LOCAL_PATH)/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
$(LOCAL_PATH)/media/media_codecs_blair.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_blair.xml \
$(LOCAL_PATH)/media/media_codecs_blair_lite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_blair_lite.xml \
$(LOCAL_PATH)/media/media_codecs_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_holi.xml \
$(LOCAL_PATH)/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \
$(LOCAL_PATH)/media/media_codecs_performance_blair.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_blair.xml \
$(LOCAL_PATH)/media/media_codecs_performance_blair_lite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_blair_lite.xml \
$(LOCAL_PATH)/media/media_codecs_performance_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_holi.xml \
$(LOCAL_PATH)/media/media_profiles_holi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml
# NFC
PRODUCT_PACKAGES += \
android.hardware.nfc@1.2-service.st \
android.hardware.secure_element@1.2.vendor \
android.hardware.nfc-service.st \
com.android.nfc_extras \
nfc_nci.st21nfc.default \
SecureElement \
Tag
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf \
frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml
# OMX
PRODUCT_PACKAGES += \
libOmxAacEnc \
libOmxAmrEnc \
libOmxCore \
libOmxEvrcEnc \
libOmxG711Enc \
libOmxQcelp13Enc \
libstagefrighthw
# Overlays
$(call inherit-product, hardware/oplus/overlay/generic/generic.mk)
$(call inherit-product, hardware/oplus/overlay/qssi/qssi.mk)
# OnePlus
PRODUCT_PACKAGES += \
oneplus-fwk
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay-lineage
PRODUCT_BOOT_JARS += \
oneplus-fwk
PRODUCT_ENFORCE_RRO_TARGETS := *
PRODUCT_PACKAGES += \
CarrierConfigResCommon \
FrameworksResTarget \
OPlusFrameworksResTarget \
OPlusSettingsProviderResTarget \
OPlusSettingsResTarget \
OPlusSystemUIResTarget \
WifiResTarget
# Partitions
PRODUCT_PACKAGES += \
vendor_bt_firmware_mountpoint \
vendor_dsp_mountpoint \
vendor_firmware_mnt_mountpoint
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Perf
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
# Power
PRODUCT_PACKAGES += \
android.hardware.power-service-qti \
android.hardware.power@1.2.vendor \
vendor.qti.hardware.perf@2.0.vendor \
vendor.qti.hardware.perf@2.1.vendor \
vendor.qti.hardware.perf@2.2.vendor
android.hardware.power-service-qti
# QMI
# QTI fwk-detect
PRODUCT_PACKAGES += \
libjson \
libqti_vndfwk_detect \
libqti_vndfwk_detect.vendor \
libvndfwk_detect_jni.qti \
libvndfwk_detect_jni.qti.vendor
# QTI service tracker
PRODUCT_PACKAGES += \
vendor.qti.hardware.servicetracker@1.0.vendor \
vendor.qti.hardware.servicetracker@1.1.vendor \
vendor.qti.hardware.servicetracker@1.2.vendor
# RIL
PRODUCT_PACKAGES += \
android.hardware.radio@1.5.vendor \
android.hardware.radio.config@1.2.vendor \
android.hardware.radio.deprecated@1.0.vendor \
libprotobuf-cpp-full \
librmnetctl \
libxml2
libvndfwk_detect_jni.qti.vendor # Needed by CNE app
# Sensors
PRODUCT_PACKAGES += \
android.hardware.sensors@2.0-service.multihal \
libsensorndkbridge
# Needed for sensors.ssc.so
PRODUCT_PACKAGES += \
android.hardware.audio@4.0.vendor
android.hardware.sensors-service.multihal \
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
@ -472,21 +289,39 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
# Shipping API
BOARD_SHIPPING_API_LEVEL := 30
PRODUCT_SHIPPING_API_LEVEL := $(BOARD_SHIPPING_API_LEVEL)
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
$(LOCAL_PATH) \
hardware/oneplus
hardware/oplus
# Storage
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
# Telephony
PRODUCT_PACKAGES += \
extphonelib \
extphonelib-product \
extphonelib.xml \
extphonelib_product.xml \
ims-ext-common \
ims_ext_common.xml \
qti-telephony-hidl-wrapper \
qti-telephony-hidl-wrapper-prd \
qti_telephony_hidl_wrapper.xml \
qti_telephony_hidl_wrapper_prd.xml \
qti-telephony-utils \
qti-telephony-utils-prd \
qti_telephony_utils.xml \
qti_telephony_utils_prd.xml \
telephony-ext
PRODUCT_PACKAGES += \
qcrilNrDb_vendor
PRODUCT_BOOT_JARS += \
telephony-ext
@ -499,13 +334,15 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml
$(call inherit-product, hardware/oplus/oplus-fwk/oplus-fwk.mk)
# Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@2.0-service.qti
android.hardware.thermal-service.qti
# Touch
PRODUCT_PACKAGES += \
vendor.lineage.touch@1.0-service.oneplus
vendor.lineage.touch@1.0-service.oplus
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml
@ -521,7 +358,10 @@ PRODUCT_PACKAGES_DEBUG += \
# USB
PRODUCT_PACKAGES += \
android.hardware.usb@1.3-service-qti
android.hardware.usb-service.qti
PRODUCT_SOONG_NAMESPACES += \
vendor/qcom/opensource/usb/etc
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
@ -531,10 +371,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \
vndservicemanager
# Vendor libstdc++
PRODUCT_PACKAGES += \
libstdc++.vendor
# Verified Boot
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml
@ -546,35 +382,28 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
vendor/qcom/opensource/vibrator/excluded-input-devices.xml:$(TARGET_COPY_OUT_VENDOR)/etc/excluded-input-devices.xml
# Wi-Fi
# WiFi
PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \
android.hardware.wifi-service \
hostapd \
libwpa_client \
libwifi-hal-ctrl \
libwifi-hal-qcom \
wifi-mac-generator-dre \
WifiResCommon \
wpa_supplicant \
wpa_supplicant.conf
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/wifi/p2p_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/p2p_supplicant_overlay.conf \
$(LOCAL_PATH)/wifi/wpa_supplicant_overlay.conf:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wpa_supplicant_overlay.conf
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.software.ipsec_tunnel_migration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnel_migration.xml \
frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml
# Wi-Fi Display
# WiFi firmware symlinks
PRODUCT_PACKAGES += \
libnl \
libwfdaac_vendor
firmware_wlan_mac.bin_symlink \
firmware_WCNSS_qcom_cfg.ini_symlink
PRODUCT_BOOT_JARS += \
WfdCommon
PRODUCT_BUILD_SUPER_PARTITION := false
PRODUCT_USE_DYNAMIC_PARTITIONS := true
# Get non-open-source specific aspects
$(call inherit-product, vendor/oneplus/dre/dre-vendor.mk)

View file

@ -1,218 +0,0 @@
<compatibility-matrix version="2.0" type="framework">
<hal format="aidl" optional="true">
<name>vendor.aac.hardware.richtap.vibrator</name>
<interface>
<name>IRichtapVibrator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.dolby.hardware.dms</name>
<version>2.0</version>
<interface>
<name>IDms</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.goodix3626.hardware.biometrics.fingerprint</name>
<version>2.1</version>
<interface>
<name>IGoodixFingerprintDaemon</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.eventprocessor</name>
<version>1.0</version>
<interface>
<name>INxpEseEvtProcessor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.hardware.nfc</name>
<version>1.0-1</version>
<version>2.0</version>
<interface>
<name>INqNfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.nxpese</name>
<version>1.0</version>
<interface>
<name>INxpEse</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.nxpnfc</name>
<version>1.0</version>
<interface>
<name>INxpNfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.nxp.nxpnfclegacy</name>
<version>1.0</version>
<interface>
<name>INxpNfcLegacy</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.engnative.engineer</name>
<version>1.0</version>
<interface>
<name>IEngineer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.faceunlock.hal</name>
<version>1.0</version>
<interface>
<name>IFaceUnlockNativeService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.fingerprint.extension</name>
<version>1.0</version>
<interface>
<name>IVendorFingerprintExtensions</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.CameraMDMHIDL</name>
<version>1.0</version>
<interface>
<name>IOnePlusCameraMDM</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.camera</name>
<version>1.0</version>
<interface>
<name>IOnePlusCameraProvider</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.cwb</name>
<version>1.0</version>
<interface>
<name>ICwbService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.display</name>
<version>1.0</version>
<interface>
<name>IOneplusDisplay</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.drmkey</name>
<version>1.0</version>
<interface>
<name>IOneplusDrmKey</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.hdcpkey</name>
<version>1.0</version>
<interface>
<name>IOneplusHdcpKey</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.hypnus</name>
<version>1.0</version>
<interface>
<name>IHypnusUtil</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.ifaa</name>
<version>2.0</version>
<interface>
<name>IOneplusIfaa</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.lmvibrator</name>
<version>1.0</version>
<interface>
<name>ILinearMotorVibrator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.oneplus.hardware.motorcontrol</name>
<version>1.0</version>
<interface>
<name>IOPMotorControl</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.param</name>
<version>1.0</version>
<interface>
<name>IOneplusParam</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.rpmb</name>
<version>1.0</version>
<interface>
<name>IOneplusRpmb</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="false">
<name>vendor.oneplus.hardware.wifi</name>
<version>1.1</version>
<interface>
<name>IOneplusWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.pixelworks.hardware.display</name>
<version>1.1</version>
<interface>
<name>IIris</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.pixelworks.hardware.feature</name>
<version>1.0</version>
<interface>
<name>IIrisFeature</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl" optional="true">
<name>vendor.rongcard.hardware.eid</name>
<version>1.0</version>
<interface>
<name>IEidDevice</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>

117
extract-files.py Executable file
View file

@ -0,0 +1,117 @@
#!/usr/bin/env -S PYTHONPATH=../../../tools/extract-utils python3
#
# SPDX-FileCopyrightText: 2024 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/oneplus/dre',
'hardware/oplus',
'hardware/qcom-caf/sm8350',
'hardware/qcom-caf/wlan',
'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}_vendor' if partition in ['odm', 'vendor'] else None
lib_fixups: lib_fixups_user_type = {
**lib_fixups,
(
'com.qualcomm.qti.dpm.api@1.0',
'libmmosal',
'vendor.qti.diaghal@1.0',
'vendor.qti.hardware.fm@1.0',
'vendor.qti.hardware.wifidisplaysession@1.0',
'vendor.qti.imsrtpservice@3.0',
): lib_fixup_vendor_suffix,
}
blob_fixups: blob_fixups_user_type = {
'odm/etc/init/android.hardware.drm@1.3-service.widevine.rc': blob_fixup()
.regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'),
('odm/lib/liblvimfs_wrapper.so', 'odm/lib64/libCOppLceTonemapAPI.so', 'odm/lib64/libaps_frame_registration.so'): blob_fixup()
.replace_needed('libstdc++.so', 'libstdc++_vendor.so'),
'odm/lib64/libarcsoft_portrait_super_night_raw.so': blob_fixup()
.clear_symbol_version('remote_handle_close')
.clear_symbol_version('remote_handle_invoke')
.clear_symbol_version('remote_handle_open')
.clear_symbol_version('remote_handle64_close')
.clear_symbol_version('remote_handle64_invoke')
.clear_symbol_version('remote_handle64_open')
.clear_symbol_version('remote_register_buf_attr')
.clear_symbol_version('remote_register_buf')
.clear_symbol_version('rpcmem_alloc')
.clear_symbol_version('rpcmem_free')
.clear_symbol_version('rpcmem_to_fd'),
'odm/lib64/libOGLManager.so': blob_fixup()
.clear_symbol_version('AHardwareBuffer_allocate')
.clear_symbol_version('AHardwareBuffer_describe')
.clear_symbol_version('AHardwareBuffer_lock')
.clear_symbol_version('AHardwareBuffer_release')
.clear_symbol_version('AHardwareBuffer_unlock'),
('odm/lib64/libwvhidl.so','odm/lib64/mediadrm/libwvdrmengine.so'): blob_fixup()
.add_needed('libcrypto_shim.so'),
'product/etc/sysconfig/com.android.hotwordenrollment.common.util.xml': blob_fixup()
.regex_replace('/my_product', '/product'),
'system_ext/bin/wfdservice': blob_fixup()
.add_needed('libwfdservice_shim.so'),
'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/libwfdnative.so': blob_fixup()
.replace_needed('android.hidl.base@1.0.so', 'libhidlbase.so')
.add_needed('libbinder_shim.so')
.add_needed('libinput_shim.so'),
'vendor/bin/init.kernel.post_boot-blair.sh': blob_fixup()
.patch_file('blob-patches/init-post-boot-blair.patch'),
'vendor/bin/init.kernel.post_boot-holi.sh': blob_fixup()
.patch_file('blob-patches/init-post-boot-holi.patch'),
'vendor/etc/init/vendor.qti.media.c2@1.0-service.rc': blob_fixup()
.regex_replace('writepid /dev/cpuset/foreground/tasks', 'task_profiles ProcessCapacityHigh'),
'vendor/etc/media_holi/video_system_specs.json': blob_fixup()
.regex_replace('"max_retry_alloc_output_timeout": 2000,', '"max_retry_alloc_output_timeout": 0,'),
'vendor/etc/libnfc-nci.conf': blob_fixup()
.regex_replace('NFC_DEBUG_ENABLED=1', 'NFC_DEBUG_ENABLED=0'),
'vendor/etc/msm_irqbalance.conf': blob_fixup()
.regex_replace('IGNORED_IRQ=19,21,38$', 'IGNORED_IRQ=19,21,38,209,218'),
'vendor/etc/qdcm_calib_data_nt36672c_tm_fhd_plus_video_mode_dsi_panel.xml': blob_fixup()
.regex_replace('FeatureType="2" Disable="false"', 'FeatureType="2" Disable="true"')
.regex_replace('FeatureType="7" Disable="false"', 'FeatureType="7" Disable="true"')
.regex_replace('FeatureType="8" Disable="false"', 'FeatureType="8" Disable="true"')
.regex_replace('20121_v1_20201113', 'native')
.regex_replace('SRGB', 'sRGB'),
'vendor/lib64/hw/com.qti.chi.override.so': blob_fixup()
.add_needed('libcamera_metadata_shim.so'),
} # fmt: skip
module = ExtractUtilsModule(
'dre',
'oneplus',
blob_fixups=blob_fixups,
lib_fixups=lib_fixups,
namespace_imports=namespace_imports,
)
if __name__ == '__main__':
utils = ExtractUtils.device(module)
utils.run()

View file

@ -1,72 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017-2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
set -e
DEVICE=dre
VENDOR=oneplus
# 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}/../../.."
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
KANG=
SECTION=
while [ "${#}" -gt 0 ]; do
case "${1}" in
-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/lib64/libwfdnative.so)
sed -i "s/android.hidl.base@1.0.so/libhidlbase.so\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/" "${2}"
;;
vendor/lib64/hw/fingerprint.qcom.so)
sed -i "s/goodix\.3626/fingerprint/g" "${2}"
;;
esac
}
# Initialize the helper
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
"${MY_DIR}/setup-makefiles.sh"

View file

@ -1,60 +0,0 @@
###################################
##### FLP settings #####
###################################
###################################
# FLP BATCH SIZE
###################################
# The number of batched locations
# requested to modem. The desired number
# defined below may not be satisfied, as
# the modem can only return the number
# of batched locations that can be allocated,
# which is limited by memory. The default
# batch size defined as 20 as below.
BATCH_SIZE=20
###################################
# FLP OUTDOOR TRIP BATCH SIZE
###################################
# The number of batched locations
# requested to modem for outdoor
# trip batching. The desired number
# defined below may not be satisfied, as
# the modem can only return the number
# of batched locations that can be allocated,
# which is limited by memory. The default
# trip batch size defined as 600 as below.
OUTDOOR_TRIP_BATCH_SIZE=600
###################################
# FLP BATCHING SESSION TIMEOUT
###################################
# Duration with which batch session timeout
# happens in milliseconds. If not specified
# or set to zero, batching session timeout
# defaults to 20 seconds by the modem.
# BATCH_SESSION_TIMEOUT=20000
###################################
# FLP BATCHING ACCURACY
###################################
# Set to one of the defined values below
# to define the accuracy of batching.
# If not specified, accuracy defaults
# to LOW.
# FLP BATCHING ACCURACY values:
# Low accuracy = 0
# Medium accuracy = 1
# High accuracy = 2
ACCURACY=1
####################################
# By default if network fixes are not sensor assisted
# these fixes must be dropped. This parameter adds an exception
# for targets where there is no PDR and we still want to
# report out network fixes
# 0: MUST NOT ALLOW NETWORK FIXES
# 1: ALLOW NETWORK FIXES
####################################
ALLOW_NETWORK_FIXES = 0

View file

@ -1,134 +0,0 @@
###################################
##### ANTENNA INFORMATION #####
###################################
###################################
# ANTENNA INFO VECTOR SIZE
###################################
# The number of antenna info
# structures in the vector. Each
# entry in this vector is a structure
# with the following elements:
#
# - CARRIER_FREQUENCY
# - PC_OFFSET
# - PC_VARIATION_CORRECTION
# - PC_VARIATION_CORRECTION_UNC
# - SIGNAL_GAIN_CORRECTION
# - SIGNAL_GAIN_CORRECTION_UNC
#
# Notes:
# CARRIER_FREQUENCY
# The carrier frequency in MHz.
#
# PC = PHASE CENTER
# PC_OFFSET is a structure with six
# elements: x, y, z and their associated uncertainties
# Phase center offset (PCO) is defined with
# respect to the origin of the Android sensor coordinate system, e.g.,
# center of primary screen for mobiles
#
# PC_VARIATION_CORRECTION
# 2D vectors representing the phase center variation (PCV) corrections,
# in millimeters, at regularly spaced azimuthal angle (theta) and zenith angle
# (phi). The PCV correction is added to the phase measurement to obtain the
# corrected value.
# The azimuthal angle, theta, is defined with respect to the X axis of the
# Android sensor coordinate system, increasing toward the Y axis. The zenith
# angle, phi, is defined with respect to the Z axis of the Android Sensor
# coordinate system, increasing toward the X-Y plane.
# Each row vector (outer vectors) represents a fixed theta. The first row
# corresponds to a theta angle of 0 degrees. The last row corresponds to a
# theta angle of (360 - deltaTheta) degrees, where deltaTheta is the regular
# spacing between azimuthal angles, i.e., deltaTheta = 360 / (number of rows).
# The columns (inner vectors) represent fixed zenith angles, beginning at 0
# degrees and ending at 180 degrees. They are separated by deltaPhi, the regular
# spacing between zenith angles, i.e., deltaPhi = 180 / (number of columns - 1).
#
# PC_VARIATION_CORRECTION_UNC
# 2D vectors of 1-sigma uncertainty in millimeters associated with the PCV
# correction values.
#
# SIGNAL_GAIN_CORRECTION
# 2D vectors representing the signal gain corrections at regularly spaced
# azimuthal angle (theta) and zenith angle (phi). The values are calculated or
# measured at the antenna feed point without considering the radio and receiver
# noise figure and path loss contribution, in dBi, i.e., decibel over isotropic
# antenna with the same total power. The signal gain correction is added the
# signal gain measurement to obtain the corrected value.
# The azimuthal angle, theta, is defined with respect to the X axis of the
# Android sensor coordinate system, increasing toward the Y axis. The zenith
# angle, phi, is defined with respect to the Z axis of the Android Sensor
# coordinate system, increasing toward the X-Y plane.
# Each row vector (outer vectors) represents a fixed theta. The first row
# corresponds to a theta angle of 0 degrees. The last row corresponds to a
# theta angle of (360 - deltaTheta) degrees, where deltaTheta is the regular
# spacing between azimuthal angles, i.e., deltaTheta = 360 / (number of rows).
# The columns (inner vectors) represent fixed zenith angles, beginning at 0
# degrees and ending at 180 degrees. They are separated by deltaPhi, the regular
# spacing between zenith angles, i.e., deltaPhi = 180 / (number of columns - 1).
#
# SIGNAL_GAIN_CORRECTION_UNC
# 2D vectors of 1-sigma uncertainty in dBi associated with the signal
# gain correction values.
#
# The number of rows and columns could be the same for PC variation correction
# and signal gain corrections, or could be different
# If the former then NUMBER_OF_ROWS_ and NUMBER_OF_COLUMNS_ are specified once
# only, if the latter then NUMBER_OF_ROWS_ and NUMBER_OF_COLUMNS_ represent
# the number of rows/columns for PC variation correction and
# NUMBER_OF_ROWS_SGC_ and NUMBER_OF_COLUMNS_SGC_ represent the number of
# rows/columns for signal gain corrections
ANTENNA_INFO_VECTOR_SIZE = 2
CARRIER_FREQUENCY_0 = 1575.42
PC_OFFSET_0 = 1.2 0.1 3.4 0.2 5.6 0.3
NUMBER_OF_ROWS_0 = 3
NUMBER_OF_COLUMNS_0 = 4
PC_VARIATION_CORRECTION_0_ROW_0 = 11.22 33.44 55.66 77.88
PC_VARIATION_CORRECTION_0_ROW_1 = 10.2 30.4 50.6 70.8
PC_VARIATION_CORRECTION_0_ROW_2 = 12.2 34.4 56.6 78.8
PC_VARIATION_CORRECTION_UNC_0_ROW_0 = 0.1 0.2 0.3 0.4
PC_VARIATION_CORRECTION_UNC_0_ROW_1 = 1.1 1.2 1.3 1.4
PC_VARIATION_CORRECTION_UNC_0_ROW_2 = 2.1 2.2 2.3 2.4
SIGNAL_GAIN_CORRECTION_0_ROW_0 = 9.8 8.7 7.6 6.5
SIGNAL_GAIN_CORRECTION_0_ROW_1 = 5.4 4.3 3.2 2.1
SIGNAL_GAIN_CORRECTION_0_ROW_2 = 1.3 2.4 3.5 4.6
SIGNAL_GAIN_CORRECTION_UNC_0_ROW_0 = 0.11 0.22 0.33 0.44
SIGNAL_GAIN_CORRECTION_UNC_0_ROW_1 = 0.55 0.66 0.77 0.88
SIGNAL_GAIN_CORRECTION_UNC_0_ROW_2 = 0.91 0.92 0.93 0.94
CARRIER_FREQUENCY_1 = 1227.6
PC_OFFSET_1 = 3.4 0.2 5.6 0.3 1.2 0.1
NUMBER_OF_ROWS_1 = 4
NUMBER_OF_COLUMNS_1 = 2
NUMBER_OF_ROWS_SGC_1 = 3
NUMBER_OF_COLUMNS_SGC_1 = 4
PC_VARIATION_CORRECTION_1_ROW_0 = 55.66 77.88
PC_VARIATION_CORRECTION_1_ROW_1 = 11.22 33.44
PC_VARIATION_CORRECTION_1_ROW_2 = 56.6 78.8
PC_VARIATION_CORRECTION_1_ROW_3 = 12.2 34.4
PC_VARIATION_CORRECTION_UNC_1_ROW_0 = 0.3 0.4
PC_VARIATION_CORRECTION_UNC_1_ROW_1 = 1.1 1.2
PC_VARIATION_CORRECTION_UNC_1_ROW_2 = 2.1 2.2
PC_VARIATION_CORRECTION_UNC_1_ROW_3 = 0.1 0.2
SIGNAL_GAIN_CORRECTION_1_ROW_0 = 7.6 6.5 5.4 4.3
SIGNAL_GAIN_CORRECTION_1_ROW_1 = 1.3 2.4 9.8 8.7
SIGNAL_GAIN_CORRECTION_1_ROW_2 = 1.4 2.5 3.6 4.7
SIGNAL_GAIN_CORRECTION_UNC_1_ROW_0 = 0.91 0.92 0.55 0.66
SIGNAL_GAIN_CORRECTION_UNC_1_ROW_1 = 0.11 0.22 0.93 0.94
SIGNAL_GAIN_CORRECTION_UNC_1_ROW_2 = 0.95 0.96 0.33 0.44

View file

@ -1,391 +0,0 @@
# Error Estimate
# _SET = 1
# _CLEAR = 0
ERR_ESTIMATE=0
#NTP server
NTP_SERVER=time.xtracloud.net
#XTRA CA path
XTRA_CA_PATH=/usr/lib/ssl-1.1/certs
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
# If DEBUG_LEVEL is commented, Android's logging levels will be used
DEBUG_LEVEL = 2
# Intermediate position report, 1=enable, 0=disable
INTERMEDIATE_POS=0
# supl version 2.0
SUPL_VER=0x20000
# Emergency SUPL, 1=enable, 0=disable
#SUPL_ES=1
#Choose PDN for Emergency SUPL
#1 - Use emergency PDN
#0 - Use regular SUPL PDN for Emergency SUPL
#USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0
#SUPL_MODE is a bit mask set in config.xml per carrier by default.
#If it is uncommented here, this value will overwrite the value from
#config.xml.
#MSA=0X2
#MSB=0X1
SUPL_MODE=3
# GPS Capabilities bit mask
# SCHEDULING = 0x01
# MSB = 0x02
# MSA = 0x04
# ON_DEMAND_TIME = 0x10
# default = ON_DEMAND_TIME | MSA | MSB | SCHEDULING
CAPABILITIES=0x17
# Accuracy threshold for intermediate positions
# less accurate positions are ignored, 0 for passing all positions
# ACCURACY_THRES=5000
################################
##### AGPS server settings #####
################################
# FOR SUPL SUPPORT, set the following
SUPL_HOST=supl.google.com
SUPL_PORT=7275
# FOR MO SUPL SUPPORT, set the following
# MO_SUPL_HOST=supl.host.com or IP
# MO_SUPL_PORT=1234
# FOR C2K PDE SUPPORT, set the following
# C2K_HOST=c2k.pde.com or IP
# C2K_PORT=1234
# Bitmask of slots that are available
# for write/install to, where 1s indicate writable,
# and the default value is 0 where no slots
# are writable. For example, AGPS_CERT_WRITABLE_MASK
# of b1000001010 makes 3 slots available
# and the remaining 7 slots unwritable.
#AGPS_CERT_WRITABLE_MASK=0
####################################
# LTE Positioning Profile Settings
####################################
# LPP_PROFILE is a bit mask
# 0: Enable RRLP on LTE(Default)
# 0x1: LPP User Plane
# 0x2: LPP Control Plane
# 0x4: LPP User Plane for NR5G
# 0x8: LPP Control Plane for NR5G
LPP_PROFILE = 3
####################################
#Datum Type
####################################
# 0: WGS-84
# 1: PZ-90
DATUM_TYPE = 0
################################
# EXTRA SETTINGS
################################
# NMEA provider (1=Modem Processor, 0=Application Processor)
NMEA_PROVIDER=0
################################
# NMEA TAG BLOCK GROUPING
################################
# NMEA tag block grouping is only applicable to GSA
# Default is disabled
# 0 - disabled
# 1 - enabled
NMEA_TAG_BLOCK_GROUPING_ENABLED = 0
# Customized NMEA GGA fix quality that can be used to tell
# whether SENSOR contributed to the fix.
#
# When this configuration item is not enabled (set to any value that is not 1),
# GGA fix quality conforms to NMEA standard spec as below:
# PPP/DGNSS/SBAS correction fix w/ or w/o sensor: 2
# RTK fixed fix w/ or w/o sensor: 4
# RTK float fix w/ or w/o sensor: 5
# SPE fix w/ or w/o sensor: 1
# Sensor dead reckoning fix: 6
#
# When this configuration is enabled (set to 1), GGA fix quality
# will be output as below:
# PPP fix w/o sensor: 59, w/ sensor: 69
# DGNSS/SBAS correction fix w/o sensor: 2, w/ sensor: 62
# RTK fixed fix w/o sensor: 4, w/ sensor: 64
# RTK float fix w/o sensor: 5, w/ sensor: 65,
# SPE fix w/o sensor: 1, and w/ sensor: 61
# Sensor dead reckoning fix: 6
#
# any value that is not 1 - disabled
# 1 - enabled
CUSTOM_NMEA_GGA_FIX_QUALITY_ENABLED = 0
################################
# NMEA Reporting Rate Config, valid only when NMEA_PROVIDER is set to "0"
################################
# NMEA Reporting Rate
# Set it to "1HZ" for 1Hz NMEA Reporting
# Set it to "NHZ" for NHz NMEA Reporting
#Default : NHZ (overridden by position update rate if set to lower rates)
NMEA_REPORT_RATE=NHZ
# Mark if it is a SGLTE target (1=SGLTE, 0=nonSGLTE)
SGLTE_TARGET=0
##################################################
# Select Positioning Protocol on A-GLONASS system
##################################################
# 0x1: RRC CPlane
# 0x2: RRLP UPlane
# 0x4: LLP Uplane
A_GLONASS_POS_PROTOCOL_SELECT = 0
##################################################
# Select technology for LPPe Control Plane
##################################################
# 0x1: DBH for LPPe CP
# 0x2: WLAN AP Measurements for LPPe CP
# 0x4: SRN AP measurement for CP
# 0x8: Sensor Barometer Measurement LPPe CP
LPPE_CP_TECHNOLOGY = 0xb
##################################################
# Select technology for LPPe User Plane
##################################################
# 0x1: DBH for LPPe UP
# 0x2: WLAN AP Measurements for LPPe UP
# 0x4: SRN AP measurement for UP
# 0x8: Sensor Barometer Measurement LPPe UP
#LPPE_UP_TECHNOLOGY = 0
##################################################
# AGPS_CONFIG_INJECT
##################################################
# enable/disable injection of AGPS configurations:
# SUPL_VER
# SUPL_HOST
# SUPL_PORT
# MO_SUPL_HOST
# MO_SUPL_PORT
# C2K_HOST
# C2K_PORT
# LPP_PROFILE
# A_GLONASS_POS_PROTOCOL_SELECT
# 0: disable
# 1: enable
AGPS_CONFIG_INJECT = 1
##################################################
# GNSS settings for automotive use cases
# Configurations in following section are
# specific to automotive use cases, others
# please do not change, keep the default values
##################################################
# AP Coarse Timestamp Uncertainty
##################################################
# default : 10
# AP time stamp uncertainty, until GNSS receiver
# is able to acquire better timing information
AP_TIMESTAMP_UNCERTAINTY = 10
#####################################
# DR_SYNC Pulse Availability
#####################################
# 0 : DR_SYNC pulse not available (default)
# 1 : DR_SYNC pulse available
# This configuration enables the driver to make use
# of PPS events generated by DR_SYNC pulse
# Standard Linux PPS driver needs to be enabled
DR_SYNC_ENABLED = 0
#####################################
# PPS Device name
#####################################
PPS_DEVICENAME = /dev/pps0
#####################################
# Ignore PPS at Startup and after long outage
#####################################
IGNORE_PPS_PULSE_COUNT = 1
#####################################
# Long GNSS RF outage in seconds
#####################################
GNSS_OUTAGE_DURATION = 10
#####################################
# AP Clock Accuracy
#####################################
# Quality of APPS processor clock (in PPM).
# Value specified is used for calculation of
# APPS time stamp uncertainty
AP_CLOCK_PPM = 100
#####################################
# MAX ms difference to detect missing pulse
#####################################
# Specifies time threshold in ms to validate any missing PPS pulses
MISSING_PULSE_TIME_DELTA = 900
#####################################
# Propagation time uncertainty
#####################################
# This settings enables time uncertainty propagation
# logic incase of missing PPS pulse
PROPAGATION_TIME_UNCERTAINTY = 1
#######################################
# APN / IP Type Configuration
# APN and IP Type to use for setting
# up WWAN call.
# Use below values for IP Type:
# v4 = 4
# v6 = 6
# v4v6 = 10
#######################################
# INTERNET_APN = abc.xyz
# INTERNET_IP_TYPE = 4
# SUPL_APN = abc.xyz
# SUPL_IP_TYPE = 4
#####################################
# Modem type
#####################################
# This setting configures modem type
# (external=0 or internal=1)
# comment out the next line to vote
# for the first modem in the list
MODEM_TYPE = 1
##################################################
# CONSTRAINED TIME UNCERTAINTY MODE
##################################################
# 0 : disabled (default)
# 1 : enabled
# This setting enables GPS engine to keep its time
# uncertainty below the specified constraint
#CONSTRAINED_TIME_UNCERTAINTY_ENABLED = 0
# If constrained time uncertainty mode is enabled,
# this setting specifies the time uncertainty
# threshold that gps engine need to maintain.
# In unit of milli-seconds.
# Default is 0.0 meaning that modem default value
# of time uncertainty threshold will be used.
#CONSTRAINED_TIME_UNCERTAINTY_THRESHOLD = 0.0
# If constrained time uncertainty mode is enabled,
# this setting specifies the power budget that
# gps engine is allowed to spend to maintain the time
# uncertainty.
# Default is 0 meaning that GPS engine is not constained
# by power budget and can spend as much power as needed.
# In unit of 0.1 milli watt second.
#CONSTRAINED_TIME_UNCERTAINTY_ENERGY_BUDGET = 0
##################################################
# POSITION ASSISTED CLOCK ESTIMATOR
##################################################
# 0 : disabled (default)
# 1 : enabled
# This setting enables GPS engine to estimate clock
# bias and drift when the signal from at least 1
# SV is available and the UEs position is known by
# other position engines.
#POSITION_ASSISTED_CLOCK_ESTIMATOR_ENABLED = 0
#####################################
# proxyAppPackageName
#####################################
# This is a string that is sent to the framework
# in nfwNotifyCb callback
PROXY_APP_PACKAGE_NAME = com.oneplus.carrierlocation
#####################################
# CP_MTLR_ES
#####################################
# CP MTLR ES, 1=enable, 0=disable
CP_MTLR_ES=0
##################################################
# GNSS_DEPLOYMENT
##################################################
# 0 : Enable QTI GNSS (default)
# 1 : Enable QCSR SS5
# 2 : Enable PDS API
# This setting use to select between QTI GNSS,
# QCSR SS5 hardware receiver, and PDS API.
# By default QTI GNSS receiver is enabled.
# GNSS_DEPLOYMENT = 0
##################################################
## LOG BUFFER CONFIGURATION
##################################################
#LOG_BUFFER_ENABLED, 1=enable, 0=disable
#*_LEVEL_TIME_DEPTH, maximum time depth of level *
#in log buffer, unit is second
#*_LEVEL_MAX_CAPACITY, maximum numbers of level *
#log print sentences in log buffer
LOG_BUFFER_ENABLED = 0
E_LEVEL_TIME_DEPTH = 600
E_LEVEL_MAX_CAPACITY = 50
W_LEVEL_TIME_DEPTH = 500
W_LEVEL_MAX_CAPACITY = 100
I_LEVEL_TIME_DEPTH = 400
I_LEVEL_MAX_CAPACITY = 200
D_LEVEL_TIME_DEPTH = 30
D_LEVEL_MAX_CAPACITY = 300
V_LEVEL_TIME_DEPTH = 200
V_LEVEL_MAX_CAPACITY = 400
##################################################
# Allow buffer diag log packets when diag memory allocation
# fails during boot up time.
##################################################
BUFFER_DIAG_LOGGING = 1
#######################################
# NTRIP CLIENT LIBRARY NAME
#######################################
# NTRIP_CLIENT_LIB_NAME =
##################################################
# Correction Data Framework settings
# Default values:
# CDFW_SOURCE_PRIORITY_1 = INTERNAL_1 RTCM
# CDFW_INJECT_DATA_INTERVAL = 600000 //10 mins
# CDFW_RTCM_MESSAGE_INTERVAL = 1000 //1 second
#
# If multiple sources coexist on a PL,
# the prorioty sequence can be set by the integer number.
# PRIORITY_1 is higher than PRIORITY_2, for example,
# CDFW_SOURCE_PRIORITY_1 = INTERNAL_1 RTCM
# CDFW_SOURCE_PRIORITY_2 = CV2X RTCM
##################################################
##################################################
# RF LOSS
# The loss in 0.1 dbHz from the C/N0 at the antenna port
# These values must be configured by OEM if not
# supported in QMI LOC message
# There is one entry for each signal type
##################################################
RF_LOSS_GPS = 0
RF_LOSS_GPS_L5 = 0
RF_LOSS_GLO_LEFT = 0
RF_LOSS_GLO_CENTER = 0
RF_LOSS_GLO_RIGHT = 0
RF_LOSS_BDS = 0
RF_LOSS_BDS_B2A = 0
RF_LOSS_GAL = 0
RF_LOSS_GAL_E5 = 0
RF_LOSS_NAVIC = 0

View file

@ -1,277 +0,0 @@
#########################################
# Log verbosity control for izat modules
#########################################
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5
IZAT_DEBUG_LEVEL = 2
##################################################
# Select WIFI Wait Timeout value in seconds for SUPL
##################################################
WIFI_WAIT_TIMEOUT_SELECT = 0
##################################################
# Time interval of injecting SRN scan data to modem
# time in seconds.
# Note: recommended value is between 1-5 sec
##################################################
LPPE_SRN_DATA_SCAN_INJECT_TIME=2
################################
# NLP Settings
################################
# NLP_MODE 1: OSNLP Only, 2: QNP Only, 3: Combo, 4: QNP preferred
# For Automotive products, please use NLP_MODE = 4 only.
# NLP_TOLERANCE_TIME_FIRST: Time in ms used in Combo mode
# to determine how much Tolerance for first position
# NLP_TOLERANCE_TIME_AFTER: Time in ms used in Combo mode
# to determine how much Tolerance for positions after first
# NLP_THRESHOLD: Sets how many failures needed before
# switching preferred NLP in Combo mode
# NLP_ACCURACY_MULTIPLE: Determines how far off the accuracy
# must be, in multiples, between two NLP location reports to
# be considered much worse accuracy. Used in switching logic
# NLP COMBO MODE USES QNP WITH NO EULA CONSENT: Determines
# whether or not to still send network location requests to
# QNP when the EULA is not consented to by the user. QNP can
# still return ZPP locations or injected locations even
# without EULA consent, but the uncertainty can be high.
# QNP preferred mode prefers QNP when there is EULA consent,
# otherwise OSNLP is used.
NLP_MODE = 1
NLP_MODE_EMERGENCY = 2
NLP_TOLERANCE_TIME_FIRST = 5000
NLP_TOLERANCE_TIME_AFTER = 20000
NLP_THRESHOLD = 3
NLP_ACCURACY_MULTIPLE = 2
NLP_COMBO_MODE_USES_QNP_WITH_NO_EULA_CONSENT = 1
#########################################
# NLP PACKAGE SETTINGS
#########################################
# OSNLP_PACKAGE: name of default NLP package
OSNLP_PACKAGE = com.google.android.gms
# REGION_OSNLP_PACKAGE:
# This value will be used as alternative
# for particular region where default NLP is not functional.
#REGION_OSNLP_PACKAGE =
###################################
# GEOFENCE SERVICES
###################################
# If set to one of the defined values below, it will override
# the responsiveness for geofence services, which implements
# the Proximity Alert API. If not set to a value defined below,
# which is default, it will not override the responsivness.
# The geofence HAL API is unaffected by this value.
# GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE Values:
# 1: LOW responsiveness
# 2: MEDIUM responsiveness
# 3: HIGH responsiveness
GEOFENCE_SERVICES_RESPONSIVENESS_OVERRIDE = 0
#####################################
#GTP Opt-In app
#####################################
#GTP privacy policy version url
#https support is required
GTP_PRIVACY_VERSION_URL = https://info.izatcloud.net/privacy/version.html
#GTP privacy policy version download retry interval
#unit is second. default is 86400
GTP_PRIVACY_RETRY_INTERVAL = 86400
#####################################
# IZAT PREMIUM FEATURE SETTINGS
#####################################
#Possible states of a feature:
#DISABLED
#BASIC
#PREMIUM
#GTP_MODE valid modes:
# DISABLED
# LEGACY_WWAN
# SDK (WWAN not available for Modems before LocTech 10.0)
# SDK_WIFI (WWAN provided by legacy Modem)
GTP_MODE=DISABLED
#GTP_WAA valid modes:
# DISABLED
# BASIC
GTP_WAA=DISABLED
#SAP valid modes:
# DISABLED
# BASIC
# PREMIUM
# PREMIUM_ENV_AIDING
# MODEM_DEFAULT
SAP=PREMIUM
#FREE_WIFI_SCAN_INJECT valid modes:
#DISABLED
#BASIC
FREE_WIFI_SCAN_INJECT=BASIC
#SUPL_WIFI valid modes:
#DISABLED
#BASIC
SUPL_WIFI=BASIC
#WIFI_SUPPLICANT_INFO valid modes:
#DISABLED
#BASIC
WIFI_SUPPLICANT_INFO=BASIC
#####################################
# Location process launcher settings
#####################################
# DO NOT MODIFY
# Modifying below attributes without
# caution can have serious implications.
#Values for PROCESS_STATE:
# ENABLED
# DISABLED
#Values for LOW_RAM_TARGETS:
# ENABLED
# DISABLED
# Property to enable/disable processes for low ram targets. Uses ro.config.low_ram property
# to identify low ram targets.
#PROCESS_NAME
# Name of the executable file.
#FEATURE MASKS:
# GTP-WIFI 0X03
# GTP-MP-CELL 0xc00
# GTP-WAA 0x100
# SAP 0Xc0
# ODCPI 0x1000
# FREE_WIFI_SCAN_INJECT 0x2000
# SUPL_WIFI 0x4000
# WIFI_SUPPLICANT_INFO 0x8000
#Values for PLATFORMS can be:
#1. Any valid values obtained from ro.board.platform separated by single space. For example: msm8960 msm8226
#2. 'all' or 'all exclude' -> for All platforms
#3. 'all exclude XXXX' -> All platforms exclude XXXX. For example: all exclude msm8937
#Values for SOC_IDS can be:
#1. Any valid values obtained from soc_id node separated by single space. For example: 339 386 436
## soc_id value can be obtained from any one of below node:
## - /sys/devices/soc0/soc_id
## - /sys/devices/system/soc/soc0/id
#2. 'all' or 'all exclude' -> for All soc id's
#3. 'all exclude XXXX' -> All soc id's exclude XXXX. For example: all exclude 339 386
#Values for BASEBAND can be:
#1. Any valid values obtained from ro.baseband separated by single space. For example: sglte sglte2
#2. 'all' or 'all exclude' -> for all basebands
#3. 'all exclude XXXX' -> All basebands exclude XXXX. For example: all exclude sglte
PROCESS_NAME=lowi-server
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=gps wifi inet oem_2901
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0xf303
PLATFORMS=all
SOC_IDS=all
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=0
PROCESS_NAME=xtwifi-inet-agent
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xc03
PLATFORMS=all
SOC_IDS=all exclude 386 436
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=1
PROCESS_NAME=xtwifi-client
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=wifi inet gps system oem_2904
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xd03
PLATFORMS=all
SOC_IDS=all exclude 386 436
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=1
PROCESS_NAME=slim_daemon
PROCESS_ARGUMENT=
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps oem_2901 can plugdev diag sensors
PREMIUM_FEATURE=1
IZAT_FEATURE_MASK=0xf0
PLATFORMS=all
SOC_IDS=all exclude 386 436
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=1
PROCESS_NAME=xtra-daemon
PROCESS_ARGUMENT=
PROCESS_STATE=ENABLED
PROCESS_GROUPS=inet gps system
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
SOC_IDS=all
BASEBAND=all
LOW_RAM_TARGETS=ENABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=0
########################################
# Engine Service which host DRE module #
# To enable DRE engine service, change #
# PROCESS_STATE=ENABLED #
########################################
PROCESS_NAME=engine-service
PROCESS_ARGUMENT=DRE-INT libloc_epDr.so
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps diag inet qwes oem_2901 system
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
SOC_IDS=all
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=1
########################################
# Engine Service which host PPE module #
# To enable PPE engine service, change #
# PROCESS_STATE=ENABLED #
# and update process arugements #
# with PPE library name #
#PROCESS_ARGUMENT=PPE libepsimulator.so#
########################################
PROCESS_NAME=engine-service
PROCESS_ARGUMENT=PPE libepsimulator.so
PROCESS_STATE=DISABLED
PROCESS_GROUPS=gps diag inet qwes oem_2901 system
PREMIUM_FEATURE=0
IZAT_FEATURE_MASK=0
PLATFORMS=all
SOC_IDS=all
BASEBAND=all
LOW_RAM_TARGETS=DISABLED
HARDWARE_TYPE=all
VENDOR_ENHANCED_PROCESS=1

View file

@ -1,27 +0,0 @@
#*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
#
# LOWI Config file - default
#
# GENERAL DESCRIPTION
# This file contains the config params for LOWI
#
# Copyright (c) 2019 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
#
# 2012-2013 Qualcomm Atheros, Inc.
# All Rights Reserved.
# Qualcomm Atheros Confidential and Proprietary.
#
# Export of this technology or software is regulated by the U.S. Government.
# Diversion contrary to U.S. law prohibited.
#=============================================================================*/
# X86 ONLY - UBUNTU:
# Copy this file in the same directory where the executable is
# Log level
# EL_LOG_OFF = 0, EL_ERROR = 1, EL_WARNING = 2, EL_INFO = 3, EL_DEBUG = 4, EL_VERBOSE = 5, EL_LOG_ALL = 100
LOWI_LOG_LEVEL = 2
LOWI_USE_LOWI_LP = 0

View file

@ -1,179 +0,0 @@
################################
# Sensor Settings
################################
#The following parameters are optional.
#Internal defaults support MEMS sensors
#native to most handset devices.
#Device specific sensor characterization
#for improved performance is possible as
#described in SAP application notes.
#GYRO_BIAS_RANDOM_WALK=
#ACCEL_RANDOM_WALK_SPECTRAL_DENSITY=
#ANGLE_RANDOM_WALK_SPECTRAL_DENSITY=
#RATE_RANDOM_WALK_SPECTRAL_DENSITY=
#VELOCITY_RANDOM_WALK_SPECTRAL_DENSITY=
# DEBUG LEVELS: 0 - none, 1 - Error, 2 - Warning, 3 - Info
# 4 - Debug, 5 - Verbose
# If DEBUG_LEVEL is commented, Android's logging levels will be used
DEBUG_LEVEL = 0
# Sensor Sampling Rate Parameters for Low-Data Rate Filter (should be greater than 0)
# used in loc_eng_reinit
SENSOR_ACCEL_BATCHES_PER_SEC=2
SENSOR_ACCEL_SAMPLES_PER_BATCH=5
SENSOR_GYRO_BATCHES_PER_SEC=2
SENSOR_GYRO_SAMPLES_PER_BATCH=5
# Sensor Sampling Rate Parameters for High-Data Rate Filter (should be greater than 0)
SENSOR_ACCEL_BATCHES_PER_SEC_HIGH=4
SENSOR_ACCEL_SAMPLES_PER_BATCH_HIGH=25
SENSOR_GYRO_BATCHES_PER_SEC_HIGH=4
SENSOR_GYRO_SAMPLES_PER_BATCH_HIGH=25
# Sensor Control Mode (0=AUTO, 1=FORCE_ON, 2=MODEM_DEFAULT)
# used in loc_eng_reinit
SENSOR_CONTROL_MODE=2
# Bit mask used to define which sensor algorithms are used.
# Setting each bit has the following definition:
# 0x1 - DISABLE_INS_POSITIONING_FILTER
# 0x0 - ENABLE_INS_POSITIONING_FILTER
SENSOR_ALGORITHM_CONFIG_MASK=0x0
#Vehicle Network Provider configuration
#Service configuration strings
#The number before colon in VN_X items defines version of the format of the rest of the string
#VN_ACCEL_CFG=0:5
#VN_GYRO_CFG=0:5.5
#VN_ODOMETRY_CFG=0:2,4.5
################################################
# QDR3 configurations #
################################################
#VN_SPEED_CFG=1:131,5,8,1,2,3,1,1,9,2,14,2
#VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8
VN_SPEED_CFG=1:777,0,0,1,3,1,0.002778,0,40,8,32,8
VN_GEAR_CFG=1:422,20,4,0,4,1,9,0,1,2,3,4,5,6,7,8
################################################
# QDR2-Gyro configurations #
################################################
#VN_GYRO_CFG=1:555,0,1,0,0,0,0,-6.5,6.6066,-6.5,-1.00,2,6.607,6.6068,0,0,16,0.0002,0,16,0.0002,0,16,0.0002
#VN_SPEED_CFG=1:555,0,0,1,2,1,0.01,0,56,8,48,8
#VN_GEAR_CFG=1:555,16,4,0,1,1,9,0,1,2,3,4,5,6,7,8
################################################
# QDR2-DWT configurations #
################################################
#VN_SPEED_CFG=1:555,22,1,2,1,1,1,0,8,8,23,1,2,0,1,0,8,8,23,1
#VN_GEAR_CFG=1:555,12,4,16,14,16,8,1,2,3,4,5,6,7,8
#VN_DWS_CFG=1:555,0,0,1,3,1,1,0,0,8,0,0,8,8,0,0,16,8,0,0,24,8,0,0
#VN_GYRO_CFG=1:555,40,16,1.0,40,16,1.0,40,16,1.0
#####################################################################################
# VNW service batching configuration strings #
# VNW provider will initialize default type as Time based batching #
# Each service batch value is configured to be 100 #
# VN_ACCEL_CFG_BATCH_VALUE will be treated as time in Ms if VN_CFG_BATCH_TYPE #
# is set to time based batching #
# VN_ACCEL_CFG_BATCH_VALUE will be treated as sample count if VN_CFG_BATCH_TYPE #
# is set to count based batching #
# Uncomment and update batch time /sample count as per selected batching type #
#####################################################################################
# Batching type
# 1 - Time based (default)
# 2 - Count based
VN_CFG_BATCH_TYPE=1
#Vehicle Accel batching value, it can either accept time in milli seconds or sample count
#VN_ACCEL_CFG_BATCH_VALUE=100
#Vehicle Gyro batching value, it can either accept time in milli seconds or sample count
VN_GYRO_CFG_BATCH_VALUE=50
#Vehicle Odo batching value, it can either accept time in milli seconds or sample count
#VN_ODOMETRY_CFG_BATCH_VALUE=100
#Vehicle Speed batching value, it can either accept time in milli seconds or sample count
VN_SPEED_CFG_BATCH_VALUE=50
#Vehicle Gear batching value, it can either accept time in milli seconds or sample count
VN_GEAR_CFG_BATCH_VALUE=50
#Vehicle DWS batching value, it can either accept time in milli seconds or sample count
#VN_DWS_CFG_BATCH_VALUE=100
####################################################################################
#Procesors clock ratio: AP and CAN bus microcontroller
################################################
# QDR3 configurations #
################################################
VN_PROC_CLOCK_RATIO=1.0
################################################
# QDR2-DWT OR QDR2-Gyro configurations #
################################################
#VN_PROC_CLOCK_RATIO = 1.0
# Time source used by Sensor HAL
# Setting this value controls accuracy of location sensor services.
# 0 - Unknown
# 1 - CLOCK_BOOTTIME
# 2 - CLOCK_MONOTONIC
# 3 - CLOCK_REALTIME
# 4 - CLOCK_BOOTTIME using Alarm timer interface
NDK_PROVIDER_TIME_SOURCE=1
# Sensor Batching Configuration
# 0 - Time based
# 1 - Fixed count based
# 2 - Variable count based
COUNT_BASED_BATCHING=1
SYNC_ONCE=0
# Vehicle Network Data optimization
# Default value: 0
# Value 0x40000 - Speed(bit 18 eSLIM_SERVICE_VEHICLE_SPEED)
# Value 0x80000 - Speed(bit 19 eSLIM_SERVICE_VEHICLE_DWS)
# Value 0x100000 - Speed(bit 20 eSLIM_SERVICE_VEHICLE_GEAR)
VN_ENABLE_DATA_OPTIMIZATION=0x100000
# Vehicle Network Data Routing time interval
# This is applicable only if VN_ENABLE_DATA_OPTIMIZATION value is set
# Default value: 5000 msec
VN_DATA_ROUTING_TIME_INTERVAL_MSEC=3000
#Sensor HAL Provider Configuration HAL Library name including path
################################################
# #
# Configuration for BMI 160 Sensor #
# #
################################################
#SENSOR_TYPE=2
#SENSOR_HAL_LIB_PATH=/usr/lib/libbmi160sensors.so.1
################################################
# #
# Configuration for ASM330 Sensor #
# #
################################################
SENSOR_TYPE=1
SENSOR_HAL_LIB_PATH=/usr/lib/libasm330sensors.so.1
################################################
# #
# Configuration for IAM20680 Sensor #
# #
################################################
#SENSOR_TYPE=3
#SENSOR_HAL_LIB_PATH=/usr/lib/libiam20680sensors.so.1
################################################
# #
# Configuration for SMI130 Sensor #
# #
################################################
#SENSOR_TYPE=4
#SENSOR_HAL_LIB_PATH=/usr/lib/libsmi130sensors.so.1

View file

@ -1,78 +0,0 @@
#GTP AP Project client core config file
#
#GENERAL DESCRIPTION
#This is used by client core
#
#Copyright (c) 2012-2014 Qualcomm Atheros, Inc.
#All Rights Reserved.
#Qualcomm Atheros Confidential and Proprietary.
#
#Copyright (c) 2017 Qualcomm Technologies, Inc.
#All Rights Reserved.
#Confidential and Proprietary - Qualcomm Technologies, Inc.
##############################################################################
# non-IOT devices configuration items #
# For non-IOT devices, configure below configuration items #
# according to the app note: 80-NK218-1 and remove the configuration items #
# in section of "IOT devices configuration items". #
##############################################################################
# ASN URI v2 to be used by some GTP AP modules that
# need to run with ASN URI v2 protocol.
XT_SERVER_ROOT_URL = https://gtp1.izatcloud.net:443/uds/v2
# ASN URI v3 to be used by GTP AP modules that
# can support ASN URI v3 protocol.
XT_SERVER_ROOT_URL_V3 = https://gtp1.izatcloud.net:443/uds/v3
# size, in bytes, of the cache on device
SIZE_BYTE_TOTAL_CACHE = 5000000
##############################################################################
# IOT devices configuration items #
# For IOT devices, configure below configuration items #
# according to the app note and remove the configuration items in section of #
# "non-IOT devices configuration items". #
##############################################################################
# ASN URI v3 to be used by GTP AP modules that
# can support ASN URI v3 protocol.
# XT_SERVER_ROOT_URL_V3 = https://gtpma1.izatcloud.net:443/uds/v3
# 3: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed
# for any GTP requests, instead notification is sent to Izat SDK.
# WiFi crowdsourcing module is disabled.
# 4: Wi-Fi APDB injection via Izat SDK. GTP server is not accessed
# for any GTP requests, instead notification is sent to Izat SDK.
# WiFi crowdsourcing module is active, also accessed via Izat SDK.
# GTP_AP_MODE = 4
# 1: MP cell features relies on GTP AP for either download or upload
# 0: MP cell features does not rely on GTP AP
# GTP_AP_NEEDED_BY_MP_CELL = 1
##############################################################################
# Configuration items applicable to all devices #
##############################################################################
# Log verbosity control for most of the GTP WiFi system, including native and
# Java componenets
# OFF = 0, ERROR = 1, WARNING = 2, INFO = 3, DEBUG = 4, VERBOSE = 5, ALL = 100
DEBUG_GLOBAL_LOG_LEVEL = 2
# this is used at the server side to distinguish uploads from different maker/model
# default "Qualcomm"
OEM_ID_IN_REQUEST_TO_SERVER = "Qualcomm"
# this is used at the server side to distinguish uploads from different maker/model
# default "UNKNOWN"
MODEL_ID_IN_REQUEST_TO_SERVER = "UNKNOWN"
##############################################################################
# Qualcomm Network Location Provider config #
##############################################################################
# Accuracy Threshold for NLP position. Position exceeds thsi threshold will be filtered out.
# Default is 25000 meters.
LARGE_ACCURACY_THRESHOLD_TO_FILTER_NLP_POSITION = 25000

View file

@ -1,41 +0,0 @@
//
// Copyright (C) 2018 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.
//
cc_library {
name: "libgptutils.oneplus_holi",
vendor: true,
recovery_available: true,
shared_libs: [
"libcutils",
"liblog",
"libz",
],
cflags: [
"-Wall",
"-Werror",
"-D_BSG_FRAMEWORK_KERNEL_HEADERS",
],
srcs: [
"gpt-utils.cpp",
"recovery-ufs-bsg.cpp",
],
owner: "qti",
header_libs: [
"generated_kernel_headers",
],
export_include_dirs: ["."],
}

File diff suppressed because it is too large Load diff

View file

@ -1,193 +0,0 @@
/*
* Copyright (c) 2013,2016,2020 The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __GPT_UTILS_H__
#define __GPT_UTILS_H__
#include <vector>
#include <string>
#include <map>
#ifdef __cplusplus
extern "C" {
#endif
#include <unistd.h>
#include <stdlib.h>
/******************************************************************************
* GPT HEADER DEFINES
******************************************************************************/
#define GPT_SIGNATURE "EFI PART"
#define HEADER_SIZE_OFFSET 12
#define HEADER_CRC_OFFSET 16
#define PRIMARY_HEADER_OFFSET 24
#define BACKUP_HEADER_OFFSET 32
#define FIRST_USABLE_LBA_OFFSET 40
#define LAST_USABLE_LBA_OFFSET 48
#define PENTRIES_OFFSET 72
#define PARTITION_COUNT_OFFSET 80
#define PENTRY_SIZE_OFFSET 84
#define PARTITION_CRC_OFFSET 88
#define TYPE_GUID_OFFSET 0
#define TYPE_GUID_SIZE 16
#define PTN_ENTRY_SIZE 128
#define UNIQUE_GUID_OFFSET 16
#define FIRST_LBA_OFFSET 32
#define LAST_LBA_OFFSET 40
#define ATTRIBUTE_FLAG_OFFSET 48
#define PARTITION_NAME_OFFSET 56
#define MAX_GPT_NAME_SIZE 72
/******************************************************************************
* AB RELATED DEFINES
******************************************************************************/
//Bit 48 onwords in the attribute field are the ones where we are allowed to
//store our AB attributes.
#define AB_FLAG_OFFSET (ATTRIBUTE_FLAG_OFFSET + 6)
#define GPT_DISK_INIT_MAGIC 0xABCD
#define AB_PARTITION_ATTR_SLOT_ACTIVE (0x1<<2)
#define AB_PARTITION_ATTR_BOOT_SUCCESSFUL (0x1<<6)
#define AB_PARTITION_ATTR_UNBOOTABLE (0x1<<7)
#define AB_SLOT_ACTIVE_VAL 0x3F
#define AB_SLOT_INACTIVE_VAL 0x0
#define AB_SLOT_ACTIVE 1
#define AB_SLOT_INACTIVE 0
#define AB_SLOT_A_SUFFIX "_a"
#define AB_SLOT_B_SUFFIX "_b"
#define PTN_XBL "xbl"
#define PTN_XBL_CFG "xbl_config"
#define PTN_SWAP_LIST PTN_XBL, PTN_XBL_CFG, "sbl1", "rpm", "tz", "aboot", "abl", "hyp", "lksecapp", "keymaster", "cmnlib", "cmnlib32", "cmnlib64", "pmic", "apdp", "devcfg", "hosd", "keystore", "msadp", "mdtp", "mdtpsecapp", "dsp", "aop", "qupfw", "vbmeta", "dtbo", "imagefv", "ImageFv", "multiimgoem", "multiimgqti", "uefisecapp", "vm-bootsys", "shrm", "cpucp"
#define AB_PTN_LIST PTN_SWAP_LIST, "boot", "vendor_boot", "system", "vendor", "odm", "modem", "bluetooth"
#define BOOT_DEV_DIR "/dev/block/bootdevice/by-name"
/******************************************************************************
* HELPER MACROS
******************************************************************************/
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
/******************************************************************************
* TYPES
******************************************************************************/
enum boot_update_stage {
UPDATE_MAIN = 1,
UPDATE_BACKUP,
UPDATE_FINALIZE
};
enum gpt_instance {
PRIMARY_GPT = 0,
SECONDARY_GPT
};
enum boot_chain {
NORMAL_BOOT = 0,
BACKUP_BOOT
};
struct gpt_disk {
//GPT primary header
uint8_t *hdr;
//primary header crc
uint32_t hdr_crc;
//GPT backup header
uint8_t *hdr_bak;
//backup header crc
uint32_t hdr_bak_crc;
//Partition entries array
uint8_t *pentry_arr;
//Partition entries array for backup table
uint8_t *pentry_arr_bak;
//Size of the pentry array
uint32_t pentry_arr_size;
//Size of each element in the pentry array
uint32_t pentry_size;
//CRC of the partition entry array
uint32_t pentry_arr_crc;
//CRC of the backup partition entry array
uint32_t pentry_arr_bak_crc;
//Path to block dev representing the disk
char devpath[PATH_MAX];
//Block size of disk
uint32_t block_size;
uint32_t is_initialized;
};
/******************************************************************************
* FUNCTION PROTOTYPES
******************************************************************************/
int prepare_boot_update(enum boot_update_stage stage);
//GPT disk methods
struct gpt_disk* gpt_disk_alloc();
//Free previously allocated gpt_disk struct
void gpt_disk_free(struct gpt_disk *disk);
//Get the details of the disk holding the partition whose name
//is passed in via dev
int gpt_disk_get_disk_info(const char *dev, struct gpt_disk *disk);
//Get pointer to partition entry from a allocated gpt_disk structure
uint8_t* gpt_disk_get_pentry(struct gpt_disk *disk,
const char *partname,
enum gpt_instance instance);
//Update the crc fields of the modified disk structure
int gpt_disk_update_crc(struct gpt_disk *disk);
//Write the contents of struct gpt_disk back to the actual disk
int gpt_disk_commit(struct gpt_disk *disk);
//Return if the current device is UFS based or not
int gpt_utils_is_ufs_device();
//Swtich betwieen using either the primary or the backup
//boot LUN for boot. This is required since UFS boot partitions
//cannot have a backup GPT which is what we use for failsafe
//updates of the other 'critical' partitions. This function will
//not be invoked for emmc targets and on UFS targets is only required
//to be invoked for XBL.
//
//The algorithm to do this is as follows:
//- Find the real block device(eg: /dev/block/sdb) that corresponds
// to the /dev/block/bootdevice/by-name/xbl(bak) symlink
//
//- Once we have the block device 'node' name(sdb in the above example)
// use this node to to locate the scsi generic device that represents
// it by checking the file /sys/block/sdb/device/scsi_generic/sgY
//
//- Once we locate sgY we call the query ioctl on /dev/sgy to switch
//the boot lun to either LUNA or LUNB
int gpt_utils_set_xbl_boot_partition(enum boot_chain chain);
//Given a vector of partition names as a input and a reference to a map,
//populate the map to indicate which physical disk each of the partitions
//sits on. The key in the map is the path to the block device where the
//partiton lies and the value is a vector of strings indicating which of
//the passed in partiton names sits on that device.
int gpt_utils_get_partition_map(std::vector<std::string>& partition_list,
std::map<std::string,std::vector<std::string>>& partition_map);
#ifdef __cplusplus
}
#endif
#endif /* __GPT_UTILS_H__ */

View file

@ -1,255 +0,0 @@
/*
* Copyright (c) 2020 The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define LOG_TAG "recovery_ufs"
#include "recovery-ufs-bsg.h"
#ifndef _BSG_FRAMEWORK_KERNEL_HEADERS
#ifndef _GENERIC_KERNEL_HEADERS
#include <scsi/ufs/ioctl.h>
#include <scsi/ufs/ufs.h>
#endif
#endif
//Size of the buffer that needs to be passed to the UFS ioctl
#define UFS_ATTR_DATA_SIZE 32
#ifdef _BSG_FRAMEWORK_KERNEL_HEADERS
static int get_ufs_bsg_dev(void)
{
DIR *dir;
struct dirent *ent;
int ret = -ENODEV;
if ((dir = opendir ("/dev")) != NULL) {
/* read all the files and directories within directory */
while ((ent = readdir(dir)) != NULL) {
if (!strcmp(ent->d_name, "ufs-bsg") ||
!strcmp(ent->d_name, "ufs-bsg0")) {
snprintf(ufs_bsg_dev, FNAME_SZ, "/dev/%s", ent->d_name);
ret = 0;
break;
}
}
if (ret)
ALOGE("could not find the ufs-bsg dev\n");
closedir (dir);
} else {
/* could not open directory */
ALOGE("could not open /dev (error no: %d)\n", errno);
ret = -EINVAL;
}
return ret;
}
int ufs_bsg_dev_open(void)
{
int ret;
if (!fd_ufs_bsg) {
fd_ufs_bsg = open(ufs_bsg_dev, O_RDWR);
ret = errno;
if (fd_ufs_bsg < 0) {
ALOGE("Unable to open %s (error no: %d)",
ufs_bsg_dev, errno);
fd_ufs_bsg = 0;
return ret;
}
}
return 0;
}
void ufs_bsg_dev_close(void)
{
if (fd_ufs_bsg) {
close(fd_ufs_bsg);
fd_ufs_bsg = 0;
}
}
static int ufs_bsg_ioctl(int fd, struct ufs_bsg_request *req,
struct ufs_bsg_reply *rsp, __u8 *buf, __u32 buf_len,
enum bsg_ioctl_dir dir)
{
int ret;
struct sg_io_v4 sg_io{};
sg_io.guard = 'Q';
sg_io.protocol = BSG_PROTOCOL_SCSI;
sg_io.subprotocol = BSG_SUB_PROTOCOL_SCSI_TRANSPORT;
sg_io.request_len = sizeof(*req);
sg_io.request = (__u64)req;
sg_io.response = (__u64)rsp;
sg_io.max_response_len = sizeof(*rsp);
if (dir == BSG_IOCTL_DIR_FROM_DEV) {
sg_io.din_xfer_len = buf_len;
sg_io.din_xferp = (__u64)(buf);
} else {
sg_io.dout_xfer_len = buf_len;
sg_io.dout_xferp = (__u64)(buf);
}
ret = ioctl(fd, SG_IO, &sg_io);
if (ret)
ALOGE("%s: Error from sg_io ioctl (return value: %d, error no: %d, reply result from LLD: %d\n)",
__func__, ret, errno, rsp->result);
if (sg_io.info || rsp->result) {
ALOGE("%s: Error from sg_io info (check sg info: device_status: 0x%x, transport_status: 0x%x, driver_status: 0x%x, reply result from LLD: %d\n)",
__func__, sg_io.device_status, sg_io.transport_status,
sg_io.driver_status, rsp->result);
ret = -EAGAIN;
}
return ret;
}
static void compose_ufs_bsg_query_req(struct ufs_bsg_request *req, __u8 func,
__u8 opcode, __u8 idn, __u8 index, __u8 sel,
__u16 length)
{
struct utp_upiu_header *hdr = &req->upiu_req.header;
struct utp_upiu_query *qr = &req->upiu_req.qr;
req->msgcode = UTP_UPIU_QUERY_REQ;
hdr->dword_0 = DWORD(UTP_UPIU_QUERY_REQ, 0, 0, 0);
hdr->dword_1 = DWORD(0, func, 0, 0);
hdr->dword_2 = DWORD(0, 0, length >> 8, (__u8)length);
qr->opcode = opcode;
qr->idn = idn;
qr->index = index;
qr->selector = sel;
qr->length = htobe16(length);
}
static int ufs_query_attr(int fd, __u32 value,
__u8 func, __u8 opcode, __u8 idn,
__u8 index, __u8 sel)
{
struct ufs_bsg_request req{};
struct ufs_bsg_reply rsp{};
enum bsg_ioctl_dir dir = BSG_IOCTL_DIR_FROM_DEV;
int ret = 0;
if (opcode == QUERY_REQ_OP_WRITE_DESC || opcode == QUERY_REQ_OP_WRITE_ATTR)
dir = BSG_IOCTL_DIR_TO_DEV;
req.upiu_req.qr.value = htobe32(value);
compose_ufs_bsg_query_req(&req, func, opcode, idn, index, sel, 0);
ret = ufs_bsg_ioctl(fd, &req, &rsp, 0, 0, dir);
if (ret)
ALOGE("%s: Error from ufs_bsg_ioctl (return value: %d, error no: %d\n)",
__func__, ret, errno);
return ret;
}
int32_t set_boot_lun(char *sg_dev __unused,uint8_t lun_id)
{
int32_t ret;
__u32 boot_lun_id = lun_id;
ret = get_ufs_bsg_dev();
if (ret)
return ret;
ALOGV("Found the ufs bsg dev: %s\n", ufs_bsg_dev);
ret = ufs_bsg_dev_open();
if (ret)
return ret;
ALOGV("Opened ufs bsg dev: %s\n", ufs_bsg_dev);
ret = ufs_query_attr(fd_ufs_bsg, boot_lun_id, QUERY_REQ_FUNC_STD_WRITE,
QUERY_REQ_OP_WRITE_ATTR, QUERY_ATTR_IDN_BOOT_LU_EN, 0, 0);
if (ret) {
ALOGE("Error requesting ufs attr idn %d via query ioctl (return value: %d, error no: %d)",
QUERY_ATTR_IDN_BOOT_LU_EN, ret, errno);
goto out;
}
out:
ufs_bsg_dev_close();
return ret;
}
#endif
#ifndef _BSG_FRAMEWORK_KERNEL_HEADERS
int32_t set_boot_lun(char *sg_dev, uint8_t boot_lun_id)
{
#ifndef _GENERIC_KERNEL_HEADERS
int fd = -1;
int rc;
struct ufs_ioctl_query_data *data = NULL;
size_t ioctl_data_size = sizeof(struct ufs_ioctl_query_data) + UFS_ATTR_DATA_SIZE;
data = (struct ufs_ioctl_query_data*)malloc(ioctl_data_size);
if (!data) {
fprintf(stderr, "%s: Failed to alloc query data struct\n",
__func__);
goto error;
}
memset(data, 0, ioctl_data_size);
data->opcode = UPIU_QUERY_OPCODE_WRITE_ATTR;
data->idn = QUERY_ATTR_IDN_BOOT_LU_EN;
data->buf_size = UFS_ATTR_DATA_SIZE;
data->buffer[0] = boot_lun_id;
fd = open(sg_dev, O_RDWR);
if (fd < 0) {
fprintf(stderr, "%s: Failed to open %s(%s)\n",
__func__,
sg_dev,
strerror(errno));
goto error;
}
rc = ioctl(fd, UFS_IOCTL_QUERY, data);
if (rc) {
fprintf(stderr, "%s: UFS query ioctl failed(%s)\n",
__func__,
strerror(errno));
goto error;
}
close(fd);
free(data);
return 0;
error:
if (fd >= 0)
close(fd);
if (data)
free(data);
return -1;
#else
return 0;
#endif
}
#endif

View file

@ -1,131 +0,0 @@
#ifndef __RECOVERY_UFS_BSG_H__
#define __RECOVERY_UFS_BSG_H__
/*
* Copyright (c) 2020 The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <linux/bsg.h>
#include <scsi/scsi_bsg_ufs.h>
#include <endian.h>
#include <dirent.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#ifdef ANDROID
#include "cutils/log.h"
#endif
#ifdef OE
#include <syslog.h>
#define LOGI(...) syslog(LOG_NOTICE, "INFO:" __VA_ARGS__)
#define LOGV(...) syslog(LOG_NOTICE,"VERB:" __VA_ARGS__)
#define LOGD(...) syslog(LOG_DEBUG,"DBG:" __VA_ARGS__)
#define LOGE(...) syslog(LOG_ERR,"ERR:" __VA_ARGS__)
#define LOGW(...) syslog(LOG_WARNING,"WRN:" __VA_ARGS__)
#define strlcat(d,s,l) snprintf(d+strlen(d),l,"%s",s)
#endif
#define FNAME_SZ 64
#define SG_IO 0x2285
#define DWORD(b3, b2, b1, b0) htobe32((b3 << 24) | (b2 << 16) |\
(b1 << 8) | b0)
/* UFS BSG device nodes */
char ufs_bsg_dev[FNAME_SZ] = "/dev/ufs-bsg";
int fd_ufs_bsg;
int32_t set_ufs_lun(uint8_t lun_id);
#ifdef _BSG_FRAMEWORK_KERNEL_HEADERS
/* UPIU Transaction Codes */
enum {
UTP_UPIU_NOP_OUT = 0x00,
UTP_UPIU_COMMAND = 0x01,
UTP_UPIU_DATA_OUT = 0x02,
UTP_UPIU_TASK_REQ = 0x04,
UTP_UPIU_QUERY_REQ = 0x16,
};
/* UPIU Query Function field */
enum {
QUERY_REQ_FUNC_STD_READ = 0x01,
QUERY_REQ_FUNC_STD_WRITE = 0x81,
};
enum query_req_opcode {
QUERY_REQ_OP_READ_DESC = 0x1,
QUERY_REQ_OP_WRITE_DESC = 0x2,
QUERY_REQ_OP_READ_ATTR = 0x3,
QUERY_REQ_OP_WRITE_ATTR = 0x4,
QUERY_REQ_OP_READ_FLAG = 0x5,
QUERY_REQ_OP_SET_FLAG = 0x6,
QUERY_REQ_OP_CLEAR_FLAG = 0x7,
QUERY_REQ_OP_TOGGLE_FLAG = 0x8,
};
enum query_desc_idn {
QUERY_DESC_IDN_DEVICE = 0x0,
QUERY_DESC_IDN_UNIT = 0x2,
QUERY_DESC_IDN_GEOMETRY = 0x7,
};
enum query_desc_size {
QUERY_DESC_SIZE_DEVICE = 0x40,
QUERY_DESC_SIZE_GEOMETRY = 0x48,
QUERY_DESC_SIZE_UNIT = 0x23,
};
enum bsg_ioctl_dir {
BSG_IOCTL_DIR_TO_DEV,
BSG_IOCTL_DIR_FROM_DEV,
};
enum query_attr_idn {
QUERY_ATTR_IDN_BOOT_LU_EN = 0x00,
QUERY_ATTR_IDN_RESERVED = 0x01,
QUERY_ATTR_IDN_POWER_MODE = 0x02,
QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 0x03,
};
#endif /* _BSG_FRAMEWORK_KERNEL_HEADERS */
#endif /* __RECOVERY_UFS_BSG_H__ */

View file

@ -1,97 +0,0 @@
/*-
* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or
* code or tables extracted from it, as desired without restriction.
*/
/*
* First, the polynomial itself and its table of feedback terms. The
* polynomial is
* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
*
* Note that we take it "backwards" and put the highest-order term in
* the lowest-order bit. The X^32 term is "implied"; the LSB is the
* X^31 term, etc. The X^0 term (usually shown as "+1") results in
* the MSB being 1
*
* Note that the usual hardware shift register implementation, which
* is what we're using (we're merely optimizing it by doing eight-bit
* chunks at a time) shifts bits into the lowest-order term. In our
* implementation, that means shifting towards the right. Why do we
* do it this way? Because the calculated CRC must be transmitted in
* order from highest-order term to lowest-order term. UARTs transmit
* characters in order from LSB to MSB. By storing the CRC this way
* we hand it to the UART in the order low-byte to high-byte; the UART
* sends each low-bit to hight-bit; and the result is transmission bit
* by bit from highest- to lowest-order term without requiring any bit
* shuffling on our part. Reception works similarly
*
* The feedback terms table consists of 256, 32-bit entries. Notes
*
* The table can be generated at runtime if desired; code to do so
* is shown later. It might not be obvious, but the feedback
* terms simply represent the results of eight shift/xor opera
* tions for all combinations of data and CRC register values
*
* The values must be right-shifted by eight bits by the "updcrc
* logic; the shift must be unsigned (bring in zeroes). On some
* hardware you could probably optimize the shift in assembler by
* using byte-swap instructions
* polynomial $edb88320
*
*
* CRC32 code derived from work by Gary S. Brown.
*/
/* Code taken from FreeBSD 8 */
#include <stdint.h>
#include <stdio.h>
static uint32_t crc32_tab[] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d};
/*
* A function that calculates the CRC-32 based on the table above is
* given below for documentation purposes. An equivalent implementation
* of this function that's actually used in the kernel can be found
* in sys/libkern.h, where it can be inlined.
*/
uint32_t sparse_crc32(uint32_t crc_in, const void* buf, size_t size) {
const uint8_t* p = reinterpret_cast<const uint8_t*>(buf);
uint32_t crc;
crc = crc_in ^ ~0U;
while (size--) crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8);
return crc ^ ~0U;
}

View file

@ -1,24 +0,0 @@
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _LIBSPARSE_SPARSE_CRC32_H_
#define _LIBSPARSE_SPARSE_CRC32_H_
#include <stdint.h>
uint32_t sparse_crc32(uint32_t crc, const void* buf, size_t size);
#endif

78
init/Android.bp Normal file
View file

@ -0,0 +1,78 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
cc_library_static {
name: "libinit_oplus",
recovery_available: true,
shared_libs: ["libbase"],
srcs: ["init_oplus.cpp"],
}
prebuilt_etc {
name: "fstab.qcom",
src: "fstab.qcom",
vendor: true,
vendor_ramdisk_available: true,
}
prebuilt_etc {
name: "init.oplus.rc",
src: "init.oplus.rc",
sub_dir: "init",
device_specific: true,
}
prebuilt_etc {
name: "init.qcom.rc",
src: "init.qcom.rc",
sub_dir: "init/hw",
vendor: true,
}
prebuilt_etc {
name: "init.qcom.recovery.rc",
src: "init.qcom.recovery.rc",
sub_dir: "init",
recovery: true,
}
prebuilt_etc {
name: "init.target.rc",
src: "init.target.rc",
sub_dir: "init/hw",
vendor: true,
}
prebuilt_etc {
name: "ueventd.oplus.rc",
filename: "ueventd.rc",
src: "ueventd.oplus.rc",
device_specific: true,
}
prebuilt_etc {
name: "ueventd.qcom.rc",
filename: "ueventd.rc",
src: "ueventd.qcom.rc",
vendor: true,
}
sh_binary {
name: "init.class_main.sh",
src: "init.class_main.sh",
vendor: true,
}
sh_binary {
name: "init.qcom.early_boot.sh",
src: "init.qcom.early_boot.sh",
vendor: true,
}
sh_binary {
name: "init.qcom.sh",
src: "init.qcom.sh",
vendor: true,
}

View file

@ -38,15 +38,14 @@
system /system ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,avb_keys=/avb/q-gsi.avbpubkey:/avb/r-gsi.avbpubkey:/avb/s-gsi.avbpubkey
system_ext /system_ext ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
product /product ext4 ro,barrier=1,discard wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
vendor /vendor ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount
vendor_dlkm /vendor_dlkm ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount
odm /odm ext4 ro,barrier=1,discard wait,slotselect,avb,logical,first_stage_mount
/dev/block/bootdevice/by-name/opluslog /mnt/vendor/op2 ext4 noatime,nosuid,nodev,barrier=1,data=ordered wait,check
/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,check,formattable,first_stage_mount
vendor /vendor erofs ro wait,slotselect,avb,logical,first_stage_mount
vendor_dlkm /vendor_dlkm erofs ro wait,slotselect,avb,logical,first_stage_mount
odm /odm erofs ro wait,slotselect,avb,logical,first_stage_mount
/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard,data=journal,commit=1 wait,check,formattable,first_stage_mount
/dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait
/dev/block/bootdevice/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,inlinecrypt,reserve_root=32768,resgid=1065,fsync_mode=nobarrier latemount,wait,check,formattable,fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized+wrappedkey_v0,keydirectory=/metadata/vold/metadata_encryption,metadata_encryption=aes-256-xts:wrappedkey_v0,quota,reservedsize=128M,checkpoint=fs
/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
/devices/platform/soc/4784000.sdhci/mmc_host* /storage/sdcard1 vfat nosuid,nodev wait,voldmanaged=sdcard1:auto
/devices/platform/soc/4784000.sdhci/mmc_host* /storage/sdcard1 auto nosuid,nodev wait,voldmanaged=sdcard1:auto
/devices/platform/soc/*.ssusb/*.dwc3/xhci-hcd.*.auto* /storage/usbotg vfat nosuid,nodev wait,voldmanaged=usbotg:auto
/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect
/dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nosuid,nodev,barrier=1 wait,slotselect

111
init/init.oplus.rc Normal file
View file

@ -0,0 +1,111 @@
#
# Copyright (C) 2022 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
on fs
# Update touchpanel firmware in case we ship newer firmware in /odm
write /proc/touchpanel/tp_fw_update 0
on early-boot
# SSR
write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys7/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys8/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys9/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys10/restart_level RELATED
write /sys/bus/msm_subsys/devices/subsys11/restart_level RELATED
on boot
# Display
chown system system /dev/oplus_display
chown system system /sys/kernel/oplus_display/dimlayer_bl_en
chown system system /sys/kernel/oplus_display/dynamic_osc_clock
chown system system /sys/kernel/oplus_display/hbm
chown system system /sys/kernel/oplus_display/notify_fppress
chown system system /sys/kernel/oplus_display/panel_serial_number
# Sensors
chown system system /sys/devices/platform/soc/soc:sensor_fb/adsp_notify
on property:ro.boot.prjname=*
# Display
setprop ro.separate.soft ${ro.boot.prjname}
on property:sys.boot_completed=1
# Display
copy /vendor/etc/Oppo_QC_LTM_Commercial_SM8250_2020_01_15.pfm /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm
chmod 0600 /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm
chown system system /mnt/vendor/persist/data/pfm/licenses/1000-1000-no-exp-1186717196.pfm
on property:vendor.post_boot.parsed=1
# IRQ Tuning
# IRQ 243: msm_drm
# IRQ 240: kgsl_3d0_irq
write /proc/irq/243/smp_affinity_list 2
write /proc/irq/240/smp_affinity_list 1
on property:sys.usb.config=adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2769
on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2768
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2764
on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2765
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2771
on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2772
on property:sys.usb.config=rndis,none && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276A
on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2783
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276C
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x276E
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2767
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2775
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,none,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x22D9
write /config/usb_gadget/g1/idProduct 0x2766
service oplus_sensor_fb /odm/bin/oplus_sensor_fb
user system
group system
class late_start
oneshot

View file

@ -1,6 +1,6 @@
#! /vendor/bin/sh
# Copyright (c) 2012-2013,2016,2018-2020 The Linux Foundation. All rights reserved.
# Copyright (c) 2012-2013,2016,2018-2021 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@ -255,6 +255,9 @@ case "$target" in
# 196610 is decimal for 0x30002 to report version 3.2
case "$soc_hwid" in
294|295|296|297|298|313|353|354|363|364)
# Disable adsprpcd_sensorspd daemon
setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1
setprop vendor.opengles.version 196610
if [ $soc_hwid = 354 ]
then
@ -267,6 +270,8 @@ case "$target" in
setprop vendor.opengles.version 196608
setprop persist.graphics.vulkan.disable true
setprop vendor.gralloc.disable_ahardware_buffer 1
# Disable adsprpcd_sensorspd daemon
setprop vendor.fastrpc.disable.adsprpcd_sensorspd.daemon 1
;;
*)
setprop vendor.opengles.version 196608
@ -365,9 +370,7 @@ case "$target" in
setprop vendor.display.enhance_idle_time 1
setprop vendor.netflix.bsp_rev ""
;;
*)
# default case is for bengal
setprop vendor.netflix.bsp_rev "Q6115-31409-1"
518)
;;
esac
;;
@ -420,15 +423,23 @@ case "$target" in
setprop vendor.media.target_variant "_holi"
;;
esac
case "$target" in
"msm8937")
case "$soc_hwid" in
386|354|353|303)
# enable qrtr-ns service for kernel 4.14 or above
KernelVersionStr=`cat /proc/sys/kernel/osrelease`
KernelVersionS=${KernelVersionStr:2:2}
KernelVersionA=${KernelVersionStr:0:1}
KernelVersionB=${KernelVersionS%.*}
baseband=`getprop ro.baseband`
#enable atfwd daemon all targets except sda, apq, qcs
case "$baseband" in
"apq" | "sda" | "qcs" )
setprop persist.vendor.radio.atfwd.start false;;
*)
setprop persist.vendor.radio.atfwd.start true;;
esac
if [ $KernelVersionA -ge 4 ] && [ $KernelVersionB -ge 14 ]; then
setprop init.svc.vendor.qrtrns.enable 1
fi
;;
esac
;;
esac
#set default lcd density
#Since lcd density has read only
@ -473,6 +484,14 @@ case "$product" in
*)
;;
esac
case "$product" in
"msmnile_gvmgh")
setprop vendor.display.lcd_density 160
;;
*)
;;
esac
# Setup display nodes & permissions
# HDMI can be fb1 or fb2
# Loop through the sysfs nodes and determine

View file

@ -25,21 +25,11 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#ifdef VENDOR_EDIT
import /vendor/etc/init/hw/init.oem.rc
import /vendor/etc/init/hw/init.oem.debug.rc
#endif VENDOR_EDIT
#ifdef VENDOR_EDIT
import /vendor/etc/init/hw/init.oem.entry.rc
#endif VENDOR_EDIT
import /vendor/etc/init/hw/init.qti.ufs.rc
import /vendor/etc/init/hw/init.qcom.usb.rc
import /vendor/etc/init/hw/init.qcom.test.rc
import /vendor/etc/init/hw/init.target.rc
import /vendor/etc/init/hw/init.qcom.factory.rc
import /vendor/etc/init/hw/init.oem.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
@ -85,14 +75,15 @@ on init
write /sys/fs/cgroup/memory/bg/memory.swappiness 140
write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1
chown root system /sys/fs/cgroup/memory/bg/tasks
write /sys/kernel/icnss/wpss_boot 1
chmod 0660 /sys/fs/cgroup/memory/bg/tasks
on post-fs
chmod 0755 /sys/kernel/debug/tracing
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# set RLIMIT_MEMLOCK to 64KB
setrlimit 8 65536 65536
# Allow subsystem (modem etc) debugging
write /sys/kernel/boot_adsp/boot 1
write /sys/kernel/boot_cdsp/boot 1
@ -186,19 +177,13 @@ on boot
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# Set the console loglevel to < KERN_WARN
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "4 6 1 7"
# Allow access for CCID command/response timeout configuration
chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout
# bond0 used by FST Manager
chown wifi wifi /sys/class/net/bond0/bonding/queue_id
# Allow access to emmc rawdump block partition and dload sysfs node
chown root system /dev/block/bootdevice/by-name/rawdump
chmod 0660 /dev/block/bootdevice/by-name/rawdump
# Allow access to emmc dload sysfs node
chown root system /sys/kernel/dload/emmc_dload
chmod 0660 /sys/kernel/dload/emmc_dload
chown root system /dev/block/bootdevice/by-name/ramdump
@ -221,10 +206,6 @@ on boot
chown system system /sys/class/sensors/apds9930-proximity/enable
chown system system /sys/class/sensors/apds9930-proximity/poll_delay
# Allow access to fpc fingerprint device attributes
chmod 0666 /sys/bus/platform/devices/soc/soc:fpc1020/wakeup_enable
chown system system /sys/bus/platform/devices/soc/soc:fpc1020/wakeup_enable
# Create directory used for display
# for backward compatibility
mkdir /persist/display 0770 system graphics
@ -240,24 +221,6 @@ on boot
# limit discard size to 128MB in order to avoid long IO latency
write /sys/block/sda/queue/discard_max_bytes 134217728
# bin.zhong@ASTI, 2019/08/06, Add for OMM
chmod 0750 /dev/memcg
chown system system /dev/memplus
# allen.lv@ASTI, 2019/10/12, Add for Virtual Memory Defragment
chmod 0660 /dev/fragment_monitor
chown system system /dev/fragment_monitor
#QDSS
chown root oem_2902 /sys/devices/platform/soc/8048000.tmc/coresight-tmc-etr/block_size
chmod 660 /sys/devices/platform/soc/8048000.tmc/coresight-tmc-etr/block_size
#enable coresight for diag_mdlog_system over qdss
write /sys/bus/coresight/devices/coresight-tmc-etr/buffer_size 0x2000000
write /sys/bus/coresight/devices/coresight-tmc-etr/enable_sink 1
write /sys/bus/coresight/devices/coresight-stm/enable_source 1
write /sys/bus/coresight/devices/coresight-stm/hwevent_enable 0
# msm specific files that need to be created on /data
on post-fs-data
mkdir /data/vendor/misc 01771 system system
@ -352,6 +315,7 @@ on post-fs-data
mkdir /dev/socket/location 0770 gps gps
mkdir /dev/socket/location/mq 0770 gps gps
mkdir /dev/socket/location/xtra 0770 gps gps
mkdir /dev/socket/location/dgnss 0770 gps gps
#Create directories for wifihal services
mkdir /dev/socket/wifihal 0770 wifi wifi
@ -487,7 +451,7 @@ on property:persist.sys.pil_proxy_timeout=*
on property:persist.vendor.ssr.restart_level=*
start vendor.ssr_setup
on property:persist.vendor.ssr.enable_ramdumps=1 && property:ro.boot.mode=normal
on property:persist.vendor.ssr.enable_ramdumps=1
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
mkdir /data/vendor/ramdump_ssr 770 system system
start vendor.ss_ramdump
@ -514,12 +478,6 @@ on property:sys.boot_completed=1
#Reinit lmkd to reconfigure lmkd properties
setprop lmkd.reinit 1
on property:persist.vendor.radio.atfwd.start=false
stop vendor.atfwd
on property:vendor.radio.atfwd.start=false
stop vendor.atfwd
# corefile limit
on property:persist.debug.trace=1
mkdir /data/core 0777 root root
@ -567,6 +525,21 @@ service qmiproxy /system/bin/qmiproxy
group radio diag
disabled
service vendor.wigig_supplicant /vendor/bin/hw/wpa_supplicant \
-iwigig0 -Dnl80211 -c/data/vendor/wifi/wigig_supplicant.conf \
-m/data/vendor/wifi/wigig_p2p_supplicant.conf \
-O/data/vendor/wifi/wigig_sockets -dd \
-e/data/vendor/wifi/wigig_entropy.bin -g@android:wigig/wpa_wigig0 \
-S wigigsvc
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wigig/wpa_wigig0 dgram 660 wifi wifi
disabled
oneshot
# Data Migration
service vendor.move_wifi_data /system/bin/move_wifi_data.sh
class main
@ -712,13 +685,6 @@ service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh
disabled
oneshot
#service qti-testscripts /system/bin/sh /product/etc/init.qcom.testscripts.sh
# class late_start
# user root
# disabled
# oneshot
# seclabel u:r:qti-testscripts:s0
service wifi-sdio-on /vendor/bin/init.qcom.sdio.sh
class late_start
group wifi inet
@ -733,7 +699,6 @@ service wifi-crda /vendor/bin/init.crda.sh
on property:sys.boot_completed=1
start qcom-post-boot
start qti-testscripts
on property:ro.vendor.ril.mbn_copy_completed=1
write /data/vendor/radio/copy_complete 1
@ -743,11 +708,6 @@ service qvop-daemon /vendor/bin/qvop-daemon
user system
group system drmrpc
service vendor.atfwd /vendor/bin/ATFWD-daemon
class late_start
user system
group system radio
service hostapd_fst /vendor/bin/hw/hostapd -dd -g /data/vendor/wifi/hostapd/global
class main
capabilities NET_ADMIN NET_RAW
@ -781,48 +741,20 @@ service profiler_daemon /system/bin/profiler_daemon
group root
disabled
service charger /system/bin/charger
class charger
user system
group system graphics input
capabilities SYS_BOOT
seclabel u:r:charger:s0
service vendor.ssr_diag /system/vendor/bin/ssr_diag
class late_start
user system
group system
disabled
# VENDOR_EDIT BruceChenYC, 2020/06/09, need to add -c to clean mask before start command
service diag_mdlog_start /system/vendor/bin/diag_mdlog -q 2 -j 1 -c -u -d -i
class late_start
user shell
group system oem_2901 oem_2902 sdcard_rw sdcard_r media_rw
disabled
oneshot
service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k
service diag_mdlog_start /system/vendor/bin/diag_mdlog
class late_start
user shell
group system oem_2901 sdcard_rw sdcard_r media_rw
disabled
oneshot
# VENDOR_EDIT JamesChang, 2020/02/22, KBA-180917030333
# VENDOR_EDIT BruceChenYC, 2020/06/09, need to add -c to clean mask before start command
# VENDOR_EDIT BruceChenYC, 2020/07/01, In 8350R Kernel 5.4 delete Diag driver Need to use /system/vendor/bin/diag_mdlog.
#service diag_mdlog_system_start /system/bin/diag_mdlog_system -c -u
service diag_mdlog_system_start /system/vendor/bin/diag_mdlog -q 2 -j 1 -c -u -d -i
class late_start
user shell
group system oem_2901 oem_2902 sdcard_rw sdcard_r media_rw
disabled
oneshot
# VENDOR_EDIT BruceChenYC, 2020/07/01, In 8350R Kernel 5.4 delete Diag driver Need to use /system/vendor/bin/diag_mdlog.
#service diag_mdlog_system_stop /system/bin/diag_mdlog_system -k
service diag_mdlog_system_stop /system/vendor/bin/diag_mdlog -k
service diag_mdlog_stop /system/vendor/bin/diag_mdlog -k
class late_start
user shell
group system oem_2901 sdcard_rw sdcard_r media_rw
@ -887,7 +819,7 @@ service esepmdaemon /system/vendor/bin/esepmdaemon
user system
group nfc
on charger
on property:init.svc.vendor.charger=running
setprop persist.sys.usb.config mass_storage
start qcom-post-boot
@ -957,5 +889,5 @@ service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock
capabilities BLOCK_SUSPEND
ioprio rt 4
writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks
task_profiles ProcessCapacityHigh HighPerformance
onrestart restart audioserver

View file

@ -1,10 +1,4 @@
#! /vendor/bin/sh
#=============================================================================
# Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
# All Rights Reserved.
# Confidential and Proprietary - Qualcomm Technologies, Inc.
#
# Copyright (c) 2009-2012, 2014-2019, The Linux Foundation. All rights reserved.
# Copyright (c) 2017-2018,2020 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@ -29,20 +23,16 @@
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
#
verify_pasr_support()
{
if [ -d /sys/kernel/mem-offline ]; then
setprop vendor.pasr.enabled true
fi
}
on init
write /sys/class/backlight/panel0-backlight/brightness 200
setprop sys.usb.configfs 1
start_msm_irqbalance()
{
if [ -f /vendor/bin/msm_irqbalance ]; then
start vendor.msm_irqbalance
fi
}
start_msm_irqbalance
verify_pasr_support
on property:ro.boot.usbcontroller=*
setprop sys.usb.controller ${ro.boot.usbcontroller}
write /sys/class/udc/${ro.boot.usbcontroller}/device/../mode peripheral
on fs
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

View file

@ -1,5 +1,6 @@
# Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
# Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
@ -29,12 +30,12 @@
#
import /vendor/etc/init/hw/init.qti.kernel.rc
# kevin@system, 2020/09/03, add carrier rc
import /vendor/etc/init/hw/init.oem.carrier.rc
on early-init
exec u:r:vendor_modprobe:s0 -- /vendor/bin/vendor_modprobe.sh
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules q6_pdr_dlkm q6_notifier_dlkm snd_event_dlkm apr_dlkm adsp_loader_dlkm q6_dlkm native_dlkm pinctrl_lpi_dlkm swr_dlkm platform_dlkm stub_dlkm wcd_core_dlkm wsa881x_analog_dlkm bolero_cdc_dlkm va_macro_dlkm rx_macro_dlkm tx_macro_dlkm bt_fm_slim wcd938x_dlkm wcd938x_slave_dlkm wcd937x_dlkm wcd937x_slave_dlkm machine_dlkm radio-i2c-rtc6226-qca mmc_core mmc_block sdhci sdhci-pltfm sdhci-msm cdsprm sia81xx_dlkm aw87xxx_dlkm
exec u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules q6_pdr_dlkm q6_notifier_dlkm snd_event_dlkm apr_dlkm adsp_loader_dlkm q6_dlkm native_dlkm pinctrl_lpi_dlkm swr_dlkm platform_dlkm stub_dlkm wcd_core_dlkm wsa881x_analog_dlkm bolero_cdc_dlkm va_macro_dlkm rx_macro_dlkm tx_macro_dlkm bt_fm_slim wcd938x_dlkm wcd938x_slave_dlkm wcd937x_dlkm wcd937x_slave_dlkm machine_dlkm radio-i2c-rtc6226-qca cdsprm
exec u:r:vendor_qti_init_shell:s0 -- /vendor/bin/init.qti.early_init.sh
setprop ro.soc.model ${ro.vendor.qti.soc_model}
wait /sys/devices/soc0/soc_id
on init
@ -58,9 +59,6 @@ on init
chmod 0664 /dev/cpuctl/background/tasks
chmod 0664 /dev/cpuctl/top-app/tasks
chmod 0664 /dev/cpuctl/rt/tasks
#NFC
#chmod 0660 /dev/st21nfc
#chown nfc nfc /dev/st21nfc
write /dev/cpuctl/foreground/cpu.rt_runtime_us 950000
write /dev/cpuctl/background/cpu.rt_runtime_us 950000
write /dev/cpuctl/top-app/cpu.rt_runtime_us 950000
@ -75,30 +73,19 @@ on early-fs
on fs
start hwservicemanager
#ifdef VENDOR_EDIT
mkdir /mnt/vendor/op2 0660 system system
#endif /* VENDOR_EDIT */
mount_all --early
#ifdef VENDOR_EDIT
wait /mnt/vendor/op2
chown system system /mnt/vendor/op2
#endif /* VENDOR_EDIT */
chown root system /mnt/vendor/persist
chmod 0771 /mnt/vendor/persist
restorecon_recursive /mnt/vendor/persist
mkdir /mnt/vendor/persist/data 0700 system system
mkdir /mnt/vendor/my_cota 0660 system system
mkdir /mnt/vendor/persist/wlan 0700 system system
chmod 0700 /mnt/vendor/persist/wlan
on post-fs
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
write /dev/ipa 1
mkdir /mnt/vendor/op2/recovery 0770 root system
on late-fs
wait_for_prop hwservicemanager.ready true
#exec_start wait_for_keymaster
start console
mount_all --late
on post-fs-data
@ -109,14 +96,6 @@ on early-boot
on boot
write /dev/cpuset/audio-app/cpus 1-2
# Add a cpuset for the camera daemon
# We want all cores for camera
mkdir /dev/cpuset/camera-daemon
write /dev/cpuset/camera-daemon/cpus 0-7
write /dev/cpuset/camera-daemon/mems 0
chown cameraserver cameraserver /dev/cpuset/camera-daemon
chown cameraserver cameraserver /dev/cpuset/camera-daemon/tasks
chmod 0660 /dev/cpuset/camera-daemon/tasks
#USB controller configuration
setprop vendor.usb.rndis.func.name "gsi"
setprop vendor.usb.rmnet.func.name "gsi"
@ -124,21 +103,11 @@ on boot
setprop vendor.usb.dpl.inst.name "dpl"
setprop vendor.usb.qdss.inst.name "qdss_mdm"
setprop vendor.usb.controller 4e00000.dwc3
# v-takey.zheng@SYSTEM, 2020/06/03 Add for oemlogkit camera log
chmod 0666 /sys/module/cam_debug_util/parameters/debug_mdl
#ifdef VENDOR_EDIT
# Fengfeng.XU@PERFORMANCE, 2020/07/30, Optimize the boot time and run the boot animation on the small core
on boot
write /dev/cpuset/top-app/cpus 0-7
write /dev/cpuset/foreground/cpus 0-7
write /dev/cpuset/foreground/boost/cpus 0-7
write /dev/cpuset/system-background/cpus 0-7
write /dev/cpuset/background/cpus 0-3
#endif /* VENDOR_EDIT */
#Load WLAN driver
exec_background u:r:vendor_modprobe:s0 -- /vendor/bin/modprobe -a -d /vendor/lib/modules/ qca_cld3_wlan
on property:vendor.display.lcd_density=560
setprop dalvik.vm.heapgrowthlimit 384m
setprop dalvik.vm.heapgrowthlimit 256m
on property:vendor.display.lcd_density=640
setprop dalvik.vm.heapgrowthlimit 512m
@ -146,29 +115,7 @@ on property:vendor.display.lcd_density=640
on boot && property:persist.vendor.usb.controller.default=*
setprop vendor.usb.controller ${persist.vendor.usb.controller.default}
on property:vendor.usb.controller=*
setprop sys.usb.controller ${vendor.usb.controller}
on charger
mount_all /vendor/etc/charger_fstab.qti --early
write /sys/kernel/boot_adsp/boot 1
#restart charger after ADSP is out of reset
restart charger
start qcom-post-boot
write /sys/devices/system/cpu/cpufreq/policy0/scaling_governor schedutil
write /sys/devices/system/cpu/cpufreq/policy6/scaling_governor schedutil
write /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq 1324800
write /sys/devices/system/cpu/cpu1/online 0
write /sys/devices/system/cpu/cpu2/online 0
write /sys/devices/system/cpu/cpu3/online 0
write /sys/devices/system/cpu/cpu4/online 0
write /sys/devices/system/cpu/cpu5/online 0
write /sys/devices/system/cpu/cpu6/online 0
write /sys/devices/system/cpu/cpu7/online 0
write /sys/module/lpm_levels/parameters/sleep_disabled 0
stop oemlogkit
on property:init.svc.vendor.charger=running
start vendor.power_off_alarm
setprop sys.usb.controller 4e00000.dwc3
setprop sys.usb.configfs 1
@ -208,14 +155,11 @@ on property:sys.shutdown.requested=*
stop vendor.per_proxy
on property:vold.decrypt=trigger_restart_framework
#on property:vold.decrypt=trigger_restart_framework
# start vendor.cnss_diag
#endif /* VENDOR_EDIT */
start vendor.cnss_diag
service vendor.cnss_diag /system/vendor/bin/cnss_diag -q -f -t HELIUM
class main
user system
group system wifi inet sdcard_rw media_rw diag
disabled
oneshot

80
init/init_oplus.cpp Normal file
View file

@ -0,0 +1,80 @@
/*
* Copyright (C) 2022 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
#include <android-base/logging.h>
#include <android-base/properties.h>
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
using android::base::GetProperty;
constexpr const char* BUILD_DESCRIPTION = "OnePlusN200TMO-user 12 SKQ1.210216.001 R.1a8c53b_1-164cb1 release-keys";
constexpr const char* BUILD_FINGERPRINT = "OnePlus/OnePlusN200TMO/OnePlusN200TMO:12/SKQ1.210216.001/R.1a8c53b_1-164cb1:user/release-keys";
constexpr const char* RO_PROP_SOURCES[] = {
nullptr,
"bootimage.",
"odm.",
"odm_dlkm.",
"product.",
"system.",
"system_dlkm.",
"system_ext.",
"vendor.",
"vendor_dlkm.",
};
/*
* SetProperty does not allow updating read only properties and as a result
* does not work for our use case. Write "OverrideProperty" to do practically
* the same thing as "SetProperty" without this restriction.
*/
void OverrideProperty(const char* name, const char* value) {
size_t valuelen = strlen(value);
prop_info* pi = (prop_info*)__system_property_find(name);
if (pi != nullptr) {
__system_property_update(pi, value, valuelen);
} else {
__system_property_add(name, strlen(name), value, valuelen);
}
}
void OverrideCarrierProperties() {
const auto ro_prop_override = [](const char* source, const char* prop, const char* value,
bool product) {
std::string prop_name = "ro.";
if (product) prop_name += "product.";
if (source != nullptr) prop_name += source;
if (!product) prop_name += "build.";
prop_name += prop;
OverrideProperty(prop_name.c_str(), value);
};
for (const auto& source : RO_PROP_SOURCES) {
ro_prop_override(source, "model", "DE2118", true);
ro_prop_override(source, "device", "OnePlusN200TMO", true);
ro_prop_override(source, "fingerprint", BUILD_FINGERPRINT, false);
}
ro_prop_override(nullptr, "product", "OnePlusN200TMO", false);
ro_prop_override(nullptr, "description", BUILD_DESCRIPTION, false);
}
/*
* Only for read-only properties. Properties that can be wrote to more
* than once should be set in a typical init script (e.g. init.oplus.hw.rc)
* after the original property has been set.
*/
void vendor_load_properties() {
//auto device = GetProperty("ro.product.product.device", "");
auto prj_codename = GetProperty("ro.boot.project_codename", "");
// T-Mobile (dre8t) or Metro by T-Mobile (dre8m)
if (prj_codename != "dre9")
OverrideCarrierProperties();
}

17
init/ueventd.oplus.rc Normal file
View file

@ -0,0 +1,17 @@
#
# Copyright (C) 2022-2023 The LineageOS Project
#
# SPDX-License-Identifier: Apache-2.0
#
# Charger
/sys/class/oplus_chg/* mmi_charging_enable 0660 system system
# NFC
/dev/st21nfc 0660 nfc nfc
# Reserve
/dev/block/bootdevice/by-name/oplusreserve1 0660 root system
# WiFi
firmware_directories /odm/etc/wifi/

View file

@ -28,12 +28,7 @@
# Firmware directory Path
# Below macro will be read by uevent and path will
# be added to search path for firmware loading
# ifndef VENDOR_EDIT
# Richy.li@CONNECTIVITY, 2020/08/20, [8350] Wifi one point cal
#firmware_directories /vendor/firmware_mnt/image/
# else
firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
# endif /* VENDOR_EDIT *
firmware_directories /vendor/firmware_mnt/image/
# the DIAG device node is not world writable/readable.
/dev/diag 0660 system oem_2901
@ -64,6 +59,7 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/dev/ipa_adpl 0660 system oem_2905
/dev/synx_device 0660 root camera
/dev/hab 0666 system system
/dev/hgsl 0666 system system
/dev/iio:device* 0664 system system
#permissions for UFS RPMB BSG device node
@ -76,6 +72,7 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/dev/smd2 0660 bluetooth bluetooth
/dev/smd3 0660 bluetooth bluetooth
/dev/btpower 0660 bluetooth system
/dev/btfmslim 0660 bluetooth system
#permissions for pta
/dev/pta 0660 system system
@ -166,15 +163,6 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/dev/system_health_monitor 0644 radio system
/dev/mdss_rotator 0664 system system
#ifdef VENDOR_EDIT
#Revise the permissions for Param
/dev/block/by-name/param 0660 root system
#endif VENDOR_EDIT
# narci.gu@SYSTEM, 2020/12/08, add for serial number writing by wifi adb
/dev/block/sde72 0600 system system
/dev/block/bootdevice/by-name/reserve1 0600 system system
#QDSS
/dev/byte-cntr 0660 system oem_2902
/dev/mhi_qdss 0660 system oem_2902
@ -186,7 +174,11 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
#qvr
/dev/qvr_external_sensor_ioctl 0660 system system
/sys/kernel/qvr_external_sensor/fd 0660 system system
/dev/bus/usb/* 0660 root usb
/dev/hidraw* 0660 root usb
#rawdump
/dev/block/platform/soc/*/by-name/rawdump 0660 root system
# wlan
/dev/wcnss_wlan 0660 system system
@ -195,6 +187,7 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/*.qcom,icnss/net/wlan*/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan*/queues/rx-* rps_cpus 0660 system system
/sys/devices/platform/soc/17a10040.qcom,wcn6750/net/wlan*/queues/rx-* rps_cpus 0660 system system
/dev/spidev0.0 0660 system audio
/dev/i2c-7 0660 system audio
/dev/msm_camera/* 0660 system camera
@ -205,7 +198,6 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/dev/msm_vidc_dec_sec 0660 system audio
/dev/msm_vidc_enc 0660 system audio
/dev/msm_rotator 0660 system system
/dev/hw_random 0600 root root
/dev/sdsprpc-smd 0660 system system
#permissions for audio
@ -250,6 +242,7 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/dev/avtimer 0660 system audio
/dev/spidev2.0 0660 system audio
/dev/spidev22.0 0660 system audio
/dev/spidev10.0 0660 system audio
# DVB devices
/dev/dvb/adapter0/demux* 0440 media media
@ -322,9 +315,6 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system
/sys/devices/virtual/net/bond0 queues/rx-0/rps_cpus 0660 system system
#NFC
/dev/st21nfc 0660 nfc nfc
#nfc permissions
/dev/nfc-nci 0660 nfc nfc
/dev/nq-nci 0660 nfc nfc
@ -397,6 +387,9 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/sys/devices/virtual/hdcp/msm_hdcp min_level_change 0664 system graphics
#KGSL
/sys/class/kgsl/kgsl-3d0 perfcounter 0660 root shell
# sys-fs display
/sys/class/graphics/fb* hpd 0664 system graphics
/sys/class/graphics/fb* res_info 0664 system graphics
@ -426,7 +419,6 @@ firmware_directories /mnt/vendor/persist/copy/ /vendor/firmware_mnt/image/
/sys/class/graphics/fb0 modes 0664 system graphics
/sys/class/graphics/fb0 mode 0664 system graphics
/sys/class/graphics/fb0 msm_cmd_autorefresh_en 0664 system graphics
*/
/sys/devices/platform/soc/ae00000.qcom,mdss_mdp power/control 0664 system graphics

View file

@ -1,7 +1,7 @@
[
{
"repository": "android_hardware_oneplus",
"target_path": "hardware/oneplus"
"repository": "android_hardware_oplus",
"target_path": "hardware/oplus"
},
{
"repository": "android_kernel_oneplus_sm4350",

View file

@ -1,5 +1,4 @@
<manifest version="2.0" type="device" target-level="5">
<kernel target-level="5"/>
<manifest version="2.0" type="device" target-level="6">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
@ -27,15 +26,6 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth.audio</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IBluetoothAudioProvidersFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.camera.provider</name>
<transport>hwbinder</transport>
@ -69,52 +59,11 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.media.c2</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IComponentStore</name>
<instance>default</instance>
<instance>software</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.media.omx</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOmx</name>
<instance>default</instance>
</interface>
<interface>
<name>IOmxStore</name>
<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.nfc</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISap/slot1</fqname>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.2::ISap/slot1</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.radio.config</name>
@ -146,7 +95,7 @@
<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>
@ -188,123 +137,6 @@
<instance>com.qualcomm.qti.uceservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.goodix3626.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IGoodixFingerprintDaemon</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.engnative.engineer</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IEngineer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.faceunlock.hal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFaceUnlockNativeService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.fingerprint.extension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IVendorFingerprintExtensions</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.CameraMDMHIDL</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOnePlusCameraMDM</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.camera</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOnePlusCameraProvider</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.display</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOneplusDisplay</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.drmkey</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOneplusDrmKey</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.hypnus</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHypnusUtil</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.ifaa</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IOneplusIfaa</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.param</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOneplusParam</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.rpmb</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOneplusRpmb</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.oneplus.hardware.wifi</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IOneplusWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.data.factory</name>
<transport>hwbinder</transport>
@ -314,15 +146,6 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.esepowermanager</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IEsePowerManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.alarm</name>
<transport>hwbinder</transport>
@ -394,8 +217,8 @@
<name>IDataConnection</name>
<instance>slot1</instance>
</interface>
</hal>
<hal format="hidl">
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.data.iwlan</name>
<transport>hwbinder</transport>
<version>1.0</version>
@ -449,6 +272,15 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.mwqemadapter</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMwqemAdapter</name>
<instance>MwqemAdapter</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.perf</name>
<transport>hwbinder</transport>
@ -501,7 +333,7 @@
<hal format="hidl">
<name>vendor.qti.hardware.radio.ims</name>
<transport>hwbinder</transport>
<version>1.6</version>
<version>1.7</version>
<interface>
<name>IImsRadio</name>
<instance>imsradio0</instance>
@ -516,15 +348,6 @@
<instance>deviceinfo</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.lpa</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IUimLpa</name>
<instance>UimLpa0</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qcrilhook</name>
<transport>hwbinder</transport>
@ -546,7 +369,7 @@
<hal format="hidl">
<name>vendor.qti.hardware.radio.qtiradio</name>
<transport>hwbinder</transport>
<version>2.5</version>
<version>2.7</version>
<interface>
<name>IQtiRadio</name>
<instance>slot1</instance>
@ -649,6 +472,7 @@
<name>vendor.qti.ims.factory</name>
<transport>hwbinder</transport>
<version>1.1</version>
<version>2.2</version>
<interface>
<name>IImsFactory</name>
<instance>default</instance>
@ -672,14 +496,5 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.rongcard.hardware.eid</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IEidDevice</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IEidDevice/default</fqname>
</hal>
<kernel target-level="5"/>
</manifest>

15
manifest_odm.xml Normal file
View file

@ -0,0 +1,15 @@
<manifest version="2.0" type="device">
<hal format="hidl" override="true">
<name>vendor.lineage.touch</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHighTouchPollingRate</name>
<instance>default</instance>
</interface>
<interface>
<name>ITouchscreenGesture</name>
<instance>default</instance>
</interface>
</hal>
</manifest>

300
media/media_codecs.xml Normal file
View file

@ -0,0 +1,300 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2018 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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.
-->
<!--
"performance-point"
Vendor-guaranteed performance advertised to the applications
<Limit name="performance-point-widthxheight" value="fps" />
-For each of the resolutions, the advertised fps is the max supported,
with HW-friendly color format and considering video-only.
-Performance for any intermediate resolution will be that of the
next-higher-advertised-resolution.
standard sizes: 480p/576p (SD), 720p (HD), 1080p (FHD), 2160p (UHD)
standard frame rates: 24, 25, 30, 48+, 50, 60, 100*, 120*, 200*, 240* fps
* HD+ only
+ SD only
- All supported standard performance points are listed (unless they are
covered by another listed standard performance point)
- Non-standard performance points are listed along with all the standard
performance points covered by them.
-->
<!--
Lahaina Non-Secure decoder capabilities
(MB is defined as 16x16)
_______________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_______________________________________|
| h264 | 3840 2176 60 100 1958400 |
| | 4096 2176 48 100 |
| hevc | 3840 2176 60 100 1958400 |
| | 4096 2176 48 100 |
| vp9 | 3840 2176 60 100 1958400 |
| | 4096 2176 48 100 |
| mpeg2 | 1920 1088 30 40 244800 |
|_____________|_______________________________________|
Lahaina Secure decoder capabilities
(MB is defined as 16x16)
__________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_____________________________________|
| h264 | 3840 2176 60 40 1958400 |
| | 4096 2176 48 40 |
| vp9 | 3840 2176 60 40 1958400 |
| | 4096 2176 48 40 |
| hevc | 3840 2176 60 40 1958400 |
| | 4096 2176 48 40 |
|__________|_____________________________________|
Lahaina Non-Secure encoder capabilities (Secure not supported)
(MB is defined as 16x16)
__________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_____________________________________|
| h264 | 3840 2176 60 100 1958400 |
| | 4096 2176 48 100 |
| hevc | 3840 2176 60 100 1958400 |
| | 4096 2176 48 100 |
|__________|_____________________________________|
-->
<MediaCodecs>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Decoders>
<!-- C2 decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" range="36-1958400" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc.low_latency"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" range="36-1958400" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.secure" type="video/avc" >
<Alias name="OMX.qcom.video.decoder.avc.secure"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.low_latency"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.secure" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.secure"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9.secure"/>
<Limit name="size" min="96x96" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-34816" />
<Limit name="blocks-per-second" min="36" max="1958400" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.mpeg2.decoder" type="video/mpeg2" >
<Alias name="OMX.qcom.video.decoder.mpeg2"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="block-count" range="36-8160" />
<Limit name="blocks-per-second" min="36" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="frame-rate" range="1-30" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc">
<Alias name="OMX.qcom.video.encoder.avc"/>
<Limit name="size" min="128x128" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="1958400" />
<Limit name="block-count" range="64-34816" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc"/>
<Limit name="size" min="128x128" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="1958400" />
<Limit name="block-count" range="64-34816" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="frame-rate" range="1-480" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Limit name="performance-point-4096x2304" value="30" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-1920x1080" value="240" />
<Limit name="performance-point-1280x720" value="480" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc.cq"/>
<Limit name="size" min="128x128" max="512x512" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="20480" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-20" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-512x512" value="2025" />
</MediaCodec>
<MediaCodec name="c2.qti.heic.encoder" type="image/vnd.android.heic">
<Alias name="OMX.qcom.video.encoder.heic"/>
<Limit name="size" min="512x512" max="16384x16384" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="3916800" />
<Limit name="bitrate" range="1-160000000" />
<Limit name="frame-rate" range="1-20" />
<Limit name="complexity" range="0-100" default="100" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-16384x8192" value="3" />
<Limit name="performance-point-1920x1080" value="6" />
</MediaCodec>
</Encoders>
</MediaCodecs>

View file

@ -0,0 +1,312 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2018 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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.
-->
<!--
"performance-point"
Vendor-guaranteed performance advertised to the applications
<Limit name="performance-point-widthxheight" value="fps" />
-For each of the resolutions, the advertised fps is the max supported,
with HW-friendly color format and considering video-only.
-Performance for any intermediate resolution will be that of the
next-higher-advertised-resolution.
standard sizes: 480p/576p (SD), 720p (HD), 1080p (FHD), 2160p (UHD)
standard frame rates: 24, 25, 30, 48+, 50, 60, 100*, 120*, 200*, 240* fps
* HD+ only
+ SD only
- All supported standard performance points are listed (unless they are
covered by another listed standard performance point)
- Non-standard performance points are listed along with all the standard
performance points covered by them.
-->
<!--
Holi Non-Secure decoder capabilities
(MB is defined as 16x16)
_______________________________________________________
| Codec | W H fps Mbps MB/s |
|_____________|_________________________________________|
| h264 | 1920 1088 60 60 489600 |
| hevc | 1920 1080 60 60 489600 |
| vp9 | 1920 1088 60 60 489600 |
|_____________|_________________________________________|
Secure decoder capabilities
(MB is defined as 16x16)
_____________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 1920 1088 60 35 489600 |
| vp9 | 1920 1088 60 35 489600 |
| hevc | 1920 1088 60 35 489600 |
|__________|_________________________________________|
Non-Secure encoder capabilities (Secure not supported)
(MB is defined as 16x16)
______________________________________________________
| Codec | W H fps Mbps MB/s |
|__________|_________________________________________|
| h264 | 1920 1088 60 60 489600 |
| hevc | 1920 1088 60 60 489600 |
|__________|_________________________________________|
-->
<MediaCodecs>
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Settings>
<Variant name="slow-cpu" enabled="true" />
</Settings>
<Decoders>
<!-- C2 decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="36-489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc">
<Alias name="OMX.qcom.video.decoder.avc.low_latency"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" range="36-489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.secure" type="video/avc" >
<Alias name="OMX.qcom.video.decoder.avc.secure"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.low_latency"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.secure" type="video/hevc" >
<Alias name="OMX.qcom.video.decoder.hevc.secure"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="30" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<Alias name="OMX.qcom.video.decoder.vp9.secure"/>
<Limit name="size" min="96x96" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="36" max="489600" />
<Limit name="bitrate" range="1-35000000" />
<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-1920x1080" value="30" />
</MediaCodec>
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true" variant="slow-cpu">
<Limit name="size" min="96x96" max="1920x1080" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="24" max="2073600" />
<Limit name="bitrate" range="1-120000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc">
<Alias name="OMX.qcom.video.encoder.avc"/>
<Limit name="size" min="128x128" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc"/>
<Limit name="size" min="128x128" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc">
<Alias name="OMX.qcom.video.encoder.hevc.cq"/>
<Limit name="size" min="128x128" max="512x512" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="786432" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-512x512" value="3825" />
</MediaCodec>
<MediaCodec name="c2.qti.heic.encoder" type="image/vnd.android.heic">
<Alias name="OMX.qcom.video.encoder.heic"/>
<Limit name="size" min="512x512" max="8192x8192" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="64" max="786432" />
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-20" />
<Limit name="concurrent-instances" max="16" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="CQ" />
<Limit name="performance-point-8192x4320" value="3" />
<Limit name="performance-point-1920x1080" value="6" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true" variant="slow-cpu">
<!-- profiles and levels: ProfileMain : MainTierLevel51 -->
<Limit name="size" min="2x2" max="512x512" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="8x8" />
<Limit name="block-count" range="1-4096" /> <!-- max 512x512 -->
<Limit name="blocks-per-second" range="1-122880" />
<Limit name="frame-rate" range="1-120" />
<Limit name="bitrate" range="1-10000000" />
<Limit name="complexity" range="0-10" default="0" />
<Limit name="quality" range="0-100" default="80" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true" variant="slow-cpu">
<!-- profiles and levels: ProfileMain : Level_Version0-3 -->
<Limit name="size" min="2x2" max="2048x2048" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<!-- 2016 devices can encode at about 8fps at this block count -->
<Limit name="block-count" range="1-3600" /> <!-- max 1280x720 -->
<Limit name="bitrate" range="1-40000000" />
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true" variant="slow-cpu">
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="2x2" max="720x720" />
<Limit name="block-count" range="1-1350" /> <!-- max 720x480 -->
<Limit name="bitrate" range="1-5000000" />
<Limit name="quality" range="0-100" default="80" />
<Limit name="complexity" range="0-5" default="0" />
<Feature name="bitrate-modes" value="VBR,CBR,CQ" />
<Attribute name="software-codec" />
</MediaCodec>
</Encoders>
</MediaCodecs>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2020 Qualcomm Technologies, Inc.
Copyright (c) 2018-2022 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
@ -78,10 +78,8 @@
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_vendor_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Settings>
@ -99,6 +97,7 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -113,6 +112,8 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -126,6 +127,8 @@
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="concurrent-instances" max="3" />
@ -140,6 +143,7 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -153,6 +157,8 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -166,6 +172,8 @@
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="30" />
@ -179,6 +187,7 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
@ -191,6 +200,7 @@
<Limit name="bitrate" range="1-35000000" />
<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-1920x1080" value="30" />
@ -216,6 +226,9 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
@ -229,6 +242,8 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
@ -283,5 +298,4 @@
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_c2.xml" />
</MediaCodecs>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2020 Qualcomm Technologies, Inc.
Copyright (c) 2018-2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
@ -78,10 +78,8 @@
-->
<MediaCodecs>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_vendor_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Domain name="telephony" enabled="true" />
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Settings>
@ -99,6 +97,7 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -113,6 +112,7 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
@ -127,6 +127,7 @@
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
@ -142,6 +143,7 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
@ -155,6 +157,7 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Limit name="concurrent-instances" max="16" />
<Limit name="performance-point-1920x1080" value="60" />
@ -169,6 +172,7 @@
<Limit name="bitrate" range="1-35000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="low-latency" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
@ -183,6 +187,7 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-60" />
<Feature name="adaptive-playback" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="concurrent-instances" max="3" />
<Limit name="performance-point-1920x1080" value="60" />
</MediaCodec>
@ -195,6 +200,7 @@
<Limit name="bitrate" range="1-35000000" />
<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-1920x1080" value="30" />
@ -220,6 +226,9 @@
<Limit name="bitrate" range="1-60000000" />
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
@ -233,6 +242,8 @@
<Limit name="frame-rate" range="1-120" />
<Limit name="concurrent-instances" max="16" />
<Feature name="bitrate-modes" value="VBR,CBR" />
<Feature name="intra-refresh" />
<Feature name="can-swap-width-height" required="true" />
<Limit name="performance-point-1920x1080" value="60" />
<Limit name="performance-point-1280x720" value="120" />
</MediaCodec>
@ -287,5 +298,4 @@
<Feature name="bitrate-modes" value="VBR,CBR" />
</MediaCodec>
</Encoders>
<Include href="media_codecs_google_c2.xml" />
</MediaCodecs>

View file

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2020 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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.
-->
<MediaCodecs>
<Decoders>
<!-- C2 HW decoders -->
<MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="280-397" />
<Limit name="measured-frame-rate-720x480" range="450-1700" />
<Limit name="measured-frame-rate-1280x720" range="250-950" />
<Limit name="measured-frame-rate-1920x1088" range="120-500" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="380-2000" />
<Limit name="measured-frame-rate-720x480" range="380-2000" />
<Limit name="measured-frame-rate-1280x720" range="253-950" />
<Limit name="measured-frame-rate-1920x1080" range="120-410" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="465-1900" />
<Limit name="measured-frame-rate-720x480" range="370-1550" />
<Limit name="measured-frame-rate-1280x720" range="188-397" />
<Limit name="measured-frame-rate-1920x1080" range="260-1200" />
<Limit name="measured-frame-rate-3840x2160" range="67-505" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="390-1850" />
<Limit name="measured-frame-rate-640x360" range="243-397" />
<Limit name="measured-frame-rate-720x480" range="380-1700" />
<Limit name="measured-frame-rate-1280x720" range="315-1920" />
<Limit name="measured-frame-rate-1920x1080" range="220-800" />
<Limit name="measured-frame-rate-3840x2160" range="67-240" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="415-1700" />
<Limit name="measured-frame-rate-640x360" range="265-1600" />
<Limit name="measured-frame-rate-1280x720" range="142-450" />
<Limit name="measured-frame-rate-1920x1080" range="130-450" />
<Limit name="measured-frame-rate-3840x2160" range="39-255" />
</MediaCodec>
<!-- TODO: add C2 mpeg2 decoder performance data -->
<!-- C2 SW codecs -->
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<!-- measured 98%:153-414 med:193/192 FLAKY(mn=61.7 < 96 - 414 < mx=423.7) -->
<Limit name="measured-frame-rate-320x240" range="211-600" /> <!-- N=266 v98%=1.6 -->
<Limit name="measured-frame-rate-720x480" range="57-405" /> <!-- N=266 v98%=1.5 -->
<Limit name="measured-frame-rate-1280x720" range="17-98" /> <!-- N=236 v98%=1.5 (-PD1A.180712.003) -->
<Limit name="measured-frame-rate-1920x1080" range="20-28" /> <!-- N=272 v98%=1.4 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="220-950" /> <!-- N=270 v98%=1.6 -->
<!-- measured 98%:77-220 med:165/169 FLAKY(mn=74.9 < 75 - 338) -->
<Limit name="measured-frame-rate-640x360" range="120-830" /> <!-- TWEAKED N=269 v98%=1.7 -->
<!-- measured 98%:85-223 med:194/186 FLAKY(mn=80.8 < 85 - 372) -->
<Limit name="measured-frame-rate-720x480" range="129-563" /> <!-- TWEAKED N=270 v98%=1.6 -->
<Limit name="measured-frame-rate-1280x720" range="41-200" /> <!-- N=270 v98%=1.4 -->
<Limit name="measured-frame-rate-1920x1080" range="25-100" /> <!-- N=230 v98%=1.2 (-PD1A.180706.000) -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 98%:191-657 med:617/613 FLAKY(mn=183.9 < 191 - 1226) -->
<Limit name="measured-frame-rate-320x180" range="550-1850" /> <!-- TWEAKED N=270 v98%=1.9 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-640x360" range="250-800" /> <!-- N=230 v98%=1.3 -->
<!-- measured 98%:35-54 med:36/36 N=64 -->
<Limit name="measured-frame-rate-1280x720" range="59-360" /> <!-- v98%=1.2 (PD1A.180706.000-) -->
<Limit name="measured-frame-rate-1920x1080" range="23-113" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 98%:173-698 med:670/668 FLAKY(mn=161.4 < 162 - 1336) variance:2.0 -->
<Limit name="measured-frame-rate-320x180" range="488-1500" /> <!-- TWEAKED N=228 -->
<Limit name="measured-frame-rate-640x360" range="265-900" /> <!-- N=272 v98%=1.9 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-1280x720" range="95-400" /> <!-- N=270 v98%=1.3 (-PD1A.180717.001) -->
<Limit name="measured-frame-rate-1920x1080" range="50-215" /> <!-- N=230 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<!-- measured 98%:151-1143 med:437/432 FLAKY(111 - 972 < mx=1146.8) variance:2.8 -->
<Limit name="measured-frame-rate-176x144" range="800-2600" /> <!-- N=270 -->
<Limit name="measured-frame-rate-352x288" range="620-1900" /> <!-- N=270 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<!-- measured 90%:149-1332 med:379/360 FLAKY(109 - 958 < mx=1400.6) RG.VARIANCE:2.1 -->
<Limit name="measured-frame-rate-176x144" range="865-2800" /> <!-- N=272 v90%=3.0 -->
</MediaCodec>
</Decoders>
<Encoders>
<!-- C2 HW encoders -->
<MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="200-600" />
<Limit name="measured-frame-rate-720x480" range="64-140" />
<Limit name="measured-frame-rate-1280x720" range="26-56" />
<Limit name="measured-frame-rate-1920x1080" range="20-44" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="480-535" />
<Limit name="measured-frame-rate-720x480" range="165-210" />
<Limit name="measured-frame-rate-1280x720" range="35-250" />
<Limit name="measured-frame-rate-1920x1080" range="17-37" />
<Limit name="measured-frame-rate-3840x2160" range="11-25" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="340-400" />
</MediaCodec>
<!-- C2 SW encoders -->
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<!-- measured 95%:144-637 med:343/343 FLAKY(mn=40.8 < 144 - 808 < mx=916.6) variance:2.1 -->
<Limit name="measured-frame-rate-176x144" range="287-459" /> <!-- TWEAKED N=224 -->
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<!-- measured 90%:42-420 med:146/160 FLAKY(mn=39.0 < 42 - 368 < mx=569.5) RG.VARIANCE:2.2 -->
<Limit name="measured-frame-rate-320x240" range="140-980" /> <!-- SHOULDN'T HAVE TWEAKED N=266 v90%=3.2 -->
<!-- measured 98%:29-166 med:66/63 FLAKY(24 - 166 < mx=166.5) variance:2.4 -->
<Limit name="measured-frame-rate-720x480" range="47-83" /> <!-- N=262 -->
<!-- measured 98%:11-68 med:30/30 FLAKY(mn=10.5 < 11 - 68 < mx=82.1) variance:2.5 -->
<Limit name="measured-frame-rate-1280x720" range="30-200" /> <!-- TWEAKED N=236 -->
<!-- measured 98%:10-38 med:18/18 FLAKY(mn=5.2 < 9 - 38 < mx=38.8) -->
<Limit name="measured-frame-rate-1920x1080" range="20-80" /> <!-- N=288 v98%=2.0 -->
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<!-- measured 90%:29-451 med:208/206 FLAKY(mn=19.2 < 47 - 412 < mx=888.9) RG.VARIANCE:2.5 -->
<Limit name="measured-frame-rate-176x144" range="203-445" /> <!-- SHOULDN'T HAVE TWEAKED N=220 v90%=4.0 -->
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<!-- measured 90%:6-36 med:30/29 FLAKY(mn=0.0 < 7 - 58) variance:2.5 -->
<Limit name="measured-frame-rate-320x180" range="299-429" /> <!-- SHOULDN'T HAVE TWEAKED N=214 -->
<!-- measured 98%:3-24 med:12/12 FLAKY(mn=2.8 < 3 - 24 < mx=26.6) variance:2.8 -->
<Limit name="measured-frame-rate-640x360" range="75-350" /> <!-- N=220 -->
<!-- measured 98%:3-11 med:6/6 FLAKY(mn=0.0 < 3 - 12) -->
<Limit name="measured-frame-rate-1280x720" range="24-85" /> <!-- N=202 v98%=2.0 -->
<!-- measured 98%:3-7 med:5/5 FLAKY(mn=0.0 < 2 - 10 < mx=11.2) -->
<Limit name="measured-frame-rate-1920x1080" range="10-115" /> <!-- N=212 v98%=1.5 -->
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 93%:99-156 med:109/109 N=24 -->
<Limit name="measured-frame-rate-320x180" range="109-109" /> <!-- v93%=1.3 -->
<!-- measured 95%:54-67 med:61/61 N=36 -->
<Limit name="measured-frame-rate-640x360" range="61-61" /> <!-- v95%=1.1 -->
<!-- measured 95%:16-26 med:20/20 N=32 -->
<Limit name="measured-frame-rate-1280x720" range="20-20" /> <!-- v95%=1.3 -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="38-47" />
<Limit name="measured-frame-rate-720x480" range="8-15" />
</MediaCodec>
</Encoders>
</MediaCodecs>

View file

@ -0,0 +1,207 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2021 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
Not a Contribution.
Copyright (C) 2012-2017 The Linux Foundation. All rights reserved.
Copyright (C) 2012-2013 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.
-->
<MediaCodecs>
<Encoders>
<MediaCodec name="c2.qti.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="238-238" />
<Limit name="measured-frame-rate-720x480" range="123-123" />
<Limit name="measured-frame-rate-1280x720" range="50-50" />
<Limit name="measured-frame-rate-1920x1080" range="13-20" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="226-226" />
<Limit name="measured-frame-rate-720x480" range="121-121" />
<Limit name="measured-frame-rate-1280x720" range="49-49" />
<Limit name="measured-frame-rate-1920x1080" range="12-17" />
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="124-176" />
<Limit name="measured-frame-rate-720x480" range="126-178" />
<Limit name="measured-frame-rate-1280x720" range="35-50" />
<Limit name="measured-frame-rate-1920x1080" range="19-28" />
</MediaCodec>
<MediaCodec name="c2.android.hevc.encoder" type="video/hevc" update="true">
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Xiang.Yang@MM.MediaServer.Record, 2022/7/26, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-320x240" range="17-24" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-320x240" range="17-29" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-720x480" range="7-10" />
<Limit name="measured-frame-rate-1280x720" range="3-6" />
<Limit name="measured-frame-rate-1920x1080" range="2-3" />
</MediaCodec>
<MediaCodec name="c2.android.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="256-349" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="250-377" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="85-119" />
<Limit name="measured-frame-rate-640x360" range="94-133" />
<Limit name="measured-frame-rate-1280x720" range="21-30" />
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="190-300"/>
</MediaCodec>
<MediaCodec name="c2.android.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<!-- measured 93%:99-156 med:109/109 N=24 -->
<Limit name="measured-frame-rate-320x180" range="109-109" /> <!-- v93%=1.3 -->
<!-- measured 95%:54-67 med:61/61 N=36 -->
<Limit name="measured-frame-rate-640x360" range="61-61" /> <!-- v95%=1.1 -->
<!-- measured 95%:16-26 med:20/20 N=32 -->
<Limit name="measured-frame-rate-1280x720" range="20-20" /> <!-- v95%=1.3 -->
</MediaCodec>
<MediaCodec name="c2.android.av1.encoder" type="video/av01" update="true">
<!-- MANUALLY ADJUSTED -->
<Limit name="measured-frame-rate-320x240" range="84-130" />
<!-- MANUALLY ADJUSTED -->
<Limit name="measured-frame-rate-720x480" range="20-43" />
<!-- MANUALLY ADJUSTED -->
<Limit name="measured-frame-rate-1280x720" range="8-21" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="c2.qti.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="480-510" />
<Limit name="measured-frame-rate-720x480" range="460-490" />
<Limit name="measured-frame-rate-1280x720" range="350-400" />
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="320-517" />
<Limit name="measured-frame-rate-720x480" range="101-221" />
<Limit name="measured-frame-rate-1280x720" range="200-420" />
<Limit name="measured-frame-rate-1920x1080" range="76-167" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="510-530" />
<Limit name="measured-frame-rate-720x480" range="465-620" />
<Limit name="measured-frame-rate-1280x720" range="200-390" />
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="273-562" />
<Limit name="measured-frame-rate-720x480" range="440-600" />
<Limit name="measured-frame-rate-1280x720" range="215-425" />
<Limit name="measured-frame-rate-1920x1080" range="118-259" />
</MediaCodec>
<MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x240" range="377-377" />
<Limit name="measured-frame-rate-640x360" range="323-323" />
<Limit name="measured-frame-rate-1280x720" range="262-262" />
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="101-223" />
<Limit name="measured-frame-rate-720x480" range="42-59" />
<Limit name="measured-frame-rate-1280x720" range="17-37" />
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Xiang.Yang@MM.MediaServer.Record, 2022/7/26, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-1920x1080" range="11-23" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
</MediaCodec>
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Bingwang.Yang@MM.MediaServer.MULTMEDIASERVER, 2022/10/10, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-352x288" range="82-232" />
<Limit name="measured-frame-rate-640x360" range="57-114" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-352x288" range="102-232" />
<Limit name="measured-frame-rate-640x360" range="57-154" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Xiang.Yang@MM.MediaServer.Record, 2022/1/7, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-720x480" range="69-99" />
<Limit name="measured-frame-rate-1280x720" range="35-51" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-720x480" range="69-141" />
<Limit name="measured-frame-rate-1280x720" range="35-71" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-1920x1080" range="20-29" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="376-524" />
<Limit name="measured-frame-rate-352x288" range="310-415" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="406-543" />
<!-- Modify for CtsMediaDecoderTestCase VideoDecoderPerfTesT -->
<Limit name="measured-frame-rate-480x360" range="580-600" />
<Limit name="measured-frame-rate-1280x720" range="380-400" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="570-665" />
<Limit name="measured-frame-rate-640x360" range="267-378" />
<Limit name="measured-frame-rate-1280x720" range="75-107" />
<Limit name="measured-frame-rate-1920x1080" range="30-43" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="182-360" />
<Limit name="measured-frame-rate-640x360" range="85-200" />
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Zongjian.Wu@MM.MediaServer.Record, 2021/11/8, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-1280x720" range="35-49" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-1280x720" range="35-91" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-1920x1080" range="23-33" />
</MediaCodec>
<MediaCodec name="c2.android.av1.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="114-250" />
<Limit name="measured-frame-rate-640x360" range="89-195" />
<Limit name="measured-frame-rate-720x480" range="57-125" />
<Limit name="measured-frame-rate-1280x720" range="52-115" />
</MediaCodec>
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- HuXiang@MULTIMEDIA.MEDIASERVER.PLAYER.7342822, 2024/06/17, -->
<MediaCodec name="c2.android.av1-dav1d.decoder" type="video/av01" update="true">
<Limit name="measured-frame-rate-352x288" range="165-363" />
<Limit name="measured-frame-rate-640x360" range="107-235" />
<Limit name="measured-frame-rate-720x480" range="93-210" />
<Limit name="measured-frame-rate-1280x720" range="37-82" />
</MediaCodec>
<!-- #endif -->
</Decoders>
</MediaCodecs>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Copyright (c) 2018-2020 Qualcomm Technologies, Inc.
Copyright (c) 2018-2022 Qualcomm Technologies, Inc.
All Rights Reserved.
Confidential and Proprietary - Qualcomm Technologies, Inc.
@ -38,7 +38,7 @@
</MediaCodec>
<MediaCodec name="c2.android.avc.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="124-176" />
<Limit name="measured-frame-rate-720x480" range="53-76" />
<Limit name="measured-frame-rate-720x480" range="126-178" />
<Limit name="measured-frame-rate-1280x720" range="35-50" />
<Limit name="measured-frame-rate-1920x1080" range="19-28" />
</MediaCodec>
@ -56,7 +56,7 @@
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="85-119" />
<Limit name="measured-frame-rate-640x360" range="41-65" />
<Limit name="measured-frame-rate-640x360" range="94-133" />
<Limit name="measured-frame-rate-1280x720" range="21-30" />
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
</MediaCodec>
@ -72,20 +72,19 @@
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="192-207" />
<Limit name="measured-frame-rate-320x240" range="320-517" />
<Limit name="measured-frame-rate-720x480" range="101-221" />
<Limit name="measured-frame-rate-1280x720" range="200-420" />
<Limit name="measured-frame-rate-1920x1080" range="76-167" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="510-530" />
<Limit name="measured-frame-rate-640x360" range="465-620" />
<Limit name="measured-frame-rate-720x480" range="465-620" />
<Limit name="measured-frame-rate-1280x720" range="200-390" />
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="800-850" />
<Limit name="measured-frame-rate-352x288" range="273-562" />
<Limit name="measured-frame-rate-720x480" range="440-600" />
<Limit name="measured-frame-rate-1280x720" range="215-425" />
<Limit name="measured-frame-rate-1920x1080" range="118-259" />
@ -97,7 +96,7 @@
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="63-165" />
<Limit name="measured-frame-rate-320x240" range="318-326" />
<Limit name="measured-frame-rate-720x480" range="42-59" />
<Limit name="measured-frame-rate-1280x720" range="17-24" />
<Limit name="measured-frame-rate-1920x1080" range="8-12" />
@ -111,20 +110,23 @@
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="376-524" />
<Limit name="measured-frame-rate-352x288" range="310-415" />
<Limit name="measured-frame-rate-352x288" range="920-1035" />
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="406-543" />
<Limit name="measured-frame-rate-480x360" range="700-1100" />
<Limit name="measured-frame-rate-1280x720" range="300-600" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="570-665" />
<Limit name="measured-frame-rate-640x360" range="133-184" />
<Limit name="measured-frame-rate-1920x1080" range="15-22" />
<Limit name="measured-frame-rate-640x360" range="267-378" />
<Limit name="measured-frame-rate-1280x720" range="75-107" />
<Limit name="measured-frame-rate-1920x1080" range="30-43" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="182-360" />
<Limit name="measured-frame-rate-320x180" range="810-865" />
<Limit name="measured-frame-rate-640x360" range="85-200" />
<Limit name="measured-frame-rate-1280x720" range="35-49" />
<Limit name="measured-frame-rate-1280x720" range="152-160" />
<Limit name="measured-frame-rate-1920x1080" range="23-33" />
</MediaCodec>
</Decoders>

View file

@ -56,7 +56,7 @@
</MediaCodec>
<MediaCodec name="c2.android.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="85-119" />
<Limit name="measured-frame-rate-640x360" range="41-65" />
<Limit name="measured-frame-rate-640x360" range="84-117" />
<Limit name="measured-frame-rate-1280x720" range="21-30" />
<Limit name="measured-frame-rate-1920x1080" range="10-15" />
</MediaCodec>
@ -72,22 +72,23 @@
<Limit name="measured-frame-rate-1920x1088" range="180-190" />
</MediaCodec>
<MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="192-207" />
<Limit name="measured-frame-rate-320x240" range="290-619" />
<Limit name="measured-frame-rate-720x480" range="101-221" />
<Limit name="measured-frame-rate-1280x720" range="200-420" />
<Limit name="measured-frame-rate-1920x1080" range="76-167" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="510-530" />
<Limit name="measured-frame-rate-640x360" range="465-620" />
<!-- #ifdef OPLUS_BUG_COMPATIBILITY-->
<!-- LiuGuanbiao@MULTMEDIASERVER.PLAYER.793175, 2020/12/30, Modify for CTS test-->
<Limit name="measured-frame-rate-640x360" range="240-1160" />
<!-- #endif OPLUS_BUG_COMPATIBILITY-->
<Limit name="measured-frame-rate-720x480" range="465-620" />
<Limit name="measured-frame-rate-1280x720" range="200-390" />
<Limit name="measured-frame-rate-1920x1080" range="210-230" />
</MediaCodec>
<MediaCodec name="c2.qti.hevc.decoder.low_latency" type="video/hevc" update="true">
<!-- chenchen@MM.audio, 2021/03/16, Change range from 800 to 200 start-->
<Limit name="measured-frame-rate-352x288" range="200-850" />
<!-- chenchen@MM.audio, 2021/03/16, Change range from 800 to 200 end-->
<Limit name="measured-frame-rate-352x288" range="750-850" />
<Limit name="measured-frame-rate-720x480" range="440-600" />
<Limit name="measured-frame-rate-1280x720" range="215-425" />
<Limit name="measured-frame-rate-1920x1080" range="118-259" />
@ -96,7 +97,7 @@
<Limit name="measured-frame-rate-320x240" range="377-377" />
<Limit name="measured-frame-rate-640x360" range="323-323" />
<Limit name="measured-frame-rate-1280x720" range="262-262" />
<Limit name="measured-frame-rate-1920x1080" range="220-220" />
<Limit name="measured-frame-rate-1920x1080" range="50-100" />
</MediaCodec>
<MediaCodec name="c2.android.avc.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="63-165" />
@ -107,8 +108,17 @@
<MediaCodec name="c2.android.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="67-232" />
<Limit name="measured-frame-rate-640x360" range="57-89" />
<!-- #ifndef OPLUS_BUG_COMPATIBILITY -->
<!-- Xiang.Hu@MM.MediaServer.MULTMEDIASERVER, 2022/1/11, -->
<!-- Modify for CtsMediaTestCases -->
<!--
<Limit name="measured-frame-rate-720x480" range="69-99" />
<Limit name="measured-frame-rate-1280x720" range="35-51" />
-->
<!-- #else //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-720x480" range="69-141" />
<Limit name="measured-frame-rate-1280x720" range="35-71" />
<!-- #endif //OPLUS_BUG_COMPATIBILITY -->
<Limit name="measured-frame-rate-1920x1080" range="20-29" />
</MediaCodec>
<MediaCodec name="c2.android.h263.decoder" type="video/3gpp" update="true">
@ -117,10 +127,13 @@
</MediaCodec>
<MediaCodec name="c2.android.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="406-543" />
<Limit name="measured-frame-rate-480x360" range="500-600" />
<Limit name="measured-frame-rate-1280x720" range="300-400" />
</MediaCodec>
<MediaCodec name="c2.android.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="570-665" />
<Limit name="measured-frame-rate-640x360" range="133-184" />
<Limit name="measured-frame-rate-640x360" range="211-328" />
<Limit name="measured-frame-rate-1280x720" range="60-85" />
<Limit name="measured-frame-rate-1920x1080" range="15-22" />
</MediaCodec>
<MediaCodec name="c2.android.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">

View file

@ -1,46 +1,33 @@
sia81xx_dlkm.ko
va_macro_dlkm.ko
rdbg.ko
wsa881x_analog_dlkm.ko
bootloader_log.ko
native_dlkm.ko
swr_ctrl_dlkm.ko
sim_holder_detect.ko
adsp_loader_dlkm.ko
wcd938x_dlkm.ko
snd_event_dlkm.ko
swr_dlkm.ko
q6_dlkm.ko
gf_spi_driver.ko
machine_dlkm.ko
camera.ko
wcd937x_dlkm.ko
project_info.ko
wcd938x_slave_dlkm.ko
wcd_core_dlkm.ko
platform_dlkm.ko
st21nfc.ko
op_rf_cable_monitor.ko
tri_key.ko
aw8697.ko
op_cmdline.ko
tx_macro_dlkm.ko
q6_notifier_dlkm.ko
mbhc_dlkm.ko
btpower.ko
apr_dlkm.ko
wcd9xxx_dlkm.ko
rx_macro_dlkm.ko
fpc1020_platform_tee.ko
bt_fm_slim.ko
native_dlkm.ko
wcd937x_slave_dlkm.ko
btpower.ko
q6_pdr_dlkm.ko
aw87xxx_dlkm.ko
bolero_cdc_dlkm.ko
oem_aboard.ko
va_macro_dlkm.ko
q6_notifier_dlkm.ko
apr_dlkm.ko
snd_event_dlkm.ko
machine_dlkm.ko
wcd938x_dlkm.ko
wcd_core_dlkm.ko
wcd937x_dlkm.ko
adsp_loader_dlkm.ko
q6_dlkm.ko
sia81xx_dlkm.ko
mbhc_dlkm.ko
swr_ctrl_dlkm.ko
rdbg.ko
camera.ko
pinctrl_lpi_dlkm.ko
rx_macro_dlkm.ko
wcd938x_slave_dlkm.ko
wcd9xxx_dlkm.ko
tx_macro_dlkm.ko
bt_fm_slim.ko
wsa881x_analog_dlkm.ko
bolero_cdc_dlkm.ko
stub_dlkm.ko
fingerprint_detect.ko
platform_dlkm.ko
wlan.ko
rmnet_core.ko
rmnet_ctl.ko

View file

@ -1,4 +0,0 @@
fingerprint_detect.ko
gf_spi_driver.ko
op_cmdline.ko
project_info.ko

156
nfc/libnfc-hal-st.conf Normal file
View file

@ -0,0 +1,156 @@
########################### Start of libnfc-hal-st.conf ###########################
###############################################################################
###############################################################################
# ST HAL trace log level
#define STNFC_TRACE_LEVEL_NONE 0x00
#define STNFC_TRACE_LEVEL_ERROR 0x01
#define STNFC_TRACE_LEVEL_WARNING 0x02
#define STNFC_TRACE_LEVEL_DEBUG 0x03
#define STNFC_TRACE_LEVEL_VERBOSE 0x04
#define STNFC_TRACE_FLAG_PRIVACY 0x10
STNFC_HAL_LOGLEVEL=3
NFC_DEBUG_ENABLED=1
###############################################################################
# Vendor specific mode to enable FW (RF & SWP) traces.
STNFC_FW_DEBUG_ENABLED=0
###############################################################################
# File used for NFA storage
NFA_STORAGE="/data/nfc"
###############################################################################
# Keep the nfa storage file.
PRESERVE_STORAGE=1
###############################################################################
# In Switch OFF mode (phone switched-off), specify the desired CE mode to
# the controller.
# 0: No card-emulation; DEFAULT
# 1: Switch-off card-emulation enabled
CE_ON_SWITCH_OFF_STATE=1
###############################################################################
# Vendor specific mode to support the USB charging mode if VPSIO=1 in switch off.
STNFC_USB_CHARGING_MODE=1
###############################################################################
# Vendor Specific Proprietary Protocol & Discovery Configuration
# Set to 0xFF if unsupported
# byte[0] NCI_PROTOCOL_18092_ACTIVE
# byte[1] NCI_PROTOCOL_B_PRIME
# byte[2] NCI_PROTOCOL_DUAL
# byte[3] NCI_PROTOCOL_15693
# byte[4] NCI_PROTOCOL_KOVIO
# byte[5] NCI_PROTOCOL_MIFARE
# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO
# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME
# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME
NFA_PROPRIETARY_CFG={05:FF:FF:06:8A:90:77:FF:FF}
###############################################################################
# Choose the presence-check algorithm for type-4 tag. If not defined,
# the default value is 1.
# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
# 2 NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate
# 3 NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
# 4 NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
# 5 NFA_RW_PRES_CHK_ISO_DEP_NAK; presence check command ISO-DEP NAK as per NCI2.0
PRESENCE_CHECK_ALGORITHM=5
###############################################################################
# Name of the NCI HAL module to use
# If unset, falls back to nfc_nci.bcm2079x
NCI_HAL_MODULE="nfc_nci.st21nfc"
###############################################################################
# Allow list to be set at startup.
DEVICE_HOST_ALLOW_LIST={02:C0}
###############################################################################
# BAIL OUT value for P2P
# Implements algorithm for NFC-DEP protocol priority over ISO-DEP protocol.
POLL_BAIL_OUT_MODE=1
###############################################################################
# Extended APDU length for ISO_DEP
ISO_DEP_MAX_TRANSCEIVE=0xFEFF
###############################################################################
# Configure the NFC Extras to open and use a static pipe. If the value is
# not set or set to 0, then the default is use a dynamic pipe based on a
# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value
# for each EE (ESE/SIM)
OFF_HOST_ESE_PIPE_ID=0x5E
OFF_HOST_SIM_PIPE_ID=0x3E
###############################################################################
#Set the default Felica T3T System Code OffHost route Location :
#This settings will be used when application does not set this parameter
# host 0x00
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
DEFAULT_SYS_CODE_ROUTE=0x81
###############################################################################
#Set the Felica T3T System Code supported power state:
DEFAULT_SYS_CODE_PWR_STATE=0x3B
###############################################################################
# Path and Files used for FW update binaries storage
STNFC_FW_PATH_STORAGE="/vendor/firmware/"
# STNFC_FW_BIN_NAME="st21nfc_fw7.bin"
STNFC_FW_CONF_NAME="/vendor/etc/libnfc-st21h_conf.txt"
###############################################################################
# Default off-host route for Felica.
#This settings will be used when application does not set this parameter
# host 0x00
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
DEFAULT_NFCF_ROUTE=0x81
###############################################################################
# Configure the default off-host route.
# used for technology A and B routing
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
DEFAULT_OFFHOST_ROUTE=0x81
###############################################################################
# Configure the default AID route.
# host 0x00
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
DEFAULT_ROUTE=0x81
###############################################################################
# Configure the NFCEEIDs of offhost UICC.
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
OFFHOST_ROUTE_UICC={81,83,85}
###############################################################################
# Configure the NFCEEIDs of offhost eSEs.
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
OFFHOST_ROUTE_ESE={82,86}
###############################################################################
# Configure the list of NFCEE for the ISO-DEP routing.
# host 0x00
# eSE 0x82 (eSE), 0x86 (eUICC/SPI-SE)
# UICC 0x81 (UICC_1), 0x85 (UICC_2)
DEFAULT_ISODEP_ROUTE=0x81
###############################################################################
# Core configuration settings
CORE_CONF_PROP={ 20, 02, 13, 06,
a1, 01, 19,
a2, 01, 15,
80, 01, 01,
08, 01, 01,
11, 01, 01,
19, 01, 01
}

View file

@ -1,2 +1,31 @@
# Audio
persist.vendor.audio.fluence.voicerec=true
persist.vendor.audio_hal.dsp_bit_width_enforce_mode=24
persist.vendor.audio.spv4.enable=false
persist.vendor.audio.vbat.enabled=false
ro.config.media_vol_steps=30
ro.config.vc_call_vol_steps=9
ro.vendor.audio.sdk.fluencetype=fluence
ro.vendor.qti.va_odm.support=1
# Bluetooth
persist.vendor.bluetooth.modem_nv_support=true
# Display
vendor.display.primary_mixer_stages=9
# Media
ro.odm.build.media_performance_class=30
vendor.media.vpp.enable=0
vendor.media.vpp.osie.enable=0
vendor.media.vpp.sr.enable=0
# Radio
persist.vendor.radio.force_on_dc=true
persist.vendor.radio.stack_id_1=1
ro.sys.reserve.integrate=true
ro.vendor.oplus.radio.project=2
ro.vendor.oplus.radio.sar_regionmark=FCC
# SVN
ro.build.version.svn=34

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021-2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Sensor types -->
<string name="pickup_sensor_type">android.sensor.tilt_detector</string>
<!-- Sensor trigger values -->
<item name="pickup_sensor_value" format="float" type="dimen">0.0</item>
</resources>

View file

@ -2,54 +2,14 @@
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
2017-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.
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default value for proximity check on screen wake
NOTE ! - Enable for devices that have a fast response proximity sensor (ideally < 300ms)-->
<bool name="config_proximityCheckOnWake">true</bool>
<integer name="config_proximityCheckTimeout">100</integer>
<bool name="config_proximityCheckOnWakeEnabledByDefault">true</bool>
<!-- Hardware keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareKeys">64</integer>
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareWakeKeys">64</integer>
<!-- Whether device has screen with higher aspect ratio -->
<bool name="config_haveHigherAspectRatioScreen">true</bool>
@ -59,5 +19,5 @@
<item>restart_recovery</item>
<item>restart_bootloader</item>
<item>restart_fastboot</item>
</string-array>
</string-array>
</resources>

View file

@ -2,18 +2,7 @@
<!--
Copyright (C) 2014-2015 The CyanogenMod Project
2019-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.
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default for LineageSettings.Secure.VOLUME_PANEL_ON_LEFT -->

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-FileCopyrightText: 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Enable auxiliary cameras selector. -->
<bool name="config_enableAuxCameras">true</bool>
<!-- List of ID of auxiliary cameras that must be ignored by the app. -->
<string-array name="config_ignoredAuxCameraIds">
<item>4</item>
</string-array>
</resources>

View file

@ -1,18 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2016 The CyanogenMod 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-License-Identifier: Apache-2.0
-->
<resources>
<bool name="call_recording_enabled">true</bool>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2021 The LineageOS Project
Copyright (C) 2020-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
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
@ -15,6 +15,6 @@
limitations under the License.
-->
<resources>
<!-- Sensor types -->
<string name="pickup_sensor_type">oneplus.sensor.op_motion_detect</string>
<!-- Show battery cycle count -->
<bool name="config_show_battery_cycle_count" translatable="false">true</bool>
</resources>

View file

@ -0,0 +1,10 @@
//
// Copyright (C) 2022 The LineageOS Project
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "CarrierConfigResCommon",
aaptflags: ["--keep-raw-values"],
product_specific: true,
}

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The Linux Foundation
SPDX-License-Identifier: BSD-3-Clause
-->
<resources>
<!-- Control whether the always on display mode is available. This should only be enabled on
devices where the display has been tuned to be power efficient in DOZE and/or DOZE_SUSPEND
states. -->
<bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework. -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
<!-- Telephony qualified networks service package name to bind to by default. -->
<string name="config_qualified_networks_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN data service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_data_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- IWLAN network service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_network_service_package" translatable="false">vendor.qti.iwlan</string>
<!-- Default files to pin via Pinner Service -->
<string-array name="config_defaultPinnerServiceFiles">
<item>/system/framework/arm64/boot-framework.oat</item>
<item>/system/framework/arm/boot-framework.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.oat</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot-okhttp.oat</item>
<item>/apex/com.android.art/javalib/arm/boot-okhttp.oat</item>
<item>/apex/com.android.art/javalib/arm64/boot.vdex</item>
<item>/apex/com.android.art/javalib/arm/boot.vdex</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.vdex</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.vdex</item>
<item>/apex/com.android.art/javalib/arm64/boot-core-libart.art</item>
<item>/apex/com.android.art/javalib/arm/boot-core-libart.art</item>
<item>/system/framework/framework-res.apk</item>
<item>/system/lib64/libhwui.so</item>
<item>/system/lib/libhwui.so</item>
<item>/system/framework/boot-framework.vdex</item>
<item>/system/framework/oat/arm64/services.vdex</item>
<item>/system/framework/oat/arm64/services.odex</item>
<item>/apex/com.android.art/javalib/arm64/boot.oat</item>
<item>/apex/com.android.art/javalib/arm/boot.oat</item>
<item>/system/framework/telephony-common.jar</item>
<item>/system/framework/arm64/boot-telephony-common.art</item>
<item>/system/lib64/libsurfaceflinger.so</item>
<item>/apex/com.android.art/javalib/core-oj.jar</item>
<item>/apex/com.android.art/javalib/core-libart.jar</item>
</string-array>
<!-- 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>
</resources>

View file

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

View file

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

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">odopg1917</string>
<!-- MMS user agent prolfile url -->
<string name="config_mms_user_agent_profile_url" translatable="false">http://uaprof.vtext.com/oneplus/odopg1917/odopg1917.xml</string>
</resources>

View file

@ -1,22 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. Do not translate. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Flag indicating whether the we should enable the automatic brightness in Settings.
Software implementation will be used if config_hardware_auto_brightness_available is not set -->
<bool name="config_automatic_brightness_available">true</bool>
@ -377,89 +365,20 @@
-->
<bool name="config_fillMainBuiltInDisplayCutout">true</bool>
<!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
<bool name="config_unplugTurnsOnScreen">true</bool>
<!-- Boolean indicating if restoring network selection should be skipped -->
<!-- The restoring is handled by modem if it is true-->
<bool translatable="false" name="skip_restoring_network_selection">true</bool>
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
<bool name="config_cellBroadcastAppLinks">true</bool>
<!-- MMS user agent string -->
<string name="config_mms_user_agent" translatable="false">Android-Mms/2.0</string>
<!-- MMS user agent prolfile url -->
<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,60000,true</item>
<item>mobile_supl,3,0,2,60000,true</item>
<item>mobile_dun,4,0,2,60000,true</item>
<item>mobile_hipri,5,0,3,60000,true</item>
<item>mobile_fota,10,0,2,60000,true</item>
<item>mobile_ims,11,0,2,60000,true</item>
<item>mobile_cbs,12,0,2,60000,true</item>
<item>bluetooth,7,7,2,-1,true</item>
<item>mobile_emergency,15,0,5,-1,true</item>
<item>ethernet,9,9,9,-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 -->
<!-- An Array of "[ConnectivityManager connectionType],
[# simultaneous connection types]" -->
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"0,1"</item>
<item>"7,1"</item>
</string-array>
<!-- Whether WiFi display is supported by this device.
There are many prerequisites for this feature to work correctly.
Here are a few of them:
* The WiFi radio must support WiFi P2P.
* The WiFi radio must support concurrent connections to the WiFi display and
to an access point.
* The Audio Flinger audio_policy.conf file must specify a rule for the "r_submix"
remote submix module. This module is used to record and stream system
audio output to the WiFi display encoder in the media server.
* The remote submix module "audio.r_submix.default" must be installed on the device.
* The device must be provisioned with HDCP keys (for protected content).
-->
<bool name="config_enableWifiDisplay">true</bool>
<!-- Set to true if the wifi display supports compositing content stored
in gralloc protected buffers. For this to be true, there must exist
a protected hardware path for surface flinger to composite and send
protected buffers to the wifi display video encoder.
If this flag is false, we advise applications not to use protected
buffers (if possible) when presenting content to a wifi display because
the content may be blanked.
This flag controls whether the {@link Display#FLAG_SUPPORTS_PROTECTED_BUFFERS}
flag is set for wifi displays.
-->
<bool name="config_wifiDisplaySupportsProtectedBuffers">true</bool>
<!-- Indicate whether closing the lid causes the device to go to sleep and opening
it causes the device to wake up.
The default is false. -->
<bool name="config_lidControlsSleep">true</bool>
<!-- True if camera app should be pinned via Pinner Service -->
<bool name="config_pinnerCameraApp">true</bool>
<!-- True if home app should be pinned via Pinner Service -->
<bool name="config_pinnerHomeApp">true</bool>
<!-- Indicate whether to allow the device to suspend when the screen is off
due to the proximity sensor. This resource should only be set to true
if the sensor HAL correctly handles the proximity sensor as a wake-up source.
@ -467,47 +386,11 @@
The default is false. -->
<bool name="config_suspendWhenScreenOffDueToProximity">true</bool>
<!-- ComponentName of a dream to show whenever the system would otherwise have
gone to sleep. When the PowerManager is asked to go to sleep, it will instead
try to start this dream if possible. The dream should typically call startDozing()
to put the display into a low power state and allow the application processor
to be suspended. When the dream ends, the system will go to sleep as usual.
Specify the component name or an empty string if none.
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
Note that doze dreams are not subject to the same start conditions as ordinary dreams.
Doze dreams will run whenever the power manager is in a dozing state. -->
<string name="config_dozeComponent">com.android.systemui/com.android.systemui.doze.DozeService</string>
<!-- If true, the doze component is not started until after the screen has been
turned off and the screen off animation has been performed. -->
<bool name="config_dozeAfterScreenOffByDefault">true</bool>
<!-- Whether the always on display mode is available. -->
<bool name="config_dozeAlwaysOnDisplayAvailable">true</bool>
<!-- Control whether the always on display mode is enabled by default. This value will be used
during initialization when the setting is still null. -->
<bool name="config_dozeAlwaysOnEnabled">false</bool>
<!-- Power Management: Specifies whether to decouple the auto-suspend state of the
device from the display on/off state.
When false, autosuspend_disable() will be called before the display is turned on
and autosuspend_enable() will be called after the display is turned off.
This mode provides best compatibility for devices using legacy power management
features such as early suspend / late resume.
When true, autosuspend_display() and autosuspend_enable() will be called
independently of whether the display is being turned on or off. This mode
enables the power manager to suspend the application processor while the
display is on.
This resource should be set to "true" when a doze component has been specified
to maximize power savings but not all devices support it.
Refer to autosuspend.h for details.
-->
<bool name="config_powerDecoupleAutoSuspendModeFromDisplay">true</bool>
<!-- True if the device supports Sustained Performance Mode-->
<bool name="config_sustainedPerformanceModeSupported">true</bool>
<!-- Power Management: Specifies whether to decouple the interactive state of the
device from the display on/off state.
@ -522,82 +405,17 @@
to maximize power savings but not all devices support it.
Refer to power.h for details.
-->
<bool name="config_powerDecoupleInteractiveModeFromDisplay">true</bool>
<bool name="config_powerDecoupleInteractiveModeFromDisplay">false</bool>
<!-- Screen brightness used to dim the screen while dozing in a very low power state.
May be less than the minimum allowed brightness setting
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>
<!-- Flag specifying whether VT is available on device -->
<bool name="config_device_vt_available">true</bool>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- IWLAN data service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_data_service_package">vendor.qti.iwlan</string>
<!-- IWLAN network service package name to bind to by default. If none is specified in an overlay, an
empty string is passed in -->
<string name="config_wlan_network_service_package">vendor.qti.iwlan</string>
<!-- Telephony qualified networks service package name to bind to by default. -->
<string name="config_qualified_networks_service_package">vendor.qti.iwlan</string>
<!-- Flag specifying whether or not IMS will use the ImsResolver dynamically -->
<bool name="config_dynamic_bind_ims">true</bool>
<!-- Config determines whether to update phone object when voice registration
state changes. Voice radio tech change will always trigger an update of
phone object irrespective of this config -->
<bool name="config_switch_phone_on_voice_reg_state_change">false</bool>
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">true</bool>
<!-- Boolean indicating if current platform supports HFP inband ringing -->
<bool name="config_bluetooth_hfp_inband_ringing_support">true</bool>
<!-- Flag indicating if the speed up audio on mt call code should be executed -->
<bool name="config_speed_up_audio_on_mt_calls">true</bool>
<!-- Shutdown if the battery temperature exceeds (this value * 0.1) Celsius. -->
<integer name="config_shutdownBatteryTemperature">680</integer>
<!-- Average Current for bluetooth controller when idle. 0 by default-->
<integer translatable="false" name="config_bluetooth_idle_cur_ma">6</integer>
<!-- Average Current for bluetooth controller when receiving. 0 by default-->
<integer translatable="false" name="config_bluetooth_rx_cur_ma">28</integer>
<!-- Average Current for bluetooth controller when transmitting. 0 by default-->
<integer translatable="false" name="config_bluetooth_tx_cur_ma">36</integer>
<!-- Operating volatage for bluetooth controller. 0 by default-->
<integer translatable="false" name="config_bluetooth_operating_voltage_mv">3700</integer>
<!-- The default refresh rate for a given device. Change this value to set a higher default
refresh rate. If the hardware composer on the device supports display modes with a higher
refresh rate than the default value specified here, the framework may use those higher
refresh rate modes if an app chooses one by setting preferredDisplayModeId or calling
setFrameRate().
If a non-zero value is set for config_defaultPeakRefreshRate, then
config_defaultRefreshRate may be set to 0, in which case the value set for
config_defaultPeakRefreshRate will act as the default frame rate. -->
<integer name="config_defaultRefreshRate">0</integer>
<!-- Vibrator pattern for feedback about a long screen/key press -->
<integer-array name="config_longPressVibePattern">
@ -611,60 +429,13 @@
<item>80</item>
</integer-array>
<!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
<integer-array name="config_keyboardTapVibePattern">
<item>80</item>
<!-- Indicate available ColorDisplayManager.COLOR_MODE_xxx. -->
<integer-array name="config_availableColorModes">
<item>0</item> <!-- COLOR_MODE_NATURAL -->
<item>1</item> <!-- COLOR_MODE_BOOSTED -->
<item>2</item> <!-- COLOR_MODE_SATURATED -->
</integer-array>
<!-- Default list of files pinned by the Pinner Service -->
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/services.jar"</item>
<item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<item>"/apex/com.android.art/javalib/core-libart.jar"</item>
<item>"/apex/com.android.media/javalib/updatable-media.jar"</item>
<item>"/system_ext/priv-app/SystemUI/SystemUI.apk"</item>
<item>"/system/bin/surfaceflinger"</item>
</string-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>
<!-- Whether a software navigation bar should be shown. NOTE: in the future this may be
autodetected from the Configuration. -->
<bool name="config_showNavigationBar">true</bool>
<!-- When true use the linux /dev/input/event subsystem to detect the switch changes
on the headphone/microphone jack. When false use the older uevent framework. -->
<bool name="config_useDevInputEventForAudioJack">true</bool>
<!-- Is the device capable of hot swapping an ICC Card -->
<bool name="config_hotswapCapable">true</bool>
<!-- Whether the Unprocessed audio source supports the required frequency range and level -->
<bool name="config_supportAudioSourceUnprocessed">true</bool>
<!-- True if the device supports Sustained Performance Mode-->
<bool name="config_sustainedPerformanceModeSupported">true</bool>
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- Boolean indicating whether the HWC setColorTransform function can be performed efficiently
in hardware. -->
<bool name="config_setColorTransformAccelerated">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>
<!-- Indicates whether device has a power button fingerprint sensor. -->
<bool name="config_is_powerbutton_fps" translatable="false">true</bool>
@ -682,19 +453,65 @@
<item>115</item>
</array>
<!-- The default refresh rate for a given device. Change this value to set a higher default
refresh rate. If the hardware composer on the device supports display modes with a higher
refresh rate than the default value specified here, the framework may use those higher
refresh rate modes if an app chooses one by setting preferredDisplayModeId or calling
setFrameRate().
If a non-zero value is set for config_defaultPeakRefreshRate, then
config_defaultRefreshRate may be set to 0, in which case the value set for
config_defaultPeakRefreshRate will act as the default frame rate. -->
<integer name="config_defaultRefreshRate">0</integer>
<!-- Default list of files pinned by the Pinner Service -->
<string-array translatable="false" name="config_defaultPinnerServiceFiles">
<item>"/system/framework/framework.jar"</item>
<item>"/system/framework/services.jar"</item>
<item>"/apex/com.android.art/javalib/core-oj.jar"</item>
<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>"/vendor/lib64/libcamxexternalformatutils.so"</item>
<item>"/vendor/lib64/libipebpsstriping.so"</item>
<item>"/vendor/lib64/libCB.so"</item>
<item>"/vendor/lib64/libgsl.so"</item>
</string-array>
<!-- Control whether the always on display mode is enabled by default. This value will be used
during initialization when the setting is still null. -->
<bool name="config_dozeAlwaysOnEnabled">false</bool>
<!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_wfc_ims_available">true</bool>
<!-- Whether the new Auto Selection Network UI should be shown -->
<bool name="config_enableNewAutoSelectNetworkUI">true</bool>
<!-- An array of device capabilities defined by GSMA SGP.22 v2.0.
The first item is the capability name that the device supports. The second item is the
major version. The minor and revision versions are default to 0s.
The device capabilities and their definition in the spec are:
gsm : gsmSupportedRelease
utran : utranSupportedRelease
cdma1x : cdma2000onexSupportedRelease
hrpd : cdma2000hrpdSupportedRelease
ehrpd : cdma2000ehrpdSupportedRelease
eutran : eutranSupportedRelease
nfc : contactlessSupportedRelease
crl : rspCrlSupportedVersion
nrepc : nrEpcSupportedRelease
nr5gc : nr5gcSupportedRelease
eutran5gc : eutran5gcSupportedRelease
-->
<string-array name="config_telephonyEuiccDeviceCapabilities">
<item>gsm,11</item>
<item>utran,11</item>
<item>cdma1x,1</item>
<item>hrpd,3</item>
<item>ehrpd,12</item>
<item>eutran,11</item>
<item>nfc,1</item>
</string-array>
<!-- Safe headphone volume index. When music stream volume is below this index
the SPL on headphone output is compliant to EN 60950 requirements for portable music
players. -->
<integer name="config_safe_media_volume_index">18</integer>
<!-- Safe USB headset gain. This value is used to ensure that the SPL on the USB
headset output is compliant to EN 60950 requirements for portable music players. -->
<integer name="config_safe_media_volume_usb_mB">-1650</integer>
<!-- The default peak refresh rate for a given device. Change this value if you want to prevent
the framework from using higher refresh rates, even if display modes with higher refresh
rates are available from hardware composer. Only has an effect if the value is
non-zero. -->
<integer name="config_defaultPeakRefreshRate">90</integer>
</resources>

View file

@ -37,7 +37,7 @@
<item name="modem.controller.voltage">800
</item>
<array name="cpu.clusters.cores">
<value>4</value>
<value>6</value>
<value>2</value>
</array>
<array name="cpu.core_speeds.cluster0">

View file

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

View file

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

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Default for Settings.Global.DEVICE_NAME $1=MODEL-->
<string name="def_device_name_simple" translatable="false">OnePlus Nord N200</string>
</resources>

View file

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

View file

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

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2022 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<resources>
<!-- Max network scan search time in seconds -->
<integer name="config_network_scan_helper_max_search_time_sec">254</integer>
<!-- Whether to show Smooth Display feature in Settings Options -->
<bool name="config_show_smooth_display">true</bool>
</resources>

View file

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

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