862 Commits
Author SHA1 Message Date
Jorge Lucas 67a2bf533a sanders: Pixel Experience CAF Bringup
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2020-05-13 06:05:39 +02:00
jhenrique09 458dacff2d [DNM] sanders: Introduce 'SafailNet'
Bypass safetynet even if we have permissive selinux

Change-Id: Ib44cdbd15b53af3a1768cb0912f2dbcc56a8d97e
2019-12-19 00:59:49 +01:00
Jorge Lucas e0b0d20212 sanders: Switch to Pixel Fingerprint
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-19 00:58:15 +01:00
Jorge Lucas 3f44c248f9 sanders: Change DPI to 420
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 18:22:39 +01:00
Jorge Lucas 77aec8f342 Revert "sanders: Uprev GNSS HAL to 1.1"
This reverts commit 072d844924.
2019-12-16 18:22:39 +01:00
therootlord 90727239dc sanders: update GPS configs from deen PPK29.68-16-8 2019-12-16 18:22:39 +01:00
Arvind Mukund a634a27ab6 sanders: gps: add cacert_location.pem
Signed-off-by: Arvind Mukund <armu30@gmail.com>
2019-12-16 18:22:39 +01:00
therootlord de4a6d4792 sanders: gps: add missing config file from deen 2019-12-16 18:22:39 +01:00
therootlord 0e911b49b9 sanders: update GPS configs from deen PPK29.68-16-8 2019-12-16 18:22:39 +01:00
therootlord 25ef0753f1 sanders: gps: update to LA.UM.7.6.r1-03400-89xx.0 tag 2019-12-16 18:22:39 +01:00
Jorge Lucas cdc38fd642 Revert "sanders: GPS: Update from LA.UM.7.6.2.r1-04200-89xx.0 and update GPS packages"
This reverts commit a6c556a56ededa4a5d41912ad966e67e3ce655d6.
2019-12-16 18:22:39 +01:00
Vachounet 8b64902b69 sanders: set TARGET_ENABLE_MEDIADRM_64
Change-Id: I11d59ce11ac49ff552f33d2342d636c1c0cf3d75
2019-12-16 15:29:06 +01:00
Jorge Lucas 08b1221c68 sanders: Drop Clang Version
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:06 +01:00
Jorg3Lucas 74f1054f16 sanders: Fix model name
Signed-off-by: Jorg3Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:06 +01:00
Jarl-Penguin f9b00b8ad2 sanders: mount /fsg in /vendor
Signed-off-by: Jarl-Penguin <jarlpenguin@outlook.com>
Change-Id: Ic2c617f14bf9d19d00addde04f98076e05728fde
2019-12-16 15:29:06 +01:00
Jorge Lucas f0577bb3e9 sanders: add Dependencies for PE
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:06 +01:00
David ef862dc5c6 sanders: Enable VoLTE to enable calling over LTE for Vodafone India.
Change-Id: I295c95b1078ba2cbeb08c014f17c9a67ba5060ba
2019-12-16 15:29:06 +01:00
MRTHAKER 11cddc03b6 sanders: Enable VoLTE to enable calling over LTE for Airtel India. 2019-12-16 15:29:06 +01:00
kubersharma001 c2b15d684d sanders: update some radio props 2019-12-16 15:29:06 +01:00
Shiv a1818478f0 sanders:rootdir: Set use_sched_load to 0
Fixes the issue where only lower frequecies are being used which results in lag while playing games and other CPU intensive tasks.
2019-12-16 15:29:06 +01:00
kubersharma001 2cd272e922 sanders: Drop TARGET_PROCESS_SDK_VERSION_OVERRIDE
Change-Id: I2c1338bc686a771d59245dec990ea04c2d14a6cb
2019-12-16 15:29:06 +01:00
Rajat Gupta b73bc087ef sanders: Set shipping API level via inherited makefile
* PRODUCT_SHIPPING_API_LEVEL is set there

Signed-off-by: Jarl-Penguin <jarlpenguin@outlook.com>
2019-12-16 15:29:06 +01:00
Jarl-Penguin d9ecf95237 sanders: mke2fs is default on Pie
Signed-off-by: Jarl-Penguin <jarlpenguin@outlook.com>
2019-12-16 15:29:06 +01:00
Vaisakh Murali cec52bbbab sanders: audio: Add audio_tuning_mixer from OSS Hal
* From CAF Tag LA.UM.7.6.r1-06400-89xx.0

Signed-off-by: Vaisakh Murali <vaisakhmurali@gmail.com>
Change-Id: Ie32335b83f9203cadc2b02f6ff02b5f4a0612a4e
2019-12-16 15:29:06 +01:00
Rajat Gupta 67b5a75607 sanders: New ION API flag is deprecated
Signed-off-by: Jarl-Penguin <jarlpenguin@outlook.com>
Change-Id: I7f917746219c84eee6c348fd12aa197d766b8111
2019-12-16 15:29:06 +01:00
Nolen Johnson d4ee2324d9 sanders: Remove deprecated TARGET_USES_64_BIT_BINDER
Change-Id: Ibafc06659dae21e8acdd132bc2de7478008682b0
2019-12-16 15:29:06 +01:00
Arne Coucheron f3ae043b8a sanders: Remove deprecated BOARD_HAS_QCOM_WLAN_SDK
Signed-off-by: Rajat Gupta <rajatgupta1998@acm.org>
Change-Id: I936ba7cdc6ed4f5ddede09e89c610f59e913908f
2019-12-16 15:29:06 +01:00
Arne Coucheron f2b21b1ae7 sanders: Remove deprecated TARGET_BOARD_PLATFORM_GPU
Signed-off-by: Rajat Gupta <rajatgupta1998@acm.org>
2019-12-16 15:29:06 +01:00
JarlPenguin 7b29c924ff sanders: update spec sheet
Signed-off-by: JarlPenguin <jarlpenguin@outlook.com>
2019-12-16 15:29:06 +01:00
Abhay Ruparel 59eeeb1d9e sanders: Drop HWUI properties on O-MR1
* In Android 8.1 and later, only the ro.zygote.disable_gl_preload
   property still applies. All other properties have been removed.

   Reference: source.android.com/devices/graphics/renderer

Change-Id: I45ed04a5590ef12c5c68cdfa3ee41b1decd821ff
Signed-off-by: Rajat Gupta <rjtgupta84@gmail.com>
2019-12-16 15:29:06 +01:00
Vaisakh Murali e5ff37f296 sanders: libshims: Set correct header dependency
Signed-off-by: Vaisakh Murali <vaisakhmurali@gmail.com>
Change-Id: Idd7c1a26141299eecca716868c571cbc2ef6f6f3
2019-12-16 15:29:06 +01:00
JarlPenguin c4d7564f71 sanders: remove DT2W references
This reverts commit f2a18ef36b.

Signed-off-by: JarlPenguin <jarlpenguin@outlook.com>
2019-12-16 15:29:06 +01:00
Flex1911 f798ad4386 sanders: Clear the recovery cache in persist on boot
* Due to the way newer TWRP versions are behaving, our relatively small
  persist partition gets overfilled with recovery logs very quickly.
* Let's just remove the recovery cache from persist on every boot to be sure
  that we always have enough space for anything that writes to persist.

Signed-off-by: EsromTech <esromgalaxy5@gmail.com>
2019-12-16 15:29:06 +01:00
sai4041412 c9e9cbbe65 sanders: Dirty flash fix
This helps after a dirty flash, in order to avoid broken strings on settings app.

original commit RevengeOS-Devices/android_device_xiaomi_tissot-common@430576c

Signed-off-by: sai4041412 <sai404142@gmail.com>
2019-12-16 15:29:06 +01:00
Baili Feng 8c52d22b1c sanders: Add fqname 1.0::IGnss/gnss_vendor
ILocHidl is derived from IGnss, so a ILocHidl service
named gnss_vendor is also a IGnss service with the same name.
CRs-fixed: 2290565

Change-Id: I7e8a07807c26d09db5793625024bb0e08eb761f8
2019-12-16 15:29:06 +01:00
Jorim Jaggi afc44821ed sanders: enable early phase offsets
Since we hit GL comp quite frequently during app transitions, we
need to enable early phase offsets to give it enough time for
composition.

Test: Open app, make sure vsync-offsets shift
Bug: 75985430
Change-Id: I2f85bf72a4b135dce664f7274848f3956a9aaf7a
2019-12-16 15:29:06 +01:00
therootlord 70e4ed4050 sanders: update sensor_def_qcomdev.conf from stock OPS28.65-36-11 2019-12-16 15:29:06 +01:00
therootlord 9d0863ddc5 sanders: cleanup nfc permissions 2019-12-16 15:29:06 +01:00
therootlord 3482a32d8a sanders: update nfc configs 2019-12-16 15:29:06 +01:00
therootlord fad5942861 sanders: rootdir: ueventd: partial update from LA.UM.7.6.r1-03700-89xx.0 2019-12-16 15:29:06 +01:00
Abir Ghosh f3dc0e15ff sanders: Do not create fingerprint directories in init
Add changes to not create fingerprint directories in
init.qcom.rc. It will be done in fingerprint module
init script.

Change-Id: If199cf875bb4201fcda923b0e8162b06d8d93d1a
2019-12-16 15:29:06 +01:00
Dante Russo 9257aeb453 sanders: Remove fused location provider overlay
CRs-fixed: 2222034
Change-Id: I00e6d619cbceb01bc03538f3dbadcc814a46f3f5
2019-12-16 15:29:06 +01:00
therootlord 61038e8f6f sanders: update ACDB props and init.qcom.rc 2019-12-16 15:29:06 +01:00
dianlujitao 4a89008bc0 sanders: Copy vendor HIDL interface libs to /vendor
Change-Id: Ia95e09b21ce42137cac9a1dd22f208fd9de9bf20
2019-12-16 15:29:06 +01:00
therootlord eadd88aa96 sanders: vndk: sync with LA.UM.7.6.r1-03700-89xx.0 2019-12-16 15:29:06 +01:00
Abhishek Srivastava 0a793f1172 sanders: wifi: Added HIDL@2.0 supplicant and hostapd entry on device
manifest.

Change-Id: Icee52d7148d5812d92276b93eadb0f53313edc0a
CRs-Fixed: 2218486
2019-12-16 15:29:06 +01:00
chandan mishra 914b746f0e sanders: Disabled bluetooth audio and ant HALs As they are not
supported on these targets.

CRs-Fixed: 2302506
Change-Id: I3752f2c2f86b0b658cc05969365d5e7c4437745c
2019-12-16 15:29:06 +01:00
Alberto97 0f4d87a6d9 Actions: Robustify
* Use not deprecated APIs where possible
* Added some NPE safety checks
* General cleaning of unsed code
2019-12-16 15:29:06 +01:00
Alberto97 d70a65507e Actions: Clean up Android.mk 2019-12-16 15:29:06 +01:00
Alberto97 e9d5768790 Actions: FlipToMute: Vibrate when going DND 2019-12-16 15:29:06 +01:00
Vasishath Kaushal 9167061925 overlay: use vibration patterns from Pixel devices 2019-12-16 15:29:06 +01:00
martinusbe e73c25327a sanders: Enable VoLTE
Change-Id: Id50dfd944eaeb3dec8a9ac3e0e5b71da48205df1
2019-12-16 15:29:06 +01:00
Prema Chand Alugu 780f0f1f8b sanders: overlay: gzr: Enable Keys overlay to fine-tune navbar/FP-gestures
GZOSP -
We do have 'Button' settings and can be configured for LongPress/DoubleTap actions.
Sanders doesn't have hardware keys and navbar keys do the default actions. However we have
FP gestures in MotoActions. But default actions of HOME/BACK/RECENTS cannot be performed
anymore with FP gestures as they are primary job of navbar keys.

Unless we want to gain screen-estate, there is no need for FP gestures to do default actions
along with nav-bar.
This overlay mimics the Sanders has Hardware key (just HOME a.k.a FP) and nav-bar can now be disabled.
With that we could configure default actions of HOME/BACK/RECENTS with FP gestures.
2019-12-16 15:29:05 +01:00
Jorge Lucas f6d9106989 sanders: Update keyhandler overlays
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:05 +01:00
Jorge Lucas 0d096c77b2 sanders: Update KeyHandler for AOSP
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:05 +01:00
dybios c35c36d5fe vulkan: Shift to version 1.0.3 from 1.1
- 1.0.3 is used in our stock hence shift to that
2019-12-16 15:29:05 +01:00
lucasponez 957df1c2e1 sanders: Ignore neverallows for while
Ignoring neverallows until Q10 update.

Change-Id: I73512f41de980edce8364e32b733d0a800a4a86a
2019-12-16 15:29:05 +01:00
Alisson Lauffer 8505c8ce81 sanders: Remove duplicated type 2019-12-16 15:29:05 +01:00
Nick van Bokhorst e150dad18e sanders: add config_canForceDisableNavigationBar to overlay
*For enabling/disabling nav bar
2019-12-16 15:29:05 +01:00
Henrique Silva cafd9ec582 [REQUIRED] MotoActions: Fix font and accent color
Signed-off-by: JarlPenguin <jarlpenguin@outlook.com>
Change-Id: Ib072bbfdd6d3c7efbfd115eec641841f72183fe1
2019-12-16 15:29:05 +01:00
Sebastian adf83863fa Loud headphones, i like that!
Signed-off-by: Sebastian <kjjjnob.seba@gmail.com>
2019-12-16 15:29:05 +01:00
GtrCraft fd8880f9fe sanders: Enable EIS 2019-12-16 15:29:05 +01:00
Alisson Lauffer 4f6b391a4b sanders: Force Enable DTV module when device boots up 2019-12-16 15:29:05 +01:00
Adithya R a9019257f3 Add vendor prefix to fm props
*Fix fm radio
2019-12-16 15:29:05 +01:00
Jorge Lucas f63f158274 sanders: Fix script path in these files
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 15:29:05 +01:00
Jorge Lucas 33eba28e69 sanders: add missing permissions 2019-12-16 15:29:05 +01:00
JarlPenguin c6c5297aa5 sanders: copy permission files to system
Signed-off-by: JarlPenguin <jarlpenguin@outlook.com>
2019-12-16 15:29:05 +01:00
Henrique Silva 5ecd12fa6d sanders: overlay: Ignore RSSNR signal level
Improve reception
2019-12-16 15:29:05 +01:00
UtsavisGreat 5dcd531590 MotoActions: add material icons for Ambient Display
Kanged-off-from: https://github.com/Evolution-X-Devices/device_xiaomi_msm8953-common/commit/3831e2df1a38d3fcc69174909bd8d0bdd3a712af#diff-78f0805fa8ffadabda721fdaf85b3ca

Signed-off-by: UtsavisGreat <utsavbalar1231@gmail.com>
Signed-off-by: utsavisgreat <utsavbalar1231@gmail.com>
2019-12-16 15:29:05 +01:00
UtsavisGreat aab9d3c51a MotoActions: Add Material Icons for Fingerprint Gestures
Signed-off-by: UtsavisGreat <utsavbalar1231@gmail.com>
2019-12-16 15:29:05 +01:00
kubersharma001 390fd1c714 sanders: MotoActions: Drop min|target sdk version
Change-Id: I0ce82d8e6c5e2f432426fa9c98a36f33ece9bc52
2019-12-16 15:29:05 +01:00
kubersharma001 b748610e03 sanders: Bump sdk version override to 27 for cam
Change-Id: Ice39b80afbe135459e3ee98645719f57a9afb93f
2019-12-16 15:29:05 +01:00
kubersharma001 60f0bc50f7 sanders: Cleanup/tweak init.{qcom|mmi}.rc
Change-Id: I0a31c0dfa75388175c8941e39081ed0a348856a8
2019-12-16 15:29:05 +01:00
kubersharma001 b9aebf22b3 sanders: Build libcld80211
* Needed for cnss-daemon and wfd

Change-Id: I4206fdac39c5112a729f0de14324fd513601bb89
2019-12-16 15:29:00 +01:00
utsavbalar1231 7c35669aaf sanders: power_profile: Fix the incorrect frequencies
Signed-off-by: utsavbalar1231 <utsavbalar1231@gmail.com>
Change-Id: I21bdd4d59b657e36ecb074c69f7548115e9bce42
2019-12-16 15:29:00 +01:00
UtsavisGreat f8ce4dea52 sanders: rootdir: use all cores for camera daemon
Signed-off-by: UtsavisGreat <utsavbalar1231@gmail.com>
2019-12-16 15:29:00 +01:00
GtrCraft 3175070c4b sanders: Add missing permission for com.qualcomm.atfwd 2019-12-16 15:29:00 +01:00
Davide Garberi 6b13c23757 sanders: gps: Fix 1.1 interface leftovers
* Thanks CAF for derping as usual

Change-Id: I4a571fbc8810127cf675ff0aa29c4923b16bc62a
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2019-12-16 15:28:54 +01:00
kubersharma001 575fbce42c sanders: GPS: Update from LA.UM.7.6.2.r1-04200-89xx.0 and update GPS packages
Change-Id: I3111254674e24f8deb511a7de32f57ee5abe8911
2019-12-16 15:28:54 +01:00
utsavbalar1231 d95e6a0094 sanders: Update dalvik virtual memory props
Signed-off-by: utsavbalar1231 <utsavbalar1231@gmail.com>
Change-Id: I2d4696f1b64115da011060cc902d9a12c378ec6d
2019-12-16 15:28:54 +01:00
utsavbalar1231 3896ddaacb sanders: audio: Increase speaker & in-call sound
Signed-off-by: utsavbalar1231 <utsavbalar1231@gmail.com>
Change-Id: I8d717515665668dddb2eec4596dc69610ff3b77e
2019-12-16 15:28:54 +01:00
Vachounet 360ada01d1 sanders: sync some config files with stock
* OPS28.85-17-6-2

Change-Id: I028e209d41bff3dffe05107f249b7578b9d9dd6c
2019-12-16 15:28:54 +01:00
Gareth Kitchen cb24ad61b8 sanders: gps: Localise NTP to improve GPS TTFF
Testing response times to time.android.com from around the globe reveals
in ms:-

Europe			 <30
Middle East		 <68
North America		<150
Johannesburg		 183
Buenos Aires		 220
Tokyo			 226
Sydney			 276
Hong Kong		 285
Brisbane		 295
Mumbai			 349
Beijing			4691
Shanghai		4906
Russia			 n/a

Whilst time.android.com is NOT used for GPS NTP, North American time servers
are, by specifying north-america.pool.ntp.org as default in the framework,
to align with pixel devices.  I am assuming similar response times to these
servers from around the world.

Great for North America and it appears Europe but it does not address the
global issue. Also, the pool.ntp.org project forbids both hardware and
software vendors from using these default zone names.
http://www.pool.ntp.org/en/vendors.html

It makes sense, therefore, to leverage the ntp.org's existing 'android' vendor
name to make the default ntp server for GPS purposes:
1.android.pool.ntp.org this will return a random but accurate NTP server in
close geopraphic proximity to the device.

Testing on my own build in the UK seems to improve hot and cold TTFF
considerably.

Change-Id: I144af45757efa35b32daf034eece6e046d2bde79
2019-12-16 15:28:54 +01:00
Madhanraj Chelladurai 4c1a4595a1 sanders: ueventd: add permission for gps component to read pps device
GPS components make use of DR_SYNC pulse generated by GNSS
hardware, which was received through pps device, hence
require permission for reading this device

Change-Id: I00bd3b8aa88059fb94338b6ba1d107d77c06a5e0
CRs-Fixed: 2299356
2019-12-16 15:28:54 +01:00
Madhanraj Chelladurai a442025e50 sanders: ueventd: init: add permission entries for location component
Add permissions for location components in init.qcom.rc and
ueventd.qcom.rc

Change-Id: I07f3b57470336165393a68144faccf26cdbca98c
CRs-Fixed: 2299356
2019-12-16 15:28:54 +01:00
Ashwin R C bc57316aed sanders: Add vendor prefix to gralloc-2-0
* init: Command 'start gralloc-2-0' action=late-fs (/vendor/etc/init/hw/init.qcom.rc:55) took 0ms and failed: service gralloc-2-0 not found

Signed-off-by: Ashwin R C <ashwin2001achu@gmail.com>
Change-Id: Ic444c7c683ab94b9a37e7d100cde19485db651b9
2019-12-16 15:28:54 +01:00
dianlujitao 5a82dc940f sanders: Wait for MPCTL to start on boot
Change-Id: Ib79b48e1d362872d9d97373d5ca2ad42f7fbc638
2019-12-16 15:28:54 +01:00
Jean-Michel Trivi 075de75e87 sanders: set Media volume to 25 steps
Test: play media, use all 25 vol steps and observe varying attenuation
Bug: 32195657
Change-Id: I7ac87df0b2b15de3a7bb87e739bd88ef7b185236
2019-12-16 15:28:54 +01:00
Pranav Vashi 6668665876 sanders: Remove cpuset foreground boost
Cpuset foreground boost is departed since
https://android.googlesource.com/platform/frameworks/base/+/a712d4058f6f85268838

Change-Id: I65216f3e9091ce38aab8d58d261ba7a695ba80a4
2019-12-16 15:28:54 +01:00
Michael Bestas 341d5fb220 sanders: Stop copying WCNSS_qcom_cfg.ini to userdata
Change-Id: I7b9fbc0e26a1563f3e13fe0f9d58308b618a5702
2019-12-16 15:28:54 +01:00
kubersharma001 29ac6ef56f sanders: update wifi configs
Change-Id: Ic73a4ee48f1becf7261cd522265b954465b1cfa4
2019-12-16 15:28:54 +01:00
Vachounet d8f60177fd sanders: copy com.nxp.mifare.xml
* Expose mifare feature

Change-Id: I7f4a891db4b137de17eec3a7411c81d15b252fc0
2019-12-16 15:28:54 +01:00
kubersharma001 a54bbad0cb sanders: overlay: snap: disable api2/hal3
Change-Id: Ic4088a36882a5add7a464b3641b582f8a0ef6f77
2019-12-16 15:28:54 +01:00
kubersharma001 2a6a1192e2 sanders: add more wfd props
Change-Id: I21d931f5cf6cc7d4074d317881a1ca981b24228f
2019-12-16 15:28:54 +01:00
Erfan Abdi 05e34ec3e0 sanders: Enable metadata for FDE
* This device uses metadata partition to store FDE key

Change-Id: I81795273979e2639381d44ccb97d78fd45571634
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2019-12-16 15:28:54 +01:00
kubersharma001 5cd03a158e sanders: update CarrierConfig overlays from LA.UM.7.6.2.r1-07600-89xx.0
Change-Id: I9a3adcb4ac4a0683ab3a86255ce2e5c192b0f5bb
2019-12-16 15:28:54 +01:00
kubersharma001 1d3988916d sanders: [DNM] import carrier specific/telephony overlays from griffin
* kanged from and till LineageOS/android_device_motorola_griffin/tree/3c0798f706e84eb735299e0dd2398a65294bed15

Change-Id: Iaae1859bfda2ea7d0a7a38e0dd79cb5d8e2ddb9d
2019-12-16 15:28:54 +01:00
Adithya R 080711a551 sanders: overlay: Unpin SystemUI
* Not needed after 39f1f2878b71c1a560da5ea70e18aaf8d8a44b70 as SystemUI.{odex,vdex}
  won't exist if they are preopted.

02-04 07:58:33.229 555 568 E PinnerService: Could not pin file /system/priv-app/SystemUI/oat/arm64/SystemUI.vdex
02-04 07:58:33.229 555 568 E PinnerService: android.system.ErrnoException: open failed: ENOENT (No such file or directory)

Change-Id: I20bfe66851fd5ade5f89e60be62aafab12333df2
2019-12-16 15:28:54 +01:00
kubersharma001 072fb97891 sanders: WCNSS_qcom_cfg.ini from deen's pie release 2019-12-16 15:28:54 +01:00
Jan Böhmer 7e618246d9 Added new line char after ISO_DEP_MAX_TRANSCEIVE
The NFC HAL seems to need this new line to apply the ISO_DEP config.
2019-12-16 15:28:54 +01:00
Adrian DC 76d9f9be8c sanders: init: Resolve vendor HALs for early bootanimation start
* Adapt the service from configstore-hal-1-0 service
    to vendor.configstore-hal for AOSP P

 * Resolves surfaceflinger first launch crash
    due to configstore not being running earlier enough

Change-Id: I5aae6d8357ce71933e7c6673e9e4d37adb55a6af
2019-12-16 15:28:54 +01:00
Philip Cuadra edd1b13001 sanders: Enable Camera App pinning 2019-12-16 15:28:54 +01:00
John Dias 3bfa03b48f sanders: Pre-opt SystemUI
SystemUI is getting deoptimized, possibly resulting in jank
(not yet validated); pre-optimize to avoid deoptimization for now.
Bug: 62832717
Bug: 35872915
Test: boot, check for vdex, run for a bit

Change-Id: Ia754db444eebaebf0ff2389ab66f6f1d486da994
2019-12-16 15:28:54 +01:00
Adithya R d2fa29e5f4 overlay: Correct SystemUI paths for pinner service
* Thanks to @aviraxp for pointing it out.

Change-Id: I7b4fbe23aa46c71b31d914b1e1ddd955aa1b4bf0
2019-12-16 15:28:54 +01:00
Jorim Jaggi 36dd36a154 sanders: overlay: Pin home application
Test: adb shell dumpsys pinner after boot
Bug: 111132016
Bug: 78585335
Change-Id: I4ed0587ae5348bbe03ad9ac5f1c5b1726dbb8246
2019-12-16 15:28:54 +01:00
Jorim Jaggi 18c13d7979 overlay: Pin critical apps and system services that get swapped
Pin critical system apps that always need to be responsive, no
mattter what:
- SystemUI for expanding the notification shade/navigation bar
- SF: Doesn't need introduction, but still gets zram'ed in certain
cases:

Total memory impact: About 5-6 MB (since regularly not all code is
loaded)
Test: Flash device with CL and make sure actions like expanding
notification shade isn't as janky under memory pressure anymore
Bug: 111132016

Change-Id: I3bc93204147502bec2e983f7ee37555294db308c
2019-12-16 15:28:54 +01:00
Vachounet bec412a1ec sanders: add perms for FMRadio app
Change-Id: I5137df75b3763a29dd56c5fc238f9b0380739a3e
2019-12-16 15:28:54 +01:00
Vachounet cafb3e4d92 sanders: update privapp perms
Change-Id: If6773d00111f12763f26da2b94450ab8d9a0ccfc
2019-12-16 15:28:54 +01:00
Vachounet 7548101a10 sanders: add back FM support
Change-Id: I86fd0251a1278cc7a5d0102ec554979a3732e4fe
2019-12-16 15:28:54 +01:00
Vachounet 512df8ddc4 sanders: sync init.qcom.rc with last CAF changes
Change-Id: I0c06e086d3843faafa6787dc69b7f7541dc3304f
2019-12-16 15:28:54 +01:00
Jan Böhmer 55a76c2084 Added ISO_DEP_MAX_TRANSCEIVE value to libnfc config
Without these setting some NFC Tags can not be read (An exception is thrown which states that the transmitted data is too long).
2019-12-16 15:28:53 +01:00
Nick van Bokhorst dec2c71153 sanders: WFD Changes
*Taken from tissot device tree
2019-12-16 15:28:53 +01:00
Vachounet 97cc0514ec sanders: build android.hidl.manager-V1.0-java 2019-12-16 15:28:53 +01:00
Wei Wang 30cf8bc052 Wait for hwservicemanager ready before running fsck
As property service is part of init, and if init is busy with built-in
command e.g. fsck, the propety_set() won't go through until the built-in
command is finished.
Move the start of hwservicemanager earlier and wait for its done after
launches bootanim and its dependencies (there is not wait time during
boot but the command is as a safeguard).

Bug: 74437368
Test: boot with simulated long fsck and bootanim shown early
Test: boot see 'start_waiting_for_property("hwservicemanager.ready", "true"): already set'
Change-Id: Iab4b857a51e0e6b8b059d063c1f0d65a0e987622
2019-12-16 15:28:53 +01:00
Wei Wang 91e5319362 sanders: Tune zram performance
* Set page-cluster to 0 as the incremental cost of reading 1 page at a
time is negligible for zram

Change-Id: Ia73d08904551dfc8d57268fc4da3f9f34d10e277
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2019-12-16 15:28:53 +01:00
Han Wang 223614ac44 sanders: Configure number of physical SIM slots
* Needed by telephony-common

Change-Id: I18c058d295ed2eaf23e8ca5d1f3933b65806ed48
2019-12-16 15:28:53 +01:00
William Bellavance 107ec5c02e sanders: enable Verizon visual voicemail support
Change-Id: I5f60886a7cd3f39dc1c01ecae4d64388d0cd3b6e
2019-12-16 15:28:53 +01:00
dianlujitao 4189a5590f sanders: Update qti_whitelist from LA.UM.7.5.r1-03100-8x96.0
Change-Id: I93ad3de87cbb78d2155fd0b4304738c2080554f5
2019-12-16 15:28:53 +01:00
Bruno Martins 0bce773a88 sanders: Fix typo from CodeAurora in the QTI whitelist
* Let com.qualcomm.qcrilmsgtunnel break free

Change-Id: I6243a6d21da7709bf6612270d7638f1231b9f601
2019-12-16 15:28:53 +01:00
maxwen a96463a95e overlay: enable config_enableManualSubProvisioning
Change-Id: I4ebf7ce5833e6375d5179f1ab084132449e51249
2019-12-16 15:28:53 +01:00
Luca Stefani e19771d7e3 overlay: Update power_profile to P
Change-Id: I9771f7dcbff3fc5c40871d8647642139756a0987
2019-12-16 15:28:53 +01:00
kubersharma001 081c5e39fc [DNM]sanders: update wifi configs
* basically, revert some recent changes

Change-Id: I4d8f126127f85c48200c9f6615d25819889126a3
2019-12-16 15:28:53 +01:00
kubersharma001 8128e48c3d sanders: re-adjust dir for new time service blobs from P
Revert "potter: Adjust mkdir of time data files"
This reverts commit d52dd9094aab10b5d6640ebd1cba56a66ba847db.

Change-Id: I5d2e4a0849223b07bf060ec3c75c32f76710f672
2019-12-16 15:28:53 +01:00
Alberto97 f6518caf1e ueventd: Change permissions of USB role switch nodes
Usb HAL expects data/power role switch to be supported if these are writable.
Despite our hardware can support the functionality, it does not seem to be properly implemented.
2019-12-16 15:28:53 +01:00
Jack Pham 6d8326b14e ueventd.qcom.rc: Change ownership of USB role switch nodes
Change ownership of /sys/class/dual_role_usb entries to
system/system to allow USB HAL to access them.

Change-Id: Ie6d968180d55647813904970370dbb74012326b0
2019-12-16 15:28:53 +01:00
Ethan Chen fa4a07aa78 sandersr: drop custom display flags
* TARGET_USES_OVERLAY and USE_OPENGL_RENDERER are largely deprecated
* Don't set triple buffering, it introduces latency
* Don't use custom VSYNC offsets

Change-Id: If2892c83726c3558a96b28a8404f49982ebb9ba0
2019-12-16 15:28:53 +01:00
Danny Baumann 15e9a02c3b sanders: Mark camera-related processes as API level 26.
Our camera blobs trigger some checks for broken behavior (destroyed
mutex usage, invalid pthread usage) present in newer API levels.

Change-Id: I8705437e0a5c6d80b86748bff559ce1e8a7bf716
2019-12-16 15:28:53 +01:00
kubersharma001 35e663f94f sanders: update CarrierConfig overlays from CAF
Change-Id: Ib23f2f386c6e43467a114c488f2f06bb53b602a6
2019-12-16 15:28:53 +01:00
TheScarastic 95335624c5 sanders: Adjust mkdir of time data files
* Our blobs expect them in /data/time
2019-12-16 15:28:53 +01:00
Karthik Gopalan 69f79c2c89 sanders: Swap disk creation
Create swap disks

CRs-Fixed: 2264866

Change-Id: Id57a4e8d413c7dafb49d073980f10010003f616e
2019-12-16 15:28:53 +01:00
kubersharma001 5ee1ebac4a sanders: build CarrierConfig
Change-Id: Ie8d228c0226b73ce6dcf8383948d09aab2c2665c
2019-12-16 15:28:53 +01:00
Bauuuuu 68789b221e sanders: overlay: Enable Fingerprint Authentication Vibration
Change-Id: I9e4548679fa50dfe429caf29d23e538c7e9384ec
2019-12-16 15:28:53 +01:00
LuK1337 290ce270f6 sanders: Fix build of our bluetooth header
Change-Id: I45c5a123c86f3a9ec1ac72011c018a937d4fc70f
2019-12-16 15:28:53 +01:00
TheScarastic 04377d2532 sanders: fix BT MAC address reading 2019-12-16 15:28:53 +01:00
Wei Wang 5eef2ac3d8 sanders: skip wait for hwservicemanager
Wait for hwservicemanager is no longer needed
after this CL:
https://android-review.googlesource.com/#/c/356043/

Bug: 36399429
Test: nash boot

Signed off by: Nolen Johnson <johnsonnolen@gmail.com>

Change-Id: I12c5adab70dc519b5e834eb35262ff73d214978b
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2019-12-16 15:28:53 +01:00
Wei Wang 74eb1c9755 sanders: Make sure graphics HAL services started before mounting data
Bug: 36409349

Signed off by: Nolen Johnson <johnsonnolen@gmail.com>

Change-Id: I1df0bd7878c7d67d3695ad1644c6b928cee0e323
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2019-12-16 15:28:53 +01:00
Chia-I Wu f9c5f1e4e2 sanders: Start hwservicemanager early
Test: builds and boots
Bug: 35173320

Change-Id: I9f060904174103a6a145a83cbb4c100728ff6df6
2019-12-16 15:28:53 +01:00
Wei Wang 968521a5c4 sanders: start bootanim before mounting data partition
Bug: 30118894

Signed off by: Nolen Johnson <johnsonnolen@gmail.com>

Change-Id: If84764e3ce51f467b2dfa867ce28e1e396422d45
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
2019-12-16 15:28:53 +01:00
Garik Badalyan e3fa9d55c7 sanders: IMS: Whitelist org.codeaurora.ims package
org.codeaurora.ims has become a priv-app
to acquire some permissions we need to
whitelist the package.

Change-Id: I3f31f949e054cc79f8cff99e66cbcb70f5f0715f
2019-12-16 15:28:53 +01:00
elektroschmock ec2fc31ae9 sanders: Run ActivityManager and RenderThread as SCHED_FIFO
by setting sys.use_fifo_ui=1
This is only usable on homogenous CPUs

Reference:
https://source.android.com/devices/tech/debug/jank_jitter

Change-Id: I9793b45b631cf8b6db43219fe5d2a3a023ab64bf
2019-12-16 15:28:53 +01:00
Miguel Martinez 3ca6747872 sanders: enable persist.vendor.qti.inputopts.enable
Change-Id: Icb00771991789be651f6da4b554fafc9e5b860d9
Author: maxwen <max.weninger@gmail.com>
2019-12-16 15:28:53 +01:00
Pranav Vashi a9b93107c7 sanders: gps: Increase batch size to max
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2019-12-16 15:28:47 +01:00
Daniel Jarai 89cc54cb23 sanders: camera: Specify internal video devices to ignore by external provider
The external camera provider occupies our camera V4L2 nodes, potentially
crashing the kernel driver and blocking the camera HAL.
Unfortunately, there's no easy way to just disable it, so let's just tell
it to ignore the internal video devices.

Change-Id: I00c67de1b94a1f7eca1bf458d1d0e4de3507aa81
Signed-off-by: Daniel Jarai <jaraidaniel@gmail.com>
2019-12-16 01:42:16 +01:00
Ecco Park 29ba5b2153 sanders: Adding the execute permission for /data/vendor/wifi
ag/3332074 broke the Pixel Logger funtionality for wifi.

The Logger needs the write permission for /data/vendor/wifi/cnss_diag.
so, parent directory needs to set the execute permission for other group.

Test: manual test with Pixel Logger
Bug: 70228425
Change-Id: I75819f0b0bf4ed376d5d87f33af2e1693c864db8
Signed-off-by: Ecco Park <eccopark@google.com>
2019-12-16 01:42:16 +01:00
Skylar Chang 93f24fb1fd QTI: Create QTI log dir in /data/vendor/ location with permissions
Change-Id: Ib21082c3af84c15de2dac635cce9ad5c3e1f528d
2019-12-16 01:42:16 +01:00
RAJATH R 96f8f3ed53 Create new directory for Bluetooth SoC dump
Create new directory for Bluetooth SoC dump/logs
collection for new Android P dump format

Change-Id: I1257518fa12420a6d8d5bb66f15782ab97582f36
2019-12-16 01:42:16 +01:00
zljing 4bd9cd449f sanders: Shorten wait time for services exit to optimize shutdown time
Android O sets 3s by default to wait for all services exit which is
optional shutdown step. Firstly, in this step there will be time out
due to services not terminated in 3s; Second, in next step there
will send stop signal to kill all services; Finally, Android N sets
ro.build.shutdown_time 0 by default to skip the step. So optimize the
wait time to let shutdown time in 3s.

Signed-off-by: Nick <nickgunale@gmail.com>
Signed-off-by: kubersharma001 <kubersharma001@gmail.com>
2019-12-16 01:42:16 +01:00
zljing ef86099c77 sanders: Shorten wait time to optimize shutdown time
Mountservice will check if there exist processes occupy files. Launch
many 3rd apps and set in background will cause many processes occupy
files, which will cause mountservice spend 10~20s to unmount(sometimes
 also unmount fail with 20s time out). If there is no process occupy
files, mountservice only need about 500ms. So shorten wait time from
20s to 500ms, which will save 10~20s for shutdown time, total shutdown
time is in 3s.

Signed-off-by: Nick <nickgunale@gmail.com>
2019-12-16 01:42:16 +01:00
Boy Petersen aeddd290d8 tweak bfq iosched for flash drives 2019-12-16 01:42:16 +01:00
Boy Petersen 47bbbe3b03 interactive governor: leave min_sample_time at default
Don't ramp down that fast, use default 80000 instead to help UI smoothness.
While we're at it, correct odd above_highspeed_delay timings.
2019-12-16 01:42:16 +01:00
Makornthawat Emery 44a0a3985c sanders: Match default hotspot ssid with device name 2019-12-16 01:42:16 +01:00
Niranjan Pendharkar d84e1b540a sanders: Use low level shutdown trigger to stop cnss-daemon
Low level shutdown is triggered after SystemServer is
cleaned up. sys.shutdown.requested is private to SystemServer
and is used to syncrhonize the shutdown process if SystemServer
crashes before hardware reboot is complete.
Native daemons must use low level shutdown indication from
powermanager for their graceful shutdown, if they wish to stop
before init terminates the process.

Change-Id: Ia583f7dce6f1927d9b766fdc132f082b409f4d67
Signed-off-by: kubersharma001 <kubersharma001@gmail.com>
2019-12-16 01:42:16 +01:00
Jorge Lucas ad99acb8f5 Revert "sanders: init.qcom.rc: add eas changes"
This reverts commit 4901164b18.
2019-12-16 01:42:16 +01:00
Bruno Martins 5f0ce7ae1b sanders: Simply copy prebuilt .jar files
* No need to have them as build targets.

Change-Id: Ie76ae3028a394b25fd9df485e500101f10230294
2019-12-16 01:42:16 +01:00
LuK1337 51424ed7f5 overlay: Remove bnep\\d from tetherable BT interfaces
Change-Id: Iac714d2de9a4d225da6fc3463d3fb99a4bb714a7
2019-12-16 01:42:16 +01:00
Michael Bestas f2c097489d sanders: add networkAttributes and radioAttributes from marlin
Change-Id: I594c4ae577f620cdc8953730a097a275bacb2731
2019-12-16 01:42:16 +01:00
Khalid Zubair 6d88a9a1ea sanders: gps: decrease log priority function tracing
Some location libraries are spamming logcat with function traces.
Decrease the priority of these logs to prevent them from flooding
logcat.

Change-Id: I7b105684c8c9ba0ce67e5302bb7a003f1af7c90d
2019-12-16 01:42:16 +01:00
Paul Keith ae9142f0d6 sanders: Reorder tetherable connection types
* In O, the default setting for mobile data always active was
  changed from off to on, meaning that when non-WiFi tethering
  is being attempted, more than one connection can be active
* Since the first active connection type in this overlay is used,
  reorder the values to get WiFi connections first, and then
  any type of mobile data connection, instead of vice versa

Change-Id: I41f31ba1a2793e209ff439c9ba28a390fecdeecb
2019-12-16 01:42:16 +01:00
David 170ff36bcc sanders Enable VoLTE to enable calling over LTE for Vodafone India.
Change-Id: I295c95b1078ba2cbeb08c014f17c9a67ba5060ba
2019-12-16 01:42:16 +01:00
Li Wei 0e5c0d55f8 sanders: Add config to check data roaming for UT as per CT requirements
- UT supplementary service also needs to keep mobile data and data roaming
  available. If mobile data is unavailable on current UT service SUB or
  data roaming is disabled in roaming network, needs to show a dialog to
  user for prompt when MCC/MNC is in 204/04, 454/03, 454/04, 455/02, 455/07
  , 460/03, 460/11, 460/12

CRs-Fixed: 2129445
Change-Id: I4822cb3a9edeb0c8e6786494c389bd5ad5c7e667
2019-12-16 01:42:15 +01:00
Michael Bestas f417cb3b9a sanders: Set TARGET_PROVIDES_QTI_TELEPHONY_JAR
Change-Id: Idffe1a95d5ddac0ef3d6c74e3d55293b553e51ba
2019-12-16 01:42:15 +01:00
coldhans 49ac45d68d overlay: Enable network location overlay for microG's UnifiedNlp
@mar-v-in: "It seems like qualcomm is adding some fixed link to their proprietary location service through device/qcom/common/product/overlay/frameworks/base/core/res/res/values/config.xml. Remove this file completely or at least change config_enableNetworkLocationOverlay to true."
2019-12-16 01:42:15 +01:00
Adrian DC 0fea1e43a0 overlay: Show DocumentsUI internal storage by default
Change-Id: I1ada4009c5f71681761d1fb033d3d1c8609b7797
2019-12-16 01:42:15 +01:00
William Bellavance 877cc880fd Audio: Increase incall volume
Change-Id: I296751842b8d6ab7845e784b2f23d8ce2226b18e
2019-12-16 01:42:15 +01:00
Michael W 647a6cef98 sanders: wifi: Enable 2.4GHz channel bonding
* Improve WiFi speed

Change-Id: I06501a8d01d8a802fe5dd7a6c9edfa96c51afbce
2019-12-16 01:42:15 +01:00
Jaekyun Seok 1fa201efaa sanders: Enforce RRO on framework-res
Overlays only for framework-res will be converted into RROs.

Other overlays can't be converted due to some known issues on app RRO.

Bug: 36231603
Change-Id: Idca30fdbbcc990fd124de16a06a112a346612a61
2019-12-16 01:42:14 +01:00
Henrique Silva 90320cbe4f sanders: set default wifi country code and allow resetting
* Fix 5ghz option sometimes not appearing on hotspot settings

Signed-off-by: Henrique Silva <jhenrique09.mcz@hotmail.com>
2019-12-16 01:41:48 +01:00
Jorge Lucas 7ee19a1819 sanders: Bringup AOSP
Signed-off-by: Jorge Lucas <jorgelucas.sd@gmail.com>
2019-12-16 01:41:46 +01:00
therootlord ce5f3538ee sanders: remove vendor.qti.hardware.iop from manifest
* Not needed with the new iop blobs
2018-11-29 13:57:26 -02:00
therootlord f2d7488dfb sanders: add com.fingerprints.extension to manifest 2018-11-15 21:44:53 -02:00
Erfan Abdi 2f35f4fbb1 sanders: Update to match new qcom sepolicy
Change-Id: If6e58161489790ea7736dc1ec1fe11f2e2841b6c
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
Signed-off-by: therootlord <igor_cestari@hotmail.com>
2018-11-15 20:02:29 -02:00
Alberto97 a589c5e853 sanders: Disable AOD by default for r16 merge 2018-11-15 17:38:48 -02:00
therootlord 5f26ac04ff sanders: add vendor.qti.hardware.sensorscalibrate to manifest 2018-11-09 15:33:07 -02:00
therootlord 4caf8164fb sanders: update sec_config from LA.UM.7.6.r1-02500-89xx.0 2018-11-09 15:10:17 -02:00
Shaikh Shadul 8f68d0a5dd sanders: change sensors registry file owner and group
Sensors registry file ownership is retained even after OTA
upgrade and that file is only accessible by daemon belongs to
same ownership permissions.

Change-Id: I3543733232aeab04d14fb9d69f635c1e6c6df1e2
2018-11-09 14:58:17 -02:00
Bulbul Dabi 047bfded6e sanders: Set partitions for loop device.
AdoptableHostTest in CTS uses virtual disk feature for testing.
This change is to enable partitions for virtual disk.

Change-Id: Ic89de587b2c0448fd55b55bf19086e92e843a923
2018-11-09 14:42:40 -02:00
therootlord 51e777cc1d sanders: update for the new mount points
* Also bind mount /mnt/vendor/persist to /persist for backward compatibility
2018-11-08 15:31:27 -02:00
Vinay Verma 2fbbc52c5a sanders: Moving persist mount point to /mnt/vendor/persist
Move persist entry to fstab and mount at /mnt/vendor/persist

Apply required user, group and permissions once persist
folder is created through __mount and parititon is mounted.

Run restorecon on /mnt/vendor/persist.

Change-Id: I7f54b478de898491e32560d5a37657ac370bf893
2018-11-07 23:07:12 -02:00
Vinay Verma 8723ed746a sanders: Mount dsp and firmware in vendor
Change fstab to mount dsp and firmware to /vendor/dsp and
/vendor/firmware_mnt.

Add classpath for firmware loading /vendor/firmware_mnt/image in
kernel command line.

Change-Id: I04bd18336a1259a1379b3a27b150bb8051283275
2018-11-07 19:08:52 -02:00
therootlord 53fb0b2053 sanders: reorganize fstab.qcom 2018-11-07 18:28:47 -02:00
therootlord 2ab16b9a20 sanders: BoardConfig: update BOARD_KERNEL_CMDLINE 2018-11-07 17:50:11 -02:00
therootlord 8a7fc2199a Revert "sanders: drop device keyhandler for now"
This reverts commit e3c7463566.

* Also remove proximity check from keyhandler
2018-11-07 16:35:12 -02:00
therootlord 7478a33ad1 Revert "sanders: move MotoActions to vendor"
This reverts commit 247c0b4e27.
2018-11-07 16:14:39 -02:00
therootlord 531935cefa sanders: BoardConfig: add TARGET_COMPILE_WITH_MSM_KERNEL 2018-11-07 16:09:03 -02:00
therootlord 99a135ffd4 sanders: disable sdclang 2018-11-07 16:06:07 -02:00
therootlord 88fc2ace05 sanders: remove vendor.lineage.power from manifest 2018-11-06 22:05:12 -02:00
therootlord 986154f6a6 sanders: update audio config and props from LA.UM.7.6.r1-02500-89xx.0 2018-11-06 19:05:46 -02:00
therootlord 7462a0c838 sanders: update WCNSS_qcom_cfg.ini for P 2018-10-26 18:24:12 -03:00
Nirmal Abraham 845491a14c sanders: Uprev DisplayConfig to 1.1
Update version of 'vendor.display.config' to 1.1
to match with the version running on the device.

Change-Id: If399f6c50278649496db5a877cd034473b915661
2018-10-22 19:39:58 -03:00
therootlord 9829e53382 sanders: Don't use custom VSYNC offsets 2018-10-22 18:21:30 -03:00
Michael Bestas b651469568 sanders: Switch to 1.1 power HAL
Change-Id: I4690a5b913141427a828d6a3a4af407d35a10775
2018-10-20 19:18:30 -03:00
Bharat Pawar 6018f77be5 sanders: Allow mediaextractor mremap syscall
Change-Id: Ief50dfcbbc31650efc69504715527a67a1515108
2018-10-20 19:13:12 -03:00
Kevin Rocard 9597a0e1d7 sanders: Migrate to audio V4
This is needed for the microphone characteristic API support.

Test: regression test on the board
Bug: 38184704
Change-Id: Ife559125850277865451f92ea862e7ec47fc9da7
Merged-In: Ife559125850277865451f92ea862e7ec47fc9da7
Signed-off-by: Kevin Rocard <krocard@google.com>
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-10-10 18:40:20 -03:00
dianlujitao 6b0f6a33fc sanders: Add additional capacities to V1.0 media profiles
* This basic profile will be used until we have proper fw/av
   support from CAF
 * This change adds the following things:
    - 4K video recording for back camera
    - 1080P video recording for front camera
    - HEVC video encoder

Change-Id: If73c6d5c56fa299a60d6bd58aacdb5b34e410ae2
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-10-10 15:43:39 -03:00
therootlord 498793fb48 sanders: update some ril/ims props 2018-10-10 00:07:48 -03:00
therootlord c70546d090 sanders: update check_features.sh script 2018-10-10 00:07:48 -03:00
therootlord 054047c7be sanders: update to OPS28.65-36/9fea fingerprint 2018-10-10 00:07:48 -03:00
erfanoabdi 5db228eca7 sanders: Convert libinit to init scripts
* Also set ro.product.manufacturer to motorola for camera HAL in GSIs.

Change-Id: I2c78e4837cdbd8e7f18e3c1a086978bd289a60a6
2018-10-10 00:07:43 -03:00
therootlord 01c13a1de5 sanders: remove audio_output_policy.conf
* We're using audio_policy_configuration.xml
2018-10-08 01:28:39 -03:00
Ethan Chen e79f743e59 sanders: Drop custom display flags
* TARGET_USES_OVERLAY and USE_OPENGL_RENDERER are largely deprecated

Change-Id: If2892c83726c3558a96b28a8404f49982ebb9ba0
2018-10-05 19:14:36 -03:00
Jesse Hall 2445a641f2 sanders: Advertise Vulkan 1.1 system feature
Bug: 66875961
Test: atest VulkanFeaturesTest
Change-Id: I58f904984320dee174637ba0ddfecdd343fab7e6
2018-09-29 00:07:17 -03:00
Jeff Sharkey 9de6940992 sanders: Reserve 128MB for critical system components.
We recently created a new GID that can be granted to critical system
processes, so that the system is usable enough for the user to free
up disk space used by abusive apps.

128MB ought to be enough for anybody.

Test: builds, boots
Bug: 62024591
Change-Id: I412ed9b0a885668ebe4c6c677a3bd0cd7f44080b
Signed-off-by: Alberto97 <albertop2197@gmail.com>
2018-09-26 13:46:53 -03:00
rago 56596f0717 sanders: Dynamics Processing Effect
Dynamics Processing configuration for marlin

Bug: 64161702
Bug: 38266419

Test: manual testing
Change-Id: I0b0d55af3774d798af92159b98764d875a4b7628
Signed-off-by: Alberto97 <albertop2197@gmail.com>
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-26 00:25:56 -03:00
Kevin Rocard 0f6350a3f9 sanders: audio: Convert audio_effects.conf to XML
Converted .conf format to .xml using:
https://github.com/luk1337/aeffects-conf2xml

Bug: 37492580
Test: dumped the effectFactory state and check it was unchanged
      $ adb shell dumpsys media.audio_flinger | sed '/Clients:/q'
Change-Id: I233a44c2ba0cb4c4d4fb8c3720fc09862ce79827
Merged-In: I233a44c2ba0cb4c4d4fb8c3720fc09862ce79827
Signed-off-by: Kevin Rocard <krocard@google.com>

Signed-off-by: Erfan Abdi <erfangplus@gmail.com>

Signed-off-by: therootlord <igor_cestari@hotmail.com>
2018-09-25 18:36:20 -03:00
therootlord d5508d0433 sanders: remove unneeded things for sanders 2018-09-25 18:36:20 -03:00
therootlord 070727ce81 sanders: rootdir: add sensors init script from LA.UM.7.6.2.r1-03200-89xx.0 2018-09-25 14:03:31 -03:00
Shaikh Shadul 361be56624 sanders: change ownership and permissions of sensors device node
Change the user and group ownership and permissions of sensors
device node.

Change-Id: I251af01d4f0204c784667fe92b3998c197f75d8e
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-24 23:28:21 -03:00
Shaikh Shadul 630957f147 sanders: config.fs: Add mapping for sensors daemon
Set filesystem configuration for sensors daemon binary.

Change-Id: I499ad9b987a43e79b8037da5761e14e97b2ef9c9
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-24 23:09:30 -03:00
Bruno Martins 92337c9017 sanders: Switch to common basic USB HAL
Change-Id: I0e0809a2338f006063c5160bb7aec36a555cebab
2018-09-24 22:41:23 -03:00
Demon000 2432fd6916 sanders: Convert lights HAL to native binderized HAL
[Adapted from libra for griffin]

Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
Signed-off-by: therootlord <igor_cestari@hotmail.com>
2018-09-24 22:27:15 -03:00
Yifan Hong 2cbf835dee sanders: Add netutils-wrapper to device compatibility matrix.
netutils-wrapper only list a single version x.0 in its
requirement. System manifest might provide a list of
netutils-wrapper versions it supports {x, y, z}.0.

Bug: 64447338
Test: m compatibility_matrix.xml system_manifest.xml -j
      (checks compatibility at build time)

Change-Id: I2ec919fd5378aed7160c636cb7f2bd138db1473f
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-23 21:22:33 -03:00
Erfan Abdi 2b4a86458b sanders: qsap_shim: Fix for VNDK_VERSION=current
Change-Id: I8e5ec3068914e085d4adac178a47421a1c515a89
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-23 21:13:21 -03:00
Dan Pasanen 9e112b0545 sanders: add shim for wifi_qsap_set_tx_power
Change-Id: I9ef277db6f4e068e7b92710f6039b4f261d72282
2018-09-23 21:13:21 -03:00
therootlord 1c313d1a64 sanders: set PRODUCT_SHIPPING_API_LEVEL 2018-09-23 21:13:21 -03:00
Erfan Abdi a79b4d3efd sanders: update to versionized vndk-sp
Change-Id: I6cd784cc3e4ee6fcbd4f446120a3b656823c8461
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-23 21:13:21 -03:00
Yifan Hong 75743d20d6 sanders: Remove PRODUCT_COMPATIBILITY_MATRIX_LEVEL_OVERRIDE
Replace it with FCM Version = 1, specified explicitly
in device manifest.

Test: builds
Bug: 69636193

Change-Id: I0f5689344bb7b10b2b5db2549e95c940c4812f9d
Merged-In: I0f5689344bb7b10b2b5db2549e95c940c4812f9d
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-23 21:13:21 -03:00
rahulsnair 9533952f17 sanders: remove fstab context
Change-Id: I48c14bca953cc85ad838eb3de3709400eb599322
2018-09-23 21:13:21 -03:00
therootlord 35872ba975 sanders: cleanup and reorganize 2018-09-23 21:13:21 -03:00
therootlord 606735ab9e sanders: move display panel calib files to vendor tree [1/2] 2018-09-23 21:13:21 -03:00
therootlord ed0dd32ab5 sanders: update fingerprint configs to match vendor changes
* Remove custom fp hal/service

* Build android.hardware.biometrics.fingerprint@2.1

* Update init related configs and props
2018-09-23 21:13:21 -03:00
Harikrishnan Hariharan 3437531910 sanders: Start loc_launcher as gps user
Start loc_launcher as gps user and set uid/gid of loc_launcher
to gps and enable SETUID and SETGID caps for loc_launcher, so
that we can start loc_launcher as gps user instead of root and
still have capabilities for SETUID and SETGID. Also remove not
required permissions groups for loc_launcher.

Change-Id: Ie9f1506874b3c3148f9170c8d5db9afd1e70025c
CRs-Fixed: 2192881
2018-09-23 21:13:06 -03:00
therootlord ab63f76163 sanders: don't build android.hardware.bluetooth@1.0-impl and service
* We're using qcom's ones
2018-09-23 21:06:04 -03:00
Wang Han 7672efc8da sanders: ueventd: Don't modify permissions of /dev/hw_random
This addresses an underlying problem since /dev/hw_random is used. The
issue is that EntropyMixer, which runs in system_server, needs to read
from /dev/hw_random, but thanks to our qualcomm ueventd, EntropyMixer
can never accress this node, resulting in warnings like this:

W EntropyMixer: Failed to add HW RNG output to entropy pool
W EntropyMixer: java.io.FileNotFoundException: /dev/hw_random (Permission denied)

AOSP ueventd handles this well, so just remove this line to get things
back to stage. This issue was never exposed because Google derps the
logging here, which is already fixed on Pie.

https://android.googlesource.com/platform/frameworks/base/+/c78a463e875d91eae2cf256042fd99d130217c38

Change-Id: I42c9aaa8f57306536e51c0a17febad57a5a77581
2018-09-23 21:06:04 -03:00
Erfan Abdi 072d844924 sanders: Uprev GNSS HAL to 1.1
* Introduced in 9.0.

Change-Id: I326bf5063b5fb4e962e2a6fffcae2704c8c49e46
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>
2018-09-23 21:06:04 -03:00
therootlord 0a41b9dc1a sanders: gps: update to LA.UM.7.6.r1-02000-89xx.0 tag 2018-09-23 21:06:04 -03:00
Himanshu Agrawal 8a6b5c05e7 sanders: Changing healthd version to 2.0
Change-Id: I13ddaa133bb9edcca200d5fe7320cf5fa9f66f0f
2018-09-23 21:06:04 -03:00
Han Wang 247d9b0e98 sanders: Remove creation of /data/misc/wifi and
/data/misc/dhcp

* The creation of /data/misc/wifi and /data/misc/dhcp was moved long ago
  to the core init.rc script. Moreover, /data/misc/wifi is deprecated
  since wpa_supplicant now relies on /data/vendor/wifi.

Change-Id: Ic0a33af44ffe163d3dd06cebdc1e192dc9bcb11f
2018-09-23 21:06:04 -03:00
Jeff Vander Stoep b60b481227 sanders: wpa_supplicant: Deprecate entropy.bin
Wpa_supplicant's random pool is not necessary on Android. Randomness
is already provided by the entropymixer service which ensures
sufficient entropy is maintained across reboots. Commit b410eb1913
'Initialize /dev/urandom earlier in boot' seeds /dev/urandom with
that entropy before either wpa_supplicant or hostapd are run.

Bug: 34980020
Test: Use wifi and wifi tethering on 8996 targets
Change-Id: Ib5caf362bc939911b357db186a274957d3fbf186
2018-09-23 21:06:04 -03:00
therootlord 6cf5bace92 sanders: build libgui_vendor
* Needed for libmot_gpu_mapper

* Requires this: https://github.com/SacredOS/frameworks_native/commit/c80908a65292c482fe5f14a6ba63ee3d0e5a07a1
2018-09-23 21:06:04 -03:00
therootlord 8fd8b6873f sanders: cleanup device.mk 2018-09-23 21:06:04 -03:00
Hari Veerubhotla fe2447737b sanders: manifest: Cleaning up Impl tag
Change-Id: I006eeaef9b685c756c45f7eb16564066048f351f
2018-09-23 21:06:04 -03:00
therootlord c6ddaab82b sanders: update some props for P 2018-09-23 21:06:04 -03:00
therootlord ffee6c1572 sanders: update sensors props and service name 2018-09-23 21:06:04 -03:00
Alberto97 5ca26577c3 bluetooth: Fix build by removing unused includes 2018-09-23 21:06:04 -03:00
Alberto97 6fb9666cf8 bluetooth: Fix force disable sco enhanced sync for new logic 2018-09-23 21:06:04 -03:00
therootlord 5ed8c5e43f sanders: update display props/manifest for P 2018-09-23 21:06:04 -03:00
therootlord fe92bebb33 sanders: MotoActions: make icon color match others for Pie 2018-09-23 21:06:04 -03:00
therootlord 84a1137a91 sanders: overlay: update 2018-09-23 21:06:04 -03:00
Hung-ying Tyan d50722ae24 configstore: uprev configstore (1.0 -> 1.1)
Bug: 69691076
Test: built and tested on sailfish
Change-Id: Ieb4b329ccf2f56e304cd2b62ba12183e514aaff1
2018-09-23 21:06:04 -03:00
Alberto97 7c17c7d7fc Move to NFC 1.1 Implementation 2018-09-23 21:06:04 -03:00
Alberto97 cfa0f46b2e Update configs for NFC 1.1 2018-09-23 21:06:04 -03:00
Andre Eisenbach 69a37182f8 Rename libnfc-brcm.conf -> libnfc-nci.conf
Test: manual
Merged-In: I213034b54724b1ed0f43b32bc757ea7d8873ee74
Change-Id: I213034b54724b1ed0f43b32bc757ea7d8873ee74
2018-09-23 21:06:04 -03:00
Anton Hansson 378ac397d7 MotoActions: Set LOCAL_PRIVATE_PLATFORM_APIS
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant package
Bug: 73535841
Change-Id: I5196e8c7277ff86280782e7b479a499add2e8f9f
2018-09-23 21:06:04 -03:00
Alberto97 9fd73a0aeb MotoActions: Build with AAPT2
Change-Id: Ic1287412680509f87dab806b8745cc1c04b8df04
2018-09-23 21:06:04 -03:00
Lucas Dupin 486e4d8b80 Renamed config_dozeAfterScreenOff
New name is config_dozeAfterScreenOffByDefault
Bug: 73178121

Change-Id: Ie3d1ea5a2cc480655592bf6e49b37f5ea07f3f58

Signed-off-by: Alberto97 <albertop2197@gmail.com>
2018-09-23 21:06:04 -03:00
Roshan Pius 51065bd797 manifest: Add hostapd HIDL interface
Bug: 36646171
Test: Manual softap toggle
Change-Id: If3c9ea38317b1fee66a383ad88cabf695748853a

Signed-off-by: Alberto97 <albertop2197@gmail.com>
2018-09-23 21:06:04 -03:00
therootlord 52af608f03 sanders: config.fs: add missing AID_VENDOR_QCOM_DIAG 2018-09-23 21:06:04 -03:00
rahulsnair 8ef903b381 sanders: config.fs system/vendor -> vendor
Change-Id: I6862b6a509f5116d6eefb29765445e02900ee1c1
2018-09-23 21:05:56 -03:00
Tom Cherry 8bad0865ea Move mkdir /data/nfc/... to rootdir init.rc
These are directories used by the system so they should be created by
the system.

Test: treehugger
Change-Id: I4c2d381423e002705f4de09d34a63a49ec473688

Signed-off-by: Alberto97 <albertop2197@gmail.com>
2018-09-23 20:27:23 -03:00
Jaekyun Seok d5d0276021 Add 'vendor.' prefix to a vendor HAL service name
To prevent property name collisions between properties of system and
vendor, 'vendor.' prefix must be added to a vendor HAL service name.
You can see the details in http://go/treble-sysprop-compatibility.

Test: succeeded building and tested on a sailfish device.
Bug: 36796459
Change-Id: I48e6ee0ae3fe401e39efb273256d991fac676357
Signed-off-by: Alberto97 <albertop2197@gmail.com>
2018-09-23 20:27:23 -03:00
therootlord c6c3e249ed sanders: remove 32b sensorservice/hal from build
* Switched to 64b sensors
2018-09-23 20:27:23 -03:00
Erfan Abdi b11faddcb2 sanders: Migrate to vendor_prop.mk
Change-Id: Id6ad39dccd5152b3dc6347e36119818a7fda2286
Signed-off-by: Erfan Abdi <erfangplus@gmail.com>

Signed-off-by: therootlord <igor_cestari@hotmail.com>
2018-09-23 20:27:16 -03:00
therootlord 4e98a22d84 sanders: BoardConfig: specify kernel clang version instead of path 2018-09-23 15:24:20 -03:00
Isaac Chen 6eea1ccd47 sanders: Set TARGET_2ND_ARCH_VARIANT to armv8-a
Sanders is armv8 device. Setting TARGET_2ND_ARCH_VARIANT to armv8-a,
instead of armv7-a-neon, can silence the related warning during build.

Bug: 68012286
Test: lunch aosp_bullhead; make -j
Change-Id: I0989c3d4185334dbfe0a3d79d3595d8dff8abd2b
2018-09-20 22:20:34 -03:00
therootlord e591adb423 sanders: update nfc configs from OPS28.65-14 2018-09-20 22:20:34 -03:00
Jerry Zhang aba46b72f2 sanders: Set sys.usb.ffs.aio_compat
The kernel does not support aio with ffs.
Set the property so adb/mtp know to use the compatible
functions, and the same while in recovery.

Bug: 37916658
Test: Use adb / use adb in recovery
Change-Id: Id35a05fcb9952dcf7239bd15a61cc620537419bc
2018-09-20 22:19:01 -03:00
Mathieu Chartier 1202a38355 sanders: Fix shared vdex name
The files in arm/arm64 are symlinks and pinning symlinks is not
supported. Pin the target vdex file intead.

Bug: 73990433
Test: manual
Change-Id: I313e1f53487c0a21b615f65dc64c21a1ecb4b7d5
2018-09-20 22:19:01 -03:00
LuK1337 f639ff65b5 sanders: Add vendor_ prefix for our custom AIDs
Change-Id: Ie1dd9c1f6a79d04b42e12e0fd9dabdc22b2f6927
2018-09-20 22:19:01 -03:00
Roshan Pius 736519d8c9 sanders: Don't start supplicant with interfaces
Framework will now add interface to supplicant (via HIDL) when it
needs to control an interface, so don't specify them in the startup
params.

Bug: 69426063
Test: Device boots up and able to connect to wifi.
Change-Id: I817d28093f8b982e3806c212babd888c0f5eb7c0
2018-09-20 22:15:50 -03:00
Roshan Pius 90c6b2d95d sanders: wpa_supplicant(hidl): Add support for starting HAL lazily
Bug: 72394251
Test: Able to start supplicant from framework using
ISupplicant.getService()
Change-Id: I19b8434e7241b9028e7dc86316ec9d5512affcca
2018-09-20 22:15:50 -03:00
Roshan Pius 76486bf705 sanders: Uprev to supplicant 1.1
Bug: 65673412
Test: Device boots up and connects to wifi networks.
Change-Id: I2e51291b30fd242edbeae2c69ef9545383895bb3
2018-09-20 22:15:50 -03:00
Jeff Vander Stoep 61803ca1ae sanders: wpa_supplicant: Move control sockets to /data/vendor
Treble compliance.

Bug: 70228425
Bug: 70393317
Test: complete wifi test in b/70393317
Test: Test wifi on Taimen and Sailfish
Test: verify sockets exist in /data/vendor/wifi/wpa/sockets

Change-Id: I0bfc3a351419f0a03498e79664949f353369bf1b
2018-09-20 22:15:50 -03:00
Etan Cohen d899d7adfc sanders: Uprev Wi-Fi HAL to 1.2
New HAL APIs are planned. This requires a HAL uprev.

Bug: 65647646
Test: builds and Wi-Fi runs
Change-Id: Ib7efd3d5263e73d1ad40e1a5a687bdb6c133c812
2018-09-20 22:15:50 -03:00
therootlord 2a1c394e17 sanders: reorder manifest.xml 2018-09-20 22:12:37 -03:00
therootlord 4901164b18 sanders: init.qcom.rc: add eas changes 2018-09-20 21:39:03 -03:00
therootlord cd344b15f4 sanders: update audio configs from OPS28.65-14 2018-09-20 21:35:10 -03:00
therootlord 903fe1c7e9 sanders: update wifi configs from OPS28.65-14 2018-09-20 21:35:10 -03:00
therootlord e6f7b19d23 sanders: enable build of device sepolicy rules 2018-09-20 21:33:58 -03:00
Wei Wang c3ed1ad6ce sanders: Use mke2fs to create ext4 images
Set TARGET_USES_MKE2FS := true to use new EXT4 tool chain

Bug: 62421233
Change-Id: Id6e5c68b2d7854e5330ad87443b974361a4bff9d
2018-07-19 18:49:45 -03:00
Alberto97 a2c262dd16 Actions: Don't listen for stow events
This was required in the past to trigger doze when pulling out the
device from a pocket (we were handling the "pick up" action with Flat Up sensor).
Currently Glance sensor is being used which gets triggered in the previously described case itself
thus there's no need to keep stow implementation alive.
2018-07-19 18:49:45 -03:00
therootlord d478b91437 sanders: overlay: cleanup 2018-07-19 18:49:45 -03:00
therootlord 5212344fbf sanders: update display calib data from stock 2018-07-19 18:49:45 -03:00
therootlord b996f6a823 sanders: update audio_platform_info.xml from stock 2018-07-19 18:49:45 -03:00
therootlord e0a39bf405 sanders: disable TARGET_TAP_TO_WAKE_NODE
* We're not using DT2W
2018-07-19 18:49:45 -03:00
Henrique Silva efb24c3850 Cleanup tree
* Cleanup some mk files
* Remove lineage.dependencies
2018-07-19 18:49:45 -03:00
therootlord dbfc070894 sanders: add camera aux supported apps list prop 2018-07-19 18:49:45 -03:00
Vachounet cd397e3cae sanders: avoid conflicting with common thermal hal 2018-07-19 18:49:44 -03:00
Nilesh Shah a49826fe3c sanders: Enable vulkan compute feature
This code change ensures that vulkan compute xml
is copied to /vendor/etc/permission which implictly
enable compute on vulkan

Change-Id: If11354f5fd46828a805318a742307e4382c58611
2018-07-19 18:49:44 -03:00
Michael Bestas 9acf9b90cd sanders: Build 1.0 power HAL
* prima doesn't have support for wifi stats
2018-07-19 18:49:44 -03:00
therootlord 93da59c264 sanders: update sensor prop from stock 2018-07-19 18:49:44 -03:00
therootlord fdde490615 sanders: update some camera configs from stock 2018-07-19 18:49:44 -03:00
Henrique Silva 83198bae3f sanders: rootdir: Fix mot_xxxx AIDs 2018-07-19 18:49:44 -03:00
Vachounet 500d90751b sanders: audio: add back FM entries
* Gone when switching to xml policy
2018-07-19 18:49:44 -03:00
Vachounet 7104020771 sanders: update sepolicy path 2018-07-19 18:49:44 -03:00
Vachounet 13c6967767 sanders: update init.*.rc from stock 2018-07-19 18:49:44 -03:00
Vachounet 10188cc108 sanders: update sepolicy
* fix build with treble
2018-07-19 17:49:34 -03:00
Henrique Silva 82db051a4e sanders: Don't copy media_profiles to /system/ 2018-07-19 03:03:06 -03:00
Vachounet 247c0b4e27 sanders: move MotoActions to vendor 2018-07-19 03:02:59 -03:00
Vachounet e3c7463566 sanders: drop device keyhandler for now 2018-07-19 03:02:59 -03:00
Vachounet f8a701ea1d sanders: copy keylayouts to vendor
* And update fingerprint one
2018-07-19 03:02:58 -03:00
Vachounet b6de4fd4db sanders: sync media configs with stock 2018-07-19 03:02:58 -03:00
Vachounet 976b07567b sanders: build kernel with clang 2018-07-19 03:02:58 -03:00
Henrique Silva a94abe8926 sanders: Move fingerprint back to makefile
* Required because vendor.img is separated
2018-07-19 03:02:58 -03:00
Henrique Silva 17eb921ee5 sanders: Remove hal1 packagelist
Deprecated
2018-07-19 03:02:58 -03:00
Vachounet afd04fabe9 sanders: sync some props with stock 2018-07-19 03:02:58 -03:00
jhenrique09 6bad770ffc sanders: don't build camera service
* Conflicts with Moto one
2018-07-19 03:02:58 -03:00
Vachounet 60669a4f35 sanders: switch to xml audio policy 2018-07-19 03:02:58 -03:00
Vachounet aa2a398549 sanders: override some system props
* Fix camera HAL that still expects ro.* instead of ro.vendor*
2018-07-19 03:02:58 -03:00
Vachounet 84b87de13c sanders: bye shims 2018-07-19 03:02:58 -03:00
Vachounet 23ad650025 sanders: move charge_only_mode to vendor
Change-Id: I8c5dd54ad9040f94bca25794d12ec564bfad7f85
2018-07-19 03:02:58 -03:00
Vachounet 0fffdf7b2f sanders: fix some firmwares paths
Change-Id: I112495d5db21f888fb02253f798605e58be9edaa
2018-07-19 03:02:50 -03:00
Sohamlad7 076fad1720 sanders: Move liblight and fp wrapper to vendor
* vendor.prop: force nav bar to be enabled by default for some gsi

Change-Id: I9e9cb2399ed4ac717ffb715dc740ab30501ce485
2018-07-19 03:02:50 -03:00
Sohamlad7 36c0b81ea6 sanders: move wcnss symlinks to vendor
Change-Id: If4d3af9256dd1b173f222d0ebaa9808bf516c68d
2018-07-19 03:02:50 -03:00
Sohamlad7 d751dc3717 sanders: Change audio.calfile and rild path
* and change sbin path to vendor

Change-Id: Iee8427abfdfc999ab8ca00161065105ec3eb6f84
2018-07-19 03:02:50 -03:00
Nick 7d6d8c11dc sanders: Fix path of check_features.sh (#17)
*Also correct the path of the nfc, compass & DTV files
2018-07-19 03:02:49 -03:00
Vachounet 070bf328b1 sanders: set vbmeta-version in compatibility_matrix
* Fix vendor image mismatch warning on boot

https://github.com/LineageOS/android_frameworks_base/blob/lineage-15.1/core/java/android/os/Build.java#L899
2018-07-19 03:02:49 -03:00
Vachounet f0c2c7ed74 sanders: move camera configs to vendor 2018-07-19 03:02:49 -03:00
Vachounet 660bbadb06 sanders: build camera provider service
* And add hidl to manifest
* Also add memtrack service
2018-07-19 03:02:49 -03:00
Vachounet da6eee2704 sanders: fix vendor.prop path 2018-07-19 03:02:49 -03:00
therootlord 3566d465e7 sanders: build a 32b version of android.hardware.sensors service
* Also add input group access
2018-07-19 03:02:49 -03:00
Vachounet 02c3e17ba7 sanders: add biometrics HIDL 2018-07-19 03:02:49 -03:00
Vachounet 9b7fe62fa0 sanders: get rid of multihal config 2018-07-19 03:02:49 -03:00
Vachounet 92d056ceaf sanders: init: fix wcnss_service path 2018-07-19 03:02:49 -03:00
Vachounet bee8fde070 sanders: update NFC config file to use /data/vendor/nfc 2018-07-19 03:02:49 -03:00
Vachounet e47c31716b sanders: add NFC and sensors services to manifest 2018-07-19 03:02:41 -03:00
Vachounet c9116e3678 sanders: move moar config files to vendor
* Also build NFC and sensors services
2018-07-19 03:02:41 -03:00
Vachounet 475518e3b8 sanders: split vendor specific and system props 2018-07-19 03:02:41 -03:00
Vachounet c21c805fa8 sanders: move firmwares symlinks to vendor 2018-07-19 03:02:41 -03:00
Vachounet 7207d67758 sanders: init: /system/vendor -> /vendor 2018-07-19 03:02:40 -03:00
Vachounet e8de4d1208 sanders: start that treble disaster 2018-07-19 03:01:03 -03:00
Henrique Silva 2d7fc638e6 sanders: sepolicy: Fix rootfs on untrusted_app
* With this, some file explorers cannot access the root partition (even with superuser rights granted)
2018-07-19 02:09:46 -03:00
Henrique Silva 05af13d217 sanders: Address some denials 2018-07-19 02:09:46 -03:00
Vachounet 0df4237dd3 sanders: remove TARGET_USES_MEDIA_EXTENSION flag
* It's now default enable for all QC devices : https://review.lineageos.org/#/c/213117/
2018-07-19 02:09:46 -03:00
Henrique Silva da8f27af9f sanders: Fix qti_whitelist path 2018-05-03 02:39:03 -03:00
Bruno Martins 58a2888320 sanders: libinit: Also override certain vendor build properties 2018-04-29 02:55:43 -03:00
Bruno Martins d40f88c860 sanders: init: Handle overriding system and vendor props
* Up until now, vendor build properties were added into /system/build.prop
   when property split isn't enabled. However, Google realised that
   either /vendor/build.prop or /system/vendor/build.prop can always exist,
   and decided to clean up code and always install vendor build props
   into $(TARGET_OUT_VENDOR)/build.prop.

 * For this reason, the unified devices that used to override build props
   such as build fingerprint, will need to override the matching vendor
   build props.

Change-Id: Iacdd8eb67543daff5a46b92dbaf17cd094ce462b
2018-04-29 02:41:24 -03:00
Bruno Martins 61903f5113 sanders: Drop useless CNE related flag
* Nothing in the OSS bits takes it into account.

Change-Id: I6f949a12c643810cb1fba764bf13abb30e5dd88c
2018-04-27 19:13:39 -03:00
Rashed Abdel-Tawab 1626080a5c sanders: Move HIDL shims to vendor
Nothing uses these in system. No need to keep them there
also address denials (thanks to @joojoobee666)

Change-Id: Ia09e6611f801a79fa9ac04c60425397eada383ec
2018-04-27 19:12:08 -03:00
dianlujitao ec4c1e393a sanders: Build dummy android.hidl.[base,manager]@1.0
* Required by Oreo-MR0 blobs

Change-Id: I81a081130869c4d92f30b2674e75bb6b096a7a2c
2018-04-27 19:10:46 -03:00
jhenrique09 354bf4fabf Revert latest hidl dummy libs commits
* With Android.bp duplicate reference error will occur:

23:54:16 error: device/motorola/cedric/libhidl/Android.bp:1:1: module "android.hidl.base@1.0" already defined
23:54:16 error: device/motorola/potter/libhidl/Android.bp:1:1: <-- previous definition here
23:54:16 error: device/motorola/cedric/libhidl/Android.bp:12:1: module "android.hidl.manager@1.0" already defined
23:54:16 error: device/motorola/potter/libhidl/Android.bp:12:1: <-- previous definition here

Revert "sanders: build a dummy android.hidl.manager@1.0"

This reverts commit edd4757655.

Revert "sanders: Build a dummy android.hidl.base@1.0 for Oreo-MR0 blobs"

This reverts commit 11becd0eca.
2018-04-27 19:04:55 -03:00
therootlord 4b82e25628 sanders: sepolicy: cleanup 2018-04-27 16:42:01 -03:00
Vachounet 3f951ce093 sanders: address some denials
Change-Id: I90239f922aea3b7684b492ea34f137ef31577221
2018-04-27 14:09:32 -03:00
Vache da902d3674 sanders: label mmcblk0p35 as metadata_block_device
* No idea why /dev/block/bootdevice/by-name/metadata doesn't work
* Also apply proper vold rules
* Fix encryption
2018-04-27 14:07:17 -03:00
jhenrique09 ec6a5a41a5 sanders: sepolicy: Fix camera_bgproc service denials 2018-04-27 14:06:30 -03:00
jhenrique09 14a8a7f47c sanders: sepolicy: Fix adspd denial
* Fix Ok Google

02-01 19:29:32.243 I/auditd  ( 2567): type=1400 audit(0.0:18): avc: denied { read } for uid=10046 comm="earchbox:search" name="u:object_r:adspd_prop:s0" dev="tmpfs" ino=15433 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:adspd_prop:s0 tclass=file permissive=0
2018-04-27 14:04:54 -03:00
Vachounet 7b2d219e9c sanders: fix FMRadio after enforcing
* Use oss service
* Set proper context

Change-Id: I7bd58339bf2d9d37847961f9260eead785c14c5a
2018-04-27 14:03:52 -03:00
jhenrique09 46660b7702 sanders: Fix moar denials 2018-04-26 01:37:47 -03:00
jhenrique09 2081af0064 sanders: sepolicy: Fix more denials 2018-04-26 01:35:50 -03:00
jhenrique09 b237828d88 sanders: sepolicy: Give proper label to custom fp hal 2018-04-26 01:28:38 -03:00
Vachounet afb5c1e6f7 sanders: remove persist_block_device from dev_type
* Already defined
2018-04-26 01:26:13 -03:00
Vachounet e6898f1a78 sanders: update sepoly again 2018-04-26 01:24:28 -03:00
Vachounet baa9d4a4ea sanders: address some new denials 2018-04-26 01:19:15 -03:00
Vachounet 2094c0db30 sanders: sepolicy update 2018-04-26 01:17:20 -03:00
Vachounet 005c212c61 sanders: sepolicy update
Change-Id: Ibc045495b988437244304f37d451c9537a53a4f3
2018-04-26 00:58:56 -03:00
jhenrique09 c65378a328 sanders: sepolicy: Remove duplicated reference 2018-04-26 00:07:40 -03:00
Vachounet c030252639 sanders: build libqdMetaData.system
Change-Id: Ia5ad7e28569253d267cead4dbc85bc4fc202d7c2
2018-04-02 15:02:03 -03:00
Vachounet a804edfd89 sanders: build libdisplayconfig
Change-Id: I06a4bfe9c775d1e3f831cb2f61cde27b19a4dc93
2018-04-02 15:01:36 -03:00
Vachounet 0a371fa939 sanders: enable TARGET_USE_SDCLANG
Change-Id: I3b4d503a5daa07cf15d96363a1fb88bd72ee7879
2018-04-02 15:01:10 -03:00
attack11 f419a198aa msm8953: sched_upmigrate need to be set first 2018-04-01 02:47:48 -03:00
attack11 97ad391067 Revert "Use tracefs not debugfs"
This reverts commit 4312ce926ab60cbde9ff079908b7eb2954824419.
2018-03-23 19:26:57 -03:00
Varun Garg 4e4e55cca4 msm8953: Update the sched parameters
Updating the sched params upmigrate, downmigrate
and upmigrate_min_nice for msm8953

Change-Id: I204bdc817bf769aa9f36acf4b4e2f151fe48d3c5
2018-03-23 19:22:10 -03:00
jhenrique09 a16467737d sanders: Use all cores in dex2oat 2018-03-22 23:07:08 -03:00
therootlord 9d35be7aef Revert "sanders: Use all cores for dex2oat"
This reverts commit 51644ac52a.
2018-03-22 22:59:55 -03:00
Dan Pasanen 27831bbe96 sanders: use kernel-based exfat
Change-Id: If271a3441027cf66ed7142d99ee8fe7b6c596de3
2018-03-19 00:33:26 -03:00
Vachounet c289905a7d sanders: add some qcom HALs 2018-03-17 12:38:01 -03:00
Vachounet 52f4de4958 Revert "sanders: enable radio power save"
(reverted from commit 26ddbb0c29)
2018-03-17 12:34:14 -03:00
Vache 7a586a2151 sanders: update trim properties from stock
* https://review.lineageos.org/#/c/208080/
2018-03-13 13:42:24 -03:00
Vache 26ddbb0c29 sanders: enable radio power save 2018-03-13 13:31:26 -03:00
dianlujitao be42bf9056 sanders: Add Lineage power hal to manifest
Change-Id: I03b213310b66be95d779c507dc22f748dc19c366
2018-03-05 16:30:38 -03:00
Vachounet 496570a51f sanders: shim: transition to TARGET_LD_SHIM_LIBS 2018-03-05 02:41:31 -03:00
jhenrique09 586b1a78c4 sanders: overlay: Enable turbo power charger support
* The text 'TurboPower connected' will be displayed on keyguard instead of 'Fast charging'
2018-02-24 21:15:08 -03:00
Lennart Wieboldt 81ce9eca39 sanders: remove cpuset foreground boost
Cpuset foreground boost is departed since
https://android.googlesource.com/platform/frameworks/base/+/a712d4058f6f85268838

Change-Id: Iab1834dbb8cce15480b5e11968bcfff7cc80177e
Signed-off-by: Lennart Wieboldt <lennart.1997@gmx.de>
2018-02-16 01:27:43 -02:00
Alexander Martinz 30abb787a0 sanders: remove CPUSETS build flags
They both got replaced by runtime checks, see system/core @ 795267d4c

Change-Id: If6a5b5d93dd327475a1e6d3b80244381b1414f99
Signed-off-by: Alexander Martinz <alex@amartinz.at>
2018-02-16 01:22:08 -02:00
Rashed Abdel-Tawab 9542b45b9a sanders: Add QTI low power whitelist
Change-Id: Idb4a954979f916a7903ead982bf18b33e5cf1baf
2018-02-16 01:15:22 -02:00
dianlujitao daefa1fec1 sanders: Add OEM privileged app permissions
Change-Id: If5425295a67449685737ab4e8099a5e2b432c78e
2018-02-16 01:11:29 -02:00
therootlord efa9ea1915 sanders: MotoActions: Dexpreopt it 2018-02-11 19:47:49 -02:00
therootlord f1e8d0379b sanders: MotoActions: Disable hand wave by default 2018-02-08 01:53:34 -02:00
therootlord 8cbf0fd3bb sanders: MotoActions: Re-add/fix Glance Sensor 2018-02-08 01:16:19 -02:00
Vachounet 44cfb60227 Revert "sanders: drop libqsap_sdk"
* OSS one has missing symbols, keep it as blob only

(reverted from commit a9c2dd4486)

Change-Id: I388727a3f9c99719301565fde32ff36b3b26d225
2018-02-07 22:49:45 -02:00
Dan Pasanen c6ea6e0279 sanders: add shim for wifi_qsap_set_tx_power
Change-Id: I9ef277db6f4e068e7b92710f6039b4f261d72282
2018-02-07 22:47:27 -02:00
Vachounet 4501be51f5 sanders: update GPS HAL
* LA.UM.6.5.r1-04000-8x96.0

Change-Id: I53666d7eb27d350c6a4893ad37d2a69b16fceb7e
2018-02-07 22:37:32 -02:00
Vachounet 809d80472d sanders: add health HIDL 2018-02-07 22:28:41 -02:00
therootlord 1bb7d60aeb sanders: Bringup for SacredOS 2018-01-27 18:22:03 -02:00
jhenrique09 355b8575a3 sanders: Cleanup device 2018-01-27 18:15:44 -02:00
jhenrique09 ed3a1e0d54 sanders: Nuke data-ipa-cfg-mgr 2018-01-27 17:54:43 -02:00
jhenrique09 d6cf4553cb sanders: rootdir: Remove some interactive and lowmemorykiller nodes
[   21.260478,1] init: Unable to open '/sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor': Permission denied
[   21.264136,6] init: Unable to open '/sys/module/lowmemorykiller/parameters/enable_adaptive_lmk': Permission denied
[   21.264277,6] init: Unable to open '/sys/module/lowmemorykiller/parameters/vmpressure_file_min': Permission denied

These nodes doesn't exists on kernel
2018-01-27 17:54:43 -02:00
jhenrique09 a1b586ff86 sanders: MotoActions: Nuke PiP action
* Useless
2018-01-27 17:52:04 -02:00
jhenrique09 fddc97c38d sanders: MotoActions: Change to sdk 27 2018-01-25 01:22:31 -02:00
Vachounet db241034c9 sanders: use /system/vendor/bin/sh for init scripts
* For real

Change-Id: I41419e2b0f8746d94ca3b4b52af9e4bcade72f17
2018-01-23 03:43:03 -02:00
Vachounet a9c2dd4486 sanders: drop libqsap_sdk
* OSS one has missing symbols, keep it as blob only
2018-01-23 03:32:39 -02:00
Alberto97 5fd08bcddb sanders: Directly copy wlan files
* Symlinks are no more required, kill them
2018-01-23 03:30:52 -02:00
Alberto97 71cae9a7e3 sanders: WCNSS update 2018-01-23 03:15:10 -02:00
Vachounet 63050236bf sanders: use /system/vendor/bin/sh for init scripts 2018-01-23 00:32:35 -02:00
Vachounet e0fb48e962 sanders: remove fingerprintd service
* Not needed
2018-01-20 00:53:36 -02:00
Vachounet f36554f416 MotoActions: remove unused debug logs 2018-01-20 00:52:12 -02:00
Vachounet f494fbc72d sanders: update post-install script
* Permissions moved to vendor
* Fix deep sleep issue on variants without NFC

Change-Id: Ie5a24a3debe638a3f491d12aa62bf1775b955972
2018-01-19 01:20:04 -02:00
Vachounet 7041fc5533 sanders: add telephony-ext to boot JARs 2018-01-19 01:14:30 -02:00
Henrique Silva 2c0096a663 sanders: rootdir: Move swapon_all to right place 2018-01-19 01:10:46 -02:00
Vachounet 14da1dae25 sanders: move init.*.rc to vendor
* Early mount /system
* Create a dedicated fstab for TWRP
* Load fstab from vendor
* Move also ueventd.qcom to vendor

Change-Id: Ifcefd31dcbcf562efc6359e1fa1e155d24d802e5
2018-01-19 01:08:50 -02:00
Vachounet edd4757655 sanders: build a dummy android.hidl.manager@1.0 2018-01-19 00:46:42 -02:00
dianlujitao 11becd0eca sanders: Build a dummy android.hidl.base@1.0 for Oreo-MR0 blobs
Change-Id: I81a081130869c4d92f30b2674e75bb6b096a7a2c
2018-01-19 00:45:57 -02:00
Rashed Abdel-Tawab be3a3a0958 sanders: Set IMS to use CodeAurora extension
Change-Id: I64cba319986748e4dad206ca664ccda7eefb348a
2018-01-19 00:45:03 -02:00
Vachounet 4b10a52396 sanders: shims cleanup
Change-Id: Ideafbadf8d51c94b7505201239e32435dc3ea54f
2018-01-19 00:42:07 -02:00
Vachounet ebf6515642 sanders: update for IMS
* Services update
* Add HIDL HALs
2018-01-19 00:32:47 -02:00
Vachounet 2857c412b3 sanders: add vendor.qti.hardware.alarm HIDL 2018-01-16 02:12:52 -02:00
Vachounet 449d402213 sanders: build configstore service 2018-01-16 02:12:52 -02:00
Adrian DC e7d79b3425 MotoActions: Import Oreo Settings layouts
* These layouts are necessary for custom activities to inherit from
   (those that are integrated into Settings, which is the case of the
   several forms of DeviceSettings), in order to keep UI consistency.
   In Oreo, all Settings preferences and preference categories
   have a margin on the left, reserved for icons.

 * Place the layouts here, to avoid cluttering device trees
   (plain copy of Google's layouts from Settings app).

Change-Id: Ib3f670b19c7e728b97fd76efe04bcc2f69008b06
2018-01-16 02:04:05 -02:00
jhenrique09 5ed4bb49f9 sanders: LineageActions -> MotoActions 2018-01-16 02:02:08 -02:00
Vachounet a4b148e469 sanders: enable config_setColorTransformAccelerated
* Enable HWC2 color transform, fix live display
* Side effect: enable night light too (cf 199922)
* Update some doze related configs too
2018-01-11 22:46:45 -02:00
Vachounet 0e03081e83 sanders: build audiod
* And update path
2018-01-11 22:46:45 -02:00
Karthik Gopalan 5936a6fcdc sanders: perf: Rename core_ctl system prop
Rename core_ctl system properties.

Change-Id: I05eae4804fb4a760f80e2e332597eded7743bb16
2018-01-11 22:46:45 -02:00
Vachounet 6b9c236474 sanders: update config.fs 2018-01-11 22:46:40 -02:00
Vasantha Balla efa5509217 sanders: cas: add CAS HAL
Change-Id: I3d26b3c8c57425d2ee596f8efecaa2722b39551c
2018-01-11 22:40:48 -02:00
Vachounet 1cd79c567b sanders: add esepowermanager HIDL 2018-01-11 22:40:48 -02:00
Vachounet 0cfd6343b4 sanders: Relocate device specific config files to vendor partition 2018-01-11 22:32:15 -02:00
Vachounet eea72df349 sanders: add vibrator HIDL 2018-01-11 22:22:18 -02:00
Rajiv Ranjan eb97aba667 sanders: Enable persisitent reconnection by default
CRs-Fixed: 2105028
Change-Id: I67fc490d458589a92c1dd1929176b6e80a8d674b
2018-01-11 22:22:18 -02:00
Vachounet de266ac32c sanders: add USB HIDL 2018-01-11 22:22:18 -02:00
Vachounet a5ac12357b sanders: update display flags
* From tissot
2018-01-11 22:22:18 -02:00
Vachounet fb50e2605a sanders: build health HIDL 2018-01-11 22:20:42 -02:00
Vachounet becde27a11 sanders: binderized gatekeeper 2018-01-11 22:19:58 -02:00
jhenrique09 ec831495e2 sanders: sepolicy: Remove leftovers from few services 2018-01-11 22:11:58 -02:00
jhenrique09 0cbaab6b3e sanders: libshims: Nuke rild socket shim 2018-01-11 22:11:31 -02:00
Vachounet 47ef5fd5b2 sanders: init: cleanup
* Remove some proprietary scripts
* Should help for sepolicy rules
2018-01-11 22:03:00 -02:00
Vachounet 27a5f54f17 sanders: init: read hardware revision from ro.boot.hwrev 2018-01-11 22:03:00 -02:00
Vachounet 9d679e3f8d sanders: drop libqsap_sdk
* OSS one has missing symbols, keep it as blob only
2018-01-11 22:03:00 -02:00
Vachounet bdcc4d7df7 sanders: init: remove qcom-sh service
* Not used
service qcom-sh does not have a SELinux domain defined
2018-01-11 22:03:00 -02:00
Vachounet 68cd5555be sanders: use 64bit rild
* Partialy revert fa3d0d2dde4dd503edfc2977977d37c7cfaea7a3
2018-01-11 22:03:00 -02:00
Vachounet 0df5dd65dc sanders: enable full omx 2018-01-11 22:03:00 -02:00
Alberto97 979f6b158f addison: Actually link ADSP firmware to system/etc/firmware
Change-Id: Ic80cb1db74d91b418e9fec0de986ba92cf987038
2018-01-11 22:03:00 -02:00
Vachounet a043c74d38 sanders: switch to O 64bit RIL stack
* Make needed changes in ramdisk
* Enable HIDL HALs
* Build radio service
* Update vendor properties
2018-01-11 22:00:58 -02:00
Vachounet d548007ecc sanders: enable binderized bluetooth 2018-01-11 21:55:37 -02:00
Vachounet 2e69ec63a0 sanders: start energy-awareness service 2018-01-11 21:55:26 -02:00
jhenrique09 7cfe0ecd88 sanders: power: Switch to 1.1 implementation 2018-01-11 21:41:11 -02:00
Vachounet fa8a50289b sanders: add ssr and sound trigger headers
* Fix audio HAL
2018-01-11 21:39:31 -02:00
therootlord 1ce89ffba6 sanders: remove Gello 2018-01-11 21:38:05 -02:00
jhenrique09 050a82ccae sanders: Build a 32 bit version of rild and fp service
For now we're using 32 bits from stock, for both services. So use it until 64 bits blobs are ready

Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
2018-01-06 02:22:23 -02:00
Wei Wang b516265ac6 init.mmi.rc: enable zram on boot_complete
This help to save ~50ms in boot time and bootanim shown time

Bug: 62957152
Test: marlin boot and swap look normal after boot
Change-Id: Icabec31aa677bd606ca8735fe9d2acb54e88bd75
2018-01-06 02:11:34 -02:00
Vachounet 7e3a5404af sanders: move check_features script to vendor/bin 2018-01-06 02:04:47 -02:00
jhenrique09 2fe1ffe2ca sanders: fstab: Set max_comp_streams 2018-01-06 01:58:35 -02:00
jhenrique09 70969fc61e sanders: Update display flags
Fix miracast and screen recording
2018-01-05 03:31:21 -02:00
jhenrique09 151a317068 sanders: rootdir: Revert old implementation for sensorsservice
Partially reverts https://github.com/PixelExperience-Devices/device_motorola_potter/commit/db6f13765b16493b3e76ba890b8310488c2dca09
2018-01-05 03:28:13 -02:00
Alberto97 94115d2162 sanders: build a 32bit version of sensorservice
system_server is currently responable of starting SensorService and
since it is a 64bit instance, system looks for 64bit sensorhal.
Disable this mechanism and manually start SensorService with a 32bit
copy of sensorservice to force the system using the 32bit HAL

This is based on vache's work on potter
2018-01-05 03:27:22 -02:00
Paul Keith 89a3c53b3a sanders: Use QTI HIDL power HAL
* Let's use the new shiny binderized HAL in hardware/qcom/power

Change-Id: I2abf4ca9b0b5a0cb031f12c400a1159962f5e94c
2018-01-05 03:23:09 -02:00
jhenrique09 5704b0fb73 LineageActions: Update gestures icon 2018-01-05 03:21:38 -02:00
jhenrique09 d4ca8392b5 sanders: Move fs_config aids to config.fs 2018-01-05 03:20:00 -02:00
Prema Chand Alugu 9ee52f6bcd sanders: update LD_SHIM_LIBS for Camera
Thanks to @jhenrique09 to implement for Potter, https://github.com/PixelExperience/device_motorola_potter/commit/c8b635ff161c958e412f6ee22cfdbfb03c4e21d2

Apply the camera_hal shim to system/vendor/lib/libguy.so for Sanders.

12-31 02:03:10.364  5660  5660 F DEBUG   : pid: 5657, tid: 5657, name: mm-qcamera-daem  >>> /system/vendor/bin/mm-qcamera-daemon <<<
12-31 02:03:10.364  5660  5660 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
12-31 02:03:10.365  5660  5660 F DEBUG   : Abort message: 'CANNOT LINK EXECUTABLE "/system/vendor/bin/mm-qcamera-daemon": cannot locate symbol "_Z35eglQueryStringImplementationANDROIDPvi" referenced by "/system/vendor/lib/libguy.so"...'
2017-12-31 04:29:43 -02:00
jhenrique09 5708302065 sanders: Update camera shim
03-13 07:33:48.860  1512  1512 E HAL     : load: module=/system/lib/hw/camera.msm8953.so
03-13 07:33:48.860  1512  1512 E HAL     : dlopen failed: cannot locate symbol "_Z35eglQueryStringImplementationANDROIDPvi" referenced by "/system/vendor/lib/libguy.so"...
2017-12-31 04:27:23 -02:00
Philip Cuadra f3f0b0151d Pin .vdex files as well 2017-12-31 00:48:11 +00:00
jhenrique09 38790c356e sanders: Enable Pinner Service 2017-12-31 00:48:11 +00:00
therootlord 0d838d72a8 fix derp
* Should have been removed in commit a92cb18e1d.
2017-12-29 21:17:53 -02:00
therootlord a45703d7d2 Revert "sanders: Disable dexpreopt for some modules"
This reverts commit 810cc575cf.
2017-12-29 21:14:23 -02:00
Prema Chand Alugu 788eee6cf4 sanders: dexpreopt it 2017-12-29 21:14:23 -02:00
jhenrique09 bef327c474 sanders: Drop gps shim 2017-12-29 21:14:23 -02:00
jhenrique09 9e9be3530c sanders: Move build fingerprint to init 2017-12-29 17:02:13 -02:00
jhenrique09 086ee52b71 sanders: Build android.hidl.base and android.hidl.manager 2017-12-29 16:59:17 -02:00
therootlord 017c11d62a Revert "sanders: build android.hidl.base@1.0"
This reverts commit d5d9381a4b.
2017-12-29 16:59:06 -02:00
jhenrique09 cf3d03e690 sanders: Use Pixel build fingerprint to bypass safetynet 2017-12-29 15:07:53 -02:00
Prema Chand Alugu 3785526a29 Revert "sanders:DNM: Disbale LED overlays"
This reverts commit 574e20f52ff2c6a007fc7a81b71ba996eead5c54.
2017-12-26 21:40:01 -02:00
Prema Chand Alugu b5fe46127d Revert "sanders: Enable Tether offload"
This reverts commit ffc35631ae1def8da6d9c9870fdaa8355c728d3d.
2017-12-26 21:39:35 -02:00
Prema Chand Alugu 636e992dfe sanders: Remove AID_QCOM_DIAG (ROM defines it already)
* Remove here if the ROM supports
https://github.com/GZOSP/system_core/commit/7d8c2f44977d48db22d2261443f890adffdeb4fc
2017-12-26 21:37:08 -02:00
jhenrique09 014ee33fff sanders: Fix invalid bluetooth mac
Revert "potter: Read BT address from property"

This reverts commit 8278bc7598.
2017-12-22 01:13:49 -02:00
jhenrique09 b97022a437 sanders: Cleanup unused overlays 2017-12-22 01:13:44 -02:00
Paul Lawrence f212ce9083 Use tracefs not debugfs
Test:   Device boots
	Can take photos
	Run "adb shell atrace -c -b 16000 -t 5 gfx" without root and check produces
	output
	Run "python systrace.py view gfx freq sched am wm dalvik
	binder_driver" from external/chromium-trace after adb root and
	check populated
Bug: 31856701
Change-Id: Ie4f8017d4ef37e12848b1e498e06ed2482752ab2
2017-12-22 01:12:57 -02:00
Alberto97 f6aabf3822 sanders: Disable SUPL for Canadian carriers
* According to Sultan SUPL is broken and crashes the system.

Change-Id: I88178ed74ac8954843942d42f42bae399d43ca2d
2017-12-22 01:12:57 -02:00
Alberto97 dc1cc4fb08 sanders: Import AOSP carrier specific GPS params
Change-Id: Ia726101291aa8921533f70f1c0b4a857693ff342
2017-12-22 01:12:57 -02:00
Alberto97 bdbb81c7cf rootdir: Remove lines that fail 2017-12-22 01:12:57 -02:00
Alberto97 fb4587b977 sanders: Set ro.boot.hardware.revision instead of ro.hw.revision
* Settings look for ro.boot.hardware.revision to show the hardware revision

jhenrique09: Adapt to potter
Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
2017-12-22 01:12:57 -02:00
Alberto97 2bd9b6b23d rootdir: load_all_props is dead with M, replace with load_system_props 2017-12-22 01:12:57 -02:00
Adrian DC 5429294ccd sanders: Give /dev/msm_vidc_* camera group and video_device label 2017-12-22 01:12:57 -02:00
Bruno Martins 3b01100106 sanders: enable wifi services 1.1 2017-12-22 01:12:57 -02:00
attack11 261ab996cf sanders: fstab.qcom it not in vendor 2017-12-22 01:12:57 -02:00
Prema Chand Alugu 38d77c0b6c sanders:DNM: Disbale LED overlays 2017-12-22 01:08:00 -02:00
Vachounet d5d9381a4b sanders: build android.hidl.base@1.0 2017-12-22 01:02:59 -02:00
Vachounet 84678abbb2 sanders: remove context from fstab 2017-12-22 01:01:20 -02:00
jhenrique09 7067f6f835 sanders: Comment out sepolicy for now 2017-12-22 01:00:42 -02:00
jhenrique09 710c19e77f sanders: Fix and optimize init for 8.1 2017-12-22 00:58:25 -02:00
therootlord 8f9e1b4c1f Revert "Revert "sanders: cleanup libmot_gpu_mapper shim""
This reverts commit 2367114591.
2017-12-22 00:48:56 -02:00
Pavan Kumar M ca1e20a7b0 sanders: Enable Tether offload
Add Hals for tether offload into manifest

Change-Id: Ic8780f0545358a2bd0dc5f381dfb6f8cf7b183f2
CRs-Fixed: 2126455
2017-12-13 13:50:08 -02:00
Karthik Gopalan 04c0fc1e90 sanders: Ensure read_ahead_kb values same for all nodes
Set read_ahead_kb values on 8937/8953 for missing nodes.

Change-Id: I9b57a2eac82045f433791fe733417d3c2e8707b4
2017-12-13 13:49:17 -02:00
Yuanyuan Liu 38cd2783b0 init.qcom.rc: Set net_admin for cnss-daemon
Set net_admin capability for cnss-daemon.

CRs-Fixed: 2121853
Change-Id: I1671ad486588cfd32d83a3842b2560f31514f793
2017-12-13 13:44:35 -02:00
Vachounet 28ff186699 sanders: manually start sensorservice 2017-12-13 13:41:31 -02:00
Vachounet 09459278b3 sanders: switch back to core_64_bit.mk
* Use zygote64_32 instead of zygote32_64
2017-12-13 13:38:06 -02:00
Vachounet 5d83af8a73 sanders: fix fm and bt scripts path 2017-12-13 10:21:00 -02:00
therootlord 2367114591 Revert "sanders: cleanup libmot_gpu_mapper shim"
This reverts commit 7bd956a535.
2017-12-13 10:19:11 -02:00
jhenrique09 3f701b4d95 sanders: rootdir: Don't set fwpath 2017-12-11 11:38:06 -02:00
Vachounet 7bd956a535 sanders: cleanup libmot_gpu_mapper shim 2017-12-10 20:32:54 -02:00
Vachounet 1ad8b6b13c sanders: add back some init scripts to root folder
* Partially revert 8f77caf48
2017-12-10 20:30:51 -02:00
Vachounet 5001e23a77 Revert "sanders: qcom bsp - display specific flag"
This flag enables the QCOM specific display features

Change-Id: Iba7409c7e3743de846a7fb8bfcc7ad0b80985409
CRs-Fixed: 2043662
(reverted from commit cb8cb730e5f78c1e152230a3626d03a7749a904a)
2017-12-10 20:28:27 -02:00
Bharat Pawar 1a690a4b9e sanders: qcom bsp - display specific flag
This flag enables the QCOM specific display features

Change-Id: Iba7409c7e3743de846a7fb8bfcc7ad0b80985409
CRs-Fixed: 2043662
2017-12-10 20:27:55 -02:00
Vachounet 8275f457d7 sanders: add back msm_irqbalance 2017-12-10 20:27:26 -02:00
Ramakant Singh b0e0d3b02d sanders: Display: Add entry for postproc
Change-Id: I6f6cc9d042b92bf311e9c64c0e56e4d650b36c56
2017-12-10 20:25:59 -02:00
Manaf Meethalavalappu Pallikunhi aa4aab4d58 sanders: thermal: Add thermal send rule socket to thermal service init
Add thermal send rule socket to thermal service initialization script
This change is required for SE Android so that thermal socket context
are not overridden by init.

Change-Id: I8774b62f35f72a481f9976dda5d1aee1e19d8374
2017-12-10 20:24:58 -02:00
Karthik Gopalan 50cf0363d1 sanders: HIDL: Add new IOP hal
IIop (uses HwBinder) HAL service provides IOP services during app
launch. Default implemetation is 1.0 version.

CRs-Fixed: 2091471

Change-Id: Id5f8d2e7afcc1e1be11be5d0490f0aaa9f6508e9
2017-12-10 20:23:06 -02:00
Aditya Nellutla e97b777b39 sanders: Add Renderscript to manifest
Add Renderscript to manifest for msm8953 target in order to enable
framework to load Adreno RS driver.

CRs-fixed: 2074539

Change-Id: I9b92080f01af49c96f3718a9a8825bccd3870b82
2017-12-10 20:20:57 -02:00
Mahantesh Sanakall 3ba942c065 sanders: Use build variables to build device matrices.
Move away from building device manifest through PRODUCT_COPY_FILES.
Use the build variables - DEVICE_MANIFEST_FILE and DEVICE_MATRIX_FILE
to build device manifest and device compatibility files repectively.

Change-Id: Ieb3e410118ee9fe00c6b03e32a983e584960d8dc
2017-12-10 20:19:21 -02:00
Vachounet 9e90359ce6 sanders: update rootdir
* Move more services to vendor
* Update ueventd.qcom
2017-12-10 20:17:46 -02:00
Vachounet 0cac014c54 sanders: build netd HAL 2017-12-10 19:26:00 -02:00
jhenrique09 ead00cce1a sanders: Add moar camera2 permissions 2017-12-09 18:43:13 -02:00
therootlord 50b2d8b0f0 sanders: lights: change to slow blink pattern 2017-12-09 18:02:01 -02:00
Vachounet a5113e636c sanders: update thermal-engine conf filename
* Thx @therootlord
2017-12-09 17:15:17 -02:00
Vachounet 26805d8bbc sanders: add vndk-sp libs 2017-12-09 17:14:18 -02:00
Ram Chandrasekar aca125ce08 thermal-engine: Add thermal client library header
Add thermal client library header. This header can be used to query and change thermal config.

Change-Id: Ib597c79c13fc91f1145456d717900f4ed4f1fc46
2017-12-09 16:57:17 -02:00
Vachounet 0c2cfa21f8 sanders: add thermal HAL
* From LA.UM.6.6.r1-04400-89xx.0
2017-12-09 16:54:22 -02:00
Vachounet efba297b2a sanders: update location configs 2017-12-09 16:53:02 -02:00
Vachounet 70a281843c sanders: keep a copy of media_profiles.xml in /system 2017-12-09 16:51:06 -02:00
Vachounet 9163181afb sanders: add perfboostconfig.xml 2017-12-09 16:50:39 -02:00
Vachounet 156e611a35 sanders: disable ubwc 2017-12-09 16:50:14 -02:00
therootlord 095102393b sanders: BoardConfig: fix missing POWERHAL_VARIANT 2017-12-05 11:49:34 -02:00
Vachounet 95345b53d3 Revert "sanders: add AIDs for legacy RFS"
Change-Id: I7cdaa7eac3de0f0782f44ec5be5ed75211c36bf0

(reverted from commit af8636eb055d4cd755f5bb921d691ef3fe3a5b6f)
2017-12-04 13:08:11 -02:00
Vachounet 0883fc4925 sanders: move some config files to vendor 2017-12-04 13:06:34 -02:00
therootlord 5caf5d839e sanders: init: move cnd service to vendor 2017-11-27 15:52:21 -02:00
therootlord ac82eb1d61 sanders: fix MultiHal 2017-11-27 13:46:32 -02:00
Vachounet 29ee22beb0 sanders: revert some binderized services 2017-11-26 23:01:15 -02:00
Vachounet 9b6360f9ca sanders: shim: update adspd path 2017-11-26 22:59:56 -02:00
jhenrique09 5c57ce7af5 sanders: KeyHandler: Never return null, prevent crash 2017-11-23 11:25:33 -02:00
Alberto97 71b7653c8e sanders: remove debugging tools 2017-11-23 11:23:49 -02:00
Vachounet 0b61d8abcc sanders: mods/greybus cleanup 2017-11-23 11:23:18 -02:00
jhenrique09 fb41b48cc1 sanders: Optimize makefiles 2017-11-23 11:22:16 -02:00
jhenrique09 810cc575cf sanders: Disable dexpreopt for some modules 2017-11-23 11:17:14 -02:00
jhenrique09 c279e24bd6 sanders: LineageActions: Haptic improvements 2017-11-23 11:15:28 -02:00
LuK1337 552aa26a6c sanders: replace QCOMs groups with oem_2950-oem_2952 2017-11-23 11:14:19 -02:00
Ethan Chen 8488872a19 sanders: add AIDs for legacy RFS
Change-Id: I7cdaa7eac3de0f0782f44ec5be5ed75211c36bf0
2017-11-23 11:13:52 -02:00
Ritesh Harjani 568205d28b sanders: Add AID_QCOM_DIAG, AID_RFS, and AID_RFS_SHARED 2017-11-23 11:13:34 -02:00
Vachounet ffabe36cfb sanders: update display flag 2017-11-23 11:12:37 -02:00
Vachounet 4e7050a69a sanders: enable treble for omx 2017-11-23 11:12:17 -02:00
Vachounet c75aa9b9d4 sanders: ship missing powerhint 2017-11-23 11:11:55 -02:00
Vachounet b5e7028fda sanders: update hidl manifest 2017-11-23 11:11:29 -02:00
Vachounet 44d98ed96e sanders: time to binderize 2017-11-23 11:10:27 -02:00
Vachounet c7be3df0f6 sanders: build Camera2 for now 2017-11-23 11:10:06 -02:00
Vachounet a92cb18e1d sanders: init: move some services to vendor 2017-11-23 11:09:40 -02:00
Vachounet 1f8198a460 sanders: gps: switch to LA.UM.6.6.r1-04300-89xx.0 branch 2017-11-23 11:02:22 -02:00
Vachounet 3ffdc23017 sanders: update seccomp_policy
* add mediaextractor policy
2017-11-23 10:59:55 -02:00
Vachounet 12abbffb85 sanders: update sec_config 2017-11-23 10:59:23 -02:00
Vachounet a1181c5cae sanders: update manifest and ship compatibility matrix 2017-11-23 10:55:30 -02:00
Vachounet 2691fffea6 sanders: Bring up 32_64_bit support
* Do not use default core_64bit product, and ship a custom one to default run in 32bit mode
2017-11-23 10:54:18 -02:00
jhenrique09 238b9161dc sanders: liblight: Fix blinking support, and cleanup code 2017-11-23 10:52:06 -02:00
Vachounet 9b5b7fc89e sanders: update 64bits flags 2017-11-23 10:51:24 -02:00
Vachounet 6ebc943511 sanders: initial commit for 64bits support 2017-11-23 10:47:59 -02:00
jhenrique09 df31b1f81e sanders: Uncomment proximity overlays 2017-11-15 14:15:13 -02:00
Luca Stefani ce90f35b64 init: Use proper seclabel for charger service
* Partically taken from angler f2f207d2594b
2017-11-15 14:15:13 -02:00
jhenrique09 9b0ed5a8a3 sanders: sepolicy: Initial fixes 2017-11-15 14:15:13 -02:00
jhenrique09 89df59f4ce sanders: Enable sepolicy 2017-11-15 14:15:13 -02:00
jhenrique09 601a90f567 sanders: rootdir: Restore some services 2017-11-15 14:15:13 -02:00
jhenrique09 b4dcd4d248 sanders: NFC: Use TagGoogle when available 2017-11-15 14:15:13 -02:00
jhenrique09 51644ac52a sanders: Use all cores for dex2oat 2017-11-15 14:15:13 -02:00
Adarsh-MR 8226c77af2 sanders: overlay: Enable Wireless FM
Signed-off-by: Adarsh-MR <adarshmr1998@gmail.com>
2017-11-15 14:15:13 -02:00
jhenrique09 1cbbc110f1 sanders: system.prop: Enable aptX bt codec 2017-11-14 12:48:28 -02:00
jhenrique09 80b69dac8b sanders: Remove soundtrigger and DS2_DOLBY_DAP
potter doesn't have on stock rom

11-12 00:57:45.084   791   791 E soundtrigger: audio_extn_sound_trigger_init: DLOPEN failed for /vendor/lib/hw/sound_trigger.primary.msm8953.so. error = dlopen failed: library "/vendor/lib/hw/sound_trigger.primary.msm8953.so" not found

11-12 00:57:45.075   791   791 E audio_hw_dolby: audio_extn_dap_hal_init: DLOPEN failed for vendor/lib/libhwdaphal.so error dlopen failed: library "vendor/lib/libhwdaphal.so" not found
2017-11-14 12:48:28 -02:00
FireLord1 84ed2378bc sanders: Prevent permission denied error for telephony
Change-Id: I8b23f9ccd5950fa31f748d6fe86b46ea4f3c6b6d
Signed-off-by: FireLord1 <firelord.xda@gmail.com>
2017-11-14 12:48:28 -02:00
Artem Borisov 83676e4c0e sanders: Use 64-bit binder API
AOSP and mainline are going towards removing old 32-bit binder API support.
64-bit binder is 100% compatible with 32-bit kernel and userspace,
so there is no reason for us to keep using the old solution anymore.
We've switched to new API in our kernel, same thing should be applied to our userspace.
2017-11-14 12:48:28 -02:00
Alberto97 1af52a897a sanders: Switch to oem_xxxx AIDs 2017-11-14 12:48:28 -02:00
Alberto97 7f34a5044e sanders: Switch to TARGET_FS_CONFIG_GEN for fs_config
* On Oreo, android_filesystem_config is generated by a python script
   that provides a nice way to add AIDs without overriding any header.
 * Switch AID values from 9xxx to 5xxx since accepted ranges
   for OEMs are only 5000-5999 and 2900-2999
 * Remove fs_config_files since it is already in embedded.mk
2017-11-14 12:48:28 -02:00
jhenrique09 6906ef95aa sanders: Build hidl DRM service and add to the manifest 2017-11-14 12:48:27 -02:00
jhenrique09 185eebf4b4 sanders: Remove powerhal from here
Change-Id: I8d8d74ab9b2fa825d6e430c9528ce349dbf85335
2017-11-14 00:53:30 -02:00
therootlord ac8b254d9f sanders: Use charging animation from stock 2017-11-09 23:46:25 -02:00
Prema Chand Alugu 1975bad19d sanders: LineageActions: Remove Settings search indexing for ScreenOff
gestures
2017-11-09 17:53:57 -02:00
jhenrique09 044b251742 sanders: KeyHandler: Remove notification manager references 2017-11-09 17:53:57 -02:00
jhenrique09 98f75e2ef0 sanders: KeyHandler: Vibration improvements 2017-11-09 17:53:57 -02:00
jhenrique09 958100cd8c sanders: KeyHandler: Optimize registerTorchCallback 2017-11-09 17:53:57 -02:00
jhenrique09 d72b752882 sanders: KeyHandler: Don't allow multiple calls for fp gestures 2017-11-09 17:53:57 -02:00
jhenrique09 596f5e602d sanders: LineageActions: Register torch callback on chop-chop action 2017-11-09 17:53:57 -02:00
Roman Birg 6fbc28026a sanders: LineageActions: add Settings search indexing
Allows Settings to search for options provided by this package.

Signed-off-by: Roman Birg <roman@cyngn.com>
Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
2017-11-09 17:53:57 -02:00
Alberto97 6da473545a LineageActions: Remove ACCESS_NOTIFICATION_POLICY check
* It is granted at first boot and users cannot revoke
   the permission of a system app anymore since Nougat

Change-Id: Ie736c1620420a51d40062de1f809c78a11741781
2017-11-09 17:53:57 -02:00
Alberto97 28bec6a977 sanders: ProximitySilencer: Fix debug message
* As per documentation, TYPE_PROXIMITY has a single item in values for distance
 * The current code triggers an ArrayIndexOutOfBoundsException on O

Change-Id: I371cdb755d39c413d3ae2313fe66ae5bc62a7b58
2017-11-09 17:53:56 -02:00
therootlord c2dd3c055e sanders: fix partition size 2017-10-30 00:30:39 -02:00
therootlord d6912a73d1 sanders: change to custom toolchain for building kernel 2017-10-29 02:44:10 -02:00
Prema Chand Alugu db1f82e5d9 sanders: Remove ScreenOff gestures
* We do not support wake gestures
* Remove the screen off gestures from Actions, Handler
2017-10-29 02:28:54 -02:00
Henrique Silva 18859c1826 sanders: KeyHandler: Add last app action 2017-10-29 02:28:54 -02:00
jhenrique09 290dd03777 sanders: KeyHandler: Fix haptic on power action 2017-10-29 02:28:54 -02:00
jhenrique09 e2e32dc9f7 sanders: KeyHandler: Cleanup code 2017-10-29 02:28:54 -02:00
jhenrique09 4dcaffafbf sanders: KeyHandler: Increase delay a bit more to fix injectInputEvent 2017-10-29 02:28:54 -02:00
jhenrique09 c846e096a6 sanders: KeyHandler: Fix haptic on assistant 2017-10-29 02:28:54 -02:00
jhenrique09 7117e8793f sanders: LineageActions: Show back button on main activity 2017-10-29 02:28:54 -02:00
jhenrique09 0f203454fd sanders: LineageActions: Adjust fp screen off preference on layout 2017-10-29 02:28:54 -02:00
jhenrique09 2f00327572 sanders: LineageActions: Fix build 2017-10-29 02:28:53 -02:00
jhenrique09 7103ea1f4d sanders: Overlay fixes 2017-10-29 02:28:40 -02:00
AdrianDC da5bdbbaca sanders: LineageActions: Upgrade to Oreo Settings UI
* Attach to appropriate Settings pages
 * Hide divider lines to match Settings UI styles
 * Apply On/Off text on the switch bar toggle
 * Implement AOSP Settings preference layouts for indentation

 * Depends on android_packages_resources_devicesettings:
    "DeviceSettings: Import Oreo Settings layouts"
    Ib3f670b19c7e728b97fd76efe04bcc2f69008b06

 * Partially based upon commit "Bring DozeSettings up to date"
    I0850f7d9558a14f739f752f76002db993381a0e5 by Steve Kondik
    for the SwitchBar integration but using native themes

Change-Id: Ic5b8335aafc9ce876ed90a25045398e39515e484
Signed-off-by: Adrian DC <radian.dc@gmail.com>
Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
2017-10-29 02:16:59 -02:00
jhenrique09 c0c11cd323 sanders: [SQUASHED] Refactor LineageActions and implement keyhandler
This adds support for FP and screen off gestures

Originally implemented in DU-MOD by @jhenrique09
Adapted to Oreo by @gregor160300 and @jhenrique09
2017-10-29 02:16:59 -02:00
Alberto97 2741c07f99 sanders: Apply more LineageOS rebrand
* CMActions: Move to Lineage SDK

* CMActions -> LineageActions
Since history is going to be killed anyway:
 * Move related stuff under "actions" or "doze" packages, make every class role clear
 * Rename misleading TouchscreenGesture* to Actions*

Also add original-package for preferences migration

Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
(cherry picked from commit 99c39df834c26edfc066e8ad2088a55e5a858166)
2017-10-29 02:16:59 -02:00
Rashed97 53cefaef0a sanders: Move Lineage specific overlays to overlay-lineage 2017-10-29 02:16:59 -02:00
jhenrique09 f8de107033 sanders: Drop CMHW for now 2017-10-29 02:16:59 -02:00
Prema Chand Alugu e5fa3448df sanders: Keep default notification light color Blue 2017-10-29 02:10:59 -02:00
Prema Chand Alugu 4cb0bfab14 sanders: Multicolor notify LED overlays 2017-10-29 02:09:11 -02:00
Prema Chand Alugu 4f2cada737 sanders: Enable more LED overlays 2017-10-29 02:08:02 -02:00
therootlord e1ee2862e5 sanders: BoardConfig: correct partition sizes 2017-10-28 21:36:05 -02:00
therootlord 2b81e44c45 sanders: media: switch to vendor props
Change-Id: I3b664ad56e2f351b225e423de4d0fc5cd2ab1ef2
2017-10-21 11:58:26 -02:00
therootlord 3d5d1aaca4 sanders: overlay: set screen brightness minimum value to 3(stock value);
disable dt2w for now
2017-10-17 17:58:47 +00:00
therootlord 89d5ed10aa sanders: add back some CAF audio features
Change-Id: I2ab0fdb87cf73e049e06a7be9487776d891cd1cb
2017-10-13 01:34:08 +00:00
therootlord a0c252b1aa sanders: aex bringup 2017-10-13 01:14:58 +00:00
Vachounet 08a382a809 sanders: init: update power config 2017-10-07 17:25:55 +02:00
Vachounet a93e08c283 sanders: update display props
Change-Id: Ib755f9b10eb1321b3012f1efaf2fc8757f6f626b
2017-10-07 17:25:50 +02:00
Vachounet 2ae3e16b49 sanders: bluetooth: force disable sco enhanced sync commands
Change-Id: I882870cd9f6ac288e90def217bf5ce46f3a5cbb1
2017-10-07 17:25:46 +02:00
Vachounet 19c7104fc7 sanders: bluetooth: enable WBS
Change-Id: I638bebe4cced59a30990b2e0f0250d1e7b6cddf1
2017-10-07 17:25:41 +02:00
Vachounet 2fa575c154 CMActions: display menu on main screen
Change-Id: Iea259fdb49342b9714944831257fb6a3945bfd93
2017-10-07 17:24:51 +02:00
Vachounet f856eef44e sanders: fix potter derp 2017-10-07 17:23:48 +02:00
Vachounet eeeb6a0a63 sanders: fix camera configs
* Thanks to @GeneticEnginer
2017-10-05 18:06:43 +02:00
Vachounet 51e8f7c396 sanders: nfc: update configs 2017-09-25 21:24:52 +02:00
Vachounet 3e88e5498f CMActions: remove glance sensor 2017-09-25 21:23:46 +02:00
Vachounet 84ed735c2b sanders: update ramdisk 2017-09-23 07:46:02 +02:00
Vache dc221f605d Merge pull request #1 from hashroot/patch-1
sanders: update spec sheet
2017-09-22 14:16:11 +02:00
Rishabh 1c6388e261 sanders: update spec sheet 2017-09-22 15:40:19 +05:30
Vachounet c131c38133 sanders: set ro.hardware.sensors 2017-09-20 14:57:28 +02:00
Vachounet 0948ad95db sanders: sync props with stock 2017-09-20 13:56:12 +02:00
Vachounet 7c7e3b402e sanders: add thermal config 2017-09-20 13:48:57 +02:00
Vachounet 02dfd89feb sanders: update display mode configs 2017-09-20 13:48:13 +02:00
Vachounet a80ff8611c sanders: remove ZAF configs 2017-09-20 13:46:21 +02:00
Vachounet 15edf0f137 sanders: update BT device name 2017-09-20 13:45:34 +02:00
Vachounet 248ecd6b43 sanders: add camera configs 2017-09-20 13:45:12 +02:00
Vachounet ca5f9ba096 sanders: potter -> sanders 2017-09-20 13:42:38 +02:00
Vachounet 6a649697e6 sanders: update configs from NPS26.116-26 2017-09-20 13:37:19 +02:00
Vachounet 4d5f94920b potter: build libtinycompress
Change-Id: I5d4c74cd4f8ccdac796e5d6d0312b6dd9a3fe948
2017-09-16 13:46:27 +02:00
Vachounet 9137ff5679 potter: copy audio configs to vendor
Change-Id: I211c8154b87713f4bea0ee072627a3008a4de947
2017-09-16 13:46:07 +02:00
Vachounet cd60bb59d4 potter: switch to vendor props
* Needed for CAF O HALs

Change-Id: I55ede639aac6bd9b24c1aafb064887bcfe0f6311
2017-09-16 13:45:03 +02:00
Vachounet 10ef4be59e potter: disable sdcardfs
Change-Id: I6989a46df18f556d7c2849521058651f3e47629e
2017-09-16 13:44:23 +02:00
Vachounet aee24463a9 potter: enable HAL3
Change-Id: I0ff72eb664a127b18936c6385ad454d1bf406854
2017-09-16 13:43:56 +02:00
Vachounet be87305271 potter: back to N power HAL
Change-Id: Ibaf21913ba08750d69479b07a5b31bb31fdb7418
2017-09-16 13:43:15 +02:00
Vachounet a70996813e potter: fix soundfx libs path
Change-Id: I7b99c4d71c4fd4856f4a874f93406c57f3ade867
2017-09-16 13:39:41 +02:00
Vachounet 0ec1d3d688 potter: we're not using camera wrapper, don't build it
Change-Id: I94c61e1b7310db909cd6df395e72bcfd5da36a88
2017-09-16 13:37:26 +02:00
Vachounet 43df68b0f6 potter: shim some camera sensors blobs
Change-Id: I6678eecdf56084309c93b9bf540f5551afabfd01
2017-09-16 13:36:04 +02:00
Vachounet f512e6b4b9 potter: ipacm: fix build
Change-Id: I129c15664047306530225a5405970966c0edbf93
2017-09-14 10:15:42 +02:00
Vachounet 150294a722 Revert "potter: remove IPACM for now"
Change-Id: Ib2193f4c1350bed557c27fe6c2d004c8eb0fba18

(reverted from commit b0a241003f)
2017-09-14 10:05:14 +02:00
Vachounet ce47b2d9f9 potter: fix WiFi
Change-Id: I47531f3c54ccc6c55dc4d176da0b70eabdff4a11
2017-09-14 10:02:22 +02:00
Vachounet baa0a1efc4 potter: keep sensors configs on system
Change-Id: I2b78674b74d96fb54762456cf7f5bff5fe4950ae
2017-09-11 14:23:40 +02:00
Vachounet f12af87bd9 Revert "potter: disable USE_SENSOR_MULTI_HAL"
Change-Id: I5d4d5f3a7425e05a0136570f7e04da563eb469c3
(reverted from commit 599c05bf03)
2017-09-11 14:20:11 +02:00
Vachounet a4c36305be Revert "potter: use our own multihal to workaround version check in HIDL HAL"
Change-Id: I356c569304b7e6c0351c456019c4b43048edb120
(reverted from commit 39dab0276a)
2017-09-11 14:19:21 +02:00
Vachounet 8737d612b0 Revert "potter: sensors: copy proper hals.conf"
Change-Id: Ida62267f5e7cd11d0f2018f3a88de43803636e4d
(reverted from commit 3436d5242e)
2017-09-11 14:19:00 +02:00
Vachounet 3436d5242e potter: sensors: copy proper hals.conf
Change-Id: Ida62267f5e7cd11d0f2018f3a88de43803636e4d
2017-09-08 14:29:37 +02:00
LuK1337 39dab0276a potter: use our own multihal to workaround version check in HIDL HAL
Change-Id: I356c569304b7e6c0351c456019c4b43048edb120
2017-09-08 14:04:02 +02:00
Vachounet a0376ca067 potter: init: update LD_SHIM_LIBS
Change-Id: I39fb6bee4e0fbed2383ed6432591929aa6949996
2017-09-08 13:54:33 +02:00
Vachounet 7007e9f6e2 potter: set WIFI_DRIVER_FW_PATH_P2P
Change-Id: If34bb6cc685dbaa9f59b2cdb37261470f3d790c3
2017-09-08 13:53:21 +02:00
Vachounet b46e6e82a8 potter: add back BOARD_USES_QCOM_HARDWARE
Change-Id: I5dee7a21a693b299e713db1c7630e2d71e1c0f2f
2017-09-08 13:52:39 +02:00
Vachounet 97bca11bd1 potter: disable FM for now
Change-Id: Ie8ebb973a9cfec995cd91067b5d2f64fa5876272 (reverted from commit 7bce7ed232)
2017-09-08 13:51:57 +02:00
Vachounet 4c10b0954b potter: set TARGET_USES_NON_TREBLE_CAMERA
Change-Id: I1d9045310d8baec4c0e709024bd5553fecb6e3b7
2017-09-08 13:51:08 +02:00
Vachounet 8bced55677 potter: update shims
Change-Id: Ic857cb87cd380c54c4898e2ef010ecf865283808
2017-09-08 13:50:40 +02:00
Vachounet 5ec98ba4f3 potter: fix custom init
Change-Id: I823167e169b3e5ca13734431e70fcd4d810deeb6
2017-09-08 13:49:31 +02:00
Vachounet ffdf3353f1 potter: import msm8953 CAF power HAL
* from LA.UM.6.4.r1-03200-8x98.0

Change-Id: I1478d92d5c0b6670171b072e25b9ab7557f0e378
2017-09-08 13:48:52 +02:00
LuK1337 6437c98d28 potter: add basic 2.0 -> 2.1 fingerprint HAL wrapper
Change-Id: I27963bfb1402aba10e4ceba669520b630d075abf
2017-09-08 13:47:05 +02:00
Vachounet 001ef83dbd potter: add back CMActions
Change-Id: Ib3ab414d6684c2ced1a3c998e3d3933f3334b2d0
2017-09-08 13:44:46 +02:00
Vachounet 7bce7ed232 potter: disable FM for now
Change-Id: Ie8ebb973a9cfec995cd91067b5d2f64fa5876272
2017-09-04 16:42:52 +02:00
Vachounet 4a40fa61ea potter: build rild and libril
Change-Id: I4d8127304721d343ccd8cbbfae3790befbcff95e
2017-09-04 16:42:38 +02:00
Vachounet c6fd363e8d potter: update WCNSS_qcom_cfg.ini path
* Moved to vendor

Change-Id: If7443023b76fcc0167d900a925a53079f02d21da
2017-09-04 13:32:05 +02:00
Vachounet 05aa4e9cad potter: replace net_bt_stack with bluetooth
Change-Id: I9f7511a42c79074cc7effa55e7fdff5d9e2e6893
2017-09-04 13:30:43 +02:00
Vachounet 5cf8edf97e potter: fix wpa_supplicant service
Change-Id: I2f3e31cb92780ae51ef185b75518c6686dd97278
2017-09-04 13:28:41 +02:00
Vachounet e6b642ba15 potter: update start_hci_filter groups
Change-Id: Ibb22cfdd2ccfb10d0b83613804a53c27064c088e
2017-09-04 13:28:01 +02:00
Vachounet 20fd60b4da potter: do not set wifi driver as unloaded on boot
Change-Id: I097ea4d1baa872d338ddeeddcccfd68b2be78769
2017-09-04 13:27:14 +02:00
Vachounet 23333db5bf potter: fix shim typo
Change-Id: I97ee67117892b1906a4f19cfc8c9acdac83c5b16
2017-09-04 13:25:48 +02:00
Vachounet b3ba0461a5 potter: update bluetooth config
Change-Id: Idcadc9aad0ff07ef8fd68bb7de40573f159d5610
2017-09-04 13:25:14 +02:00
Vachounet f345114184 potter: add seccomp policy
Change-Id: I6057ad74a29776fd1f891d72306aaf35f2b8a8db
2017-08-29 13:16:17 +02:00
Vachounet 5a6dba028a potter: build missing package
Change-Id: Ie2ea61108730835d83105e644bad3a9cce33b9f7
2017-08-29 12:15:21 +02:00
Vachounet 599c05bf03 potter: disable USE_SENSOR_MULTI_HAL
Change-Id: I5d4d5f3a7425e05a0136570f7e04da563eb469c3
2017-08-29 12:14:40 +02:00
Vachounet b4cec1bf39 potter: set permissive
Change-Id: I80889b8f38808e6c550ed7a142cbc05e9696cd67
2017-08-29 12:14:11 +02:00
Vachounet e2cb925de7 potter: set NFC HAL suffix
Change-Id: I8895af1c006a11eb02e6b5360f11767263b80155
2017-08-29 12:13:48 +02:00
Vachounet 8e9a6525e3 potter: remove seclabels
Change-Id: Ida56c463268e237d76da6b91a0d570b2e475562c
2017-08-29 12:12:21 +02:00
Vachounet 0f42ac30b9 potter: fstab: remove contexts
Change-Id: Ic485fc09c7b930befaba983237bada0861f4ee0d
2017-08-29 12:11:08 +02:00
Vachounet 6e19f39802 potter: show navbar
Change-Id: I5f403ee872fdde2c882420187342bae1e55c4ac3
2017-08-29 12:10:43 +02:00
luca020400 416f9cd5e2 potter: add rild socket shim
Change-Id: I2583d4c913130d8a20ce1e7381dd8eba9478a950
2017-08-29 12:09:55 +02:00
Vachounet ae8dc398b3 potter: remove ffmepg codecs
Change-Id: If01dd1292feecdd269a3084eed30233f1a22472a
2017-08-29 12:07:12 +02:00
Vachounet e4f3f87fef potter: update NFC configs
Change-Id: I45562ebb0ebe4a714f5b5582fe45b0f1932267f2
2017-08-29 12:06:48 +02:00
Vachounet 45a0c23750 potter: update display flags
Change-Id: I039446b9cddf0d4e5c039e0b1414be8cd6eaec4e
2017-08-23 16:56:08 +02:00
Vachounet 576c5a6759 potter: remove some overlays
Change-Id: Ia5266e87087375c60693b3132010f9e08439a10d
2017-08-23 15:02:28 +02:00
Vachounet ca57723ea4 potter: remove sensor shim for now
Change-Id: I89cb51d4bec475fb89cdc63909d0208030001c85
2017-08-23 15:01:56 +02:00
Vachounet ae7e1cd698 potter: remove camera wrapper for now
Change-Id: Ia2177adab5227eb99349067aaab6f7ff91fbd71d
2017-08-23 15:01:40 +02:00
Vachounet 87d9ebd2fe potter: camerawrapper: fix build
Change-Id: I495a25055cf783d62852f3757c9a71e77642cb91
2017-08-23 13:59:14 +02:00
Vachounet 4b598b7dab potter: remove sepolicies for now
Change-Id: Ib56069e29b9987f42f9c2083e8a37e73778e7ee2
2017-08-23 13:59:03 +02:00
Vachounet d7b94f2b79 potter: rootdir: Add hci_filter_root
Change-Id: I1ce0e0c1a31c097a0caff5d8948d815a2f53fc7f
2017-08-23 13:08:46 +02:00
Vachounet d23f9cc398 potter: Add HIDL manifest
Change-Id: Ifc8d2115e034b9983e0fff69a14d71a978859b1e
2017-08-23 13:07:31 +02:00
Vachounet 667567010b potter: Default OMX service to non-Treble
Change-Id: I5360255b72878d6a1625c427da93e4437a004d87
2017-08-23 13:06:00 +02:00
Vachounet cd74b30474 potter: Build USB HAL
Change-Id: I0cad9dda736ca54fafbe48f08e4138d0903bb569
2017-08-23 13:05:22 +02:00
Vachounet 10fbed663a potter: Build GNSS HAL
Change-Id: I72042d38ed7ba0df243a5c398233582a85b50e4c
2017-08-23 13:04:54 +02:00
Vachounet 6233e9b5e3 potter: Build Power HAL
Change-Id: I3cb0a406242edcae12ae7122e63b73427f82cbcc
2017-08-23 13:04:25 +02:00
Vachounet 49163fc5d5 potter: Build Vibrator HAL
Change-Id: I1b8124b516bad65e38d8dd1aeae4c7fae7a2dc86
2017-08-23 13:03:55 +02:00
Vachounet e70d2c076e potter: Build wifilogd
Change-Id: I334cd6bf5377aca71827b98b937876a1ec9ef15a
2017-08-23 13:03:25 +02:00
Vachounet df1c63d5cb potter: Build Gatekeeper HAL
Change-Id: If80e0b48e0c12fbe601b55416004bc5ee649657a
2017-08-23 13:03:02 +02:00
Vachounet a0639e370b potter: Build Keymaster HAL
Change-Id: Ic9ca3aca3de15f39ca57ab8dac021b941d110202
2017-08-23 13:02:32 +02:00
Vachounet aab479b285 potter: Build Camera HAL
Change-Id: Iceb6f940e00195b6bb0e1338efb7b2a8cd48497a
2017-08-23 13:00:53 +02:00
Vachounet ab62d41215 potter: Build DRM HAL
Change-Id: Id7cb3c2e3d21e3b13faf5400d1751bd7d652ea6d
2017-08-23 13:00:12 +02:00
Vachounet 2582409aa5 potter: Build light HAL
Change-Id: I1ed0bd6ba0289c4547f97f1d6534ca40d01ce22f
2017-08-23 12:59:40 +02:00
Vachounet e96c9a477f potter: Build biometricts HAL
Change-Id: I6e7b7ce2271051aa46d7123e4e54c72f201a287f
2017-08-23 12:59:10 +02:00
Vachounet 57b523f11a potter: Update display/render for O
Change-Id: I34029ba9d9c1d6163c3c8f495fb9d4867cb0b040
2017-08-23 12:58:38 +02:00
Vachounet b78d054384 potter: Update nfc_nci target name
Change-Id: I45416acdb012d8025138a4614de6552aff1419ad
2017-08-23 12:56:51 +02:00
Vachounet 78104b778b potter: Add libbt-vendor
Change-Id: I9f0624ab0f2290e4c75e59a0423baa29f35d61bc
2017-08-23 12:56:24 +02:00
Vachounet 01b09fc662 potter: Build the Bluetooth HAL
Change-Id: Iba0b1a55ed91906a64727e53cad981791ab1fb59
2017-08-23 12:55:56 +02:00
Vachounet b58b87c345 potter: NFC: Add default implementation.
Change-Id: I0e71028005d4969cc1893e0fea870fb4e0901cd4
2017-08-23 12:55:19 +02:00
Vachounet bc64085b00 gps: Add get_process_name shim
Change-Id: Iff9c1e33b9cd0343f5c4ea7f9a4c84c562c4142b
2017-08-23 12:53:11 +02:00
Vachounet cda41c9417 rootdir: Update 2nd ril-daemon
Change-Id: Ie7ba9770b533b5c4a83522f7fe83ff9230b8b911
2017-08-23 12:48:49 +02:00
Vachounet b698149583 rootdir: get rid of qcom_diag
Change-Id: I026d8f5337d8cd56bc4d9b6cdfbd24874b18cad7
2017-08-23 12:47:05 +02:00
Jongrak Kwon 354afbbbed wifi: Configure the p2p_search_delay to 100 msec
This commit configurs the p2p_search_delay to 100 msec to
avoid more default delay (500msec, configued in the supplicant)
during the p2p_find operations.

Change-Id: Ibb384b31cd1b46dd669483a0d14a3215c0113b7b
CRs-Fixed: 680606
2017-08-23 12:45:18 +02:00
Roshan Pius 0035974fa4 wifi: Add wifi HAL service to device.mk
Bug: 33460969
Test: Compiles
Change-Id: I473f00d5dcabbf84d2da7397aef69b1b688d28a9
2017-08-23 12:44:25 +02:00
Roshan Pius f4ff2b93c6 wifi: Move wpa_supplicant to vendor partition
Bug: 35684372
Test: Compiles
Change-Id: I1bf1355c22f5fc4f6a68032f3b30cced91d0bfed
2017-08-23 12:43:42 +02:00
Luca Stefani d640adbd56 wifi: Remove wigig_supplicant
Change-Id: I11c4508948d3577885edc4fc1dc6769cf3811e07
2017-08-23 12:43:03 +02:00
Christopher Wiley e936b21085 wifi: Do not define superfluous wpa_supplicant service
Bug: 30816535
Change-Id: Iab4e212b1c2dcbb97e73945e6b807b37174e0ae0
2017-08-23 12:42:22 +02:00
Ningyuan Wang cf504fd439 wifi: Add wificond to products
We need our new wifi native daemon wificond for Android O.
This CL gets it installed on the device.

BUG=29220405
TEST=compile

Change-Id: Ibba0329777f78217f6d11f4cb2ad1305661d2097
2017-08-23 12:41:18 +02:00
Roshan Pius 2a23bd57ee init: Change ownership of wifi firmware reload sysfs paths
This will let the wifi hal run as "wifi" user and not need root
permissions to access this path for firmware reloads.

Bug: 33435250
Test: Compiles.
Change-Id: I84a38cea5e0f729147c3191c3485a3738d7838ef
2017-08-23 12:39:18 +02:00
Woody Lin db94d6f01a fs: symlink platform/soc/${ro.boot.bootdevice} to bootdevice
Make symbolic link from
/dev/block/platform/soc/${ro.boot.bootdevice} to
/dev/block/bootdevice.

Change-Id: I7b7f4c728656103445e7fb68ccca92402fa36ff5
2017-08-23 12:38:31 +02:00
Dimitry Ivanov e0eb8f95ca Add missing liblog dependency
Bug: http://b/31289077
Bug: http://b/27171986
Test: remove liblog from libcutils and recompile
Change-Id: Icd2f1ae735e263296a5c6705c7b528b00aa1a94a
(cherry picked from commit 532f3378c214c3134afcb5bcc7c19ce047ec02ac)
2017-08-23 12:35:11 +02:00
Colin Cross 532ff5cdad Depend on libandroid_runtime
libloc_pla is playing tricks with -Wl,--export-dynamic to use symbols
from libandroid_runtime without depending on it.  libandroid_runtime's
headers are moving to where they are only exported to modules that
depend on it, so add a dependency and remove -Wl,--export-dynamic

Bug: 33630870
Test: builds
Change-Id: I9b0567a48ded63031085b6ba93fb3b36404279e1
(cherry picked from commit ada652709d5a1b9faedecc02739d2ed610e18f86)
2017-08-23 12:35:05 +02:00
Vachounet b0a241003f potter: remove IPACM for now
Change-Id: Ib2193f4c1350bed557c27fe6c2d004c8eb0fba18
2017-08-23 12:30:21 +02:00
Vachounet 0a882f4302 CMActions: remove for now
Change-Id: I8ad3072d5f5f7491f712c1c779fcb857aa21e13c
2017-08-23 12:30:01 +02:00
Vachounet 0b6743baac potter: update audio for O
Change-Id: I90cb6cbf22a127141b6701fea71fa7aab5db2b6b
2017-08-23 11:53:58 +02:00
Vachounet 52e0863ffb potter: define AID_USER_OFFSET
Change-Id: I7bd776664fd288b2a02835a894099d1933a2a2b1
2017-08-23 11:53:46 +02:00
Vachounet 1eeea0ebdb potter: init: update for O
Change-Id: I1668264ac5c6cbfb0d67f7a0f28775fac1d48304
2017-08-22 16:22:35 +02:00
Vachounet 618f0a464a potter: update vendor name
Change-Id: I1e047945e1b4d6752976073e3bc827346d97e099
2017-08-22 16:21:56 +02:00
Vachounet 426d4a2976 potter: enable cpusets
Change-Id: Iad812788e084d0410b47031467aaea91a844c22e
2017-08-20 16:51:51 +02:00
Vachounet b625dff858 potter: add support for cpusets
Change-Id: I967c93ad422170f5a8635b4230868f910b4566ee
2017-08-20 16:51:51 +02:00
Vachounet 7b908ec39d potter: enable blur overlay
Change-Id: Iba87cecaf2baff75e59477a5a990676bcbab5408
2017-08-20 16:33:22 +02:00
Vachounet 9050ef3a24 potter: set proper dtbTool custom args
Change-Id: Id06361be5c102c19d48ae2422080954dd8642bf1
2017-08-20 16:27:15 +02:00
Vachounet 0fd50c896e potter: switch to oss dtbTool
Change-Id: Iac9a00d6d446eeb689f331e77adbf616e9dea79e
2017-08-20 16:26:52 +02:00
Vache 697cef60c7 Merge pull request #5 from attack11/cm-14.1
potter: remove nfcnci folder too on XT1687
2017-08-20 16:14:49 +02:00
Alberto97 8278bc7598 potter: Read BT address from property
* And remove unused BLUETOOTH_HCI_USE_MCT

Change-Id: I7d1f32289275401f15180c4a03cb896025e63657
2017-08-19 11:27:07 +02:00
Martin Hoffmann 6ad32ff0a1 overlay: Disable non-AOSP Bluetooth-features
Fixes: BUGBASH-653

Note: The SDP registration of the MAP-EMAIL Profile
should be analyzed as described in the bugbash.

Change-Id: I74dfeaac275f901e48c94988b2c63de504d168f1
2017-08-19 11:26:47 +02:00
dianlujitao 35758c87d8 overlay: Hide sRGB toggle in developer options
* This is only available on Nexus/Pixel devices, and we have our own
   implementation in livedisplay.

Change-Id: I8343e4986d7dd8413bd8d36dfad0309a4c08026e
2017-08-19 11:26:34 +02:00
attack11 cdf9d12da3 potter:remove nfcnci folder too on XT1687 variant to prevent nfc wakelock 2017-08-12 14:46:59 -03:00
Vachounet c00588da41 potter: move com.motorola.cameraone perm to vendor
Change-Id: I1ee3b48b69e01ad13430fc99f7d5916fa47df1ef
2017-07-19 15:26:27 +02:00
Vachounet bab7fa5d3c potter: set BOARD_USES_QCNE
Change-Id: Ifd3fd6db080c17a4fcf0cbf59f216bcbc5cd9476
2017-07-19 15:01:51 +02:00
Vachounet 6ecb465c5e potter: enable more audio features
Change-Id: I6121478fc4c67a6ad0b81e149ecf8a74363f6bae
2017-07-19 15:01:29 +02:00
Vachounet f2a18ef36b potter: enable config_supportDoubleTapWake overlay
Change-Id: I2811745eadbb0ee5db550b16d75f8eef0308bfe6
2017-07-19 14:59:34 +02:00
Vachounet 21004edee5 CMActions: update gestures activity title
* We already have a "Gestures" entry, change this one to "Moto Actions"

Change-Id: I0048192c27a16fb06bee531e0ddafd63c406e6c2
2017-07-19 11:34:51 +02:00
Vachounet 24b1289512 CMActions: set summary as selected value for ListPreference
Change-Id: I2c0818b9dfaf88017a6d7000993a6b7dbe38737a
2017-07-19 11:05:06 +02:00
Vachounet 751355ba86 potter: set double tap to wake node
Change-Id: Ib8f3bf7497deb3730b28e9805713bac68646981d
2017-07-19 10:10:45 +02:00
Vachounet 4673aa7182 potter: allow system_server to create persist files
Change-Id: I919e47925230d2469842750f54241bc2e7c30bce
2017-07-19 10:09:27 +02:00
Vachounet 6584878989 potter: add cmhw TouchscreenGestures feature
Change-Id: I32911e3dffcdaa6ad997a75a91e8ac10e2d7b7ea
2017-07-18 19:51:09 +02:00
Vachounet 1193bd1b49 CMActions: show navbar at first boot
Change-Id: I02bb7126c833bb6e6a88bca2b02549513c881763
2017-07-18 10:34:52 +02:00
Vachounet 13e1ea492b potter: create a "fake" KeyHandler
Change-Id: I9e35d4e3d12a9b7274bdf8547ab275d44c8144e3
2017-07-18 10:34:52 +02:00
Vachounet 5198da0fcc potter: import some cmhw features
Change-Id: I20278917c6016e102ed8ef8d9b043c5ac4159274
2017-07-18 10:34:52 +02:00
Vachounet f0139dea0b potter: disable navbar overlay
* Now handle by CMActions

Change-Id: I5bdbd63b09fb801c10704e73f5b150377f2d1911
2017-07-18 10:34:52 +02:00
Vachounet 79d6050c8c potter: set homebutton perms to system_server
Change-Id: Iedbce1519f163205f736e3fb275c06b25053fb70
2017-07-18 10:34:51 +02:00
Vachounet 4ca09ff5d3 CMActions: add support for screen off gestures
Change-Id: If27b4a2a0ffaeed65df4dfe2d2668ac453105150
2017-07-18 10:34:51 +02:00
Vachounet 349b294931 CMActions: add some media actions
Change-Id: Iaff91e827e7f3c5eed513dc31e740e75e411e5db
2017-07-18 10:34:51 +02:00
Vachounet 83e75970ac CMActions: fix fp haptic setting 2017-07-14 19:58:31 +02:00
Alberto97 cb3b9cc041 Switch to OSS GPS
Change-Id: I27111e9a27b2cd48e4c40276da553a7a146cde70
2017-07-14 19:47:56 +02:00
Steve Kondik 78403cf71e gps: Fix OSS build
* Add fix from Scott/Keith for creating a forward declaration of the
   needed proprietary parts.

Change-Id: Ic958cd94b926048f4c9161884b61273bd4d93503
2017-07-14 19:47:51 +02:00
Alberto97 57e4293652 gps: Import from LA.UM.5.6.r1-01900-89xx.0 release
Change-Id: Ie959cd02b338e2cd98287fc8e16d0448faa34932
2017-07-14 19:47:48 +02:00
Alberto97 d6a8e57d26 potter: Add qcom proprietary GPS stack 2017-07-14 19:45:31 +02:00
Vachounet 88796d5dad potter: enable livedisplay again 2017-07-14 19:29:02 +02:00
Vachounet c2ce70e0ff potter: address some compass denials 2017-07-11 09:21:39 +02:00
Bruno Martins a53cd8cdc8 potter: Abandon TARGET_UNIFIED_DEVICE flag
* Override the unified properties using vendor init

Change-Id: Ia9f780793e06ed37ac26d6de395c73ee6e37f6c1
2017-07-08 12:06:37 +02:00
Michael Bestas c2878efbc3 potter: Allow vendor init to override props
Change-Id: I7494376e34f22bcb21157a2621e03647cb3d8c7b
2017-07-08 12:01:17 +02:00
Erfan Abdi 4f54669785 potter: fix ril-daemon2 service duplicate 2017-07-02 16:01:59 +04:30
Vachounet 9166886d9b potter: add some bluetooth props
Change-Id: Ib40a9a6189382a1aba881fb2c2ba1602eeac8c28
2017-06-25 19:33:37 +02:00
Vachounet 28fd0656c2 potter: address FM denials 2017-06-22 14:09:13 +02:00
Vachounet 6fa41a401f potter: import sound trigger configs 2017-06-22 11:19:31 +02:00
Vachounet 804f5bc28b potter: disable XML audio policy
Change-Id: I7bb0cd36a43f7534802158bafa12f8dca689cebe
2017-06-21 19:43:32 +02:00
Vachounet 298e2ea392 potter: add AUDIO_DEVICE_OUT_FM as output device 2017-06-21 12:30:22 +02:00
Vachounet 606cb329a8 potter: update audio_effects.conf
* Get rid of QCOM and Moto closed source things
2017-06-21 12:24:54 +02:00
Vachounet 02f210d071 potter: set AUDIO_FEATURE_ENABLED_FM_POWER_OPT flag 2017-06-21 12:22:56 +02:00
Vachounet 835c5288ea potter: disable QCOM AAC encoder 2017-06-21 11:59:53 +02:00
Vachounet 24d890d954 potter: disable FM transmitter 2017-06-21 11:56:12 +02:00
Vachounet 4c5ba1dedc potter: remove unused media_profiles_rc.xml
* This is used only on devices with Moto Mods support, mostly Hasselblad one
2017-06-21 11:13:26 +02:00
Vachounet ba7b266f5a potter: import stock FM and BT scripts 2017-06-21 11:09:59 +02:00
Vachounet 0fe5ee1347 potter: unset TARGET_QCOM_NO_FM_FIRMWARE to let HAL handle fm_dl service 2017-06-21 11:04:18 +02:00
Vachounet f808b334b9 potter: revert to fm_dl service 2017-06-21 11:03:17 +02:00
Vachounet 85e1ef4bc3 Revert "potter: do not use a wrapper for hci_qcomm_init service"
(reverted from commit 98b99b064f)
2017-06-21 11:01:43 +02:00
Vachounet 1ad7302bc6 Revert "potter: set fm_qsoc_patches domain"
(reverted from commit 126491147d)
2017-06-21 10:59:37 +02:00
Vachounet 552b88a3cb Revert "potter: fm_qsoc_patches is a oneshot service"
(reverted from commit 30fe079bde)
2017-06-21 10:59:00 +02:00
Vachounet e14e173f9d potter: fix init_wifi service 2017-06-21 10:43:28 +02:00
Vachounet af880a8d68 potter: remove duplicate definition of hostapd 2017-06-21 10:34:04 +02:00
Vachounet 76ae11f7c6 Revert "potter: disable zsl in Snap only"
Change-Id: I0ca5e3f519775b8f3237e65aecff0f0e093e96fa

(reverted from commit 6afbd10ed4)
2017-06-17 11:34:08 +02:00
Vachounet 1dbbfccc1d Revert "potter: build libjni_livedisplay"
(reverted from commit 612006ae51)
2017-06-08 09:25:23 +02:00
Vachounet 5e7aeef127 Revert "potter: copy qdcm configs"
(reverted from commit 300acbd89c)
2017-06-08 09:24:25 +02:00
Vachounet 53fbc94bb7 Revert "potter: enable some AF debug properties"
(reverted from commit 8f0fda524a)
2017-06-07 14:00:09 +02:00
Alberto97 afb69c2d41 potter: provide ASensor_getHandle for libmdmcutback 2017-06-07 09:53:47 +02:00
Vachounet 24ab097ec1 potter: update ZAF configs from NPN25.137-67/75 2017-05-30 16:02:42 +02:00
Vachounet e1446b4568 potter: update camera configs from NPN25.137-67/75 2017-05-30 15:57:11 +02:00
Vachounet 780ee17289 potter: sync libnfc-nxp config with NPN25.137-67/75 2017-05-30 15:53:50 +02:00
Vachounet 93f7301578 potter: update opengles version 2017-05-30 15:50:17 +02:00
Vachounet 7866d74bc2 potter: update fingerprint 2017-05-30 15:48:17 +02:00
Vachounet 93ddb205d0 Revert "potter: set some flags for camera wrapper"
* Enable Vision FW
 * Enable PDAF Control Mode
 * Set AD ROI (seems enable on stock)
 * Set AE to frame-average
 * Let the HAL be more verbose for AE, AF and WB

(reverted from commit 7b12cd365c)

Change-Id: I0e45e4c9074056c3a6260dae136a9868ec3eddb9
2017-05-28 10:29:44 +02:00
Vachounet ea1fe18101 Revert "potter: woops"
(reverted from commit c05dd42e7c)

Change-Id: I6ee7d3383a2a904ed37bc9e38d7bb1146521d188
2017-05-28 10:29:20 +02:00
Vachounet a31fb1ebc3 Revert "potter: set scene mode to auto HDR"
(reverted from commit c43f9bca61)

Change-Id: I7183a68c82c193c77d9d9d46a91e1dd9e6a83004
2017-05-28 10:28:56 +02:00
Vachounet c43f9bca61 potter: set scene mode to auto HDR 2017-05-24 17:00:59 +02:00
Vachounet c86876c822 potter: add VFW config file 2017-05-24 14:15:40 +02:00
Vachounet 8f0fda524a potter: enable some AF debug properties 2017-05-24 11:08:37 +02:00
Vachounet c05dd42e7c potter: woops 2017-05-24 09:46:25 +02:00
Vachounet 64dbf42b97 potter: update preview size
* Use 1280x960, instead of 960x720
2017-05-24 08:32:36 +02:00
Vachounet 7b12cd365c potter: set some flags for camera wrapper
* Enable Vision FW
 * Enable PDAF Control Mode
 * Set AD ROI (seems enable on stock)
 * Set AE to frame-average
 * Let the HAL be more verbose for AE, AF and WB
2017-05-24 08:26:46 +02:00
Vachounet 1c6db0a43f potter: manage advertised features for XT1687
* Drop unneeded features after flash using releasetools
2017-05-23 10:21:34 +02:00
Vachounet 0016b82a8f potter: cleanup init.qcom 2017-05-22 15:48:00 +02:00
Vachounet 6cc303e5df potter: cmsdk: rename Native display mode to Comfort 2017-05-22 11:20:56 +02:00
Vachounet 80fabdb3a9 potter: enable SDM 2017-05-22 10:31:06 +02:00
Alberto97 6e18d45c8c potter: qdcm: Add back Comfort mode 2017-05-22 10:27:48 +02:00
Vachounet 300acbd89c potter: copy qdcm configs 2017-05-22 10:26:56 +02:00
Vachounet 612006ae51 potter: build libjni_livedisplay 2017-05-22 10:18:51 +02:00
Vachounet 91e65ae7a5 Revert "potter: remove display mode mapping"
(reverted from commit c67ef19854)
2017-05-22 10:16:09 +02:00
Vachounet 6afbd10ed4 potter: disable zsl in Snap only
Change-Id: I0ca5e3f519775b8f3237e65aecff0f0e093e96fa
2017-05-20 11:18:33 +02:00
Vachounet 7cf50e68fd Revert "potter: init: set dalvik heap props based on detected RAM size"
(reverted from commit 5bdfbe4550)

Change-Id: I5f896c1f5aa8c142569ca4bbf214cf6a85f28e43
2017-05-17 08:05:13 +02:00
Vachounet 15be9a1f21 potter: allow kernel to read hw block device 2017-05-15 16:04:02 +02:00
Vachounet f6ba0a698b potter: enable BLE peripheral mode
Change-Id: I7b5df1cbc765754bd269c00e62a390e95ac56eaa
2017-05-15 14:28:18 +02:00
Vachounet 0cf7ac58ee potter: enable wifi dual band support
Change-Id: Iebb8bf66623f60fd98456432f6ecdfeaee87933c
2017-05-15 14:28:18 +02:00
Vachounet cccac8b25e potter: enable config_intrusiveBatteryLed overlay
Change-Id: I8364949e83ff67b9587f4cec62c5e97dd8d76f06
2017-05-15 14:28:18 +02:00
Vachounet dc80d1bcdc potter: kang griffin liblight
Change-Id: I636650f7e0b903c93d0288515213360b37607e50
2017-05-15 14:28:18 +02:00
Vachounet fa79c3e16b potter: add mlstrustedobject for homebutton sysfs 2017-05-11 17:21:27 +02:00
Vachounet 07ed2f9299 potter: set perm for gestures haptic
Change-Id: Ib1d4b55aac3aa181a5fe8724b01c987ad8a95f95
2017-05-10 22:19:59 +02:00
Vachounet 4266adacd7 potter: address new gestures denial 2017-05-10 12:39:06 +02:00
Vachounet b4286dbc5c potter: add missing block devices 2017-05-09 11:42:38 +02:00
Vachounet 3c356787ea CMActions: add voice assist action and haptic toggle
Change-Id: I9db5246a115e1650268395370e62a3d01e3032d0
2017-05-08 09:25:33 +02:00
Vachounet a6d1de49ff potter: switch to enforced SELinux
Change-Id: I28ad0826d205cf6b3dc9502342a2ee602fda630f
2017-05-08 07:56:34 +02:00
Vachounet c52c7ec54a potter: enable WiFi calling
Change-Id: I9d60153bec414a2d6a858f25de343e2222230a66
2017-05-08 07:54:52 +02:00
Vachounet d37f566e78 potter: enable WiFi Display
* And fix WiFi Direct

Change-Id: I53828ea2e98213a5771a3e076e6fd7e639ec2449
2017-05-08 07:54:30 +02:00
Vachounet fe7f2e5b6a potter: address gestures denials
Change-Id: Ia6f21f8ccd60e32c4c69352a198069141799724c
2017-05-08 07:51:25 +02:00
Alberto97 b2e618811f Select wlan regulatory file according to the carrier 2017-04-28 16:35:55 +02:00
Vachounet a145f89e02 potter: copy init.oem.hw 2017-04-28 16:35:55 +02:00
Vachounet 7609cce998 Revert "potter: camera: import some QC and Moto params"
And set the wrapper verbose

(reverted from commit d5f2e71146)
2017-04-28 16:35:55 +02:00
Vachounet de42e08969 potter: address new denials 2017-04-28 16:35:47 +02:00
Vachounet 785801d10f potter: add missing hw_block_device 2017-04-28 10:49:40 +02:00
Vachounet 5ee1d29aed potter: cleanup init.*.rc 2017-04-28 10:49:40 +02:00
Vachounet bfbfb53502 potter: add missing perms 2017-04-28 10:49:40 +02:00
Vachounet 59f0d0f4c6 potter: update policies 2017-04-28 10:49:40 +02:00
Vachounet 4eb1cf87df potter: let oem script set hw properties from utags 2017-04-28 10:49:40 +02:00
Vachounet d5f2e71146 potter: camera: import some QC and Moto params
And set the wrapper verbose
2017-04-27 17:32:54 +02:00
Vachounet 2dbcc4a070 potter: fix local include path 2017-04-24 21:56:17 +02:00
Vachounet 17754e9a59 potter: address new denials 2017-04-24 21:56:17 +02:00
Vachounet 30fe079bde potter: fm_qsoc_patches is a oneshot service 2017-04-24 21:32:07 +02:00
Vachounet 877792019a potter: what a derp 2017-04-21 12:33:45 +02:00
Vachounet 5e72edbea1 potter: set DTV prop and load DTV module for XT1683 2017-04-21 11:13:16 +02:00
Vachounet 9f938ebd00 potter: keep tabs here 2017-04-20 14:25:18 +02:00
Vachounet c9ea42df29 potter: update fingerprint to NPN25.137-35 2017-04-20 11:55:40 +02:00
Vachounet d7bc86082e potter: cleanup 2017-04-20 11:54:10 +02:00
Vachounet 6f91da7eff potter: set perms for gesture entries 2017-04-19 17:27:35 +02:00
Vachounet 39da28e21d CMActions: add support for fingerprint gesture 2017-04-19 17:22:48 +02:00
Vachounet dfb5266f24 potter: address some denials 2017-04-19 15:12:58 +02:00
Vachounet 126491147d potter: set fm_qsoc_patches domain 2017-04-19 15:01:22 +02:00
Vachounet 3c958cea33 potter: add keylayouts 2017-04-18 15:06:57 +02:00
Vachounet 4feed4d56b potter: update proprietary-files.txt 2017-04-18 14:03:22 +02:00
Vachounet eecbc3d6aa potter: delete init.qcom.bt.sh references 2017-04-18 13:57:48 +02:00
Vachounet 553832af83 potter: symlink widevine firmware in vendor
E/QSEECOMAPI(699): Error::Cannot open the file /vendor/firmware/widevine.mdt errno = 2
E/QSEECOMAPI(699): Error::Loading image failed with ret = -1
2017-04-18 13:28:06 +02:00
Vachounet 1330a3f9a5 potter: create cppf firmware symlinks
E/QSEECOMAPI(699): Error::Cannot open the file /system/etc/firmware/cppf.mdt errno = 2
E/QSEECOMAPI(699): Error::Loading image failed with ret = -1
2017-04-18 13:26:58 +02:00
Vachounet 98b99b064f potter: do not use a wrapper for hci_qcomm_init service 2017-04-18 12:33:11 +02:00
Vachounet dd9e346839 potter: start motosh service earlier 2017-04-18 12:23:31 +02:00
Vachounet a9451868fc potter: remove unused acdb entries
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_VOICE_HANDSET_TMUS
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_VOICE_HANDSET_TMUS in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_SPEAKER_SAFE
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_SPEAKER_SAFE in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_OUT_VOLTE_NB_TX
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_OUT_VOLTE_NB_TX in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_IN_VOICE_DMIC_TMUS
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_IN_VOICE_DMIC_TMUS in platform info xml not found, no ACDB ID set!
04-13 23:10:25.334   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_IN_HEADSET_MIC_AEC
04-13 23:10:25.334   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_IN_HEADSET_MIC_AEC in platform info xml not found, no ACDB ID set!
04-13 23:10:25.335   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_IN_VOICE_REC_HEADSET_MIC
04-13 23:10:25.335   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_IN_VOICE_REC_HEADSET_MIC in platform info xml not found, no ACDB ID set!
04-13 23:10:25.335   698   698 E msm8916_platform: find_index: Could not find index for name = SND_DEVICE_IN_CAMCORDER_BF
04-13 23:10:25.335   698   698 E platform_info: process_acdb_id: Device SND_DEVICE_IN_CAMCORDER_BF in platform info xml not found, no ACDB ID set!
2017-04-18 12:19:52 +02:00
Vachounet 5bdfbe4550 potter: init: set dalvik heap props based on detected RAM size 2017-04-18 11:29:30 +02:00
Vachounet 064c63fa30 potter: add ffmpeg codecs 2017-04-18 11:13:02 +02:00
Vachounet 15cb3ec255 potter: add proximity check overlays 2017-04-18 11:11:32 +02:00
Vachounet 91b9f2c235 potter add missing FM packages 2017-04-18 10:24:38 +02:00
Vachounet 171df0cc48 potter: add missing zaf config 2017-04-16 14:29:38 +02:00
Vachounet 9fdfc9b36c potter: cleanup init 2017-04-16 13:57:13 +02:00
Vachounet 3e3ab09876 potter: build Snap again 2017-04-16 13:57:13 +02:00
Vachounet 3a451894aa potter: add FM support 2017-04-16 13:57:13 +02:00
Alberto97 aa03dac241 potter: Import and build empty QCamera2 wrapper 2017-04-16 13:57:13 +02:00
Vachounet 2604b02eb8 potter: use stock dalvik and hwui props values 2017-04-16 13:47:40 +02:00
Vachounet 102ff37042 potter: update sepolicy 2017-04-16 13:47:08 +02:00
Vachounet 7c99cc1e11 potter: wlan is not a module anymore 2017-04-13 12:28:14 +02:00
Vachounet cdfb92d577 potter: add zaf config 2017-04-13 12:22:13 +02:00
Vachounet 6ed87dd4d4 potter: add sensors configs 2017-04-13 12:18:25 +02:00
Vachounet 0ff905f824 potter: update display props 2017-04-13 12:17:51 +02:00
Vachounet 1de2afb9fd potter: update display flags 2017-04-13 12:17:38 +02:00
Vachounet a7f44484be potter: remove camera wrapper 2017-04-13 12:17:02 +02:00
Vachounet c67ef19854 potter: remove display mode mapping 2017-04-13 12:16:00 +02:00
Vachounet 159f998f9c potter: set some XT1687 props 2017-04-12 11:28:17 +02:00
Vachounet 86c71b808d potter: manage dualsim property 2017-04-12 11:20:21 +02:00
Vachounet 268098125a potter: update display flags 2017-04-12 10:55:49 +02:00
Vachounet 422320dbd4 potter: update props 2017-04-12 10:52:43 +02:00
Vachounet 2e70578f43 potter: add fingerprint and sensors perms 2017-04-11 16:20:10 +02:00
Vachounet 8756e0cdc5 potter: add ssr_setup service 2017-04-11 16:10:52 +02:00
Vachounet 33a932b3e3 potter: add readme 2017-04-11 12:15:56 +02:00
Vachounet aa7462cf9b potter: update partition size 2017-04-11 10:39:38 +02:00
Vachounet 04432ee752 potter: derp 2017-04-11 10:32:59 +02:00
Vachounet c46546dcca potter: fix gps configs 2017-04-11 10:32:49 +02:00
Vachounet bd1b0b0d7b potter: sync props 2017-04-11 10:32:23 +02:00
Vachounet 8e47dbcb76 potter: update overlay values 2017-04-10 17:04:09 +02:00
Vachounet 4cac1fd3c2 potter: update power profile 2017-04-10 16:58:57 +02:00
Vachounet 6355e4b208 potter: update display mode mapping 2017-04-10 16:58:42 +02:00
Vachounet fb591d6bb0 potter: ship it in permissive mode for now 2017-04-10 16:53:40 +02:00
Vachounet f9a11506da potter: update ramdisk 2017-04-10 16:51:48 +02:00
Vachounet e41611eb76 potter: update ueventd.qcom 2017-04-10 16:26:50 +02:00
Vachounet e8e3ba1a85 potter: update configs files [2/2] 2017-04-10 16:22:17 +02:00
Vachounet 8315edc1a4 potter: import dtbTool_moto 2017-04-10 16:12:54 +02:00
Vachounet a7d4bd842e potter: update config files 2017-04-08 09:19:48 +02:00
MandySingh3 b45cd2de75 Small Mistake Big Error 2017-04-03 04:53:25 +05:30
MandySingh3 28e831e653 Initial Commit 2017-04-03 04:51:19 +05:30
MandySingh3 7beda1dfbc Initial Commit4 2017-04-03 03:20:44 +05:30
MandySingh3 bc8e833c07 Initial TWRP 2017-04-03 03:16:24 +05:30
492 changed files with 57248 additions and 761 deletions
+3 -2
View File
@@ -1,2 +1,3 @@
soong_namespace {
}
subdirs = [
"light",
]
+147 -9
View File
@@ -1,4 +1,5 @@
# Copyright (C) 2020 The PixelExperience Project
#
# 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.
@@ -12,20 +13,157 @@
# See the License for the specific language governing permissions and
# limitations under the License.
ifneq ($(filter sanders,$(TARGET_DEVICE)),)
LOCAL_PATH := $(call my-dir)
ifneq ($(filter sanders, $(TARGET_DEVICE)),)
subdir_makefiles=$(call first-makefiles-under,$(LOCAL_PATH))
$(foreach mk,$(subdir_makefiles),$(info including $(mk) ...)$(eval include $(mk)))
include $(CLEAR_VARS)
FIRMWARE_MOUNT_POINT := $(TARGET_OUT_VENDOR)/firmware_mnt
DSP_MOUNT_POINT := $(TARGET_OUT_VENDOR)/dsp
FSG_MOUNT_POINT := $(TARGET_OUT_VENDOR)/fsg
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT) \
$(DSP_MOUNT_POINT) \
$(FSG_MOUNT_POINT)
$(FIRMWARE_MOUNT_POINT):
@echo "Creating $(FIRMWARE_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt
@ln -sf /vendor/firmware_mnt $(TARGET_OUT_VENDOR)/f
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MOUNT_POINT)
$(DSP_MOUNT_POINT):
@echo "Creating $(DSP_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/dsp
$(FSG_MOUNT_POINT):
@echo "Creating $(FSG_MOUNT_POINT)"
@mkdir -p $(TARGET_OUT_VENDOR)/fsg
FIRMWARE_ADSP_IMAGES := \
adsp.b00 adsp.b01 adsp.b02 adsp.b03 adsp.b04 adsp.b05 adsp.b06 \
adsp.b07 adsp.b08 adsp.b09 adsp.b10 adsp.b11 adsp.b12 adsp.b13 \
adsp.mdt
FIRMWARE_ADSP_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_ADSP_IMAGES)))
$(FIRMWARE_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "ADSP Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_ADSP_SYMLINKS)
FIRMWARE_CPPF_IMAGES := \
cppf.b00 cppf.b01 cppf.b02 cppf.b03 cppf.b04 cppf.b05 cppf.b06 cppf.mdt
FIRMWARE_CPPF_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_CPPF_IMAGES)))
$(FIRMWARE_CPPF_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Fingerprint Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_CPPF_SYMLINKS)
FIRMWARE_FINGERPRINT_IMAGES := \
fpctzappfingerprint.b00 fpctzappfingerprint.b01 fpctzappfingerprint.b02 \
fpctzappfingerprint.b03 fpctzappfingerprint.b04 fpctzappfingerprint.b05 \
fpctzappfingerprint.b06 fpctzappfingerprint.mdt
FIRMWARE_FINGERPRINT_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_FINGERPRINT_IMAGES)))
$(FIRMWARE_FINGERPRINT_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Fingerprint Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_FINGERPRINT_SYMLINKS)
FIRMWARE_MODEM_IMAGES := \
modem.b00 modem.b01 modem.b02 modem.b04 modem.b05 modem.b06 \
modem.b07 modem.b08 modem.b09 modem.b10 modem.b11 modem.b12 \
modem.b13 modem.b16 modem.b17 modem.b18 modem.b19 modem.b20 \
modem.mdt
FIRMWARE_MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_MODEM_IMAGES)))
$(FIRMWARE_MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Modem Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MODEM_SYMLINKS)
FIRMWARE_WCNSS_IMAGES := \
wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 wcnss.b06 \
wcnss.b09 wcnss.b10 wcnss.b11 wcnss.b12 wcnss.mdt
FIRMWARE_WCNSS_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_WCNSS_IMAGES)))
$(FIRMWARE_WCNSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WCNSS_SYMLINKS)
FIRMWARE_WIDEVINE_IMAGES := \
widevine.b00 widevine.b01 widevine.b02 widevine.b03 \
widevine.b04 widevine.b05 widevine.b06 widevine.mdt
FIRMWARE_WIDEVINE_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_WIDEVINE_IMAGES)))
$(FIRMWARE_WIDEVINE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Widevine Firmware link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WIDEVINE_SYMLINKS)
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_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/lpass $@/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
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
ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS)
IMS_LIBS := libimscamera_jni.so libimsmedia_jni.so
IMS_SYMLINKS := $(addprefix $(TARGET_OUT_APPS)/ims/lib/arm64/,$(notdir $(IMS_LIBS)))
$(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "IMS lib link: $@"
@mkdir -p $(dir $@)
@rm -rf $@
$(hide) ln -sf /vendor/lib64/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
+4 -9
View File
@@ -1,10 +1,11 @@
# Copyright (C) 2020 The PixelExperience Project
#
# Copyright (C) 2017-2018 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# 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,
@@ -12,11 +13,5 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# inherit Moto G (5S) Plus device config
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/aosp_sanders.mk
COMMON_LUNCH_CHOICES := \
aosp_sanders-user \
aosp_sanders-userdebug \
aosp_sanders-eng
$(LOCAL_DIR)/aosp_sanders.mk
+209 -22
View File
@@ -1,4 +1,6 @@
# Copyright (C) 2020 The PixelExperience Project
#
# Copyright (C) 2016 The CyanogenMod Project
# 2017 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,44 +14,229 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Inherit from motorola msm8953-common
-include device/motorola/msm8953-common/BoardConfigCommon.mk
-include vendor/motorola/sanders/BoardConfigVendor.mk
DEVICE_PATH := device/motorola/sanders
# Assertions
TARGET_OTA_ASSERT_DEVICE := sanders
TARGET_SPECIFIC_HEADER_PATH := $(DEVICE_PATH)/include
# Display
TARGET_SCREEN_DENSITY := 480
BOARD_VENDOR := motorola-qcom
# AIDs and CAPS
TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# Platform
TARGET_BOARD_PLATFORM := msm8953
# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := MSM8953
TARGET_NO_BOOTLOADER := true
# Architecture
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_CORTEX_A53 := true
TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
# Asserts
TARGET_OTA_ASSERT_DEVICE := sanders,sanders_retail
# Enable dexpreopt to speed boot time
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := true
WITH_DEXPREOPT := true
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI
# GPS
TARGET_NO_RPC := true
USE_DEVICE_SPECIFIC_GPS := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM)
# Kernel
BOARD_KERNEL_SEPARATED_DT := true
BOARD_DTBTOOL_ARGS := --force-v3
TARGET_COMPILE_WITH_MSM_KERNEL := true
BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom user_debug=30 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 androidboot.bootdevice=7824900.sdhci firmware_class.path=/vendor/firmware_mnt/image loop.max_part=7
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x80000000
BOARD_KERNEL_IMAGE_NAME := Image.gz
BOARD_KERNEL_PAGESIZE := 2048
BOARD_KERNEL_SEPARATED_DT := true
TARGET_CUSTOM_DTBTOOL := dtbTool_custom
BOARD_DTBTOOL_ARGS := --force-v3 --motorola 1
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01000000 --tags_offset 0x00000100
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_KERNEL_CONFIG := sanders_defconfig
TARGET_KERNEL_SOURCE := kernel/motorola/msm8953
TARGET_KERNEL_CLANG_COMPILE := true
#TARGET_USE_SDCLANG := true
# Audio
BOARD_USES_ALSA_AUDIO := true
USE_CUSTOM_AUDIO_POLICY := 1
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_WMA_OFFLOAD := true
AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_APE_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
BOARD_USES_SRS_TRUEMEDIA := false
DTS_CODEC_M_ := true
MM_AUDIO_ENABLED_SAFX := true
AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
DOLBY_ENABLE := false
USE_XML_AUDIO_POLICY_CONF := 1
AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
AUDIO_FEATURE_ENABLED_NT_PAUSE_TIMEOUT := true
AUDIO_FEATURE_ENABLED_ANC_HEADSET := true
AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := true
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HDMI_SPK := true
AUDIO_FEATURE_ENABLED_HDMI_EDID := true
AUDIO_FEATURE_ENABLED_EXT_HDMI := true
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
AUDIO_FEATURE_ENABLED_ACDB_LICENSE := true
AUDIO_FEATURE_ENABLED_DEV_ARBI := false
MM_AUDIO_ENABLED_FTM := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
BOARD_SUPPORTS_QAHW := false
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
AUDIO_FEATURE_ENABLED_DLKM := false
# Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_QCOM := true
# Camera
USE_DEVICE_SPECIFIC_CAMERA := true
BOARD_QTI_CAMERA_32BIT_ONLY := true
# Charger
BACKLIGHT_PATH := /sys/class/leds/lcd-backlight/brightness
BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_NO_CHARGER_LED := true
# Crypto
TARGET_HW_DISK_ENCRYPTION := true
TARGET_USES_METADATA_AS_FDE_KEY := true
# Display
BOARD_USES_ADRENO := true
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
TARGET_USES_C2D_COMPOSITION := true
TARGET_USES_GRALLOC1 := true
TARGET_USES_ION := true
TARGET_USES_HWC2 := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024
TARGET_USES_C2D_COMPOSITION := true
MAX_VIRTUAL_DISPLAY_DIMENSION := 4096
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
# exfat
TARGET_EXFAT_DRIVER := exfat
# FM
BOARD_HAVE_QCOM_FM := true
BOARD_HAVE_FM_RADIO := true
TARGET_QCOM_NO_FM_FIRMWARE := true
# Keymaster
TARGET_PROVIDES_KEYMASTER := true
# Lights
TARGET_PROVIDES_LIBLIGHT := true
# Manifest
DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/configs/manifest.xml
DEVICE_MATRIX_FILE := $(DEVICE_PATH)/configs/compatibility_matrix.xml
# NFC
NXP_CHIP_TYPE := PN551
BOARD_NFC_HAL_SUFFIX := $(TARGET_BOARD_PLATFORM)
# Partitions
BOARD_FLASH_BLOCK_SIZE := 131072
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216 # 16384 * 1024 mmcblk0p37
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456 # 262144 * 1024 mmcblk0p52
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 21073920 # 20580 * 1024 mmcblk0p38
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 4294967296 # 4194304 * 1024 mmcblk0p53
BOARD_USERDATAIMAGE_PARTITION_SIZE := 25614597120 # 25014255 * 1024 mmcblk0p54
# Peripheral manager
TARGET_PER_MGR_ENABLED := true
# Power
TARGET_HAS_NO_WLAN_STATS := true
# QC flags
BOARD_USES_QCOM_HARDWARE := true
BOARD_USES_QC_TIME_SERVICES := true
# Recovery
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
BOARD_HAS_NO_SELECT_BUTTON := true
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.recovery
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true
# Releasetools
TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)/releasetools
# NFC
NXP_CHIP_TYPE := PN551
# RIL
TARGET_PROVIDES_QTI_TELEPHONY_JAR := true
# Partitions
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 4294967296
# SELinux
include device/qcom/sepolicy/Android.mk
BOARD_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor
SELINUX_IGNORE_NEVERALLOWS := true
TARGET_ENABLE_MEDIADRM_64 := true
# Treble
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_VENDORIMAGE_PARTITION_SIZE := 805306368
BOARD_BOOTIMAGE_PARTITION_SIZE := 16777216
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 33554432
BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
PRODUCT_FULL_TREBLE_OVERRIDE := true
PRODUCT_VENDOR_MOVE_ENABLED := true
TARGET_COPY_OUT_VENDOR := vendor
# Soong namespaces
PRODUCT_SOONG_NAMESPACES += $(DEVICE_PATH)
# inherit from the proprietary version
-include vendor/motorola/sanders/BoardConfigVendor.mk
# Wifi
BOARD_HAS_QCOM_WLAN := true
BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_qcwcn
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_qcwcn
WIFI_DRIVER_FW_PATH_AP := "ap"
WIFI_DRIVER_FW_PATH_STA := "sta"
WIFI_DRIVER_FW_PATH_P2P := "p2p"
WPA_SUPPLICANT_VERSION := VER_0_8_X
TARGET_DISABLE_WCNSS_CONFIG_COPY := true
+24
View File
@@ -0,0 +1,24 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := MotoActions
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_USE_AAPT2 := true
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \
$(LOCAL_PATH)/res \
$(TOP)/packages/resources/devicesettings/res
LOCAL_PROGUARD_ENABLED := disabled
include frameworks/base/packages/SettingsLib/common.mk
include $(BUILD_PACKAGE)
+92
View File
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.moto.actions"
android:sharedUserId="android.uid.system"
>
<original-package android:name="com.cyanogenmod.settings.device" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<protected-broadcast android:name="com.android.systemui.doze.pulse" />
<application
android:allowBackup="true"
android:label="@string/moto_actions_title"
android:icon="@drawable/ic_gesture"
android:persistent="true">
<provider
android:name=".MotoActionsSearchIndexablesProvider"
android:authorities="com.moto.actions"
android:multiprocess="false"
android:grantUriPermissions="true"
android:permission="android.permission.READ_SEARCH_INDEXABLES"
android:exported="true">
<intent-filter>
<action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
</intent-filter>
</provider>
<receiver android:name="com.moto.actions.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<service android:name="ServiceWrapper" android:permission="ServiceWrapper">
<intent-filter>
<action android:name="ServiceWrapper"/>
</intent-filter>
</service>
<activity
android:name=".DozeSettingsActivity"
android:label="@string/ambient_display_title"
android:theme="@style/MotoActions">
<intent-filter>
<action android:name="com.moto.actions.DOZE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ActionsPreferenceActivity"
android:label="@string/moto_actions_title"
android:summary="@string/device_gestures_summary"
android:theme="@style/MotoActions">
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data
android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.homepage" />
<meta-data
android:name="com.android.settings.icon"
android:resource="@drawable/ic_settings_gestures_dashboard" />
<meta-data
android:name="com.android.settings.summary"
android:resource="@string/device_gestures_summary" />
</activity>
<activity
android:name=".GestureSettingsActivity"
android:label="@string/device_gestures_title"
android:theme="@style/MotoActions">
</activity>
<activity
android:name=".FPGestureSettingsActivity"
android:label="@string/fingerprint_gestures_title"
android:theme="@style/MotoActions">
</activity>
</application>
</manifest>
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 10,9C 10,8.4477 10.4477,8 11,8C 11.5523,8 12,8.4477 12,9L 12,13.47L 13.21,13.6L 18.15,15.79C 18.6759,16.0317 19.0093,16.5613 19,17.14L 19,21.5C 18.974,22.3174 18.3174,22.974 17.5,23L 11,23C 10.6216,23.0009 10.2596,22.8453 10,22.57L 5.1,18.37L 5.84,17.6C 6.03083,17.3942 6.29936,17.2781 6.58,17.28L 6.8,17.28L 10,19L 10,9 Z M 11,5C 13.2091,5 15,6.79086 15,9C 15,10.4806 14.1956,11.7733 13,12.4649L 13,11.2361C 13.6137,10.6868 14,9.8885 14,9.00001C 14,7.34315 12.6568,6.00001 11,6.00001C 9.34314,6.00001 8,7.34315 8,9.00001C 8,9.88851 8.38625,10.6868 9,11.2361L 9,12.4649C 7.8044,11.7733 7,10.4806 7,9C 7,6.79086 8.79086,5 11,5 Z M 11,3C 14.3137,3 17,5.6863 17,9C 17,10.6993 16.2936,12.2336 15.1584,13.3253L 14.1554,12.8788C 15.2811,11.9619 16,10.5649 16,9C 16,6.23858 13.7614,4.00001 11,4.00001C 8.23857,4.00001 6,6.23858 6,9C 6,11.0503 7.23409,12.8124 9,13.584L 9,14.6586C 6.66961,13.8349 5,11.6124 5,9C 5,5.6863 7.68629,3 11,3 Z " />
</vector>
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 17.8075,4.4675C 17.73,4.4675 17.6513,4.4488 17.5787,4.4088C 15.6587,3.4175 13.9987,2.9978 12.0113,2.9978C 10.0288,2.9978 8.15,3.4713 6.44,4.4088C 6.20125,4.5413 5.89875,4.4488 5.76125,4.2087C 5.63,3.9695 5.7175,3.6625 5.9625,3.53C 7.8225,2.5205 9.85875,2.0025 12.0113,2.0025C 14.1412,2.0025 16.0012,2.4713 18.0425,3.52C 18.2913,3.6521 18.3788,3.95 18.2525,4.19C 18.1588,4.37 17.9887,4.4675 17.8075,4.4675 Z M 3.50125,9.7212C 3.39875,9.7212 3.30125,9.6925 3.2075,9.6287C 2.97875,9.4675 2.93,9.16 3.09125,8.9312C 4.0825,7.5287 5.34125,6.4313 6.84125,5.6588C 9.98,4.0375 13.9987,4.0287 17.1488,5.65C 18.6525,6.4212 19.9125,7.51 20.8984,8.9012C 21.06,9.1213 21.0107,9.4388 20.7813,9.6C 20.5518,9.7612 20.2393,9.7125 20.0787,9.4825C 19.18,8.2175 18.0425,7.2312 16.69,6.5375C 13.8188,5.0687 10.1512,5.0687 7.29,6.5475C 5.9275,7.2512 4.79,8.2525 3.89125,9.5112C 3.80875,9.6488 3.6625,9.7212 3.50125,9.7212 Z M 9.75125,21.7925C 9.61875,21.7925 9.4925,21.7388 9.4,21.64C 8.53,20.7712 8.06125,20.21 7.3875,18.9988C 6.69875,17.7687 6.3375,16.27 6.3375,14.6588C 6.3375,11.69 8.88125,9.2675 12.0025,9.2675C 15.1225,9.2675 17.6612,11.69 17.6612,14.6588C 17.6612,14.9412 17.4413,15.1613 17.1587,15.1613C 16.88,15.1613 16.66,14.9412 16.66,14.6588C 16.66,12.2413 14.57,10.2688 12.0025,10.2688C 9.42875,10.2688 7.33875,12.2413 7.33875,14.6588C 7.33875,16.0988 7.66125,17.4313 8.27125,18.5113C 8.91125,19.6588 9.35,20.1512 10.1225,20.9275C 10.3075,21.1275 10.3075,21.44 10.1225,21.64C 10.01,21.7388 9.8775,21.7925 9.75125,21.7925 Z M 16.9188,19.9412C 15.7325,19.9412 14.6775,19.6388 13.8188,19.0475C 12.3287,18.0425 11.44,16.4012 11.44,14.6588C 11.44,14.38 11.66,14.16 11.9388,14.16C 12.2212,14.16 12.4413,14.38 12.4413,14.6588C 12.4413,16.0687 13.1587,17.4025 14.38,18.2175C 15.0875,18.7013 15.9175,18.9312 16.9188,18.9312C 17.1587,18.9312 17.5587,18.9012 17.9587,18.8275C 18.2325,18.7787 18.4912,18.96 18.54,19.2388C 18.5888,19.5112 18.4087,19.77 18.13,19.8187C 17.5587,19.9313 17.06,19.9412 16.9188,19.9412 Z M 14.9125,22.0025C 14.8688,22.0025 14.8187,21.9925 14.78,21.9825C 13.1888,21.5375 12.1488,20.9525 11.06,19.8775C 9.65875,18.4913 8.89125,16.64 8.89125,14.6588C 8.89125,13.0425 10.2688,11.7188 11.9675,11.7188C 13.6725,11.7188 15.0487,13.0425 15.0487,14.6588C 15.0487,15.7325 15.9813,16.6013 17.1288,16.6013C 18.2813,16.6013 19.2087,15.7325 19.2087,14.6588C 19.2087,10.8887 15.9625,7.8325 11.9575,7.8325C 9.12125,7.8325 6.51875,9.4087 5.35125,11.86C 4.96125,12.6713 4.76125,13.6187 4.76125,14.6588C 4.76125,15.44 4.82875,16.67 5.43,18.2712C 5.5325,18.53 5.4,18.8188 5.14125,18.9113C 4.8775,19.0087 4.59,18.8725 4.5025,18.6187C 4.00875,17.31 3.77,16.0113 3.77,14.6588C 3.77,13.4625 3.99875,12.3687 4.44875,11.4213C 5.78125,8.6275 8.73,6.8212 11.9575,6.8212C 16.5088,6.8212 20.21,10.3325 20.21,14.6487C 20.21,16.27 18.8287,17.5875 17.1288,17.5875C 15.43,17.5875 14.0475,16.27 14.0475,14.6487C 14.0475,13.5788 13.12,12.71 11.9675,12.71C 10.82,12.71 9.8875,13.5788 9.8875,14.6487C 9.8875,16.3625 10.5513,17.9587 11.7575,19.16C 12.71,20.0975 13.6188,20.62 15.0288,21.0113C 15.2975,21.0788 15.4488,21.3625 15.3813,21.6213C 15.3325,21.85 15.1225,22.0025 14.9125,22.0025 Z " />
</vector>
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

+9
View File
@@ -0,0 +1,9 @@
<!-- drawable/ic_hand.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M6.58,19H14.58V22H6.58V19M19.74,11.6C19.55,11.4 19.29,11.28 19,11.28L18.78,11.31L15.58,13V11.83L16.09,2.9C16.12,2.35 15.7,1.87 15.15,1.84C14.6,1.81 14.12,2.23 14.09,2.78L13.82,7.47H13.58L12.54,7.58V2A1,1 0 0,0 11.54,1C11,1 10.54,1.45 10.54,2V8.41L9.72,8.78L9.03,3.32C8.96,2.77 8.46,2.38 7.91,2.45C7.36,2.5 6.97,3 7.04,3.57L7.81,9.63L7.43,9.8C7.3,9.85 7.18,9.93 7.07,10L5.97,6.11C5.81,5.54 5.25,5.2 4.71,5.34C4.18,5.5 3.88,6.08 4.04,6.65L6.61,15.77C6.61,15.8 6.63,15.84 6.64,15.87L6.67,16H6.68C6.9,16.57 7.47,17 8.08,17H14.58C14.97,17 15.32,16.84 15.58,16.57L20.5,12.37L19.74,11.6Z" />
</vector>
+9
View File
@@ -0,0 +1,9 @@
<!-- drawable/ic_pickup.xml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M9.64,13.4C8.63,12.5 7.34,12.03 6,12V15L2,11L6,7V10C7.67,10 9.3,10.57 10.63,11.59C10.22,12.15 9.89,12.76 9.64,13.4M18,15V12C17.5,12 13.5,12.16 13.05,16.2C14.61,16.75 15.43,18.47 14.88,20.03C14.33,21.59 12.61,22.41 11.05,21.86C9.5,21.3 8.67,19.59 9.22,18.03C9.5,17.17 10.2,16.5 11.05,16.2C11.34,12.61 14.4,9.88 18,10V7L22,11L18,15M13,19A1,1 0 0,0 12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19M11,11.12C11.58,10.46 12.25,9.89 13,9.43V5H16L12,1L8,5H11V11.12Z" />
</vector>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="1000.000000"
android:viewportHeight="1000.000000"
android:tint="?android:attr/colorControlNormal">
<group
android:translateY="1000.000000"
android:scaleX="0.100000"
android:scaleY="-0.100000">
<path
android:fillColor="#FFFFFFFF"
android:strokeWidth="1"
android:pathData="M3022 9600 c-109 -29 -187 -74 -272 -160 -87 -86 -131 -163 -160 -276 -20 -76 -20
-127 -20 -4094 0 -3967 0 -4018 20 -4094 29 -113 73 -190 160 -276 86 -87 163 -131
276 -160 75 -20 117 -20 1849 -20 1732 0 1774 0 1849 20 113 29 190 73 276 160 87
86 131 163 160 276 20 76 20 127 20 4094 0 3967 0 4018 -20 4094 -29 113 -73 190
-160 276 -86 87 -163 131 -276 160 -75 20 -116 20 -1853 19 -1716 0 -1778 -1 -1849
-19z m1943 -2149 c51 -23 93 -65 116 -116 14 -31 19 -65 19 -150 l0 -110 83 -19
c227 -50 446 -169 623 -338 195 -187 315 -391 387 -658 l32 -115 3 -785 2 -785 363
-357 362 -357 -2075 0 -2075 0 352 347 352 347 3 795 3 795 32 115 c72 267 192 471
387 658 177 169 396 288 624 338 l82 19 0 110 c0 85 5 119 19 150 38 84 117 135
211 135 32 0 72 -8 95 -19z m415 -4018 c-1 -27 -32 -118 -60 -172 -60 -119 -188
-221 -325 -257 -27 -8 -86 -14 -130 -14 -95 0 -157 15 -244 60 -119 60 -221 188
-257 325 -8 28 -14 53 -14 58 0 4 232 7 515 7 283 0 515 -3 515 -7z" />
</group>
</vector>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal">
<path android:fillColor="#FFFFFFFF" android:pathData="M11.83,1.73C8.43,1.79 6.23,3.32 6.23,3.32C5.95,3.5 5.88,3.91 6.07,4.19C6.27,4.5 6.66,4.55 6.96,4.34C6.96,4.34 11.27,1.15 17.46,4.38C17.75,4.55 18.14,4.45 18.31,4.15C18.5,3.85 18.37,3.47 18.03,3.28C16.36,2.4 14.78,1.96 13.36,1.8C12.83,1.74 12.32,1.72 11.83,1.73M12.22,4.34C6.26,4.26 3.41,9.05 3.41,9.05C3.22,9.34 3.3,9.72 3.58,9.91C3.87,10.1 4.26,10 4.5,9.68C4.5,9.68 6.92,5.5 12.2,5.59C17.5,5.66 19.82,9.65 19.82,9.65C20,9.94 20.38,10.04 20.68,9.87C21,9.69 21.07,9.31 20.9,9C20.9,9 18.15,4.42 12.22,4.34M11.5,6.82C9.82,6.94 8.21,7.55 7,8.56C4.62,10.53 3.1,14.14 4.77,19C4.88,19.33 5.24,19.5 5.57,19.39C5.89,19.28 6.07,18.92 5.95,18.6V18.6C4.41,14.13 5.78,11.2 7.8,9.5C9.77,7.89 13.25,7.5 15.84,9.1C17.11,9.9 18.1,11.28 18.6,12.64C19.11,14 19.08,15.32 18.67,15.94C18.25,16.59 17.4,16.83 16.65,16.64C15.9,16.45 15.29,15.91 15.26,14.77C15.23,13.06 13.89,12 12.5,11.84C11.16,11.68 9.61,12.4 9.21,14C8.45,16.92 10.36,21.07 14.78,22.45C15.11,22.55 15.46,22.37 15.57,22.04C15.67,21.71 15.5,21.35 15.15,21.25C11.32,20.06 9.87,16.43 10.42,14.29C10.66,13.33 11.5,13 12.38,13.08C13.25,13.18 14,13.7 14,14.79C14.05,16.43 15.12,17.54 16.34,17.85C17.56,18.16 18.97,17.77 19.72,16.62C20.5,15.45 20.37,13.8 19.78,12.21C19.18,10.61 18.07,9.03 16.5,8.04C14.96,7.08 13.19,6.7 11.5,6.82M11.86,9.25V9.26C10.08,9.32 8.3,10.24 7.28,12.18C5.96,14.67 6.56,17.21 7.44,19.04C8.33,20.88 9.54,22.1 9.54,22.1C9.78,22.35 10.17,22.35 10.42,22.11C10.67,21.87 10.67,21.5 10.43,21.23C10.43,21.23 9.36,20.13 8.57,18.5C7.78,16.87 7.3,14.81 8.38,12.77C9.5,10.67 11.5,10.16 13.26,10.67C15.04,11.19 16.53,12.74 16.5,15.03C16.46,15.38 16.71,15.68 17.06,15.7C17.4,15.73 17.7,15.47 17.73,15.06C17.79,12.2 15.87,10.13 13.61,9.47C13.04,9.31 12.45,9.23 11.86,9.25M12.08,14.25C11.73,14.26 11.46,14.55 11.47,14.89C11.47,14.89 11.5,16.37 12.31,17.8C13.15,19.23 14.93,20.59 18.03,20.3C18.37,20.28 18.64,20 18.62,19.64C18.6,19.29 18.3,19.03 17.91,19.06C15.19,19.31 14.04,18.28 13.39,17.17C12.74,16.07 12.72,14.88 12.72,14.88C12.72,14.53 12.44,14.25 12.08,14.25Z" />
</vector>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2015 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="32.0"
android:viewportHeight="32.0"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M20,20.2V24H6V5.3h8.7l2.4,-4H7.6c-2.2,0 -4,1.8 -4,4v21.3c0,2.2 1.8,4 4,4h10.7c2.2,0 4,-1.8 4,-4V14.9L20,20.2zM15.6,28h-5.3v-1.3h5.3V28z"/>
<path
android:fillColor="#FF000000"
android:pathData="M28.5,7l1.1,-2.4L32,3.5l-2.4,-1.1L28.5,0l-1.1,2.4L25,3.5l2.4,1.1L28.5,7zM21,7.4l-2.2,-4.8l-2.2,4.8l-4.8,2.2l4.8,2.2l2.2,4.8l2.2,-4.8l4.8,-2.2L21,7.4zM28.5,12.2l-1.1,2.4L25,15.6l2.4,1.1l1.1,2.4l1.1,-2.4l2.4,-1.1l-2.4,-1.1L28.5,12.2z"/>
</vector>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2015 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="32.0"
android:viewportHeight="32.0">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M20,20.2V24H6V5.3h8.7l2.4,-4H7.6c-2.2,0 -4,1.8 -4,4v21.3c0,2.2 1.8,4 4,4h10.7c2.2,0 4,-1.8 4,-4V14.9L20,20.2zM15.6,28h-5.3v-1.3h5.3V28z"/>
<path
android:fillColor="#FFFFFFFF"
android:pathData="M28.5,7l1.1,-2.4L32,3.5l-2.4,-1.1L28.5,0l-1.1,2.4L25,3.5l2.4,1.1L28.5,7zM21,7.4l-2.2,-4.8l-2.2,4.8l-4.8,2.2l4.8,2.2l2.2,4.8l2.2,-4.8l4.8,-2.2L21,7.4zM28.5,12.2l-1.1,2.4L25,15.6l2.4,1.1l1.1,2.4l1.1,-2.4l2.4,-1.1l-2.4,-1.1L28.5,12.2z"/>
</vector>
@@ -0,0 +1,22 @@
<!--
Copyright (C) 2016 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FFFFFFFF"
android:pathData="M9,11.24L9,7.5C9,6.12 10.12,5 11.5,5S14,6.12 14,7.5v3.74c1.21,-0.81 2,-2.18 2,-3.74C16,5.01 13.99,3 11.5,3S7,5.01 7,7.5c0,1.56 0.79,2.93 2,3.74zM18.84,15.87l-4.54,-2.26c-0.17,-0.07 -0.35,-0.11 -0.54,-0.11L13,13.5v-6c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,6.67 10,7.5v10.74l-3.43,-0.72c-0.08,-0.01 -0.15,-0.03 -0.24,-0.03 -0.31,0 -0.59,0.13 -0.79,0.33l-0.79,0.8 4.94,4.94c0.27,0.27 0.65,0.44 1.06,0.44h6.79c0.75,0 1.33,-0.55 1.44,-1.28l0.75,-5.27c0.01,-0.07 0.02,-0.14 0.02,-0.2 0,-0.62 -0.38,-1.16 -0.91,-1.38z"/>
</vector>
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 10,9C 10,8.4477 10.4477,8 11,8C 11.5523,8 12,8.4477 12,9L 12,13.47L 13.21,13.6L 18.15,15.79C 18.6759,16.0317 19.0093,16.5613 19,17.14L 19,21.5C 18.974,22.3174 18.3174,22.974 17.5,23L 11,23C 10.6216,23.0009 10.2596,22.8453 10,22.57L 5.1,18.37L 5.84,17.6C 6.03083,17.3942 6.29936,17.2781 6.58,17.28L 6.8,17.28L 10,19L 10,9 Z M 3,4L 6,7L 6,5L 12,5L 12,3L 6,3L 6,1L 3,4 Z " />
</vector>
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 10,9C 10,8.4477 10.4477,8 11,8C 11.5523,8 12,8.4477 12,9L 12,13.47L 13.21,13.6L 18.15,15.79C 18.6759,16.0317 19.0093,16.5613 19,17.14L 19,21.5C 18.974,22.3174 18.3174,22.974 17.5,23L 11,23C 10.6216,23.0009 10.2596,22.8453 10,22.57L 5.1,18.37L 5.84,17.6C 6.03083,17.3942 6.29936,17.2781 6.58,17.28L 6.8,17.28L 10,19L 10,9 Z M 12,4L 9,1L 9,3L 3,3L 3,5L 9,5L 9,7L 12,4 Z " />
</vector>
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?android:attr/colorControlNormal" >
<path
android:fillColor="#000"
android:pathData="M 10,9C 10,8.4477 10.4477,8 11,8C 11.5523,8 12,8.4477 12,9L 12,13.47L 13.21,13.6L 18.15,15.79C 18.6759,16.0317 19.0093,16.5613 19,17.14L 19,21.5C 18.974,22.3174 18.3174,22.974 17.5,23L 11,23C 10.6216,23.0009 10.2596,22.8453 10,22.57L 5.1,18.37L 5.84,17.6C 6.03083,17.3942 6.29936,17.2781 6.58,17.28L 6.8,17.28L 10,19L 10,9 Z M 11,5C 13.2091,5 15,6.79086 15,9C 15,10.4806 14.1956,11.7733 13,12.4649L 13,11.2361C 13.6137,10.6868 14,9.8885 14,9C 14,7.34315 12.6569,6 11,6C 9.34315,6 8,7.34315 8,9C 8,9.8885 8.38625,10.6868 9,11.2361L 9,12.4649C 7.8044,11.7733 7,10.4806 7,9C 7,6.79086 8.79086,5 11,5 Z "/>
</vector>
+20
View File
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 10,9C 10,8.45 10.45,8 11,8C 11.55,8 12,8.45 12,9L 12,13.47L 13.21,13.6L 18.15,15.79C 18.68,16.03 19,16.56 19,17.14L 19,21.5C 18.97,22.32 18.32,22.97 17.5,23L 11,23C 10.62,23 10.26,22.85 10,22.57L 5.1,18.37L 5.84,17.6C 6.03,17.39 6.3,17.28 6.58,17.28L 6.8,17.28L 10,19L 10,9 Z M 9,12.441L 9,9C 9,7.897 9.897,7 11,7C 12.103,7 13,7.897 13,9L 13,12.441C 14.188,11.746 15,10.469 15,9C 15,6.8 13.2,5 11,5C 8.8,5 7,6.8 7,9C 7,10.469 7.812,11.746 9,12.441 Z " />
</vector>
+20
View File
@@ -0,0 +1,20 @@
<!--
Copyright (c) google/material-design-icons
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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?android:attr/colorControlNormal" >
<path android:fillColor="#000" android:pathData="M 16,19L 8,19L 8,5L 16,5M 16.5,3L 7.5,3C 6.67,3 6,3.67 6,4.5L 6,19.5C 6,20.33 6.67,21 7.5,21L 16.5,21C 17.33,21 18,20.33 18,19.5L 18,4.5C 18,3.67 17.33,3 16.5,3 Z M 19,17L 21,17L 21,7L 19,7M 22,9L 22,15L 24,15L 24,9M 3,17L 5,17L 5,7L 3,7M 0,15L 2,15L 2,9L 0,9L 0,15 Z" />
</vector>
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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.
-->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:drawable="?android:attr/colorSecondary" />
</ripple>
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<include layout="@layout/switch_bar" />
</LinearLayout>
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2014, 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.
*/
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<include layout="@layout/switch_bar" />
</LinearLayout>
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 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.
-->
<!-- Based off frameworks/base/core/res/res/layout/preference_category_material.xml
except that this supports icon -->
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" >
<LinearLayout
android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:orientation="horizontal">
<com.android.internal.widget.PreferenceImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="?android:attr/textColorPrimary"
android:maxWidth="18dp"
android:maxHeight="18dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="56dp"
android:orientation="vertical">
<TextView
android:id="@android:id/title"
android:layout_marginTop="16dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@android:style/TextAppearance.Material.Body2"
android:textColor="?android:attr/colorAccent"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"/>
<TextView
android:id="@android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
android:ellipsize="end"
android:singleLine="true" />
</LinearLayout>
</FrameLayout>
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Based off frameworks/base/core/res/res/layout/preference_material.xml
except that this has the negative margin on the image removed. -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/selectableItemBackground"
android:clipToPadding="false">
<LinearLayout
android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="56dp"
android:gravity="start|center_vertical"
android:orientation="horizontal"
android:paddingEnd="12dp"
android:paddingTop="4dp"
android:paddingBottom="4dp">
<com.android.internal.widget.PreferenceImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="48dp"
android:maxHeight="48dp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingTop="12dp"
android:paddingBottom="12dp">
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="24dp"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
android:ellipsize="marquee"/>
<TextView
android:id="@android:id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="24dp"
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
android:textColor="?android:attr/textColorSecondary"
android:maxLines="10"/>
</RelativeLayout>
<!-- Preference should place its actual preference widget here. -->
<LinearLayout
android:id="@android:id/widget_frame"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="end|center_vertical"
android:paddingStart="16dp"
android:orientation="vertical"/>
</LinearLayout>
+48
View File
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switch_bar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@drawable/switchbar_background"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:clickable="true"
android:gravity="center">
<TextView android:id="@+id/switch_text"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:paddingStart="48dp"
android:maxLines="2"
android:ellipsize="end"
android:textAppearance="@*android:style/TextAppearanceTitle"
android:textColor="?android:attr/textColorPrimary"
android:textAlignment="viewStart"
android:text="@string/switch_bar_on" />
<Switch
android:id="@android:id/switch_widget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@null"
android:theme="@style/MotoActions.SwitchBar" />
</LinearLayout>
+92
View File
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013-2016 The CyanogenMod Project
(C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title and summary -->
<string name="moto_actions_title">Moto Ações</string>
<!-- Device gestures -->
<string name="device_gestures_title">Gestos do dispositivo</string>
<string name="device_gestures_summary">Gerenciar os gestos do dispositivo</string>
<!-- Ambient display gestures -->
<string name="ambient_display_manage_summary">Gerenciar os gestos da tela ambiente</string>
<!-- Fingerprint gestures -->
<string name="fingerprint_gestures_title">Gestos no sensor biométrico</string>
<string name="fingerprint_gestures_summary">Habilitar o uso de gestos no sensor biométrico</string>
<string name="fingerprint_gestures_manage_summary">Gerenciar os gestos do sensor biométrico</string>
<string name="fingerprint_actions_screenon">Ações com a tela ligada</string>
<string name="fingerprint_tap_title">Toque único</string>
<string name="fingerprint_tap_dlg_title">Selecione a ação para toque único</string>
<string name="fingerprint_double_tap_title">Toque duplo</string>
<string name="fingerprint_double_tap_dlg_title">Selecione a ação para toque duplo</string>
<string name="fingerprint_long_tap_title">Toque longo</string>
<string name="fingerprint_long_tap_dlg_title">Selecione a ação para toque longo</string>
<string name="fingerprint_swipe_left_title">Deslizar para a esquerda</string>
<string name="fingerprint_swipe_left_dlg_title">Selecione a ação para deslizar para a esquerda</string>
<string name="fingerprint_swipe_right_title">Deslizar para a direita</string>
<string name="fingerprint_swipe_right_dlg_title">Selecione a ação para deslizar para a direita</string>
<!-- Fingerprint gestures screen off -->
<string name="fingerprint_gestures_screenoff_title">Habilitar com a tela desligada</string>
<string name="fingerprint_gestures_screenoff_summary">Habilitar os gestos no sensor biométrico quando a tela estiver desligada.\n\nO desbloqueio por impressão digital deve estar desativado para usar esse recurso.</string>
<string name="fingerprint_actions_screenoff">Ações com a tela desligada</string>
<!-- Actions -->
<string name="action_none">Não fazer nada</string>
<string name="action_home">Início</string>
<string name="action_power">Ligar/desligar tela</string>
<string name="action_wake">Acordar o dispositivo</string>
<string name="action_back">Voltar</string>
<string name="action_recents">Recentes</string>
<string name="action_last_app">Último app</string>
<string name="action_volume_up">Aumentar volume</string>
<string name="action_volume_down">Diminuir volume</string>
<string name="action_voice_assistant">Assistente de voz</string>
<string name="action_play_pause">Tocar/pausar</string>
<string name="action_previous_track">Faixa anterior</string>
<string name="action_next_track">Próxima faixa</string>
<string name="action_flashlight">Ligar/desligar lanterna</string>
<string name="action_camera">Abrir câmera</string>
<string name="action_screenshot">Tirar uma captura de tela</string>
<string name="action_browser">Abrir navegador</string>
<string name="action_dialer">Abrir discador</string>
<string name="action_email">Abrir app de mail</string>
<string name="action_messages">Abrir app de mensagens</string>
<!-- Screen off gestures -->
<string name="screen_off_gestures_title">Gestos com a tela desligada</string>
<string name="screen_off_gestures_manage_summary">Gerenciar os gestos com a tela desligada</string>
<string name="screen_off_gestures_swipe_left_title">Deslizar para a esquerda</string>
<string name="screen_off_gestures_swipe_left_dlg_title">Selecione a ação para deslizar para a esquerda</string>
<string name="screen_off_gestures_swipe_right_title">Deslizar para a direita</string>
<string name="screen_off_gestures_swipe_right_dlg_title">Selecione a ação para deslizar para a direita</string>
<string name="screen_off_gestures_swipe_up_title">Deslizar para cima</string>
<string name="screen_off_gestures_swipe_up_dlg_title">Selecione a ação para deslizar para cima</string>
<string name="screen_off_gestures_swipe_down_title">Deslizar para baixo</string>
<string name="screen_off_gestures_swipe_down_dlg_title">Selecione a ação para deslizar para baixo</string>
<!-- Double tap to wake -->
<string name="tap_to_wake">Tocar para ativar</string>
<string name="tap_to_wake_summary">Toque duas vezes em qualquer parte da tela para ativar o dispositivo</string>
<!-- Screen off gestures haptic feedback -->
<string name="haptic_feedback">Retorno tátil</string>
<string name="haptic_feedback_summary">Vibrar quando um gesto for detectado</string>
</resources>
+102
View File
@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<string-array name="fp_keys_listArray">
<item>@string/action_none</item>
<item>@string/action_home</item>
<item>@string/action_power</item>
<item>@string/action_back</item>
<item>@string/action_recents</item>
<item>@string/action_last_app</item>
<item>@string/action_volume_up</item>
<item>@string/action_volume_down</item>
<item>@string/action_voice_assistant</item>
<item>@string/action_play_pause</item>
<item>@string/action_previous_track</item>
<item>@string/action_next_track</item>
<item>@string/action_flashlight</item>
<item>@string/action_camera</item>
<item>@string/action_screenshot</item>
</string-array>
<string-array name="fp_keys_listValues">
<item>0</item>
<item>100</item> <!-- home -->
<item>101</item> <!-- power -->
<item>102</item> <!-- back -->
<item>103</item> <!-- recents -->
<item>121</item> <!-- last app -->
<item>104</item> <!-- volume up -->
<item>105</item> <!-- volume down -->
<item>106</item> <!-- voice assistant -->
<item>107</item> <!-- play/pause -->
<item>108</item> <!-- previous track -->
<item>109</item> <!-- next track -->
<item>110</item> <!-- flashlight -->
<item>111</item> <!-- camera -->
<item>112</item> <!-- screenshot -->
</string-array>
<string-array name="fp_keys_screen_off_listArray">
<item>@string/action_none</item>
<item>@string/action_power</item>
<item>@string/action_volume_up</item>
<item>@string/action_volume_down</item>
<item>@string/action_play_pause</item>
<item>@string/action_previous_track</item>
<item>@string/action_next_track</item>
<item>@string/action_flashlight</item>
<item>@string/action_camera</item>
</string-array>
<string-array name="fp_keys_screen_off_listValues">
<item>0</item>
<item>101</item> <!-- power -->
<item>104</item> <!-- volume up -->
<item>105</item> <!-- volume down -->
<item>107</item> <!-- play/pause -->
<item>108</item> <!-- previous track -->
<item>109</item> <!-- next track -->
<item>110</item> <!-- flashlight -->
<item>111</item> <!-- camera -->
</string-array>
<string-array name="screen_off_listArray">
<item>@string/action_none</item>
<item>@string/action_wake</item>
<item>@string/action_play_pause</item>
<item>@string/action_previous_track</item>
<item>@string/action_next_track</item>
<item>@string/action_flashlight</item>
<item>@string/action_camera</item>
<item>@string/action_browser</item>
<item>@string/action_dialer</item>
<item>@string/action_email</item>
<item>@string/action_messages</item>
</string-array>
<string-array name="screen_off_listValues">
<item>0</item>
<item>101</item> <!-- wake/power -->
<item>107</item> <!-- play/pause -->
<item>108</item> <!-- previous track -->
<item>109</item> <!-- next track -->
<item>110</item> <!-- flashlight -->
<item>111</item> <!-- camera -->
<item>116</item> <!-- browser -->
<item>117</item> <!-- dialer -->
<item>118</item> <!-- email -->
<item>119</item> <!-- messages -->
</string-array>
</resources>
+92
View File
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2013-2016 The CyanogenMod Project
(C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title and summary -->
<string name="moto_actions_title">Moto Actions</string>
<!-- Device gestures -->
<string name="device_gestures_title">Device gestures</string>
<string name="device_gestures_summary">Manage device gestures</string>
<!-- Ambient display gestures -->
<string name="ambient_display_manage_summary">Manage ambient display gestures</string>
<!-- Fingerprint gestures -->
<string name="fingerprint_gestures_title">Fingerprint gestures</string>
<string name="fingerprint_gestures_summary">Use fingerprint gestures</string>
<string name="fingerprint_gestures_manage_summary">Manage fingerprint gestures</string>
<string name="fingerprint_actions_screenon">Actions with screen on</string>
<string name="fingerprint_tap_title">Single tap</string>
<string name="fingerprint_tap_dlg_title">Select action for single tap</string>
<string name="fingerprint_double_tap_title">Double tap</string>
<string name="fingerprint_double_tap_dlg_title">Select action for double tap</string>
<string name="fingerprint_long_tap_title">Long tap</string>
<string name="fingerprint_long_tap_dlg_title">Select action for long tap</string>
<string name="fingerprint_swipe_left_title">Swipe left</string>
<string name="fingerprint_swipe_left_dlg_title">Select action for swipe left</string>
<string name="fingerprint_swipe_right_title">Swipe right</string>
<string name="fingerprint_swipe_right_dlg_title">Select action for swipe right</string>
<!-- Fingerprint gestures screen off -->
<string name="fingerprint_gestures_screenoff_title">Fingerprint gestures when screen off</string>
<string name="fingerprint_gestures_screenoff_summary">Use fingerprint gestures when screen off.\n\nFingerprint unlocking must be disabled to use this feature.</string>
<string name="fingerprint_actions_screenoff">Actions with screen off</string>
<!-- Actions -->
<string name="action_none">None</string>
<string name="action_home">Home</string>
<string name="action_power">Screen on/off</string>
<string name="action_wake">Wake</string>
<string name="action_back">Back</string>
<string name="action_recents">Recents</string>
<string name="action_last_app">Last app</string>
<string name="action_volume_up">Volume up</string>
<string name="action_volume_down">Volume down</string>
<string name="action_voice_assistant">Voice assistant</string>
<string name="action_play_pause">Play/pause</string>
<string name="action_previous_track">Previous track</string>
<string name="action_next_track">Next track</string>
<string name="action_flashlight">Flashlight on/off</string>
<string name="action_camera">Open camera</string>
<string name="action_screenshot">Take screenshot</string>
<string name="action_browser">Open browser</string>
<string name="action_dialer">Open dialer</string>
<string name="action_email">Open email app</string>
<string name="action_messages">Open messages app</string>
<!-- Screen off gestures -->
<string name="screen_off_gestures_title">Screen off gestures</string>
<string name="screen_off_gestures_manage_summary">Manage gestures when screen is off</string>
<string name="screen_off_gestures_swipe_left_title">Swipe left</string>
<string name="screen_off_gestures_swipe_left_dlg_title">Select action for swipe left</string>
<string name="screen_off_gestures_swipe_right_title">Swipe right</string>
<string name="screen_off_gestures_swipe_right_dlg_title">Select action for swipe right</string>
<string name="screen_off_gestures_swipe_up_title">Swipe up</string>
<string name="screen_off_gestures_swipe_up_dlg_title">Select action for swipe up</string>
<string name="screen_off_gestures_swipe_down_title">Swipe down</string>
<string name="screen_off_gestures_swipe_down_dlg_title">Select action for swipe down</string>
<!-- Double tap to wake -->
<string name="tap_to_wake">Tap to wake</string>
<string name="tap_to_wake_summary">Double-tap anywhere on the screen to wake device</string>
<!-- Screen off gestures haptic feedback -->
<string name="haptic_feedback">Haptic feedback</string>
<string name="haptic_feedback_summary">Vibrate when a touchscreen gesture is detected</string>
</resources>
+58
View File
@@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<style name="MotoActions" parent="@android:style/Theme.DeviceDefault.Settings">
<item name="dialogPreferenceStyle">@style/MotoActions.DialogPreferenceStyle</item>
<item name="preferenceCategoryStyle">@style/MotoActions.PreferenceCategoryStyle</item>
<item name="preferenceFragmentStyle">@style/MotoActions.PreferenceFragmentStyle</item>
<item name="preferenceStyle">@style/MotoActions.PreferenceStyle</item>
<item name="preferenceTheme">@style/MotoActions.PreferenceTheme</item>
<item name="switchPreferenceStyle">@style/MotoActions.SwitchPreferenceStyle</item>
</style>
<style name="MotoActions.DialogPreferenceStyle" parent="@style/MotoActions.PreferenceStyle">
</style>
<style name="MotoActions.PreferenceCategoryStyle" parent="@*android:style/Preference.DeviceDefault.Category">
<item name="allowDividerAbove">true</item>
<item name="allowDividerBelow">true</item>
<item name="android:layout">@layout/preference_category_material_settings</item>
</style>
<style name="MotoActions.PreferenceFragmentStyle" parent="@*android:style/PreferenceFragment.Material">
<item name="allowDividerAfterLastItem">false</item>
</style>
<style name="MotoActions.PreferenceStyle" parent="@*android:style/Preference.DeviceDefault">
<item name="allowDividerAbove">false</item>
<item name="allowDividerBelow">true</item>
<item name="singleLineTitle">false</item>
<item name="android:layout">@layout/preference_material_settings</item>
</style>
<style name="MotoActions.PreferenceTheme">
</style>
<style name="MotoActions.SwitchPreferenceStyle" parent="@style/MotoActions.PreferenceStyle">
<item name="widgetLayout">@*android:layout/preference_widget_switch</item>
</style>
<style name="MotoActions.SwitchBar" parent="@android:style/ThemeOverlay.Material.ActionBar">
</style>
</resources>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<SwitchPreference
android:key="gesture_camera_action"
android:defaultValue="true"
android:title="@string/camera_gesture_title"
android:summary="@string/camera_gesture_summary" />
<SwitchPreference
android:key="gesture_chop_chop"
android:defaultValue="true"
android:title="@string/chop_chop_gesture_title"
android:summary="@string/chop_chop_gesture_summary" />
<SwitchPreference
android:key="gesture_ir_silencer"
android:defaultValue="false"
android:title="@string/hand_wave_silencer_title"
android:summary="@string/hand_wave_silencer_summary" />
<SwitchPreference
android:key="gesture_flip_to_mute"
android:defaultValue="false"
android:title="@string/flip_to_mute_title"
android:summary="@string/flip_to_mute_summary" />
<SwitchPreference
android:key="gesture_lift_to_silence"
android:defaultValue="false"
android:title="@string/lift_to_silence_title"
android:summary="@string/lift_to_silence_summary" />
</PreferenceScreen>
+33
View File
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<SwitchPreference
android:key="gesture_pick_up"
android:defaultValue="true"
android:title="@string/pick_up_gesture_title"
android:summary="@string/pick_up_gesture_summary"
android:icon="@drawable/ic_pickup" />
<SwitchPreference
android:key="gesture_hand_wave"
android:defaultValue="false"
android:title="@string/hand_wave_gesture_title"
android:summary="@string/hand_wave_gesture_summary"
android:icon="@drawable/ic_hand" />
</PreferenceScreen>
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<Preference
android:key="doze"
android:title="@string/ambient_display_title"
android:summary="@string/ambient_display_manage_summary"
android:icon="@drawable/ic_settings_doze" />
</PreferenceScreen>
+157
View File
@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017-2019 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<SwitchPreference
android:key="fp_home_scr_off"
android:enabled="false"
android:title="@string/fingerprint_gestures_screenoff_title"
android:icon="@drawable/ic_fingerprint"
android:summary="@string/fingerprint_gestures_screenoff_summary" />
<PreferenceCategory
android:key="fp_keys_scr_on"
android:title="@string/fingerprint_actions_screenon" >
<SwitchPreference
android:key="fp_haptic"
android:defaultValue="0"
android:title="@string/haptic_feedback"
android:icon="@drawable/ic_vibrate"
android:summary="@string/haptic_feedback_summary" />
<ListPreference
android:title="@string/fingerprint_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_tap_dlg_title"
android:key="fp_keys"
android:defaultValue="0"
android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_tap"
android:entryValues="@array/fp_keys_listValues" />
<ListPreference
android:title="@string/fingerprint_double_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_double_tap_dlg_title"
android:key="fp_key_dbltap"
android:defaultValue="0"
android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_double_tap"
android:entryValues="@array/fp_keys_listValues" />
<ListPreference
android:title="@string/fingerprint_long_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_long_tap_dlg_title"
android:key="fp_key_hold"
android:defaultValue="0"
android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_tap_hold"
android:entryValues="@array/fp_keys_listValues" />
<ListPreference
android:title="@string/fingerprint_swipe_left_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_swipe_left_dlg_title"
android:key="fp_key_left"
android:defaultValue="0"
android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_swipe_left"
android:entryValues="@array/fp_keys_listValues" />
<ListPreference
android:title="@string/fingerprint_swipe_right_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_swipe_right_dlg_title"
android:key="fp_key_right"
android:defaultValue="0"
android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_swipe_right"
android:entryValues="@array/fp_keys_listValues" />
</PreferenceCategory>
<PreferenceCategory
android:key="fp_keys_scr_off"
android:title="@string/fingerprint_actions_screenoff"
android:enabled="false" >
<SwitchPreference
android:key="fp_haptic_scr_off"
android:dependency="fp_home_scr_off"
android:defaultValue="0"
android:title="@string/haptic_feedback"
android:icon="@drawable/ic_vibrate"
android:summary="@string/haptic_feedback_summary" />
<ListPreference
android:dependency="fp_home_scr_off"
android:title="@string/fingerprint_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_tap_dlg_title"
android:key="fp_keys_off"
android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_tap"
android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference
android:dependency="fp_home_scr_off"
android:title="@string/fingerprint_double_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_double_tap_dlg_title"
android:key="fp_key_dbltap_off"
android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_double_tap"
android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference
android:dependency="fp_home_scr_off"
android:title="@string/fingerprint_long_tap_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_long_tap_dlg_title"
android:key="fp_key_hold_off"
android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_tap_hold"
android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference
android:dependency="fp_home_scr_off"
android:title="@string/fingerprint_swipe_left_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_swipe_left_dlg_title"
android:key="fp_key_left_off"
android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_swipe_left"
android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference
android:dependency="fp_home_scr_off"
android:title="@string/fingerprint_swipe_right_title"
android:summary="%s"
android:dialogTitle="@string/fingerprint_swipe_right_dlg_title"
android:key="fp_key_right_off"
android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_swipe_right"
android:entryValues="@array/fp_keys_screen_off_listValues" />
</PreferenceCategory>
</PreferenceScreen>
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<Preference
android:key="fp_gestures"
android:title="@string/fingerprint_gestures_title"
android:summary="@string/fingerprint_gestures_manage_summary"
android:icon="@drawable/ic_settings_fingerprint" />
</PreferenceScreen>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<Preference
android:key="gestures"
android:title="@string/device_gestures_title"
android:summary="@string/device_gestures_summary"
android:icon="@drawable/ic_settings_gestures">
<intent
android:targetPackage="com.moto.actions"
android:targetClass="com.moto.actions.GestureSettingsActivity" />
</Preference>
<Preference
android:key="doze"
android:title="@string/ambient_display_title"
android:summary="@string/ambient_display_manage_summary"
android:icon="@drawable/ic_settings_doze">
<intent
android:targetPackage="com.moto.actions"
android:targetClass="com.moto.actions.DozeSettingsActivity" />
</Preference>
<Preference
android:key="fp_gestures"
android:title="@string/fingerprint_gestures_title"
android:summary="@string/fingerprint_gestures_manage_summary"
android:icon="@drawable/ic_settings_fingerprint">
<intent
android:targetPackage="com.moto.actions"
android:targetClass="com.moto.actions.FPGestureSettingsActivity" />
</Preference>
</PreferenceScreen>
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<SwitchPreference
android:key="tap_to_wake"
android:title="@string/tap_to_wake"
android:summary="@string/tap_to_wake_summary" />
<SwitchPreference
android:key="haptic_feedback"
android:title="@string/haptic_feedback"
android:summary="@string/haptic_feedback_summary" />
<ListPreference
android:title="@string/screen_off_gestures_swipe_left_title"
android:summary="%s"
android:dialogTitle="@string/screen_off_gestures_swipe_left_dlg_title"
android:key="screen_off_gestures_swipe_left"
android:defaultValue="0"
android:entries="@array/screen_off_listArray"
android:entryValues="@array/screen_off_listValues" />
<ListPreference
android:title="@string/screen_off_gestures_swipe_right_title"
android:summary="%s"
android:dialogTitle="@string/screen_off_gestures_swipe_right_dlg_title"
android:key="screen_off_gestures_swipe_right"
android:defaultValue="0"
android:entries="@array/screen_off_listArray"
android:entryValues="@array/screen_off_listValues" />
<ListPreference
android:title="@string/screen_off_gestures_swipe_up_title"
android:summary="%s"
android:dialogTitle="@string/screen_off_gestures_swipe_up_dlg_title"
android:key="screen_off_gestures_swipe_up"
android:defaultValue="0"
android:entries="@array/screen_off_listArray"
android:entryValues="@array/screen_off_listValues" />
<ListPreference
android:title="@string/screen_off_gestures_swipe_down_title"
android:summary="%s"
android:dialogTitle="@string/screen_off_gestures_swipe_down_dlg_title"
android:key="screen_off_gestures_swipe_down"
android:defaultValue="0"
android:entries="@array/screen_off_listArray"
android:entryValues="@array/screen_off_listValues" />
</PreferenceScreen>
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<Preference
android:key="screen_off_gestures"
android:title="@string/screen_off_gestures_title"
android:summary="@string/screen_off_gestures_manage_summary"
android:icon="@drawable/ic_settings_screen_off_gestures" />
</PreferenceScreen>
@@ -0,0 +1,35 @@
/*
* 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.
*/
package com.moto.actions;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class ActionsPreferenceActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new ActionsPreferenceFragment()).commit();
}
}
@@ -0,0 +1,29 @@
/*
* Copyright (C) 2015-2016 The CyanogenMod Project
* Copyright (C) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment;
public class ActionsPreferenceFragment extends PreferenceFragment {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.main_panel);
}
}
@@ -0,0 +1,68 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.util.Log;
import com.moto.actions.actions.Constants;
import com.moto.actions.ServiceWrapper.LocalBinder;
public class BootCompletedReceiver extends BroadcastReceiver {
static final String TAG = "MotoActions";
final String NAVBAR_SHOWN = "navbar_shown";
private ServiceWrapper mServiceWrapper;
@Override
public void onReceive(final Context context, Intent intent) {
Log.i(TAG, "Booting");
if (intent.getAction() != null && !intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
return;
}
// Restore nodes to saved preference values
for (String pref : Constants.sPrefKeys) {
Constants.writePreference(context, pref);
}
context.startService(new Intent(context, ServiceWrapper.class));
}
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
LocalBinder binder = (LocalBinder) service;
mServiceWrapper = binder.getService();
mServiceWrapper.start();
}
@Override
public void onServiceDisconnected(ComponentName className) {
mServiceWrapper = null;
}
};
}
@@ -0,0 +1,35 @@
/*
* 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.
*/
package com.moto.actions;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class DozeSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(R.string.ambient_display_title);
}
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new DozeSettingsFragment()).commit();
}
}
@@ -0,0 +1,101 @@
/*
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v14.preference.SwitchPreference;
import android.view.MenuItem;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
public class DozeSettingsFragment extends PreferenceFragment {
private SwitchPreference mHandwavePreference;
private SwitchPreference mPickupPreference;
private TextView mSwitchBarText;
private Switch mAmbientDisplaySwitch;
private String KEY_GESTURE_HAND_WAVE = "gesture_hand_wave";
private String KEY_GESTURE_PICK_UP = "gesture_pick_up";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = LayoutInflater.from(getContext()).inflate(R.layout.doze, container, false);
((ViewGroup) view).addView(super.onCreateView(inflater, container, savedInstanceState));
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
View switchBar = view.findViewById(R.id.switch_bar);
mAmbientDisplaySwitch = (Switch) switchBar.findViewById(android.R.id.switch_widget);
mAmbientDisplaySwitch.setChecked(MotoActionsSettings.isDozeEnabled(getActivity().getContentResolver()));
mAmbientDisplaySwitch.setOnCheckedChangeListener(mAmbientDisplayPrefListener);
switchBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAmbientDisplaySwitch.toggle();
}
});
mSwitchBarText = switchBar.findViewById(R.id.switch_text);
mSwitchBarText.setText(MotoActionsSettings.isDozeEnabled(getActivity().getContentResolver()) ? R.string.switch_bar_on :
R.string.switch_bar_off);
}
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.doze_panel);
boolean dozeEnabled = MotoActionsSettings.isDozeEnabled(getActivity().getContentResolver());
mHandwavePreference = (SwitchPreference) findPreference(KEY_GESTURE_HAND_WAVE);
mPickupPreference = (SwitchPreference) findPreference(KEY_GESTURE_PICK_UP);
updatePrefs(dozeEnabled);
}
private CompoundButton.OnCheckedChangeListener mAmbientDisplayPrefListener =
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean enable) {
if (enableDoze(enable)) {
updatePrefs(enable);
mSwitchBarText.setText(enable ? R.string.switch_bar_on : R.string.switch_bar_off);
}
}
};
private void updatePrefs(boolean enabled){
mHandwavePreference.setEnabled(enabled);
mPickupPreference.setEnabled(enabled);
}
private boolean enableDoze(boolean enable) {
return Settings.Secure.putInt(getActivity().getContentResolver(),
Settings.Secure.DOZE_ENABLED, enable ? 1 : 0);
}
}
@@ -0,0 +1,37 @@
/*
* 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.
*/
package com.moto.actions;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class FPGestureSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(R.string.fingerprint_gestures_title);
}
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new FPGestureSettingsFragment()).commit();
}
}
@@ -0,0 +1,120 @@
/*
* 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.
*/
package com.moto.actions;
import android.app.ActionBar;
import android.os.Bundle;
import android.content.Context;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import android.support.v7.preference.PreferenceCategory;
import android.support.v14.preference.SwitchPreference;
import android.hardware.fingerprint.FingerprintManager;
import android.support.v14.preference.PreferenceFragment;
import android.view.MenuItem;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.Switch;
import android.widget.TextView;
import com.moto.actions.actions.Constants;
import static com.moto.actions.actions.Constants.FP_HOME_KEY;
import static com.moto.actions.actions.Constants.FP_HOME_KEY_OFF;
public class FPGestureSettingsFragment extends PreferenceFragment {
private SwitchPreference mFPScreenOffGesture;
private PreferenceCategory mFPScreenOffCategory;
private PreferenceCategory mFPScreenOnCategory;
private TextView mSwitchBarText;
private Switch mFPGestureSwitch;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = LayoutInflater.from(getContext()).inflate(R.layout.fp_gesture, container, false);
((ViewGroup) view).addView(super.onCreateView(inflater, container, savedInstanceState));
return view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
View switchBar = view.findViewById(R.id.switch_bar);
mFPGestureSwitch = (Switch) switchBar.findViewById(android.R.id.switch_widget);
mFPGestureSwitch.setChecked(isFPGestureEnabled());
mFPGestureSwitch.setOnCheckedChangeListener(mFPGesturePrefListener);
switchBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mFPGestureSwitch.toggle();
}
});
mSwitchBarText = switchBar.findViewById(R.id.switch_text);
mSwitchBarText.setText(isFPGestureEnabled() ? R.string.switch_bar_on :
R.string.switch_bar_off);
}
private void updatePrefs(boolean enabled){
Editor prefEditor = PreferenceManager.getDefaultSharedPreferences(getActivity()).edit();
prefEditor.putBoolean(FP_HOME_KEY, enabled);
prefEditor.apply();
mFPScreenOnCategory.setEnabled(enabled);
mFPScreenOffGesture.setEnabled(enabled);
mFPScreenOffCategory.setEnabled(enabled);
if(enabled){
boolean hasEnrolledFingerprints = hasEnrolledFingerprints();
mFPScreenOffGesture.setEnabled(!hasEnrolledFingerprints);
mFPScreenOffCategory.setEnabled(!hasEnrolledFingerprints);
}
}
private boolean isFPGestureEnabled(){
return Constants.isPreferenceEnabled(getActivity(), FP_HOME_KEY);
}
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.fp_gesture_panel);
mFPScreenOffGesture = (SwitchPreference) findPreference(FP_HOME_KEY_OFF);
mFPScreenOffCategory = (PreferenceCategory) findPreference("fp_keys_scr_off");
mFPScreenOnCategory = (PreferenceCategory) findPreference("fp_keys_scr_on");
updatePrefs(isFPGestureEnabled());
}
private CompoundButton.OnCheckedChangeListener mFPGesturePrefListener =
new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean enable) {
updatePrefs(enable);
mSwitchBarText.setText(enable ? R.string.switch_bar_on : R.string.switch_bar_off);
}
};
private boolean hasEnrolledFingerprints(){
FingerprintManager fingerprintManager = (FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);
return fingerprintManager.hasEnrolledFingerprints();
}
}
@@ -0,0 +1,36 @@
/*
* 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.
*/
package com.moto.actions;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class GestureSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new GestureSettingsFragment()).commit();
}
}
@@ -0,0 +1,29 @@
/*
* 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.
*/
package com.moto.actions;
import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment;
public class GestureSettingsFragment extends PreferenceFragment {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.actions_panel);
}
}
@@ -0,0 +1,756 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* Copyright (C) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.app.ActivityManager;
import android.app.ActivityManagerNative;
import android.app.ISearchManager;
import android.app.KeyguardManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.hardware.Sensor;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.hardware.input.InputManager;
import android.media.AudioAttributes;
import android.media.session.MediaSessionLegacyHelper;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.provider.MediaStore;
import android.provider.Settings;
import android.util.Log;
import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
import android.view.ViewConfiguration;
import com.android.internal.os.DeviceKeyHandler;
import com.android.internal.util.ArrayUtils;
import com.moto.actions.util.FileUtils;
import java.util.List;
import static com.moto.actions.actions.Constants.*;
public class KeyHandler implements DeviceKeyHandler {
private static final String TAG = KeyHandler.class.getSimpleName();
private static final int GESTURE_REQUEST = 1;
private static final int FP_ACTION_REQUEST = 2;
private static final String ACTION_DISMISS_KEYGUARD =
"com.android.keyguard.action.DISMISS_KEYGUARD_SECURELY";
private static final String GESTURE_WAKEUP_REASON = "keyhandler-gesture-wakeup";
private static final int GESTURE_WAKELOCK_DURATION = 3000;
private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.build();
private final Context mContext;
private final PowerManager mPowerManager;
WakeLock mGestureWakeLock;
private KeyguardManager mKeyguardManager;
private FPScreenOffGesturesHandler mFPScreenOffGesturesHandler;
private CameraManager mCameraManager;
private String mRearCameraId;
private boolean mTorchEnabled;
private Vibrator mVibrator;
private ISearchManager mSearchManagerService;
private Handler mHandler;
private int fpTapCounts = 0;
private boolean fpTapPending = false;
private boolean fpGesturePending = false;
private Runnable doubleTapRunnable = new Runnable() {
public void run() {
int action = 0;
if (fpTapCounts > 1) {
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEY_DBLTAP_NODE)));
} else {
if (isSingleTapEnabledOnFP()) {
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEYS_NODE)));
}
}
if (action != 0) {
boolean isActionSupported = ArrayUtils.contains(mPowerManager.isScreenOn() ? sFPSupportedActions : sFPSupportedActionsScreenOff, action);
if (isActionSupported) {
fireFPAction(action, true);
}
}
resetDoubleTapOnFP();
}
};
private Runnable fpGestureRunnable = new Runnable() {
public void run() {
resetFPGestureDelay();
}
};
public KeyHandler(Context context) {
mContext = context;
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mFPScreenOffGesturesHandler = new FPScreenOffGesturesHandler();
mGestureWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"GestureWakeLock");
mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (mVibrator == null || !mVibrator.hasVibrator()) {
mVibrator = null;
}
mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
mCameraManager.registerTorchCallback(new MyTorchCallback(), null);
mHandler = new Handler(Looper.getMainLooper());
}
static long[] getLongIntArray(Resources r, int resid) {
int[] ar = r.getIntArray(resid);
if (ar == null) {
return null;
}
long[] out = new long[ar.length];
for (int i = 0; i < ar.length; i++) {
out[i] = ar[i];
}
return out;
}
private static ActivityInfo getRunningActivityInfo(Context context) {
final ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
final PackageManager pm = context.getPackageManager();
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);
if (tasks != null && !tasks.isEmpty()) {
ActivityManager.RunningTaskInfo top = tasks.get(0);
try {
return pm.getActivityInfo(top.topActivity, 0);
} catch (PackageManager.NameNotFoundException e) {
}
}
return null;
}
private static void dispatchMediaKeyWithWakeLock(int keycode, Context context) {
if (ActivityManagerNative.isSystemReady()) {
KeyEvent event = new KeyEvent(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN, keycode, 0);
MediaSessionLegacyHelper.getHelper(context).sendMediaButtonEvent(event, true);
event = KeyEvent.changeAction(event, KeyEvent.ACTION_UP);
MediaSessionLegacyHelper.getHelper(context).sendMediaButtonEvent(event, true);
}
}
private static void switchToLastApp(Context context) {
final ActivityManager am =
(ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.RunningTaskInfo lastTask = getLastTask(context, am);
if (lastTask != null) {
am.moveTaskToFront(lastTask.id, ActivityManager.MOVE_TASK_NO_USER_ACTION);
}
}
private static ActivityManager.RunningTaskInfo getLastTask(Context context,
final ActivityManager am) {
final String defaultHomePackage = resolveCurrentLauncherPackage(context);
List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(5);
for (int i = 1; i < tasks.size(); i++) {
String packageName = tasks.get(i).topActivity.getPackageName();
if (!packageName.equals(defaultHomePackage)
&& !packageName.equals(context.getPackageName())
&& !packageName.equals("com.android.systemui")) {
return tasks.get(i);
}
}
return null;
}
private static String resolveCurrentLauncherPackage(Context context) {
final Intent launcherIntent = new Intent(Intent.ACTION_MAIN)
.addCategory(Intent.CATEGORY_HOME);
final PackageManager pm = context.getPackageManager();
final ResolveInfo launcherInfo = pm.resolveActivity(launcherIntent, 0);
return launcherInfo.activityInfo.packageName;
}
private String getRearCameraId() {
if (mRearCameraId == null) {
try {
for (final String cameraId : mCameraManager.getCameraIdList()) {
CameraCharacteristics characteristics =
mCameraManager.getCameraCharacteristics(cameraId);
int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
if (cOrientation == CameraCharacteristics.LENS_FACING_BACK) {
mRearCameraId = cameraId;
break;
}
}
} catch (CameraAccessException e) {
// Ignore
}
}
return mRearCameraId;
}
private Intent getLaunchableIntent(Intent intent) {
PackageManager pm = mContext.getPackageManager();
List<ResolveInfo> resInfo = pm.queryIntentActivities(intent, 0);
if (resInfo.isEmpty()) {
return null;
}
return pm.getLaunchIntentForPackage(resInfo.get(0).activityInfo.packageName);
}
private void triggerCameraAction() {
ensureKeyguardManager();
WakeLock wl = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "GestureWakeLock");
wl.acquire(500);
if (mKeyguardManager.inKeyguardRestrictedInputMode()) {
launchSecureCamera();
} else {
launchCamera();
}
}
private void launchCamera() {
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);
if (getBestActivityInfo(intent) != null) {
// Only launch if we can succeed, but let the user pick the action
mContext.startActivity(intent);
}
}
private void launchSecureCamera() {
// Keyguard won't allow a picker, try to pick the secure intent in the package
// that would be the one used for a default action of launching the camera
Intent normalIntent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
normalIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
normalIntent.addFlags(Intent.FLAG_FROM_BACKGROUND);
Intent secureIntent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE);
secureIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
secureIntent.addFlags(Intent.FLAG_FROM_BACKGROUND);
ActivityInfo normalActivity = getBestActivityInfo(normalIntent);
ActivityInfo secureActivity = getBestActivityInfo(secureIntent, normalActivity);
if (secureActivity != null) {
secureIntent.setComponent(new ComponentName(secureActivity.applicationInfo.packageName, secureActivity.name));
mContext.startActivity(secureIntent);
}
}
private ActivityInfo getBestActivityInfo(Intent intent) {
PackageManager pm = mContext.getPackageManager();
ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);
if (resolveInfo != null) {
return resolveInfo.activityInfo;
} else {
// If the resolving failed, just find our own best match
return getBestActivityInfo(intent, null);
}
}
private ActivityInfo getBestActivityInfo(Intent intent, ActivityInfo match) {
PackageManager pm = mContext.getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
ActivityInfo best = null;
if (activities.size() > 0) {
best = activities.get(0).activityInfo;
if (match != null) {
String packageName = match.applicationInfo.packageName;
for (int i = activities.size() - 1; i >= 0; i--) {
ActivityInfo activityInfo = activities.get(i).activityInfo;
if (packageName.equals(activityInfo.applicationInfo.packageName)) {
best = activityInfo;
}
}
}
}
return best;
}
private void openBrowser() {
mGestureWakeLock.acquire(GESTURE_WAKELOCK_DURATION);
mPowerManager.wakeUp(SystemClock.uptimeMillis(), GESTURE_WAKEUP_REASON);
final Intent intent = getLaunchableIntent(
new Intent(Intent.ACTION_VIEW, Uri.parse("http:")));
startActivitySafely(intent);
}
private void openDialer() {
mGestureWakeLock.acquire(GESTURE_WAKELOCK_DURATION);
mPowerManager.wakeUp(SystemClock.uptimeMillis(), GESTURE_WAKEUP_REASON);
final Intent intent = new Intent(Intent.ACTION_DIAL, null);
startActivitySafely(intent);
}
private void openEmail() {
mGestureWakeLock.acquire(GESTURE_WAKELOCK_DURATION);
mPowerManager.wakeUp(SystemClock.uptimeMillis(), GESTURE_WAKEUP_REASON);
final Intent intent = getLaunchableIntent(
new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:")));
startActivitySafely(intent);
}
private void openMessages() {
mGestureWakeLock.acquire(GESTURE_WAKELOCK_DURATION);
mPowerManager.wakeUp(SystemClock.uptimeMillis(), GESTURE_WAKEUP_REASON);
final String defaultApplication = Settings.Secure.getString(
mContext.getContentResolver(), "sms_default_application");
final PackageManager pm = mContext.getPackageManager();
final Intent intent = pm.getLaunchIntentForPackage(defaultApplication);
if (intent != null) {
startActivitySafely(intent);
}
}
private void toggleFlashlight() {
String rearCameraId = getRearCameraId();
if (rearCameraId != null) {
mGestureWakeLock.acquire(GESTURE_WAKELOCK_DURATION);
try {
mCameraManager.setTorchMode(rearCameraId, !mTorchEnabled);
mTorchEnabled = !mTorchEnabled;
} catch (CameraAccessException e) {
// Ignore
}
}
}
private void ensureKeyguardManager() {
if (mKeyguardManager == null) {
mKeyguardManager =
(KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
}
}
private void resetDoubleTapOnFP() {
fpTapCounts = 0;
fpTapPending = false;
mHandler.removeCallbacks(doubleTapRunnable);
}
private void detectDoubleTapOnFP() {
fpTapCounts++;
if (fpTapCounts == 1 || fpTapCounts == 2) {
doHapticFeedbackFP(false);
}
if (!fpTapPending) {
fpTapPending = true;
mHandler.postDelayed(doubleTapRunnable, ViewConfiguration.getDoubleTapTimeout());
}
}
private boolean isSingleTapEnabledOnFP() {
return !FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEYS_NODE)).equals("0");
}
private boolean isDoubleTapEnabledOnFP() {
return !FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEY_DBLTAP_NODE)).equals("0");
}
private boolean isHapticFeedbackEnabledOnFP() {
return !FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_HAPTIC_NODE)).equals("0");
}
private String getFPNodeBasedOnScreenState(String node) {
if (mPowerManager.isScreenOn()) {
return node;
}
switch (node) {
case FP_KEYS_NODE:
return FP_KEYS_SCREENOFF_NODE;
case FP_HAPTIC_NODE:
return FP_HAPTIC_SCREENOFF_NODE;
case FP_KEY_DBLTAP_NODE:
return FP_KEY_SCREENOFF_DBLTAP_NODE;
case FP_KEY_HOLD_NODE:
return FP_KEY_SCREENOFF_HOLD_NODE;
case FP_KEY_RIGHT_NODE:
return FP_KEY_SCREENOFF_RIGHT_NODE;
case FP_KEY_LEFT_NODE:
return FP_KEY_SCREENOFF_LEFT_NODE;
}
return node;
}
public KeyEvent handleKeyEvent(KeyEvent event) {
int scanCode = event.getScanCode();
if (DEBUG) {
Log.d(TAG, "DEBUG: action=" + event.getAction()
+ ", flags=" + event.getFlags()
+ ", keyCode=" + event.getKeyCode()
+ ", scanCode=" + event.getScanCode()
+ ", metaState=" + event.getMetaState()
+ ", repeatCount=" + event.getRepeatCount());
}
boolean isFPScanCode = ArrayUtils.contains(sSupportedFPGestures, scanCode);
if (!isFPScanCode) {
return event;
}
boolean isFPGestureEnabled = FileUtils.readOneLine(FP_HOME_NODE).equals("1");
boolean isFPGestureEnabledOnScreenOff = FileUtils.readOneLine(FP_HOME_OFF_NODE).equals("1");
boolean isScreenOn = mPowerManager.isScreenOn();
// We only want ACTION_UP event
if (event.getAction() != KeyEvent.ACTION_UP) {
return null;
}
if (isFPScanCode){
if (fpGesturePending) {
return event;
} else {
resetFPGestureDelay();
fpGesturePending = true;
mHandler.postDelayed(fpGestureRunnable, 10);
}
}
if (scanCode != FP_TAP_SCANCODE) {
resetDoubleTapOnFP();
}
if (isFPScanCode) {
if ((!isFPGestureEnabled) || (!isScreenOn && !isFPGestureEnabledOnScreenOff)) {
resetDoubleTapOnFP();
return event;
}
if (!isScreenOn && isFPGestureEnabledOnScreenOff) {
processFPScreenOffScancode(scanCode);
} else {
processFPScancode(scanCode);
}
}
return null;
}
private void processFPScancode(int scanCode) {
int action = 0;
boolean isScreenOn = mPowerManager.isScreenOn();
switch (scanCode) {
case FP_TAP_SCANCODE:
if (isDoubleTapEnabledOnFP()) {
detectDoubleTapOnFP();
return;
} else {
resetDoubleTapOnFP();
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEYS_NODE)));
}
break;
case FP_HOLD_SCANCODE:
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEY_HOLD_NODE)));
break;
case FP_RIGHT_SCANCODE:
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEY_RIGHT_NODE)));
break;
case FP_LEFT_SCANCODE:
action = str2int(FileUtils.readOneLine(getFPNodeBasedOnScreenState(FP_KEY_LEFT_NODE)));
break;
}
boolean isActionSupported = ArrayUtils.contains(isScreenOn ? sFPSupportedActions : sFPSupportedActionsScreenOff, action);
if (isActionSupported) {
fireFPAction(action, false);
}
}
private void fireFPAction(int action, boolean isDoubleTap) {
ensureKeyguardManager();
boolean isHapticFeedbackEnabledOnFP = isHapticFeedbackEnabledOnFP();
if (isDoubleTap && action != ACTION_CAMERA && action != ACTION_FLASHLIGHT) {
isHapticFeedbackEnabledOnFP = false;
}
if (isHapticFeedbackEnabledOnFP){
if (action == ACTION_CAMERA || action == ACTION_FLASHLIGHT) {
vibrate(action == ACTION_CAMERA ? 500 : 250);
}else if (action != ACTION_VOICE_ASSISTANT) {
doHapticFeedbackFP(false);
}
}
switch (action) {
case ACTION_HOME:
if (!mKeyguardManager.inKeyguardRestrictedInputMode()) {
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_HOME);
}
break;
case ACTION_POWER:
toggleScreenState();
break;
case ACTION_BACK:
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_BACK);
break;
case ACTION_RECENTS:
if (!mKeyguardManager.inKeyguardRestrictedInputMode()) {
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_APP_SWITCH);
}
break;
case ACTION_VOLUME_UP:
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_VOLUME_UP);
break;
case ACTION_VOLUME_DOWN:
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_VOLUME_DOWN);
break;
case ACTION_VOICE_ASSISTANT:
if (!mKeyguardManager.inKeyguardRestrictedInputMode()) {
fireGoogleNowOnTap();
}
return;
case ACTION_PLAY_PAUSE:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, mContext);
break;
case ACTION_PREVIOUS_TRACK:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_PREVIOUS, mContext);
break;
case ACTION_NEXT_TRACK:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_NEXT, mContext);
break;
case ACTION_FLASHLIGHT:
toggleFlashlight();
break;
case ACTION_CAMERA:
triggerCameraAction();
break;
case ACTION_SCREENSHOT:
triggerVirtualKeypress(mHandler, KeyEvent.KEYCODE_SYSRQ);
break;
case ACTION_LAST_APP:
if (!mKeyguardManager.inKeyguardRestrictedInputMode()) {
switchToLastApp(mContext);
}
break;
}
}
private void vibrate(int intensity) {
if (mVibrator == null) {
return;
}
mVibrator.vibrate(intensity);
}
private void toggleScreenState() {
if (mPowerManager.isScreenOn()) {
mPowerManager.goToSleep(SystemClock.uptimeMillis());
} else {
mPowerManager.wakeUp(SystemClock.uptimeMillis());
}
}
private void triggerVirtualKeypress(final Handler handler, final int keyCode) {
final InputManager im = InputManager.getInstance();
long now = SystemClock.uptimeMillis();
final KeyEvent downEvent = new KeyEvent(now, now, KeyEvent.ACTION_DOWN,
keyCode, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0,
KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_CLASS_BUTTON);
final KeyEvent upEvent = KeyEvent.changeAction(downEvent,
KeyEvent.ACTION_UP);
// add a small delay to make sure everything behind got focus
handler.postDelayed(new Runnable() {
@Override
public void run() {
im.injectInputEvent(downEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
}, 10);
handler.postDelayed(new Runnable() {
@Override
public void run() {
im.injectInputEvent(upEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
}, 20);
}
private void fireGoogleNowOnTap() {
doHapticFeedbackFP(true);
mSearchManagerService = ISearchManager.Stub.asInterface(ServiceManager.getService(Context.SEARCH_SERVICE));
if (mSearchManagerService != null) {
try {
mSearchManagerService.launchAssist(new Bundle());
} catch (RemoteException e) {
}
}
}
private int str2int(String str) {
if (str == null || str.isEmpty()) {
return 0;
}
try {
return Integer.valueOf(str);
} catch (Exception e) {
return 0;
}
}
private void processFPScreenOffScancode(int scanCode) {
if (!mFPScreenOffGesturesHandler.hasMessages(FP_ACTION_REQUEST)) {
Message msg = mFPScreenOffGesturesHandler.obtainMessage(FP_ACTION_REQUEST);
msg.arg1 = scanCode;
mFPScreenOffGesturesHandler.sendMessage(msg);
}
}
private void resetFPGestureDelay() {
fpGesturePending = false;
mHandler.removeCallbacks(fpGestureRunnable);
}
private void fireScreenOffAction(int action) {
boolean haptic = Settings.System.getInt(mContext.getContentResolver(), KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK, 1) != 0;
if (haptic && (action == ACTION_CAMERA || action == ACTION_FLASHLIGHT)) {
vibrate(action == ACTION_CAMERA ? 500 : 250);
}
if (haptic && action == ACTION_POWER){
doHapticFeedbackScreenOff();
}
switch (action) {
case ACTION_POWER:
toggleScreenState();
break;
case ACTION_PLAY_PAUSE:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, mContext);
break;
case ACTION_PREVIOUS_TRACK:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_PREVIOUS, mContext);
break;
case ACTION_NEXT_TRACK:
dispatchMediaKeyWithWakeLock(KeyEvent.KEYCODE_MEDIA_NEXT, mContext);
break;
case ACTION_FLASHLIGHT:
toggleFlashlight();
break;
case ACTION_CAMERA:
triggerCameraAction();
break;
case ACTION_BROWSER:
openBrowser();
break;
case ACTION_DIALER:
openDialer();
break;
case ACTION_EMAIL:
openEmail();
break;
case ACTION_MESSAGES:
openMessages();
break;
}
if (action != ACTION_FLASHLIGHT && action != ACTION_CAMERA && action != ACTION_POWER) {
doHapticFeedbackScreenOff();
}
}
private void startActivitySafely(Intent intent) {
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
UserHandle user = new UserHandle(UserHandle.USER_CURRENT);
mContext.startActivityAsUser(intent, null, user);
} catch (ActivityNotFoundException e) {
// Ignore
}
}
private void doHapticFeedbackScreenOff() {
if (mVibrator == null) {
return;
}
boolean enabled = Settings.System.getInt(mContext.getContentResolver(), KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK, 1) != 0;
if (enabled) {
mVibrator.vibrate(50);
}
}
private void doHapticFeedbackFP(boolean longpress) {
if (mVibrator == null) {
return;
}
if (isHapticFeedbackEnabledOnFP()) {
mHandler.post(new Runnable() {
public void run() {
int owningUid;
String owningPackage;
owningUid = android.os.Process.myUid();
owningPackage = mContext.getOpPackageName();
VibrationEffect effect = VibrationEffect.createOneShot(longpress ? 50 : 40, VibrationEffect.DEFAULT_AMPLITUDE);
mVibrator.vibrate(owningUid, owningPackage, effect, VIBRATION_ATTRIBUTES);
}
});
}
}
private class FPScreenOffGesturesHandler extends Handler {
@Override
public void handleMessage(Message msg) {
processFPScancode(msg.arg1);
}
}
private class MyTorchCallback extends CameraManager.TorchCallback {
@Override
public void onTorchModeChanged(String cameraId, boolean enabled) {
if (!cameraId.equals(mRearCameraId))
return;
mTorchEnabled = enabled;
}
@Override
public void onTorchModeUnavailable(String cameraId) {
if (!cameraId.equals(mRearCameraId))
return;
mTorchEnabled = false;
}
}
}
@@ -0,0 +1,92 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.provider.SearchIndexableResource;
import android.provider.SearchIndexablesProvider;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_CLASS_NAME;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_ICON_RESID;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_ACTION;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID;
import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
import static android.provider.SearchIndexablesContract.INDEXABLES_XML_RES_COLUMNS;
import static android.provider.SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS;
public class MotoActionsSearchIndexablesProvider extends SearchIndexablesProvider {
private static final String TAG = "MotoActionsSearchIndexablesProvider";
@Override
public boolean onCreate() {
return true;
}
@Override
public Cursor queryXmlResources(String[] projection) {
MatrixCursor cursor = new MatrixCursor(INDEXABLES_XML_RES_COLUMNS);
cursor.addRow(generateResourceRef(new SearchIndexableResource(1, R.xml.actions_panel,
GestureSettingsActivity.class.getName(),
R.drawable.ic_settings_gestures)));
cursor.addRow(generateResourceRef(new SearchIndexableResource(1, R.xml.fp_gesture_panel,
FPGestureSettingsActivity.class.getName(),
R.drawable.ic_settings_fingerprint)));
cursor.addRow(generateResourceRef(new SearchIndexableResource(1, R.xml.fp_gesture_panel_indexable,
FPGestureSettingsActivity.class.getName(),
R.drawable.ic_settings_fingerprint)));
cursor.addRow(generateResourceRef(new SearchIndexableResource(1, R.xml.doze_panel,
DozeSettingsActivity.class.getName(),
R.drawable.ic_settings_doze)));
cursor.addRow(generateResourceRef(new SearchIndexableResource(1, R.xml.doze_panel_indexable,
DozeSettingsActivity.class.getName(),
R.drawable.ic_settings_doze)));
return cursor;
}
private static Object[] generateResourceRef(SearchIndexableResource sir) {
Object[] ref = new Object[7];
ref[COLUMN_INDEX_XML_RES_RANK] = sir.rank;
ref[COLUMN_INDEX_XML_RES_RESID] = sir.xmlResId;
ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = null;
ref[COLUMN_INDEX_XML_RES_ICON_RESID] = sir.iconResId;
ref[COLUMN_INDEX_XML_RES_INTENT_ACTION] = "com.android.settings.action.EXTRA_SETTINGS";
ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE] = "com.moto.actions";
ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS] = sir.className;
return ref;
}
@Override
public Cursor queryRawData(String[] projection) {
MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
return cursor;
}
@Override
public Cursor queryNonIndexableKeys(String[] projection) {
MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
return cursor;
}
}
@@ -0,0 +1,115 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.util.Log;
import java.util.List;
import java.util.LinkedList;
import com.moto.actions.actions.UpdatedStateNotifier;
import com.moto.actions.actions.CameraActivationSensor;
import com.moto.actions.actions.ChopChopSensor;
import com.moto.actions.actions.FlipToMute;
import com.moto.actions.actions.LiftToSilence;
import com.moto.actions.actions.ProximitySilencer;
import com.moto.actions.doze.DozePulseAction;
import com.moto.actions.doze.GlanceSensor;
import com.moto.actions.doze.ProximitySensor;
import com.moto.actions.doze.ScreenReceiver;
import com.moto.actions.doze.ScreenStateNotifier;
public class MotoActionsService extends IntentService implements ScreenStateNotifier,
UpdatedStateNotifier {
private static final String TAG = "MotoActions";
private final PowerManager mPowerManager;
private final PowerManager.WakeLock mWakeLock;
private final List<ScreenStateNotifier> mScreenStateNotifiers = new LinkedList<>();
private final List<UpdatedStateNotifier> mUpdatedStateNotifiers = new LinkedList<>();
public MotoActionsService(Context context) {
super("MotoActionService");
Log.d(TAG, "Starting");
MotoActionsSettings motoActionsSettings = new MotoActionsSettings(context, this);
SensorHelper sensorHelper = new SensorHelper(context);
new ScreenReceiver(context, this);
DozePulseAction mDozePulseAction = new DozePulseAction(context);
mScreenStateNotifiers.add(mDozePulseAction);
// Actionable sensors get screen on/off notifications
mScreenStateNotifiers.add(new GlanceSensor(motoActionsSettings, sensorHelper, mDozePulseAction));
mScreenStateNotifiers.add(new ProximitySensor(motoActionsSettings, sensorHelper, mDozePulseAction));
// Other actions that are always enabled
mUpdatedStateNotifiers.add(new CameraActivationSensor(motoActionsSettings, sensorHelper));
mUpdatedStateNotifiers.add(new ChopChopSensor(motoActionsSettings, sensorHelper));
mUpdatedStateNotifiers.add(new ProximitySilencer(motoActionsSettings, context, sensorHelper));
mUpdatedStateNotifiers.add(new FlipToMute(motoActionsSettings, context, sensorHelper));
mUpdatedStateNotifiers.add(new LiftToSilence(motoActionsSettings, context, sensorHelper));
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
String tag = context.getPackageName() + ":ServiceWakeLock";
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, tag);
updateState();
}
@Override
protected void onHandleIntent(Intent intent) {
}
@Override
public void screenTurnedOn() {
if (!mWakeLock.isHeld()) {
mWakeLock.acquire();
}
for (ScreenStateNotifier screenStateNotifier : mScreenStateNotifiers) {
screenStateNotifier.screenTurnedOn();
}
}
@Override
public void screenTurnedOff() {
if (mWakeLock.isHeld()) {
mWakeLock.release();
}
for (ScreenStateNotifier screenStateNotifier : mScreenStateNotifiers) {
screenStateNotifier.screenTurnedOff();
}
}
public void updateState() {
if (mPowerManager.isInteractive()) {
screenTurnedOn();
} else {
screenTurnedOff();
}
for (UpdatedStateNotifier notifier : mUpdatedStateNotifiers) {
notifier.updateState();
}
}
}
@@ -0,0 +1,147 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.util.Log;
import com.moto.actions.actions.Constants;
import com.moto.actions.actions.UpdatedStateNotifier;
import com.moto.actions.actions.CameraActivationAction;
import com.moto.actions.actions.TorchAction;
public class MotoActionsSettings implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String TAG = "MotoActions";
private static final String GESTURE_CAMERA_ACTION_KEY = "gesture_camera_action";
private static final String GESTURE_CHOP_CHOP_KEY = "gesture_chop_chop";
private static final String GESTURE_PICK_UP_KEY = "gesture_pick_up";
private static final String GESTURE_IR_WAKEUP_KEY = "gesture_hand_wave";
private static final String GESTURE_IR_SILENCER_KEY = "gesture_ir_silencer";
private static final String GESTURE_FLIP_TO_MUTE_KEY = "gesture_flip_to_mute";
private static final String GESTURE_LIFT_TO_SILENCE_KEY = "gesture_lift_to_silence";
private final Context mContext;
private final UpdatedStateNotifier mUpdatedStateNotifier;
private boolean mCameraGestureEnabled;
private boolean mChopChopEnabled;
private boolean mPickUpGestureEnabled;
private boolean mIrWakeUpEnabled;
private boolean mIrSilencerEnabled;
private boolean mFlipToMuteEnabled;
private boolean mLiftToSilenceEnabled;
public MotoActionsSettings(Context context, UpdatedStateNotifier updatedStateNotifier) {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
loadPreferences(sharedPrefs);
sharedPrefs.registerOnSharedPreferenceChangeListener(this);
mContext = context;
mUpdatedStateNotifier = updatedStateNotifier;
}
public boolean isCameraGestureEnabled() {
return mCameraGestureEnabled;
}
public boolean isChopChopGestureEnabled() {
return mChopChopEnabled;
}
public static boolean isDozeEnabled(ContentResolver contentResolver) {
return (Settings.Secure.getInt(contentResolver, Settings.Secure.DOZE_ENABLED, 1) != 0);
}
public boolean isDozeEnabled() {
return isDozeEnabled(mContext.getContentResolver());
}
public boolean isIrWakeupEnabled() {
return isDozeEnabled() && mIrWakeUpEnabled;
}
public boolean isPickUpEnabled() {
return isDozeEnabled() && mPickUpGestureEnabled;
}
public boolean isIrSilencerEnabled() {
return mIrSilencerEnabled;
}
public boolean isFlipToMuteEnabled() {
return mFlipToMuteEnabled;
}
public boolean isLiftToSilenceEnabled() {
return mLiftToSilenceEnabled;
}
public void cameraAction() {
new CameraActivationAction(mContext).action();
}
public void chopChopAction() {
new TorchAction(mContext).action();
}
private void loadPreferences(SharedPreferences sharedPreferences) {
mCameraGestureEnabled = sharedPreferences.getBoolean(GESTURE_CAMERA_ACTION_KEY, true);
mChopChopEnabled = sharedPreferences.getBoolean(GESTURE_CHOP_CHOP_KEY, true);
mIrWakeUpEnabled = sharedPreferences.getBoolean(GESTURE_IR_WAKEUP_KEY, false);
mPickUpGestureEnabled = sharedPreferences.getBoolean(GESTURE_PICK_UP_KEY, true);
mIrSilencerEnabled = sharedPreferences.getBoolean(GESTURE_IR_SILENCER_KEY, false);
mFlipToMuteEnabled = sharedPreferences.getBoolean(GESTURE_FLIP_TO_MUTE_KEY, false);
mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
boolean updated = true;
if (GESTURE_CAMERA_ACTION_KEY.equals(key)) {
mCameraGestureEnabled = sharedPreferences.getBoolean(GESTURE_CAMERA_ACTION_KEY, true);
} else if (GESTURE_CHOP_CHOP_KEY.equals(key)) {
mChopChopEnabled = sharedPreferences.getBoolean(GESTURE_CHOP_CHOP_KEY, true);
} else if (GESTURE_IR_WAKEUP_KEY.equals(key)) {
mIrWakeUpEnabled = sharedPreferences.getBoolean(GESTURE_IR_WAKEUP_KEY, false);
} else if (GESTURE_PICK_UP_KEY.equals(key)) {
mPickUpGestureEnabled = sharedPreferences.getBoolean(GESTURE_PICK_UP_KEY, true);
} else if (GESTURE_IR_SILENCER_KEY.equals(key)) {
mIrSilencerEnabled = sharedPreferences.getBoolean(GESTURE_IR_SILENCER_KEY, false);
} else if (GESTURE_FLIP_TO_MUTE_KEY.equals(key)) {
mFlipToMuteEnabled = sharedPreferences.getBoolean(GESTURE_FLIP_TO_MUTE_KEY, false);
} else if (GESTURE_LIFT_TO_SILENCE_KEY.equals(key)) {
mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false);
} else if (Constants.FP_HOME_KEY.equals(key) || Constants.FP_HAPTIC_KEY.equals(key) || Constants.FP_HOME_KEY_OFF.equals(key) || Constants.FP_HAPTIC_SCREENOFF_KEY.equals(key) || Constants.FP_KEYS.equals(key) || Constants.FP_KEY_DBLTAP.equals(key) || Constants.FP_KEY_HOLD.equals(key) || Constants.FP_KEY_LEFT.equals(key) || Constants.FP_KEY_RIGHT.equals(key)
|| Constants.FP_KEYS_OFF.equals(key) || Constants.FP_KEY_DBLTAP_OFF.equals(key) || Constants.FP_KEY_HOLD_OFF.equals(key) || Constants.FP_KEY_LEFT_OFF.equals(key) || Constants.FP_KEY_RIGHT_OFF.equals(key)) {
Constants.writePreference(mContext, key);
updated = false;
} else {
updated = false;
}
if (updated) {
mUpdatedStateNotifier.updateState();
}
}
}
@@ -0,0 +1,22 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
public interface SensorAction {
void action();
}
@@ -0,0 +1,105 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import java.util.List;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class SensorHelper {
private static final String TAG = "MotoActions";
private static final int SENSOR_TYPE_MMI_CAMERA_ACTIVATION = 65540;
private static final int SENSOR_TYPE_MMI_CHOP_CHOP = 65546;
private static final int SENSOR_TYPE_MMI_FLAT_UP = 65537;
private static final int SENSOR_TYPE_MMI_FLAT_DOWN = 65538;
private static final int SENSOR_TYPE_MMI_STOW = 65539;
private static final int SENSOR_TYPE_MMI_GLANCE = 65548;
private static final int BATCH_LATENCY_IN_MS = 100;
private final Context mContext;
private final SensorManager mSensorManager;
public SensorHelper(Context context) {
mContext = context;
mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
dumpSensorsList();
}
private void dumpSensorsList() {
try {
FileOutputStream out = mContext.openFileOutput("sensors.txt", Context.MODE_PRIVATE);
OutputStreamWriter writer = new OutputStreamWriter(out);
List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensorList) {
writer.write("sensor " + sensor.getType() + " = " + sensor.getName()
+ " max batch: " + sensor.getFifoMaxEventCount() + " isWakeUp: " + sensor.isWakeUpSensor() + "\n");
}
writer.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public Sensor getCameraActivationSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_CAMERA_ACTIVATION, true);
}
public Sensor getChopChopSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_CHOP_CHOP, true);
}
public Sensor getFlatUpSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_FLAT_UP, true);
}
public Sensor getFlatDownSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_FLAT_DOWN, true);
}
public Sensor getGlanceSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_GLANCE, true);
}
public Sensor getProximitySensor() {
return mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY, true);
}
public Sensor getStowSensor() {
return mSensorManager.getDefaultSensor(SENSOR_TYPE_MMI_STOW, true);
}
public void registerListener(Sensor sensor, SensorEventListener listener) {
if (!mSensorManager.registerListener(listener, sensor,
SensorManager.SENSOR_DELAY_NORMAL, BATCH_LATENCY_IN_MS * 1000)) {
throw new RuntimeException("Failed to registerListener for sensor " + sensor);
}
}
public void unregisterListener(SensorEventListener listener) {
mSensorManager.unregisterListener(listener);
}
}
@@ -0,0 +1,66 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions;
import android.content.Intent;
import android.os.Binder;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
public class ServiceWrapper extends android.app.Service {
static final String TAG = "MotoActions-ServiceWrapper";
private final IBinder mBinder = new LocalBinder();
private MotoActionsService mMotoActionsService;
public interface ServiceCallback {
void sendResults(int resultCode, Bundle b);
}
public class LocalBinder extends Binder {
ServiceWrapper getService() {
// Return this instance of the service so clients can call public
// methods
return ServiceWrapper.this;
}
}
@Override
public void onCreate() {
Log.i(TAG, "onCreate");
super.onCreate();
mMotoActionsService = new MotoActionsService(this);
}
@Override
public IBinder onBind(Intent intent) {
Log.i(TAG, "onBind");
return null;
}
public void setCallback(ServiceCallback callback) {
}
public void start() {
Log.i(TAG, "start");
}
public void stop() {
}
}
@@ -0,0 +1,138 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.app.KeyguardManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.provider.MediaStore;
import com.moto.actions.SensorAction;
import java.util.List;
public class CameraActivationAction implements SensorAction {
private static final String TAG = "MotoActions";
private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500;
private final Context mContext;
private final KeyguardManager mKeyguardManager;
private final PackageManager mPackageManager;
private final PowerManager mPowerManager;
public CameraActivationAction(Context context) {
mContext = context;
mKeyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mPackageManager = context.getPackageManager();
}
@Override
public void action() {
vibrate();
turnScreenOn();
if (mKeyguardManager.isKeyguardLocked()) {
launchSecureCamera();
} else {
launchCamera();
}
}
private void vibrate() {
Vibrator vib = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
if (vib == null) return;
VibrationEffect effect = VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE);
vib.vibrate(effect);
}
private void turnScreenOn() {
String tag = mContext.getPackageName() + ":CameraWakeLock";
WakeLock wl = mPowerManager.newWakeLock(
PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, tag);
wl.acquire(TURN_SCREEN_ON_WAKE_LOCK_MS);
}
private void launchCamera() {
Intent intent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
if (getBestActivityInfo(intent) != null) {
// Only launch if we can succeed, but let the user pick the action
mContext.startActivity(intent);
}
}
private void launchSecureCamera() {
// Keyguard won't allow a picker, try to pick the secure intent in the package
// that would be the one used for a default action of launching the camera
Intent normalIntent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
Intent secureIntent = createIntent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE);
ActivityInfo normalActivity = getBestActivityInfo(normalIntent);
ActivityInfo secureActivity = getBestActivityInfo(secureIntent, normalActivity);
if (secureActivity != null) {
secureIntent.setComponent(componentName(secureActivity));
mContext.startActivity(secureIntent);
}
}
private Intent createIntent(String intentName) {
Intent intent = new Intent(intentName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_FROM_BACKGROUND);
return intent;
}
private ActivityInfo getBestActivityInfo(Intent intent) {
ResolveInfo resolveInfo = mPackageManager.resolveActivity(intent, 0);
if (resolveInfo != null) {
return resolveInfo.activityInfo;
} else {
// If the resolving failed, just find our own best match
return getBestActivityInfo(intent, null);
}
}
private ActivityInfo getBestActivityInfo(Intent intent, ActivityInfo match) {
List <ResolveInfo> activities = mPackageManager.queryIntentActivities(intent, 0);
ActivityInfo best = null;
if (activities.size() > 0) {
best = activities.get(0).activityInfo;
if (match != null) {
String packageName = match.applicationInfo.packageName;
for (int i = activities.size()-1; i >= 0; i--) {
ActivityInfo activityInfo = activities.get(i).activityInfo;
if (packageName.equals(activityInfo.applicationInfo.packageName)) {
best = activityInfo;
}
}
}
}
return best;
}
private ComponentName componentName(ActivityInfo activity) {
return new ComponentName(activity.applicationInfo.packageName, activity.name);
}
}
@@ -0,0 +1,61 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorHelper;
public class CameraActivationSensor implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-CameraSensor";
private final MotoActionsSettings mMotoActionsSettings;
private boolean mIsEnabled;
public CameraActivationSensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper) {
mMotoActionsSettings = motoActionsSettings;
Sensor sensor = sensorHelper.getCameraActivationSensor();
sensorHelper.registerListener(sensor, this);
}
@Override
public synchronized void updateState() {
if (mMotoActionsSettings.isCameraGestureEnabled() && !mIsEnabled) {
Log.d(TAG, "Enabling");
mIsEnabled = true;
} else if (! mMotoActionsSettings.isCameraGestureEnabled() && mIsEnabled) {
Log.d(TAG, "Disabling");
mIsEnabled = false;
}
}
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG, "activate camera");
if (mIsEnabled) mMotoActionsSettings.cameraAction();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
@@ -0,0 +1,86 @@
/*
* Copyright (c) 2015-2016 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorHelper;
public class ChopChopSensor implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-ChopChopSensor";
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final Sensor mSensor;
private final Sensor mProx;
private boolean mIsEnabled;
private boolean mProxIsCovered;
public ChopChopSensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper) {
mMotoActionsSettings = motoActionsSettings;
mSensorHelper = sensorHelper;
mSensor = sensorHelper.getChopChopSensor();
mProx = sensorHelper.getProximitySensor();
}
@Override
public synchronized void updateState() {
if (mMotoActionsSettings.isChopChopGestureEnabled() && !mIsEnabled) {
Log.d(TAG, "Enabling");
mSensorHelper.registerListener(mSensor, this);
mSensorHelper.registerListener(mProx, mProxListener);
mIsEnabled = true;
} else if (! mMotoActionsSettings.isChopChopGestureEnabled() && mIsEnabled) {
Log.d(TAG, "Disabling");
mSensorHelper.unregisterListener(this);
mSensorHelper.unregisterListener(mProxListener);
mIsEnabled = false;
}
}
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG, "chop chop triggered");
if (mProxIsCovered) {
Log.d(TAG, "proximity sensor covered, ignoring chop-chop");
return;
}
mMotoActionsSettings.chopChopAction();
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
private SensorEventListener mProxListener = new SensorEventListener() {
@Override
public synchronized void onSensorChanged(SensorEvent event) {
mProxIsCovered = event.values[0] < mProx.getMaximumRange();
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
};
}
@@ -0,0 +1,219 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* Copyright (C) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import java.util.HashMap;
import java.util.Map;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.Log;
import com.moto.actions.util.FileUtils;
public class Constants {
public static final boolean DEBUG = false;
private static final String TAG = "MotoActions";
// FP gestures
public static final int FP_TAP_SCANCODE = 616;
public static final int FP_HOLD_SCANCODE = 617;
public static final int FP_RIGHT_SCANCODE = 620;
public static final int FP_LEFT_SCANCODE = 621;
public static final int[] sSupportedFPGestures = new int[]{
FP_TAP_SCANCODE,
FP_HOLD_SCANCODE,
FP_RIGHT_SCANCODE,
FP_LEFT_SCANCODE
};
// FP actions
public static final int ACTION_HOME = 100;
public static final int ACTION_POWER = 101;
public static final int ACTION_BACK = 102;
public static final int ACTION_RECENTS = 103;
public static final int ACTION_VOLUME_UP = 104;
public static final int ACTION_VOLUME_DOWN = 105;
public static final int ACTION_VOICE_ASSISTANT = 106;
public static final int ACTION_PLAY_PAUSE = 107;
public static final int ACTION_PREVIOUS_TRACK = 108;
public static final int ACTION_NEXT_TRACK = 109;
public static final int ACTION_FLASHLIGHT = 110;
public static final int ACTION_CAMERA = 111;
public static final int ACTION_SCREENSHOT = 112;
public static final int ACTION_BROWSER = 116;
public static final int ACTION_DIALER = 117;
public static final int ACTION_EMAIL = 118;
public static final int ACTION_MESSAGES = 119;
public static final int ACTION_LAST_APP = 121;
public static final int[] sFPSupportedActions = new int[]{
ACTION_HOME,
ACTION_POWER,
ACTION_BACK,
ACTION_RECENTS,
ACTION_VOLUME_UP,
ACTION_VOLUME_DOWN,
ACTION_VOICE_ASSISTANT,
ACTION_PLAY_PAUSE,
ACTION_PREVIOUS_TRACK,
ACTION_NEXT_TRACK,
ACTION_FLASHLIGHT,
ACTION_CAMERA,
ACTION_SCREENSHOT,
ACTION_LAST_APP
};
public static final int[] sFPSupportedActionsScreenOff = new int[]{
ACTION_POWER,
ACTION_VOLUME_UP,
ACTION_VOLUME_DOWN,
ACTION_PLAY_PAUSE,
ACTION_PREVIOUS_TRACK,
ACTION_NEXT_TRACK,
ACTION_FLASHLIGHT,
ACTION_CAMERA
};
// Swap keys
public static final String FP_HOME_KEY = "fp_home";
public static final String FP_HOME_KEY_OFF = "fp_home_scr_off";
// Swap nodes
public static final String FP_HOME_NODE = "/sys/homebutton/enable";
public static final String FP_HOME_OFF_NODE = "/sys/homebutton/enable_off";
// Haptic node
public static final String FP_HAPTIC_NODE = "/sys/homebutton/haptic";
public static final String FP_HAPTIC_KEY = "fp_haptic";
public static final String FP_HAPTIC_SCREENOFF_NODE = "/sys/homebutton/haptic_off";
public static final String FP_HAPTIC_SCREENOFF_KEY = "fp_haptic_scr_off";
// List of keys
public static final String FP_KEYS = "fp_keys";
public static final String FP_KEY_DBLTAP = "fp_key_dbltap";
public static final String FP_KEY_HOLD = "fp_key_hold";
public static final String FP_KEY_LEFT = "fp_key_left";
public static final String FP_KEY_RIGHT = "fp_key_right";
public static final String FP_KEYS_OFF = "fp_keys_off";
public static final String FP_KEY_DBLTAP_OFF = "fp_key_dbltap_off";
public static final String FP_KEY_HOLD_OFF = "fp_key_hold_off";
public static final String FP_KEY_LEFT_OFF = "fp_key_left_off";
public static final String FP_KEY_RIGHT_OFF = "fp_key_right_off";
// Keys nodes
public static final String FP_KEYS_NODE = "/sys/homebutton/key";
public static final String FP_KEY_DBLTAP_NODE = "/sys/homebutton/key_dbltap";
public static final String FP_KEY_HOLD_NODE = "/sys/homebutton/key_hold";
public static final String FP_KEY_LEFT_NODE = "/sys/homebutton/key_left";
public static final String FP_KEY_RIGHT_NODE = "/sys/homebutton/key_right";
public static final String FP_KEYS_SCREENOFF_NODE = "/sys/homebutton/key_screenoff";
public static final String FP_KEY_SCREENOFF_DBLTAP_NODE = "/sys/homebutton/key_screenoff_dbltap";
public static final String FP_KEY_SCREENOFF_HOLD_NODE = "/sys/homebutton/key_screenoff_hold";
public static final String FP_KEY_SCREENOFF_LEFT_NODE = "/sys/homebutton/key_screenoff_left";
public static final String FP_KEY_SCREENOFF_RIGHT_NODE = "/sys/homebutton/key_screenoff_right";
// Screen off gestures haptic
public static final String KEY_GESTURE_ENABLE_HAPTIC_FEEDBACK = "screen_off_gesture_haptic_feedback";
// Holds <preference_key> -> <proc_node> mapping
public static final Map<String, String> sBooleanNodePreferenceMap = new HashMap<>();
// Holds <preference_key> -> <default_values> mapping
public static final Map<String, Object> sNodeDefaultMap = new HashMap<>();
public static final String[] sPrefKeys = {
FP_HOME_KEY,
FP_HOME_KEY_OFF,
FP_HAPTIC_KEY,
FP_HAPTIC_SCREENOFF_KEY,
FP_KEYS,
FP_KEY_DBLTAP,
FP_KEY_HOLD,
FP_KEY_RIGHT,
FP_KEY_LEFT,
FP_KEYS_OFF,
FP_KEY_DBLTAP_OFF,
FP_KEY_HOLD_OFF,
FP_KEY_RIGHT_OFF,
FP_KEY_LEFT_OFF,
FP_HOME_KEY_OFF,
};
static {
sBooleanNodePreferenceMap.put(FP_HOME_KEY, FP_HOME_NODE);
sBooleanNodePreferenceMap.put(FP_HOME_KEY_OFF, FP_HOME_OFF_NODE);
sBooleanNodePreferenceMap.put(FP_HAPTIC_KEY, FP_HAPTIC_NODE);
sBooleanNodePreferenceMap.put(FP_HAPTIC_SCREENOFF_KEY, FP_HAPTIC_SCREENOFF_NODE);
sBooleanNodePreferenceMap.put(FP_KEYS, FP_KEYS_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_DBLTAP, FP_KEY_DBLTAP_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_HOLD, FP_KEY_HOLD_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_LEFT, FP_KEY_LEFT_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_RIGHT, FP_KEY_RIGHT_NODE);
sBooleanNodePreferenceMap.put(FP_KEYS_OFF, FP_KEYS_SCREENOFF_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_DBLTAP_OFF, FP_KEY_SCREENOFF_DBLTAP_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_HOLD_OFF, FP_KEY_SCREENOFF_HOLD_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_LEFT_OFF, FP_KEY_SCREENOFF_LEFT_NODE);
sBooleanNodePreferenceMap.put(FP_KEY_RIGHT_OFF, FP_KEY_SCREENOFF_RIGHT_NODE);
sNodeDefaultMap.put(FP_HOME_KEY, false);
sNodeDefaultMap.put(FP_HOME_KEY_OFF, false);
sNodeDefaultMap.put(FP_HAPTIC_KEY, false);
sNodeDefaultMap.put(FP_HAPTIC_SCREENOFF_KEY, false);
sNodeDefaultMap.put(FP_KEYS, "0");
sNodeDefaultMap.put(FP_KEY_DBLTAP, "0");
sNodeDefaultMap.put(FP_KEY_HOLD, "0");
sNodeDefaultMap.put(FP_KEY_LEFT, "0");
sNodeDefaultMap.put(FP_KEY_RIGHT, "0");
sNodeDefaultMap.put(FP_KEYS_OFF, "0");
sNodeDefaultMap.put(FP_KEY_DBLTAP_OFF, "0");
sNodeDefaultMap.put(FP_KEY_HOLD_OFF, "0");
sNodeDefaultMap.put(FP_KEY_LEFT_OFF, "0");
sNodeDefaultMap.put(FP_KEY_RIGHT_OFF, "0");
}
public static boolean isPreferenceEnabled(Context context, String key) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getBoolean(key, (Boolean) sNodeDefaultMap.get(key));
}
public static String GetPreference(Context context, String key) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, (String) sNodeDefaultMap.get(key));
}
public static void writePreference(Context context, String pref) {
String value = "1";
if (!pref.equals(FP_KEYS) && !pref.equals(FP_KEY_DBLTAP) && !pref.equals(FP_KEY_HOLD) && !pref.equals(FP_KEY_LEFT) && !pref.equals(FP_KEY_RIGHT) &&
!pref.equals(FP_KEYS_OFF) && !pref.equals(FP_KEY_DBLTAP_OFF) && !pref.equals(FP_KEY_HOLD_OFF) && !pref.equals(FP_KEY_LEFT_OFF) && !pref.equals(FP_KEY_RIGHT_OFF))
value = isPreferenceEnabled(context, pref) ? "1" : "0";
else
value = GetPreference(context, pref);
String node = sBooleanNodePreferenceMap.get(pref);
if (!FileUtils.writeLine(node, value)) {
Log.w(TAG, "Write " + value + " to node " + node +
"failed while restoring saved preference values");
}
}
}
@@ -0,0 +1,146 @@
/*
* Copyright (c) 2016 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorHelper;
public class FlipToMute implements UpdatedStateNotifier {
private static final String TAG = "MotoActions-FlipToMute";
private final NotificationManager mNotificationManager;
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final Sensor mFlatDown;
private final Sensor mStow;
private boolean canVibrate = false;
private boolean mIsEnabled;
private boolean mIsFlatDown;
private boolean mIsStowed;
private int mFilter;
private Context mContext;
private Receiver mReceiver;
public FlipToMute(MotoActionsSettings motoActionsSettings, Context context,
SensorHelper sensorHelper) {
mMotoActionsSettings = motoActionsSettings;
mContext = context;
mSensorHelper = sensorHelper;
mFlatDown = sensorHelper.getFlatDownSensor();
mStow = sensorHelper.getStowSensor();
mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (mNotificationManager != null) {
mFilter = mNotificationManager.getCurrentInterruptionFilter();
}
mReceiver = new Receiver();
}
@Override
public void updateState() {
if (mMotoActionsSettings.isFlipToMuteEnabled() && !mIsEnabled) {
Log.d(TAG, "Enabling");
mSensorHelper.registerListener(mFlatDown, mFlatDownListener);
mSensorHelper.registerListener(mStow, mStowListener);
mContext.registerReceiver(mReceiver,
new IntentFilter(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED));
mIsEnabled = true;
} else if (!mMotoActionsSettings.isFlipToMuteEnabled() && mIsEnabled) {
Log.d(TAG, "Disabling");
mSensorHelper.unregisterListener(mFlatDownListener);
mSensorHelper.unregisterListener(mStowListener);
mContext.unregisterReceiver(mReceiver);
mIsEnabled = false;
}
}
private SensorEventListener mFlatDownListener = new SensorEventListener() {
@Override
public synchronized void onSensorChanged(SensorEvent event) {
mIsFlatDown = (event.values[0] != 0);
sensorChange();
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
};
private SensorEventListener mStowListener = new SensorEventListener() {
@Override
public synchronized void onSensorChanged(SensorEvent event) {
mIsStowed = (event.values[0] != 0);
sensorChange();
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
};
private void sensorChange() {
Log.d(TAG, "event: " + mIsFlatDown + " mIsStowed=" + mIsStowed);
if (mIsFlatDown && mIsStowed) {
vibrate();
canVibrate = true;
mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);
Log.d(TAG, "Interrupt filter: Allow priority");
} else if (!mIsFlatDown) {
if (canVibrate) {
vibrate();
canVibrate = false;
}
mNotificationManager.setInterruptionFilter(mFilter);
Log.d(TAG, "Interrupt filter: Restore");
}
}
private void vibrate() {
Vibrator vib = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
if (vib == null) return;
VibrationEffect effect = VibrationEffect.createOneShot(250, VibrationEffect.DEFAULT_AMPLITUDE);
vib.vibrate(effect);
}
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (!mIsFlatDown && !mIsStowed) {
if (mNotificationManager == null) return;
mFilter = mNotificationManager.getCurrentInterruptionFilter();
Log.d(TAG, "Interrupt filter: Backup");
}
}
}
}
@@ -0,0 +1,109 @@
/*
* Copyright (c) 2016 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.telephony.PhoneStateListener;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorHelper;
public class LiftToSilence extends PhoneStateListener implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-LiftToSilence";
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final Sensor mFlatUpSensor;
private final Sensor mStowSensor;
private final TelecomManager mTelecomManager;
private final TelephonyManager mTelephonyManager;
private boolean mIsRinging;
private boolean mIsStowed;
private boolean mLastFlatUp;
public LiftToSilence(MotoActionsSettings motoActionsSettings, Context context,
SensorHelper sensorHelper) {
mMotoActionsSettings = motoActionsSettings;
mSensorHelper = sensorHelper;
mFlatUpSensor = sensorHelper.getFlatUpSensor();
mStowSensor = sensorHelper.getStowSensor();
mTelecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
}
@Override
public void updateState() {
if (mMotoActionsSettings.isLiftToSilenceEnabled()) {
mTelephonyManager.listen(this, LISTEN_CALL_STATE);
} else {
mTelephonyManager.listen(this, 0);
}
}
@Override
public synchronized void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING && !mIsRinging) {
Log.d(TAG, "Ringing started");
mSensorHelper.registerListener(mFlatUpSensor, this);
mSensorHelper.registerListener(mStowSensor, mStowListener);
mIsRinging = true;
} else if (state != TelephonyManager.CALL_STATE_RINGING && mIsRinging) {
Log.d(TAG, "Ringing stopped");
mSensorHelper.unregisterListener(this);
mSensorHelper.unregisterListener(mStowListener);
mIsRinging = false;
}
}
@Override
public synchronized void onSensorChanged(SensorEvent event) {
boolean thisFlatUp = (event.values[0] != 0);
Log.d(TAG, "event: " + thisFlatUp + " mLastFlatUp=" + mLastFlatUp + " mIsStowed=" +
mIsStowed);
if (mLastFlatUp && !thisFlatUp && !mIsStowed) {
mTelecomManager.silenceRinger();
}
mLastFlatUp = thisFlatUp;
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
private SensorEventListener mStowListener = new SensorEventListener() {
@Override
public synchronized void onSensorChanged(SensorEvent event) {
mIsStowed = (event.values[0] != 0);
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
};
}
@@ -0,0 +1,109 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.telephony.PhoneStateListener;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorHelper;
import static android.telephony.TelephonyManager.*;
public class ProximitySilencer extends PhoneStateListener implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-ProximitySilencer";
private static final int SILENCE_DELAY_MS = 500;
private final TelecomManager mTelecomManager;
private final TelephonyManager mTelephonyManager;
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final Sensor mSensor;
private boolean mIsRinging;
private long mRingStartedMs;
private boolean mCoveredRinging;
public ProximitySilencer(MotoActionsSettings motoActionsSettings, Context context,
SensorHelper sensorHelper) {
mTelecomManager = (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
mMotoActionsSettings = motoActionsSettings;
mSensorHelper = sensorHelper;
mSensor = sensorHelper.getProximitySensor();
mCoveredRinging = false;
mIsRinging = false;
}
@Override
public void updateState() {
if (mMotoActionsSettings.isIrSilencerEnabled()) {
mTelephonyManager.listen(this, LISTEN_CALL_STATE);
} else {
mTelephonyManager.listen(this, 0);
}
}
@Override
public synchronized void onSensorChanged(SensorEvent event) {
boolean isNear = event.values[0] < mSensor.getMaximumRange();
long now = System.currentTimeMillis();
if (isNear){
mCoveredRinging = mIsRinging && (now - mRingStartedMs >= SILENCE_DELAY_MS);
return;
}
if (mIsRinging) {
Log.d(TAG, "event: " + event.values[0] + ", " + " covered " + Boolean.toString(mCoveredRinging));
if (mCoveredRinging) {
Log.d(TAG, "Silencing ringer");
mTelecomManager.silenceRinger();
} else {
Log.d(TAG, "Ignoring silence gesture: " + now + " is too close to " +
mRingStartedMs + ", delay=" + SILENCE_DELAY_MS);
}
mCoveredRinging = false;
}
}
@Override
public synchronized void onCallStateChanged(int state, String incomingNumber) {
if (state == CALL_STATE_RINGING && !mIsRinging) {
Log.d(TAG, "Ringing started");
mSensorHelper.registerListener(mSensor, this);
mIsRinging = true;
mRingStartedMs = System.currentTimeMillis();
} else if (state != CALL_STATE_RINGING && mIsRinging) {
Log.d(TAG, "Ringing stopped");
mSensorHelper.unregisterListener(this);
mIsRinging = false;
}
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
}
@@ -0,0 +1,87 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.support.annotation.NonNull;
import com.moto.actions.SensorAction;
public class TorchAction implements SensorAction {
private static final String TAG = "MotoActions";
private CameraManager mCameraManager;
private final Vibrator mVibrator;
private String mRearCameraId;
private static boolean mTorchEnabled;
public TorchAction(Context mContext) {
mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
mCameraManager.registerTorchCallback(new MyTorchCallback(), null);
mVibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
try {
for (final String cameraId : mCameraManager.getCameraIdList()) {
CameraCharacteristics characteristics =
mCameraManager.getCameraCharacteristics(cameraId);
int cOrientation = characteristics.get(CameraCharacteristics.LENS_FACING);
if (cOrientation == CameraCharacteristics.LENS_FACING_BACK) {
mRearCameraId = cameraId;
break;
}
}
} catch (CameraAccessException e) {
// Noop
}
}
@Override
public void action() {
VibrationEffect vibrationEffect = VibrationEffect.createOneShot(250, VibrationEffect.DEFAULT_AMPLITUDE);
mVibrator.vibrate(vibrationEffect);
if (mRearCameraId != null) {
try {
mCameraManager.setTorchMode(mRearCameraId, !mTorchEnabled);
mTorchEnabled = !mTorchEnabled;
} catch (CameraAccessException e) {
// Noop
}
}
}
private class MyTorchCallback extends CameraManager.TorchCallback {
@Override
public void onTorchModeChanged(@NonNull String cameraId, boolean enabled) {
if (!cameraId.equals(mRearCameraId))
return;
mTorchEnabled = enabled;
}
@Override
public void onTorchModeUnavailable(@NonNull String cameraId) {
if (!cameraId.equals(mRearCameraId))
return;
mTorchEnabled = false;
}
}
}
@@ -0,0 +1,22 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.actions;
public interface UpdatedStateNotifier {
void updateState();
}
@@ -0,0 +1,66 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.doze;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.moto.actions.SensorAction;
public class DozePulseAction implements SensorAction, ScreenStateNotifier {
private static final String TAG = "MotoActions";
private static final int DELAY_BETWEEN_DOZES_IN_MS = 1500;
private final Context mContext;
private long mLastDoze;
public DozePulseAction(Context context) {
mContext = context;
}
@Override
public void screenTurnedOn() {
}
@Override
public void screenTurnedOff() {
mLastDoze = System.currentTimeMillis();
}
public void action() {
if (mayDoze()) {
Log.d(TAG, "Sending doze.pulse intent");
mContext.sendBroadcast(new Intent("com.android.systemui.doze.pulse"));
}
}
private synchronized boolean mayDoze() {
long now = System.currentTimeMillis();
if (now - mLastDoze > DELAY_BETWEEN_DOZES_IN_MS) {
Log.d(TAG, "Allowing doze");
mLastDoze = now;
return true;
} else {
Log.d(TAG, "Denying doze");
return false;
}
}
}
@@ -0,0 +1,76 @@
/*
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.doze;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorAction;
import com.moto.actions.SensorHelper;
public class GlanceSensor implements ScreenStateNotifier {
private static final String TAG = "MotoActions-GlanceSensor";
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final SensorAction mSensorAction;
private final Sensor mSensor;
private boolean mEnabled;
public GlanceSensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper,
SensorAction action) {
mMotoActionsSettings = motoActionsSettings;
mSensorHelper = sensorHelper;
mSensorAction = action;
mSensor = sensorHelper.getGlanceSensor();
}
@Override
public void screenTurnedOn() {
if (mEnabled) {
Log.d(TAG, "Disabling");
mSensorHelper.unregisterListener(mGlanceListener);
mEnabled = false;
}
}
@Override
public void screenTurnedOff() {
if (mMotoActionsSettings.isPickUpEnabled() && !mEnabled) {
Log.d(TAG, "Enabling");
mSensorHelper.registerListener(mSensor, mGlanceListener);
mEnabled = true;
}
}
private SensorEventListener mGlanceListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG, "triggered");
mSensorAction.action();
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
};
}
@@ -0,0 +1,81 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.doze;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.util.Log;
import com.moto.actions.MotoActionsSettings;
import com.moto.actions.SensorAction;
import com.moto.actions.SensorHelper;
public class ProximitySensor implements ScreenStateNotifier, SensorEventListener {
private static final String TAG = "MotoActions-ProximitySensor";
private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final SensorAction mSensorAction;
private final Sensor mSensor;
private boolean mEnabled;
private boolean mSawNear = false;
public ProximitySensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper,
SensorAction action) {
mMotoActionsSettings = motoActionsSettings;
mSensorHelper = sensorHelper;
mSensorAction = action;
mSensor = sensorHelper.getProximitySensor();
}
@Override
public void screenTurnedOn() {
if (mEnabled) {
Log.d(TAG, "Disabling");
mSensorHelper.unregisterListener(this);
mEnabled = false;
}
}
@Override
public void screenTurnedOff() {
if (mMotoActionsSettings.isIrWakeupEnabled() && !mEnabled) {
Log.d(TAG, "Enabling");
mSensorHelper.registerListener(mSensor, this);
mEnabled = true;
}
}
@Override
public void onSensorChanged(SensorEvent event) {
boolean isNear = event.values[0] < mSensor.getMaximumRange();
if (mSawNear && !isNear) {
Log.d(TAG, "wave triggered");
mSensorAction.action();
}
mSawNear = isNear;
}
@Override
public void onAccuracyChanged(Sensor mSensor, int accuracy) {
}
}
@@ -0,0 +1,50 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.doze;
import java.util.List;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import com.moto.actions.actions.Constants;
public class ScreenReceiver extends BroadcastReceiver {
private final ScreenStateNotifier mNotifier;
public ScreenReceiver(Context context, ScreenStateNotifier notifier) {
mNotifier = notifier;
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
context.registerReceiver(this, filter);
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == null) return;
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mNotifier.screenTurnedOff();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
mNotifier.screenTurnedOn();
}
}
}
@@ -0,0 +1,23 @@
/*
* Copyright (c) 2015 The CyanogenMod Project
* Copyright (c) 2017 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.moto.actions.doze;
public interface ScreenStateNotifier {
void screenTurnedOn();
void screenTurnedOff();
}
@@ -0,0 +1,125 @@
/*
* 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.
*/
package com.moto.actions.util;
import android.util.Log;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public final class FileUtils {
private static final String TAG = "FileUtils";
private FileUtils() {
// This class is not supposed to be instantiated
}
/**
* Reads the first line of text from the given file.
* Reference {@link BufferedReader#readLine()} for clarification on what a line is
*
* @return the read line contents, or null on failure
*/
public static String readOneLine(String fileName) {
String line = "0";
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(fileName), 512);
line = reader.readLine();
} catch (FileNotFoundException e) {
Log.w(TAG, "No such file " + fileName + " for reading", e);
} catch (IOException e) {
Log.e(TAG, "Could not read from file " + fileName, e);
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
// Ignored, not much we can do anyway
}
}
return line;
}
/**
* Writes the given value into the given file
*
* @return true on success, false on failure
*/
public static boolean writeLine(String fileName, String value) {
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fileName));
writer.write(value);
} catch (FileNotFoundException e) {
Log.w(TAG, "No such file " + fileName + " for writing", e);
return false;
} catch (IOException e) {
Log.e(TAG, "Could not write to file " + fileName, e);
return false;
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
// Ignored, not much we can do anyway
}
}
return true;
}
/**
* Checks whether the given file exists
*
* @return true if exists, false if not
*/
public static boolean fileExists(String fileName) {
final File file = new File(fileName);
return file.exists();
}
/**
* Checks whether the given file is readable
*
* @return true if readable, false if not
*/
public static boolean isFileReadable(String fileName) {
final File file = new File(fileName);
return file.exists() && file.canRead();
}
/**
* Checks whether the given file is writable
*
* @return true if writable, false if not
*/
public static boolean isFileWritable(String fileName) {
final File file = new File(fileName);
return file.exists() && file.canWrite();
}
}
+21 -24
View File
@@ -1,24 +1,21 @@
Copyright (C) 2020 The PixelExperience Project
The Motorola Moto G (5S) Plus (codenamed _"sanders"_) is a mid-range phone from Motorola.
Motorola Moto G (5S) Plus was announced and released in August 2017.
## Device specifications
| Device | Motorola Moto G (5S) Plus
| -----------: | :----------------------------------------------
| SoC | Qualcomm MSM8953 Snapdragon 625 (14 nm)
| CPU | Octa-core 2.0 GHz Cortex-A53
| GPU | Adreno 506
| Memory | 3GB / 4GB RAM |
| Storage | 32/64 eMMC 5.1
| Battery | Non-removable Li-Po 3000 mAh
| Dimensions | 153.5 x 76.2 x 8 mm
| Display | 1080x1920 pixels, 5.5
|Rear Camera | 13 MP, f/2.0, AF, 13 MP, (depth)
|Front Camera | 8 MP, f/2.0
## Device picture
![Motorola Moto G (5S) Plus](https://brmotorola.vteximg.com.br/arquivos/ids/155684-1000-1000/motorola_g5s_plus_A_01.jpg "Motorola Moto G (5S) Plus")
Copyright (C) 2017-2019 - The LineageOS Project.
Device configuration for Moto G5S Plus (XT1802 XT1803 XT1804 XT1805 XT1806)
===========================================
Basic | Spec Sheet
-------:|:-------------------------
CPU | Octa-core 2.0 GHz Cortex-A53
Chipset | Qualcomm MSM8953 Snapdragon 625
GPU | 650MHz Adreno 506
Memory | 3/4 GB (LPDDR3)
Shipped Android Version | 7.1 (Nougat MR1)
Storage | 32/64GB (eMMC)
MicroSD | Up to 256 GB
Battery | Li-Ion 3000mAh battery (non-removable)
Dimensions | 153.5 x 76.2 x 8 mm
Display | 1080 x 1920 pixels, 5.5" IPS LCD, 16:9 ratio (~401 PPI density)
Rear Camera | 13.0 MP (f/2.0) & 13.0 MP, Dual-LED dual-tone flash
Front Camera | 8.0 MP (f/2.0), LED flash
Release Month | August 2017
![Moto G5S Plus](http://cdn2.gsmarena.com/vv/pics/motorola/motorola-moto-g5s-plus-1.jpg "Moto G5S Plus")
+6 -55
View File
@@ -1,66 +1,17 @@
[
{
"repository": "kernel_motorola_msm8953",
"repository": "AlissonGrizotti/kernel_motorola_msm8953",
"target_path": "kernel/motorola/msm8953",
"branch": "ten"
"branch": "perf+"
},
{
"repository": "device_motorola_msm8953-common",
"target_path": "device/motorola/msm8953-common",
"branch": "ten"
},
{
"remote": "pixel-devices-blobs",
"repository": "vendor_motorola_sanders",
"target_path": "vendor/motorola/sanders",
"branch": "ten"
"branch": "pie"
},
{
"remote": "pixel-devices-blobs",
"repository": "vendor_motorola_msm8953-common",
"target_path": "vendor/motorola/msm8953-common",
"branch": "ten"
},
{
"remote": "lineage",
"repository": "android_system_qcom",
"target_path": "system/qcom",
"branch": "lineage-17.1"
},
{
"repository":"LineageOS/android_vendor_nxp_interfaces_opensource_nfc",
"target_path":"vendor/nxp/opensource/interfaces/nfc",
"branch":"lineage-17.1",
"remote":"github"
},
{
"repository":"LineageOS/android_vendor_nxp_opensource_external_libnfc-nci",
"target_path":"vendor/nxp/opensource/commonsys/external/libnfc-nci",
"branch":"lineage-17.1",
"remote":"github"
},
{
"repository":"LineageOS/android_vendor_nxp_opensource_frameworks",
"target_path":"vendor/nxp/opensource/commonsys/frameworks",
"branch":"lineage-17.1",
"remote":"github"
},
{
"repository":"LineageOS/android_vendor_nxp_opensource_packages_apps_Nfc",
"target_path":"vendor/nxp/opensource/commonsys/packages/apps/Nfc",
"branch":"lineage-17.1",
"remote":"github"
},
{
"repository":"LineageOS/android_vendor_nxp_opensource_halimpl",
"target_path":"vendor/nxp/opensource/pn5xx/halimpl",
"branch":"lineage-17.1-pn5xx",
"remote":"github"
},
{
"repository":"LineageOS/android_vendor_nxp_opensource_hidlimpl",
"target_path":"vendor/nxp/opensource/pn5xx/hidlimpl",
"branch":"lineage-17.1-pn5xx",
"remote":"github"
"repository": "LineageOS/android_packages_resources_devicesettings",
"target_path": "packages/resources/devicesettings",
"branch": "lineage-16.0"
}
]
+25 -11
View File
@@ -1,10 +1,12 @@
# Copyright (C) 2020 The PixelExperience Project
#
# Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# 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,
@@ -12,22 +14,34 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Inherit from sanders device
$(call inherit-product, device/motorola/sanders/device.mk)
# Inherit some common Pixel Experience stuff.
$(call inherit-product, vendor/aosp/config/common_full_phone.mk)
# Inherit from those products.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/product_launched_with_n_mr1.mk)
$(call inherit-product, device/motorola/sanders/device.mk)
$(call inherit-product, vendor/aosp/config/common.mk)
# Pixel Stuffs
TARGET_GAPPS_ARCH := arm64
TARGET_BOOT_ANIMATION_RES := 1080
TARGET_INCLUDE_STOCK_ARCORE := true
## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := sanders
PRODUCT_NAME := aosp_sanders
PRODUCT_BRAND := motorola
PRODUCT_MANUFACTURER := motorola
PRODUCT_NAME := aosp_sanders
PRODUCT_DEVICE := sanders
PRODUCT_MODEL := Moto G (5S) Plus
# Build Fingerprint
PRODUCT_GMS_CLIENTID_BASE := android-motorola
PRODUCT_SYSTEM_PROPERTY_BLACKLIST := ro.product.model
PRODUCT_BUILD_PROP_OVERRIDES += \
PRODUCT_NAME="Moto G (5S) Plus" \
PRIVATE_BUILD_DESC="sanders-user 8.1.0 OPS28.65-36 9fea release-keys"
BUILD_FINGERPRINT := google/walleye/walleye:8.1.0/OPM1.171019.011/4448085:user/release-keys
PRODUCT_ENFORCE_RRO_TARGETS := \
framework-res
@@ -47,6 +47,7 @@
<libhw library="visualizer_hw" uuid="7a8044a0-1a71-11e3-a184-0002a5d5c51b"/>
</effectProxy>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="hw_acc" library="offload_bundle" uuid="7d1580bd-297f-4683-9239-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
<effect name="aec" library="audio_pre_processing" uuid="0f8d0d2a-59e5-45fe-b6e4-248c8a799109"/>
<effect name="ns" library="audio_pre_processing" uuid="1d97bb0b-9e2f-4403-9ae3-58c2554306f8"/>
@@ -1,25 +1,30 @@
global_config {
name Sanders
sonification_pad 20
sonification_pad 21
sonification_prox_timeout_sec 5
force_ring_ramp true
}
ring {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
#attenuation 28,28,25,25,22,22,20,20,20,20,20,20,20,20,20,20
attenuation 35,33,30,28,26,23,21,19,16,14,11,9,7,3,0,0
knee_step 16
}
voice {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
#attenuation 35,35,32,32,29,29,26,26,23,23,20,20,17,17,14,14
attenuation 32,29,29,26,26,23,23,20,20,17,17,14,14,11,11,11
knee_step 16
}
media {
#dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps
#attenuation 38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8
attenuation 35,33,30,28,26,23,21,19,16,14,11,9,7,3,0,0
knee_step 16
}
@@ -1,49 +1,44 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright (C) 2016 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.
-->
<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” -->
<!-- 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
-->
<globalConfiguration speaker_drc_enabled="true"/>
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Earpiece</item>
<item>Telephony Tx</item>
<item>FM Tuner</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>Telephony Rx</item>
<item>FM tuner</item>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY">
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="41000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="deep_buffer" role="source"
flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
@@ -51,13 +46,13 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
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"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,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"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,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"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000"
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,88200,96000,176400,192000"
@@ -79,104 +74,130 @@
</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"/>
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
</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_IN_MONO"/>
</devicePort>
<devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
<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 Out" type="AUDIO_DEVICE_OUT_LINE" role="sink">
</devicePort>
<devicePort tagName="Dock Headset" type="AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET" role="sink">
<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="HDMI Out" type="AUDIO_DEVICE_OUT_HDMI" role="sink">
<devicePort tagName="BT SCO All" type="AUDIO_DEVICE_OUT_ALL_SCO" 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="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<devicePort tagName="FM" type="AUDIO_DEVICE_OUT_FM" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
<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="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="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">
</devicePort>
<devicePort tagName="FM tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</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,compressed_offload"/>
sources="primary output,deep_buffer"/>
<route type="mix" sink="Speaker"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="Wired Headset"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="Line Out"
<route type="mix" sink="FM"
sources="primary output"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="Dock Headset"
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer,compressed_offload"/>
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer,compressed_offload"/>
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO Car Kit"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="HDMI Out"
sources="primary output,deep_buffer,compressed_offload"/>
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO All"
sources="primary output,deep_buffer"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<route type="mix" sink="primary input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM tuner"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM tuner"/>
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="Proxy"
sources="primary output,deep_buffer,compressed_offload"/>
</routes>
</module>
<!-- A2dp Input Audio HAL -->
<xi:include href="a2dp_in_audio_policy_configuration.xml"/>
<!-- Bluetooth Audio HAL -->
<xi:include href="bluetooth_audio_policy_configuration.xml"/>
<!-- A2dp Audio HAL -->
<xi:include href="/vendor/etc/a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="usb_audio_policy_configuration.xml"/>
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="r_submix_audio_policy_configuration.xml"/>
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="audio_policy_volumes.xml"/>
<xi:include href="default_volume_tables.xml"/>
<!-- End of Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
</audioPolicyConfiguration>
+144
View File
@@ -0,0 +1,144 @@
#ANC_TEST_P_PATH_MIC_STEREO Capture
acdb_dev_id:85
!Capture
Txdevice:0
enable
TX7 HPF Switch:0
TX8 HPF Switch:0
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
SLIM TX7 MUX:DEC9
DEC9 MUX:DMIC4
SLIM TX8 MUX:DEC10
DEC10 MUX:DMIC3
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
SLIM TX7 MUX:ZERO
SLIM TX8 MUX:ZERO
DEC10 MUX:ZERO
DEC9 MUX:ZERO
TX7 HPF Switch:0
TX8 HPF Switch:0
#ANC_TEST_S_PATH_MIC_STEREO Capture
acdb_dev_id:88
!Capture
Txdevice:0
enable
TX7 HPF Switch:0
TX8 HPF Switch:0
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
SLIM TX7 MUX:DEC8
DEC7 MUX:ANC2_FB
ANC2 MUX:DMIC3
SLIM TX8 MUX:DEC7
DEC8 MUX:ANC1_FB
ANC1 MUX:DMIC3
ANC1 FB MUX:EAR_HPH_L
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
SLIM TX7 MUX:ZERO
SLIM TX8 MUX:ZERO
DEC7 MUX:ZERO
ANC2 MUX:ZERO
ANC1 MUX:ZERO
DEC8 MUX:ZERO
ANC1 FB MUX:ZERO
TX7 HPF Switch:0
TX8 HPF Switch:0
#ANC_TEST_E_PATH_MIC_STEREO Capture
acdb_dev_id:91
!Capture
Txdevice:0
enable
TX7 HPF Switch:0
TX8 HPF Switch:0
AIF1_CAP Mixer SLIM TX7:1
AIF1_CAP Mixer SLIM TX8:1
SLIM TX7 MUX:DEC8
DEC7 MUX:ANC2_FB
ANC2 MUX:DMIC4
ANC1 MUX:DMIC4
SLIM TX8 MUX:DEC7
DEC8 MUX:ANC1_FB
ANC1 FB MUX:EAR_HPH_L
SLIM_0_TX Channels:Two
MultiMedia1 Mixer SLIM_0_TX:1
disable
MultiMedia1 Mixer SLIM_0_TX:0
AIF1_CAP Mixer SLIM TX7:0
AIF1_CAP Mixer SLIM TX8:0
SLIM TX7 MUX:ZERO
SLIM TX8 MUX:ZERO
DEC7 MUX:ZERO
ANC2 MUX:ZERO
DEC10 MUX:ZERO
ANC1 FB MUX:ZERO
TX7 HPF Switch:0
TX8 HPF Switch:0
#ANC_TEST_S_PATH_HANDSET_SPKR_ANC_MONO
acdb_dev_id:86
!Playback
Rxdevice:0
enable
ANC Function:ON
SLIM RX1 MUX:AIF1_PB
SLIM_0_RX Channels:One
RX1 MIX1 INP1:RX1
CLASS_H_DSM MUX:DSM_HPHL_RX1
RX1 Digital Volume:87
DAC1 Switch:1
ANC Slot:7
SLIMBUS_0_RX Audio Mixer MultiMedia1:1
disable
SLIMBUS_0_RX Audio Mixer MultiMedia1:0
ANC Slot:0
SLIM RX1 MUX:ZERO
RX1 MIX1 INP1:ZERO
RX1 Digital Volume:0
DAC1 Switch:0
ANC Function:OFF
#ANC_TEST_E_PATH_HANDSET_SPKR_ANC_MONO
acdb_dev_id:89
!Playback
Rxdevice:0
enable
ANC Function:ON
SLIM RX1 MUX:AIF1_PB
SLIM_0_RX Channels:One
RX1 MIX1 INP1:RX1
CLASS_H_DSM MUX:DSM_HPHL_RX1
RX1 Digital Volume:87
DAC1 Switch:1
ANC Slot:8
SLIMBUS_0_RX Audio Mixer MultiMedia1:1
disable
SLIMBUS_0_RX Audio Mixer MultiMedia1:0
ANC Slot:0
SLIM RX1 MUX:ZERO
RX1 MIX1 INP1:ZERO
RX1 Digital Volume:0
DAC1 Switch:0
ANC Function:OFF
@@ -23,9 +23,9 @@
<ctl name="RX HPH Mode" value="NORMAL" />
<ctl name="COMP0 RX1" value="0" />
<ctl name="COMP0 RX2" value="0" />
<ctl name="RX1 Digital Volume" value="84" />
<ctl name="RX2 Digital Volume" value="84" />
<ctl name="RX3 Digital Volume" value="84" />
<ctl name="RX1 Digital Volume" value="88" />
<ctl name="RX2 Digital Volume" value="88" />
<ctl name="RX3 Digital Volume" value="88" />
<ctl name="IIR1 INP1 MUX" value="ZERO" />
<ctl name="IIR1 INP1 Volume" value="84" />
<ctl name="IIR1 INP2 Volume" value="84" />
@@ -839,7 +839,7 @@
<path name="handset">
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RDAC2 MUX" value="RX1" />
<ctl name="RX1 Digital Volume" value="84" />
<ctl name="RX1 Digital Volume" value="87" />
<ctl name="EAR PA Gain" value="POS_6_DB" />
<ctl name="EAR_S" value="Switch" />
<ctl name="OSPL Rx" value="Disable" />
@@ -852,8 +852,8 @@
<path name="headphones">
<ctl name="MI2S_RX Channels" value="Two" />
<ctl name="RX1 Digital Volume" value="77" />
<ctl name="RX2 Digital Volume" value="77" />
<ctl name="RX1 Digital Volume" value="86" />
<ctl name="RX2 Digital Volume" value="86" />
<ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="RX HPH Mode" value="HD2" />
+83
View File
@@ -0,0 +1,83 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2014, 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. -->
<mixer>
<!-- These are the initial mixer settings -->
<ctl name="LSM1 MUX" value="None" />
<ctl name="LSM2 MUX" value="None" />
<ctl name="LSM3 MUX" value="None" />
<ctl name="LSM4 MUX" value="None" />
<ctl name="LSM5 MUX" value="None" />
<ctl name="LSM6 MUX" value="None" />
<ctl name="LSM7 MUX" value="None" />
<ctl name="LSM8 MUX" value="None" />
<ctl name="TERT_MI2S_TX LSM Function" value="None" />
<path name="listen-voice-wakeup-1">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-2">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM2 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-3">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM3 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-4">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM4 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-5">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM5 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-6">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM6 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-7">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM7 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-voice-wakeup-8">
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
<ctl name="LSM8 MUX" value="TERT_MI2S_TX" />
</path>
<path name="listen-ape-handset-mic">
<!-- this is to avoid codec mute when device is not enabled first -->
<ctl name="LOOPBACK Mode" value="ENABLE" />
<!-- actual device ebable sequence -->
<ctl name="DEC1 MUX" value="ADC2" />
<ctl name="ADC2 MUX" value="INP3" />
</path>
</mixer>
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2013-2014, 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. -->
<sound_trigger_platform_info>
<device name="DEVICE_HANDSET_APE_ACDB_ID" value="130" />
<device name="DEVICE_HANDSET_CPE_ACDB_ID" value="128" />
<ctrl name="execution_type" value="APE" /> <!-- value: "CPE" "APE" -->
<ctrl name="max_cpe_sessions" value="1" />
<ctrl name="max_ape_sessions" value="5" />
<ctrl name="enable_failure_detection" value="false" />
<ctrl name="rx_concurrency_disabled" value="true" />
<ctrl name="rx_conc_max_st_ses" value="1" />
<!-- vendor_uuid for a soundmodel. More than one vendor_uuid tags can be -->
<!-- listed in sequence, the below vendor uuid is reserved for Qualcomm -->
<!-- module. ISV must use their own unique vendor uuid. app_type, -->
<!-- module_id, param_id must match to the calibration database -->
<!-- If ISV vendor_uuid is present, execution_type will be forced to APE -->
<vendor_uuid value="68ab2d40-e860-11e3-95ef-0002a5d5c51b" app_type="2" library="libsmwrapper.so">
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT transfer mode -->
<capture_keyword format="PCM_packet" transfer_mode="RT" kw_duration="2000" />
<param_type name="load_sound_model" module_id="0x00012C0D" param_id="0x00012C14"/>
<param_type name="unload_sound_model" module_id="0x00012C0D" param_id="0x00012C15"/>
<param_type name="confidence_levels" module_id="0x00012C0D" param_id="0x00012C07"/>
<param_type name="operation_mode" module_id="0x00012C0D" param_id="0x00012C02"/>
<ctrl name="max_cpe_phrases" value="6" />
<ctrl name="max_cpe_users" value="3" />
<ctrl name="max_ape_phrases" value="10" />
<ctrl name="max_ape_users" value="10" />
<ctrl name="client_capture_read_delay" value="2000" /> <!-- in milli seconds -->
</vendor_uuid>
</sound_trigger_platform_info>
+30
View File
@@ -0,0 +1,30 @@
/*
* 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.
*/
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Moto G5S Plus"
#define BLUETOOTH_QTI_SW TRUE
#define MAX_ACL_CONNECTIONS 16
#define MAX_L2CAP_CHANNELS 16
#define BLE_VND_INCLUDED TRUE
#define BT_CLEAN_TURN_ON_DISABLED TRUE
#define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED TRUE
#define BTM_SCO_ENHANCED_SYNC_ENABLED FALSE
#undef PROPERTY_VALUE_MAX
#endif
+173
View File
@@ -0,0 +1,173 @@
#
# Copyright (C) 2017 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[AID_VENDOR_QCOM_DIAG]
value:2950
[AID_VENDOR_RFS]
value:2951
[AID_VENDOR_RFS_SHARED]
value:2952
[vendor/bin/wcnss_filter]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: BLOCK_SUSPEND
[vendor/bin/cnss-daemon]
mode: 0755
user: AID_BLUETOOTH
group: AID_BLUETOOTH
caps: NET_BIND_SERVICE
[vendor/bin/imsdatadaemon]
user: AID_SYSTEM
group: AID_SYSTEM
mode: 0755
caps: NET_BIND_SERVICE
[vendor/bin/ims_rtp_daemon]
user: AID_SYSTEM
group: AID_RADIO
mode: 0755
caps: NET_BIND_SERVICE
[vendor/bin/pm-service]
user: AID_SYSTEM
group: AID_SYSTEM
mode: 0755
caps: NET_BIND_SERVICE
[vendor/bin/cnd]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN
[vendor/bin/slim_daemon]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE
[vendor/bin/loc_launcher]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: SETUID SETGID
[vendor/bin/xtwifi-client]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: NET_BIND_SERVICE BLOCK_SUSPEND
[vendor/bin/sensors.qti]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/mm-qcamera-daemon]
mode: 0700
user: AID_CAMERA
group: AID_SHELL
caps: SYS_NICE
[firmware/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[persist/]
mode: 0771
user: AID_SYSTEM
group: AID_SYSTEM
caps: 0
[AID_VENDOR_MOT_ACCY]
value: 5000
[AID_VENDOR_MOT_PWRIC]
value: 5001
[AID_VENDOR_MOT_USB]
value: 5002
[AID_VENDOR_MOT_DRM]
value: 5003
[AID_VENDOR_MOT_TCMD]
value: 5004
[AID_VENDOR_MOT_SEC_RTC]
value: 5005
[AID_VENDOR_MOT_TOMBSTONE]
value: 5006
[AID_VENDOR_MOT_TPAPI]
value: 5007
[AID_VENDOR_MOT_SECCLKD]
value: 5008
[AID_VENDOR_MOT_WHISPER]
value: 5009
[AID_VENDOR_MOT_CAIF]
value: 5010
[AID_VENDOR_MOT_DLNA]
value: 5011
[AID_VENDOR_MOT_ATVC]
value: 5012
[AID_VENDOR_MOT_DBVC]
value: 5014
[AID_VENDOR_FINGERP]
value: 5015
[AID_VENDOR_MOT_ESDFS]
value: 5016
[AID_VENDOR_MOT_ESDFS]
value: 5016
[AID_VENDOR_MOT_ESDFS]
value: 5016
[AID_VENDOR_POWER]
value: 5017
[AID_VENDOR_ITSON]
value: 5018
[AID_VENDOR_MOT_DTV]
value: 5019
[AID_VENDOR_MOT_MOD]
value: 5020
[AID_VENDOR_MOT_SHARED]
value: 5323
[AID_VENDOR_MOT_COMMON]
value: 5341
+11 -11
View File
@@ -1,15 +1,15 @@
#!/sbin/sh
remove_dtv() {
rm /system/system/etc/permissions/com.motorola.hardware.dtv.xml
rm /system/system/etc/permissions/mot_dtv_permissions.xml
rm /system/system/lib*/libdtvtuner.so
rm /system/system/lib*/libdtvhal.so
rm /vendor/lib/modules/isdbt.ko
rm -r /system/system/priv-app/DTVPlayer
rm -r /system/system/priv-app/DTVService
}
sku=`getprop ro.boot.hardware.sku`
if [ $(getprop ro.boot.hardware.sku) != "XT1802" ]; then
remove_dtv
if [ "$sku" = "XT1806" ]; then
# XT1806 doesn't have NFC chip
rm /vendor/etc/permissions/android.hardware.nfc.xml
rm /vendor/etc/permissions/android.hardware.nfc.hce.xml
rm /vendor/etc/permissions/android.hardware.nfc.hcef.xml
rm /vendor/etc/permissions/com.android.nfc_extras.xml
rm -r /system/app/NfcNci
else
# Only XT1806 variant got a compass
rm /vendor/etc/permissions/android.hardware.sensor.compass.xml
fi
+77
View File
@@ -0,0 +1,77 @@
<compatibility-matrix version="1.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="native" optional="false">
<name>netutils-wrapper</name>
<!--
netutils-wrapper should only list a single version x.0.
netutils-wrapper next version has less functionalities than
previous versions, so unlike a HAL, netutils-wrapper are not
backwards compatible. Hence the major version must be bumped for
each update.
Vendor code should switch to (x+1).0 completely before when the
requirement is updated here.
-->
<version>1.0</version>
</hal>
<vndk>
<version>0.0.0</version>
</vndk>
<avb>
<vbmeta-version>0.0</vbmeta-version>
</avb>
</compatibility-matrix>
+14
View File
@@ -0,0 +1,14 @@
<ExternalCamera>
<Provider>
<!-- Internal video devices to be ignored by external camera HAL -->
<ignore>
<id>0</id>
<id>1</id>
<id>2</id>
<id>3</id>
<id>38</id>
<id>39</id>
<id>100</id>
</ignore>
</Provider>
</ExternalCamera>
+539
View File
@@ -0,0 +1,539 @@
<manifest version="1.0" type="device" target-level="1">
<hal format="hidl">
<name>android.hardware.audio</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IDevicesFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.audio.effect</name>
<transport>hwbinder</transport>
<version>4.0</version>
<interface>
<name>IEffectsFactory</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.biometrics.fingerprint</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IBiometricsFingerprint</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.bluetooth</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothHci</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.camera.provider</name>
<transport>hwbinder</transport>
<version>2.4</version>
<interface>
<name>ICameraProvider</name>
<instance>legacy/0</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.cas</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMediaCasService</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.configstore</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ISurfaceFlingerConfigs</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ICryptoFactory</name>
<instance>widevine</instance>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>widevine</instance>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.gatekeeper</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IGatekeeper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.gnss</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
</interface>
<fqname>@1.0::IGnss/gnss_vendor</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IAllocator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.composer</name>
<transport>hwbinder</transport>
<version>2.1</version>
<interface>
<name>IComposer</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.mapper</name>
<transport arch="32+64">passthrough</transport>
<version>2.0</version>
<interface>
<name>IMapper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.keymaster</name>
<transport>hwbinder</transport>
<version>3.0</version>
<interface>
<name>IKeymasterDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.light</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ILight</name>
<instance>default</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.1</version>
<interface>
<name>INfc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.power</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IPower</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
<interface>
<name>ISap</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.sensors</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensors</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.thermal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IThermal</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.usb</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUsb</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.vibrator</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.wifi</name>
<transport>hwbinder</transport>
<version>1.2</version>
<interface>
<name>IWifi</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.wifi.hostapd</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHostapd</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.wifi.supplicant</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ISupplicant</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.fingerprints.extension</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IFingerprintNavigation</name>
<instance>default</instance>
</interface>
<interface>
<name>IFingerprintSensorTest</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.imscmservice</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IImsCmService</name>
<instance>qti.ims.connectionmanagerservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.quicinc.cne.api</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IApiService</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.quicinc.cne.server</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IServer</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.quicinc.cne.server</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>IServer</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.display.color</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDisplayColor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.display.config</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IDisplayConfig</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.display.postproc</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDisplayPostproc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.esepowermanager</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IEsePowerManager</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.gnss</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ILocHidlGnss</name>
<instance>gnss_vendor</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.alarm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAlarm</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.perf</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IPerf</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.qdutils_disp</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQdutilsDisp</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.am</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQcRilAudio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.atcmdfwd</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IAtCmdFwd</name>
<instance>AtCmdFwdService</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.config</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IConfig</name>
<instance>radioconfig0</instance>
<instance>radioconfig1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.ims</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IImsRadio</name>
<instance>imsradio0</instance>
<instance>imsradio1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.lpa</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUimLpa</name>
<instance>UimLpa0</instance>
<instance>UimLpa1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qcrilhook</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQtiOemHook</name>
<instance>oemhook0</instance>
<instance>oemhook1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.qtiradio</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IQtiRadio</name>
<instance>slot1</instance>
<instance>slot2</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.uim</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUim</name>
<instance>Uim0</instance>
<instance>Uim1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.radio.uim_remote_client</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IUimRemoteServiceClient</name>
<instance>uimRemoteClient0</instance>
<instance>uimRemoteClient1</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.sensorscalibrate</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ISensorsCalibrate</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wifi.hostapd</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHostapdVendor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.hardware.wifi.supplicant</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ISupplicantVendor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.qti.imsrtpservice</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IRTPService</name>
<instance>imsrtpservice</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.qualcomm.qti.wifidisplayhal</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDSManager</name>
<instance>wifidisplaydshal</instance>
</interface>
<interface>
<name>IHDCPSession</name>
<instance>wifidisplayhdcphal</instance>
</interface>
</hal>
</manifest>
+175
View File
@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Copyright (C) 2015-2016 The Linux Foundation. All rights reserved.
Not a contribution.
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>
<Include href="media_codecs_google_audio.xml" />
<Include href="media_codecs_google_telephony.xml" />
<Settings>
<Setting name="max-video-encoder-input-buffers" value="11" />
</Settings>
<Encoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="176x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation"/>
<Limit name="size" min="96x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="requires-loaded-to-idle-after-allocation" />
<Limit name="size" min="96x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
</Encoders>
<Decoders>
<!-- Video Hardware -->
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc.secure" type="video/avc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="concurrent-instances" max="3" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg2" type="video/mpeg2" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="96x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="244800" />
<Limit name="bitrate" range="1-40000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="1920x1088" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="489600" />
<Limit name="bitrate" range="1-60000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="864x480" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="48600" />
<Limit name="bitrate" range="1-2000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="size" min="64x64" max="3840x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="blocks-per-second" min="1" max="972000" />
<Limit name="bitrate" range="1-100000000" />
<Feature name="adaptive-playback" />
<Limit name="concurrent-instances" max="16" />
</MediaCodec>
</Decoders>
<Include href="media_codecs_google_video.xml" />
</MediaCodecs>
+143
View File
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (c) 2016, The Linux Foundation. All rights reserved.
Not a Contribution.
Copyright 2016 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="OMX.google.h263.encoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="374-377" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="245-250" />
<Limit name="measured-frame-rate-720x480" range="96-97" />
<Limit name="measured-frame-rate-1280x720" range="48-48" />
<Limit name="measured-frame-rate-1920x1080" range="24-24" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="382-385" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="111-112" />
<Limit name="measured-frame-rate-640x360" range="37-37" />
<Limit name="measured-frame-rate-1280x720" range="33-33" />
<Limit name="measured-frame-rate-1920x1080" range="19-19" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="80-80" />
<Limit name="measured-frame-rate-640x360" range="25-25" />
<Limit name="measured-frame-rate-1280x720" range="7-7" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="282-285" />
<Limit name="measured-frame-rate-720x480" range="83-83" />
<Limit name="measured-frame-rate-1280x720" range="36-36" />
<Limit name="measured-frame-rate-1920x1080" range="32-32" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="355-358" />
<Limit name="measured-frame-rate-352x288" range="283-284" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-320x240" range="269-272" />
<Limit name="measured-frame-rate-720x480" range="83-83" />
<Limit name="measured-frame-rate-1280x720" range="36-36" />
<Limit name="measured-frame-rate-1920x1080" range="32-32" />
<Limit name="measured-frame-rate-3840x2160" range="9-9" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="356-359" />
<Limit name="measured-frame-rate-352x288" range="277-278" />
<Limit name="measured-frame-rate-640x480" range="149-150" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="267-271" />
<Limit name="measured-frame-rate-640x360" range="126-126" />
<Limit name="measured-frame-rate-1280x720" range="34-34" />
<Limit name="measured-frame-rate-1920x1080" range="30-30" />
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="185-191" />
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="317-326" />
<Limit name="measured-frame-rate-720x480" range="132-133" />
<Limit name="measured-frame-rate-1280x720" range="57-57" />
<Limit name="measured-frame-rate-1920x1080" range="24-24" />
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="460-471" />
<Limit name="measured-frame-rate-640x360" range="238-240" />
<Limit name="measured-frame-rate-720x480" range="218-220" />
<Limit name="measured-frame-rate-1280x720" range="97-98" />
<Limit name="measured-frame-rate-1920x1080" range="54-54" />
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="205-210" />
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="631-634" />
<Limit name="measured-frame-rate-640x360" range="179-182" />
<Limit name="measured-frame-rate-1280x720" range="40-41" />
<Limit name="measured-frame-rate-1920x1080" range="17-17" />
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="376-382" />
<Limit name="measured-frame-rate-640x360" range="183-183" />
<Limit name="measured-frame-rate-1280x720" range="90-91" />
<Limit name="measured-frame-rate-1920x1080" range="50-50" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
<Limit name="measured-frame-rate-320x240" range="439-444" />
<Limit name="measured-frame-rate-720x480" range="223-224" />
<Limit name="measured-frame-rate-1280x720" range="283-284" />
<Limit name="measured-frame-rate-1920x1080" range="153-153" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
<Limit name="measured-frame-rate-176x144" range="584-600" />
<Limit name="measured-frame-rate-352x288" range="563-575" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
<Limit name="measured-frame-rate-352x288" range="460-467" />
<Limit name="measured-frame-rate-640x360" range="339-340" />
<Limit name="measured-frame-rate-720x480" range="258-259" />
<Limit name="measured-frame-rate-1280x720" range="346-347" />
<Limit name="measured-frame-rate-1920x1080" range="179-179" />
<Limit name="measured-frame-rate-3840x2160" range="44-44" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
<Limit name="measured-frame-rate-176x144" range="576-590" />
<Limit name="measured-frame-rate-480x360" range="512-520" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
<Limit name="measured-frame-rate-320x180" range="434-436" />
<Limit name="measured-frame-rate-640x360" range="357-358" />
<Limit name="measured-frame-rate-1280x720" range="321-321" />
<Limit name="measured-frame-rate-1920x1080" range="148-148" />
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
<Limit name="measured-frame-rate-320x180" range="422-424" />
<Limit name="measured-frame-rate-640x360" range="305-306" />
<Limit name="measured-frame-rate-1280x720" range="308-309" />
<Limit name="measured-frame-rate-1920x1080" range="161-161" />
<Limit name="measured-frame-rate-3840x2160" range="36-36" />
</MediaCodec>
</Decoders>
</MediaCodecs>
+794
View File
@@ -0,0 +1,794 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Copyright (C) 2015-2016 The Linux Foundation. All rights reserved.
Not a contribution.
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) #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 (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|heaac|aaceld|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>
]>
<!--
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">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="10">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="10">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="highspeed720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- Front Camera -->
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="720"
height="480"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="720"
height="480"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="highspeed480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="720"
height="480"
frameRate="120" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="96000"
sampleRate="48000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
<!-- Back_AUX Camera -->
<CamcorderProfiles cameraId="2">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="10">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="17000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="10">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="6000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="10000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</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="128000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="51000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="128000"
sampleRate="48000"
channels="2" />
</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="60000000"
minFrameWidth="176" maxFrameWidth="3840"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="15" maxFrameRate="60" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="720"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="20000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8000" maxBitRate="156000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="128000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="384000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="2" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23850"
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.
-->
<!-- IKVPREL2KK-2424 Disable WMV and WMA support -->
<VideoDecoderCap name="wmv" enabled="false"/>
<AudioDecoderCap name="wma" enabled="false"/>
</MediaSettings>
+551
View File
@@ -0,0 +1,551 @@
<?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) #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 (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>
<!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>
<!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 -->
<CamcorderProfiles cameraId="0">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<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="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</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>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v"
bitRate="128000"
width="320"
height="240"
frameRate="15" />
<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="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</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="hevc" enabled="true"
minBitRate="64000" maxBitRate="100000000"
minFrameWidth="176" maxFrameWidth="4096"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="42000000"
minFrameWidth="176" maxFrameWidth="3840"
minFrameHeight="144" maxFrameHeight="2160"
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="6" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<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"/>
<!--
The VideoEditor Capability configuration:
- maxInputFrameWidth: maximum video width of imported video clip.
- maxInputFrameHeight: maximum video height of imported video clip.
- maxOutputFrameWidth: maximum video width of exported video clip.
- maxOutputFrameHeight: maximum video height of exported video clip.
- maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
used to limit the amount of memory for prefetched YUV frames.
For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
frames) memory.
-->
<VideoEditorCap maxInputFrameWidth="1920"
maxInputFrameHeight="1080" maxOutputFrameWidth="1920"
maxOutputFrameHeight="1080" maxPrefetchYUVFrames="10"/>
<!--
The VideoEditor Export codec profile and level values
correspond to the values in OMX_Video.h.
E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
and level 4096 means OMX_VIDEO_AVCLevel41.
Please note that the values are in decimal.
These values are for video encoder.
-->
<!--
Codec = h.264, Baseline profile, level 4.0
-->
<ExportVideoProfile name="h264" profile= "1" level="2048"/>
<!--
Codec = h.263, Baseline profile, level 70
-->
<ExportVideoProfile name="h263" profile= "1" level="128"/>
<!--
Codec = mpeg4, Simple profile, level 5
-->
<ExportVideoProfile name="m4v" profile= "1" level="128"/>
</MediaSettings>
+796
View File
@@ -0,0 +1,796 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Copyright (C) 2015-2016 The Linux Foundation. All rights reserved.
Not a contribution.
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) #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 (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">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<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>
<EncoderProfile quality="cif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="720000"
width="352"
height="288"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" 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="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</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="720000"
width="352"
height="288"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<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="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapseqhd" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="2560"
height="1440"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2k" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="2048"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="42000000"
width="3840"
height="2160"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<ImageEncoding quality="95" />
<ImageEncoding quality="80" />
<ImageEncoding quality="70" />
<ImageDecoding memCap="20000000" />
</CamcorderProfiles>
<!-- Front Camera -->
<CamcorderProfiles cameraId="1">
<EncoderProfile quality="low" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="high" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<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>
<EncoderProfile quality="cif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="720000"
width="352"
height="288"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="480p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="720"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="720p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="14000000"
width="1280"
height="720"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="qcif" fileFormat="3gp" duration="30">
<Video codec="h264"
bitRate="192000"
width="176"
height="144"
frameRate="30" />
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="vga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</EncoderProfile>
<EncoderProfile quality="timelapselow" 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="timelapsehigh" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</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="timelapseqvga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="512000"
width="320"
height="240"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<EncoderProfile quality="timelapsevga" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="2000000"
width="640"
height="480"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="amrnb"
bitRate="12200"
sampleRate="8000"
channels="1" />
</EncoderProfile>
<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>
<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>
<EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="30">
<Video codec="h264"
bitRate="20000000"
width="1920"
height="1080"
frameRate="30" />
<!-- audio setting is ignored -->
<Audio codec="aac"
bitRate="156000"
sampleRate="48000"
channels="2" />
</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="100000000"
minFrameWidth="176" maxFrameWidth="3840"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="1920" maxHFRFrameHeight="1080"
maxHFRMode="60" />
<VideoEncoderCap name="h263" enabled="true"
minBitRate="64000" maxBitRate="2000000"
minFrameWidth="176" maxFrameWidth="800"
minFrameHeight="144" maxFrameHeight="480"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
<VideoEncoderCap name="m4v" enabled="true"
minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="1088"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
<VideoEncoderCap name="hevc" enabled="true"
minBitRate="64000" maxBitRate="100000000"
minFrameWidth="176" maxFrameWidth="3840"
minFrameHeight="144" maxFrameHeight="2160"
minFrameRate="15" maxFrameRate="30"
maxHFRFrameWidth="0" maxHFRFrameHeight="0"
maxHFRMode="0" />
<AudioEncoderCap name="aac" enabled="true"
minBitRate="8000" maxBitRate="96000"
minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="6" />
<AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="aaceld" enabled="true"
minBitRate="16000" maxBitRate="192000"
minSampleRate="16000" maxSampleRate="48000"
minChannels="1" maxChannels="1" />
<AudioEncoderCap name="amrwb" enabled="true"
minBitRate="6600" maxBitRate="23850"
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" />
<AudioEncoderCap name="lpcm" enabled="true"
minBitRate="768000" maxBitRate="4608000"
minSampleRate="48000" maxSampleRate="48000"
minChannels="1" maxChannels="6" />
<!--
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="true"/>
<AudioDecoderCap name="wma" enabled="true"/>
<!--
The VideoEditor Capability configuration:
- maxInputFrameWidth: maximum video width of imported video clip.
- maxInputFrameHeight: maximum video height of imported video clip.
- maxOutputFrameWidth: maximum video width of exported video clip.
- maxOutputFrameHeight: maximum video height of exported video clip.
- maxPrefetchYUVFrames: maximum prefetch YUV frames for encoder,
used to limit the amount of memory for prefetched YUV frames.
For this platform, it allows maximum 30MB(3MB per 1080p frame x 10
frames) memory.
-->
<VideoEditorCap maxInputFrameWidth="1280"
maxInputFrameHeight="720" maxOutputFrameWidth="1280"
maxOutputFrameHeight="720" maxPrefetchYUVFrames="10"/>
<!--
The VideoEditor Export codec profile and level values
correspond to the values in OMX_Video.h.
E.g. for h264, profile value 1 means OMX_VIDEO_AVCProfileBaseline
and level 4096 means OMX_VIDEO_AVCLevel41.
Please note that the values are in decimal.
These values are for video encoder.
-->
<!--
Codec = h.264, Baseline profile, level 4.0
-->
<ExportVideoProfile name="h264" profile= "1" level="2048"/>
<!--
Codec = h.263, Baseline profile, level 70
-->
<ExportVideoProfile name="h263" profile= "1" level="128"/>
<!--
Codec = mpeg4, Simple profile, level 5
-->
<ExportVideoProfile name="m4v" profile= "1" level="128"/>
</MediaSettings>
+61
View File
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
/* Copyright (c) 2017 Qualcomm Technologies, Inc.
* All Rights Reserved.
* Confidential and Proprietary - Qualcomm Technologies, Inc.
-->
<!--Ids are used in identifying the boosts, increment ids linearly,
do not modify Ids, or add in between-->
<!--follow the number format rules while specifying number, can be given
in any format-->
<BoostConfigs>
<PerfBoost>
<!--app lauch boost-->
<!-- SCHEDBOOST resource opcode, value-->
<!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode, value-->
<!-- SCHED_SPILL_NR_RUN resource opcode, value-->
<!-- SCHED_RESTRICT_CLUSTER_SPILL resource opcode, value-->
<!-- Type="1", main launch boost of 2sec -->
<Config
Id="0x00001081" Type="1" Enable="true" Timeout="2000" Target="msm8953"
Resources="0x40C00000, 0x1, 0x40800100, 0x690, 0x40C2C000, 0x1, 0x40C34000, 0x0" />
<!--app lauch boost (disabling packing)-->
<!-- DISABLE_POWER_COLLAPSE resource opcode, value-->
<!-- Type="2", launch boost for disable packing 1.5sec -->
<Config
Id="0x00001081" Type="2" Enable="true" Timeout="1500" Target="msm8953"
Resources="0x40400000, 0x1" />
<!-- config_enablePerfBoostForAnimation-->
<!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode, value-->
<!-- Type="1", Animation boost of 0.6sec -->
<Config
Id="0x00001083" Type="1" Enable="true" Timeout="600" Target="msm8953"
Resources="0x40800100, 0x578" />
<!--Vertical Scroll boost-->
<!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode, value -->
<!-- Type="1", Vertical Scroll boost -->
<Config
Id="0x00001080" Type="1" Enable="true" Target="msm8953"
Resources="0x40800100, 0x578" />
<!--Horizontal Scroll boost-->
<!-- CPUBOOST_MIN_FREQ LITTLE Core resource opcode, value -->
<!-- Type="2", Horizontal Scroll boost -->
<Config
Id="0x00001080" Type="2" Enable="true" Target="msm8953"
Resources="0x40800100, 0x578" />
</PerfBoost>
</BoostConfigs>
+99
View File
@@ -0,0 +1,99 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
/* 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.
*/
-->
<Powerhint>
<Hint type="0x0E00"> <!--preview-->
<Resource opcode="0x41400000" value="0x4" /> <!-- B CPU - above_hispeed_delay of 40 ms -->
<Resource opcode="0x41410000" value="0x5F" /> <!-- B CPU - go hispeed load 95 -->
<Resource opcode="0x41414000" value="0x22C"/> <!-- B CPU - hispeed freq of 556 MHz -->
<Resource opcode="0x41420000" value="0x5A" /> <!-- B CPU - target load of 90 -->
<Resource opcode="0x41400100" value="0x4" /> <!-- L CPU - above_hispeed_delay of 40 ms -->
<Resource opcode="0x41410100" value="0x5F" /> <!-- L CPU - go hispeed load 95 -->
<Resource opcode="0x41414100" value="0x22C"/> <!-- L CPU - hispeed freq of 556 MHz- -->
<Resource opcode="0x41420100" value="0x5A" /> <!-- L CPU - target load of 90 -->
<Resource opcode="0x41810000" value="0x9C4"/> <!-- CPUBW low power ceil mpbs of 2500 -->
<Resource opcode="0x41814000" value="0x32" /> <!-- CPUBW low power io percent of 50 -->
</Hint>
<Hint type="0x0A00"> <!--video encode 30 fps-->
<Resource opcode="0x41400000" value="0x4" /> <!-- B CPU - above_hispeed_delay of 40 ms -->
<Resource opcode="0x41410000" value="0x5F" /> <!-- B CPU - go hispeed load 95 -->
<Resource opcode="0x41414000" value="0x326"/> <!-- B CPU - hispeed freq of 806 MHz -->
<Resource opcode="0x41420000" value="0x5A" /> <!-- B CPU - target load of 90 -->
<Resource opcode="0x41400100" value="0x4" /> <!-- L CPU - above_hispeed_delay of 40 ms -->
<Resource opcode="0x41410100" value="0x5F" /> <!-- L CPU - go hispeed load 95 -->
<Resource opcode="0x41414100" value="0x22C"/> <!-- L CPU - hispeed freq of 556 MHz- -->
<Resource opcode="0x41420100" value="0x5A" /> <!-- L CPU - target load of 90 -->
<Resource opcode="0x41810000" value="0x9C4"/> <!-- CPUBW low power ceil mpbs of 2500 -->
<Resource opcode="0x41814000" value="0x32" /> <!-- CPUBW low power io percent of 50 -->
<Resource opcode="0x4180C000" value="0x0" /> <!-- CPUBW disable hysteresis -->
<Resource opcode="0x41820000" value="0xA" /> <!-- CPUBW sample_ms of 10ms -->
<Resource opcode="0x41438100" value="0x0" /> <!-- L CPU - disable ignore_hispeed_notif -->
<Resource opcode="0x41438000" value="0x0" /> <!-- B CPU - disable ignore_hispeed_notif -->
</Hint>
<Hint type="0x0B00"> <!--video decode-->
<Resource opcode="0x41400100" value="0x4" /> <!-- L CPU - Above Hispeed Delay of 40ms -->
<Resource opcode="0x41410100" value="0x5F" /> <!-- L CPU - Go Hispeed Delay of 95 -->
<Resource opcode="0x41414100" value="0x2D9"/> <!-- L CPU - Hispeed Freq of 768 MHz -->
<Resource opcode="0x41420100" value="0x5A" /> <!-- L CPU - Target Loads of 90 -->
<Resource opcode="0x41400000" value="0x4" /> <!-- B CPU - Above Hispeed Delay of 40ms -->
<Resource opcode="0x41410000" value="0x5F" /> <!-- B CPU - Go Hispeed Load of 95 -->
<Resource opcode="0x41414000" value="0x2D9"/> <!-- B CPU - Hispeed Freq of 729 MHz -->
<Resource opcode="0x41420000" value="0x5A" /> <!-- B CPU - Target Load of 90 -->
</Hint>
<Hint type="0x0F00"> <!--sustained performance-->
<Resource opcode="0x40800000" value="0x0"/> <!-- B CPU - Cluster min freq uncapped -->
<Resource opcode="0x40800100" value="0x0"/> <!-- L CPU - Cluster min freq uncapped -->
<Resource opcode="0x40804000" value="0x4E0"/> <!-- B CPU - Cluster max freq ~1.2 GHz -->
<Resource opcode="0x40804100" value="0x4E0"/> <!-- L CPU - Cluster max freq ~1.2 Ghz -->
<Resource opcode="0x4280C000" value="0xB4"/> <!-- GPU - min freq 180 Mhz -->
<Resource opcode="0x42810000" value="0x156"/> <!-- GPU - max freq 342 Mhz -->
<Resource opcode="0x42814000" value="0x0"/> <!-- GPUBW freq uncapped -->
</Hint>
<Hint type="0x1000"> <!--vr mode-->
<Resource opcode="0x40800000" value="0x579"/> <!-- B CPU - Cluster min freq ~1.4 Ghz -->
<Resource opcode="0x40800100" value="0x579"/> <!-- L CPU - Cluster min freq ~1.4 Ghz -->
<Resource opcode="0x40804000" value="0x579"/> <!-- B CPU - Cluster max freq ~1.4 Ghz -->
<Resource opcode="0x40804100" value="0x579"/> <!-- L CPU - Cluster max freq ~1.4 Ghz -->
<Resource opcode="0x4280C000" value="0x203"/> <!-- GPU - min freq 510 Mhz -->
<Resource opcode="0x42810000" value="0x203"/> <!-- GPU - max freq 510 Mhz -->
<Resource opcode="0x42814000" value="0x1E4F"/> <!-- GPUBW freq 775 Mhz-->
</Hint>
<Hint type="0x1001"> <!--vr mode sustained performance-->
<Resource opcode="0x40800000" value="0x4E0"/> <!-- B CPU - Cluster min freq ~1.2 Ghz -->
<Resource opcode="0x40800100" value="0x4E0"/> <!-- L CPU - Cluster min freq ~1.2 Ghz -->
<Resource opcode="0x40804000" value="0x4E0"/> <!-- B CPU - Cluster max freq ~1.2 Ghz -->
<Resource opcode="0x40804100" value="0x4E0"/> <!-- L CPU - Cluster max freq ~1.2 Ghz -->
<Resource opcode="0x4280C000" value="0x156"/> <!-- GPU - min freq 342 Mhz -->
<Resource opcode="0x42810000" value="0x156"/> <!-- GPU - max freq 342 Mhz -->
<Resource opcode="0x42814000" value="0x1E4F"/> <!-- GPUBW freq 775 Mhz -->
</Hint>
</Powerhint>
+100
View File
@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.qti.dpmserviceapp">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.location">
<permission name="android.permission.CONTROL_LOCATION_UPDATES"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
<permission name="android.permission.MANAGE_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.qcrilmsgtunnel">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.quicinc.cne.CNEService">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
</privapp-permissions>
<privapp-permissions package="org.codeaurora.qti.qtiNetworkApp">
<permission name="android.permission.MODIFY_PHONE_STATE"/>
</privapp-permissions>
<privapp-permissions package="org.codeaurora.ims">
<permission name="android.permission.READ_PRECISE_PHONE_STATE"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.wfd.service">
<permission name="android.permission.READ_FRAME_BUFFER"/>
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
</privapp-permissions>
<privapp-permissions package="com.android.soundrecorder">
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
</privapp-permissions>
<privapp-permissions package="com.quicinc.voice.activation">
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD"/>
<permission name="android.permission.MANAGE_SOUND_TRIGGER"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.qti.carrierswitch">
<permission name="android.permission.REBOOT"/>
</privapp-permissions>
<privapp-permissions package="com.android.mms">
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.WRITE_APN_SETTINGS"/>
</privapp-permissions>
<privapp-permissions package="org.codeaurora.bluetooth.batestapp">
<permission name="android.permission.BLUETOOTH_PRIVILEGED"/>
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
</privapp-permissions>
<privapp-permissions package="org.codeaurora.snapcam">
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.qti.callenhancement">
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission name="android.permission.READ_BLOCKED_NUMBERS" />
<permission name="android.permission.VIBRATE" />
</privapp-permissions>
<privapp-permissions package="com.android.fmradio">
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<permission name="android.permission.ACCESS_FM_RADIO"/>
<permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
</privapp-permissions>
<privapp-permissions package="com.qualcomm.atfwd">
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
</privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.okgoogle">
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
</privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.tgoogle">
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
</privapp-permissions>
<privapp-permissions package="com.android.hotwordenrollment.xgoogle">
<permission name="android.permission.MANAGE_VOICE_KEYPHRASES"/>
</privapp-permissions>
<privapp-permissions package="com.moto.actions">
<permission name="android.permission.MODIFY_PHONE_STATE"/>
</privapp-permissions>
</permissions>
+115
View File
@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!--
/* Copyright (c) 2017-2018, 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.
*/
-->
<config>
<!-- These are telephony components that need to freely run in the background -->
<allow-in-power-save package="com.qualcomm.atfwd" />
<allow-in-power-save package="com.qualcomm.qti.telephonyservice" />
<allow-in-power-save package="com.qualcomm.qcrilmsgtunnel" />
<allow-in-power-save package="com.qualcomm.qti.ims" />
<allow-in-power-save package="com.qualcomm.qti.radioconfiginterface" />
<allow-in-power-save package="com.qualcomm.simcontacts" />
<allow-in-power-save package="com.qualcomm.qti.autoregistration" />
<allow-in-power-save package="com.qualcomm.qti.server.wigigapp" />
<allow-in-power-save package="com.qualcomm.qti.StatsPollManager" />
<allow-in-power-save package="com.qualcomm.qti.gsma.services.nfc" />
<allow-in-power-save package="com.quicinc.voice.activation" />
<allow-in-power-save package="com.android.mms" />
<allow-in-power-save package="com.qualcomm.qti.callenhancement" />
<allow-in-power-save package="com.qualcomm.qti.smartassistant" />
<!-- These telephony applications need access to non-[System]SDK APIs -->
<hidden-api-whitelisted-app package="com.qualcomm.uimremoteserver" />
<hidden-api-whitelisted-app package="com.qualcomm.uimremoteclient" />
<hidden-api-whitelisted-app package="com.qualcomm.atfwd" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.autoregistration" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.callenhancement" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.callfeaturessetting" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.confdialer" />
<hidden-api-whitelisted-app package="org.codeaurora.dialer" />
<hidden-api-whitelisted-app package="com.qti.qualcomm.datastatusnotification" />
<hidden-api-whitelisted-app package="com.qti.qualcomm.deviceinfo" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.modemtestmode" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.networksetting" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.qtisystemservice" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.telephonyservice" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.radioconfiginterface" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.radioconfigtest" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.roamingsettings" />
<hidden-api-whitelisted-app package="com.qualcomm.simcontacts" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.simsettings" />
<hidden-api-whitelisted-app package="org.codeaurora.ims" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.ims" />
<hidden-api-whitelisted-app package="com.qti.xdivert" />
<hidden-api-whitelisted-app package="com.qualcomm.qcrilmsgtunnel" />
<hidden-api-whitelisted-app package="com.qti.confuridialer" />
<hidden-api-whitelisted-app package="com.qti.editnumber" />
<hidden-api-whitelisted-app package="com.qualcomm.embmstest" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.ltedirect" />
<hidden-api-whitelisted-app package="com.android.MultiplePdpTest" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.app" />
<hidden-api-whitelisted-app package="com.qualcomm.embms" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.embmstuneaway" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.uimlpatest" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.lpa" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.uim" />
<hidden-api-whitelisted-app package="org.codeaurora.snapcam" />
<hidden-api-whitelisted-app package="com.android.mms" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.carrierswitch" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.carrierconfigure" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.sva" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.smartassistant" />
<hidden-api-whitelisted-app package="com.quicinc.voice.activation" />
<hidden-api-whitelisted-app package="com.android.backup" />
<hidden-api-whitelisted-app package="com.android.contacts" />
<hidden-api-whitelisted-app package="com.android.exchange" />
<hidden-api-whitelisted-app package="com.android.soundrecorder" />
<hidden-api-whitelisted-app package="com.android.camera2" />
<hidden-api-whitelisted-app package="org.codeaurora.gallery" />
<hidden-api-whitelisted-app package="com.example.connmgr" />
<hidden-api-whitelisted-app package="com.android.email" />
<hidden-api-whitelisted-app package="com.cyanogenmod.filemanager" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.presenceappSub2" />
<hidden-api-whitelisted-app package="com.qualcomm.secureindicator" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.sysmonappExternal" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.biometrics.voiceprint.voiceprintdemo" />
<hidden-api-whitelisted-app package="com.qti.vtloopback " />
<hidden-api-whitelisted-app package="com.android.bluetooth" />
<hidden-api-whitelisted-app package="org.codeaurora.bluetooth" />
<hidden-api-whitelisted-app package="org.codeaurora.bluetooth.hidtestapp" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.qmmi" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.perfdump" />
<hidden-api-whitelisted-app package="com.qualcomm.wfd.client" />
<hidden-api-whitelisted-app package="com.qualcomm.wfd.service" />
<hidden-api-whitelisted-app package="com.qualcomm.qti.server.wigigapp" />
<hidden-api-whitelisted-app package="com.qti.service.colorservice" />
</config>
+332
View File
@@ -0,0 +1,332 @@
/* IPC Security Config */
/* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */
16:4294967295:1000:1021:1026
/* <QDMA QMI Service ID - 75>:<QDMA QMI Instance ID - all instances>:<Client Group ID> */
75:4294967295:1000:1001:3006
/* <LOWI QMI Service ID - 38>:<LOWI QMI Instance ID - all instances>:<Client Group ID> */
56:4294967295:1021
/* Allow SS CTL service to be used by system and net_raw processes */
43:4294967295:1000:3004
/* <UIMHTTP QMI Service ID - 16>:<UIMHTTP QMI Instance ID - all instances>:<Client Group ID> */
71:4294967295:1001
/* <UIMRMT QMI Service ID - 16>:<UIMRMT QMI Instance ID - all instances>:<Client Group ID> */
50:4294967295:1001
/* QMI-SLIM service permitted to gps and net_raw */
55:4294967295:1021
/* Allow Sensor services to be used by sensor process */
256:4294967295:1000:1006:1013:1021:1047:3011
257:4294967295:1000:1006:1013:1021:1047:3011
258:4294967295:1000:1006:1013:1021:1047:3011
259:4294967295:1000:1006:1013:1021:1047:3011
260:4294967295:1000:1006:1013:1021:1047:3011
261:4294967295:1000:1006:1013:1021:1047:3011
262:4294967295:1000:1006:1013:1021:1047:3011
263:4294967295:1000:1006:1013:1021:1047:3011
264:4294967295:1000:1006:1013:1021:1047:3011
265:4294967295:1000:1006:1013:1021:1047:3011
266:4294967295:1000:1006:1013:1021:1047:3011
267:4294967295:1000:1006:1013:1021:1047:3011
268:4294967295:1000:1006:1013:1021:1047:3011
269:4294967295:1000:1006:1013:1021:1047:3011
270:4294967295:1000:1006:1013:1021:1047:3011
271:4294967295:1000:1006:1013:1021:1047:3011
272:4294967295:1000:1006:1013:1021:1047:3011
273:4294967295:1000:1006:1013:1021:1047:3011
274:4294967295:1000:1006:1013:1021:1047:3011
275:4294967295:1000:1006:1013:1021:1047:3011
276:4294967295:1000:1006:1013:1021:1047:3011
277:4294967295:1000:1006:1013:1021:1047:3011
278:4294967295:1000:1006:1013:1021:1047:3011
279:4294967295:1000:1006:1013:1021:1047:3011
280:4294967295:1000:1006:1013:1021:1047:3011
281:4294967295:1000:1006:1013:1021:1047:3011
282:4294967295:1000:1006:1013:1021:1047:3011
283:4294967295:1000:1006:1013:1021:1047:3011
284:4294967295:1000:1006:1013:1021:1047:3011
285:4294967295:1000:1006:1013:1021:1047:3011
286:4294967295:1000:1006:1013:1021:1047:3011
287:4294967295:1000:1006:1013:1021:1047:3011
288:4294967295:1000:1006:1013:1021:1047:3011
289:4294967295:1000:1006:1013:1021:1047:3011
290:4294967295:1000:1006:1013:1021:1047:3011
291:4294967295:1000:1006:1013:1021:1047:3011
292:4294967295:1000:1006:1013:1021:1047:3011
293:4294967295:1000:1006:1013:1021:1047:3011
294:4294967295:1000:1006:1013:1021:1047:3011
295:4294967295:1000:1006:1013:1021:1047:3011
296:4294967295:1000:1006:1013:1021:1047:3011
297:4294967295:1000:1006:1013:1021:1047:3011
298:4294967295:1000:1006:1013:1021:1047:3011
299:4294967295:1000:1006:1013:1021:1047:3011
300:4294967295:1000:1006:1013:1021:1047:3011
301:4294967295:1000:1006:1013:1021:1047:3011
302:4294967295:1000:1006:1013:1021:1047:3011
303:4294967295:1000:1006:1013:1021:1047:3011
304:4294967295:1000:1006:1013:1021:1047:3011
305:4294967295:1000:1006:1013:1021:1047:3011
306:4294967295:1000:1006:1013:1021:1047:3011
307:4294967295:1000:1006:1013:1021:1047:3011
308:4294967295:1000:1006:1013:1021:1047:3011
309:4294967295:1000:1006:1013:1021:1047:3011
310:4294967295:1000:1006:1013:1021:1047:3011
311:4294967295:1000:1006:1013:1021:1047:3011
312:4294967295:1000:1006:1013:1021:1047:3011
313:4294967295:1000:1006:1013:1021:1047:3011
314:4294967295:1000:1006:1013:1021:1047:3011
315:4294967295:1000:1006:1013:1021:1047:3011
316:4294967295:1000:1006:1013:1021:1047:3011
317:4294967295:1000:1006:1013:1021:1047:3011
318:4294967295:1000:1006:1013:1021:1047:3011
319:4294967295:1000:1006:1013:1021:1047:3011
320:4294967295:1000:1006:1013:1021:1047:3011
321:4294967295:1000:1006:1013:1021:1047:3011
322:4294967295:1000:1006:1013:1021:1047:3011
323:4294967295:1000:1006:1013:1021:1047:3011
324:4294967295:1000:1006:1013:1021:1047:3011
325:4294967295:1000:1006:1013:1021:1047:3011
326:4294967295:1000:1006:1013:1021:1047:3011
327:4294967295:1000:1006:1013:1021:1047:3011
328:4294967295:1000:1006:1013:1021:1047:3011
329:4294967295:1000:1006:1013:1021:1047:3011
330:4294967295:1000:1006:1013:1021:1047:3011
331:4294967295:1000:1006:1013:1021:1047:3011
332:4294967295:1000:1006:1013:1021:1047:3011
333:4294967295:1000:1006:1013:1021:1047:3011
334:4294967295:1000:1006:1013:1021:1047:3011
335:4294967295:1000:1006:1013:1021:1047:3011
336:4294967295:1000:1006:1013:1021:1047:3011
337:4294967295:1000:1006:1013:1021:1047:3011
338:4294967295:1000:1006:1013:1021:1047:3011
339:4294967295:1000:1006:1013:1021:1047:3011
340:4294967295:1000:1006:1013:1021:1047:3011
341:4294967295:1000:1006:1013:1021:1047:3011
342:4294967295:1000:1006:1013:1021:1047:3011
343:4294967295:1000:1006:1013:1021:1047:3011
344:4294967295:1000:1006:1013:1021:1047:3011
345:4294967295:1000:1006:1013:1021:1047:3011
346:4294967295:1000:1006:1013:1021:1047:3011
347:4294967295:1000:1006:1013:1021:1047:3011
348:4294967295:1000:1006:1013:1021:1047:3011
349:4294967295:1000:1006:1013:1021:1047:3011
350:4294967295:1000:1006:1013:1021:1047:3011
351:4294967295:1000:1006:1013:1021:1047:3011
352:4294967295:1000:1006:1013:1021:1047:3011
353:4294967295:1000:1006:1013:1021:1047:3011
354:4294967295:1000:1006:1013:1021:1047:3011
355:4294967295:1000:1006:1013:1021:1047:3011
356:4294967295:1000:1006:1013:1021:1047:3011
357:4294967295:1000:1006:1013:1021:1047:3011
358:4294967295:1000:1006:1013:1021:1047:3011
359:4294967295:1000:1006:1013:1021:1047:3011
360:4294967295:1000:1006:1013:1021:1047:3011
361:4294967295:1000:1006:1013:1021:1047:3011
362:4294967295:1000:1006:1013:1021:1047:3011
363:4294967295:1000:1006:1013:1021:1047:3011
364:4294967295:1000:1006:1013:1021:1047:3011
365:4294967295:1000:1006:1013:1021:1047:3011
366:4294967295:1000:1006:1013:1021:1047:3011
367:4294967295:1000:1006:1013:1021:1047:3011
368:4294967295:1000:1006:1013:1021:1047:3011
369:4294967295:1000:1006:1013:1021:1047:3011
370:4294967295:1000:1006:1013:1021:1047:3011
371:4294967295:1000:1006:1013:1021:1047:3011
372:4294967295:1000:1006:1013:1021:1047:3011
373:4294967295:1000:1006:1013:1021:1047:3011
374:4294967295:1000:1006:1013:1021:1047:3011
375:4294967295:1000:1006:1013:1021:1047:3011
376:4294967295:1000:1006:1013:1021:1047:3011
377:4294967295:1000:1006:1013:1021:1047:3011
378:4294967295:1000:1006:1013:1021:1047:3011
379:4294967295:1000:1006:1013:1021:1047:3011
380:4294967295:1000:1006:1013:1021:1047:3011
381:4294967295:1000:1006:1013:1021:1047:3011
382:4294967295:1000:1006:1013:1021:1047:3011
383:4294967295:1000:1006:1013:1021:1047:3011
384:4294967295:1000:1006:1013:1021:1047:3011
385:4294967295:1000:1006:1013:1021:1047:3011
386:4294967295:1000:1006:1013:1021:1047:3011
387:4294967295:1000:1006:1013:1021:1047:3011
388:4294967295:1000:1006:1013:1021:1047:3011
389:4294967295:1000:1006:1013:1021:1047:3011
390:4294967295:1000:1006:1013:1021:1047:3011
391:4294967295:1000:1006:1013:1021:1047:3011
392:4294967295:1000:1006:1013:1021:1047:3011
393:4294967295:1000:1006:1013:1021:1047:3011
394:4294967295:1000:1006:1013:1021:1047:3011
395:4294967295:1000:1006:1013:1021:1047:3011
396:4294967295:1000:1006:1013:1021:1047:3011
397:4294967295:1000:1006:1013:1021:1047:3011
398:4294967295:1000:1006:1013:1021:1047:3011
399:4294967295:1000:1006:1013:1021:1047:3011
400:4294967295:1000:1006:1013:1021:1047:3011
401:4294967295:1000:1006:1013:1021:1047:3011
402:4294967295:1000:1006:1013:1021:1047:3011
403:4294967295:1000:1006:1013:1021:1047:3011
404:4294967295:1000:1006:1013:1021:1047:3011
405:4294967295:1000:1006:1013:1021:1047:3011
406:4294967295:1000:1006:1013:1021:1047:3011
407:4294967295:1000:1006:1013:1021:1047:3011
408:4294967295:1000:1006:1013:1021:1047:3011
409:4294967295:1000:1006:1013:1021:1047:3011
410:4294967295:1000:1006:1013:1021:1047:3011
411:4294967295:1000:1006:1013:1021:1047:3011
412:4294967295:1000:1006:1013:1021:1047:3011
413:4294967295:1000:1006:1013:1021:1047:3011
414:4294967295:1000:1006:1013:1021:1047:3011
415:4294967295:1000:1006:1013:1021:1047:3011
416:4294967295:1000:1006:1013:1021:1047:3011
417:4294967295:1000:1006:1013:1021:1047:3011
418:4294967295:1000:1006:1013:1021:1047:3011
419:4294967295:1000:1006:1013:1021:1047:3011
420:4294967295:1000:1006:1013:1021:1047:3011
421:4294967295:1000:1006:1013:1021:1047:3011
422:4294967295:1000:1006:1013:1021:1047:3011
423:4294967295:1000:1006:1013:1021:1047:3011
424:4294967295:1000:1006:1013:1021:1047:3011
425:4294967295:1000:1006:1013:1021:1047:3011
426:4294967295:1000:1006:1013:1021:1047:3011
427:4294967295:1000:1006:1013:1021:1047:3011
428:4294967295:1000:1006:1013:1021:1047:3011
429:4294967295:1000:1006:1013:1021:1047:3011
430:4294967295:1000:1006:1013:1021:1047:3011
431:4294967295:1000:1006:1013:1021:1047:3011
432:4294967295:1000:1006:1013:1021:1047:3011
433:4294967295:1000:1006:1013:1021:1047:3011
434:4294967295:1000:1006:1013:1021:1047:3011
435:4294967295:1000:1006:1013:1021:1047:3011
436:4294967295:1000:1006:1013:1021:1047:3011
437:4294967295:1000:1006:1013:1021:1047:3011
438:4294967295:1000:1006:1013:1021:1047:3011
439:4294967295:1000:1006:1013:1021:1047:3011
440:4294967295:1000:1006:1013:1021:1047:3011
441:4294967295:1000:1006:1013:1021:1047:3011
442:4294967295:1000:1006:1013:1021:1047:3011
443:4294967295:1000:1006:1013:1021:1047:3011
444:4294967295:1000:1006:1013:1021:1047:3011
445:4294967295:1000:1006:1013:1021:1047:3011
446:4294967295:1000:1006:1013:1021:1047:3011
447:4294967295:1000:1006:1013:1021:1047:3011
448:4294967295:1000:1006:1013:1021:1047:3011
449:4294967295:1000:1006:1013:1021:1047:3011
450:4294967295:1000:1006:1013:1021:1047:3011
451:4294967295:1000:1006:1013:1021:1047:3011
452:4294967295:1000:1006:1013:1021:1047:3011
453:4294967295:1000:1006:1013:1021:1047:3011
454:4294967295:1000:1006:1013:1021:1047:3011
455:4294967295:1000:1006:1013:1021:1047:3011
456:4294967295:1000:1006:1013:1021:1047:3011
457:4294967295:1000:1006:1013:1021:1047:3011
458:4294967295:1000:1006:1013:1021:1047:3011
459:4294967295:1000:1006:1013:1021:1047:3011
460:4294967295:1000:1006:1013:1021:1047:3011
461:4294967295:1000:1006:1013:1021:1047:3011
462:4294967295:1000:1006:1013:1021:1047:3011
463:4294967295:1000:1006:1013:1021:1047:3011
464:4294967295:1000:1006:1013:1021:1047:3011
465:4294967295:1000:1006:1013:1021:1047:3011
466:4294967295:1000:1006:1013:1021:1047:3011
467:4294967295:1000:1006:1013:1021:1047:3011
468:4294967295:1000:1006:1013:1021:1047:3011
469:4294967295:1000:1006:1013:1021:1047:3011
470:4294967295:1000:1006:1013:1021:1047:3011
471:4294967295:1000:1006:1013:1021:1047:3011
472:4294967295:1000:1006:1013:1021:1047:3011
473:4294967295:1000:1006:1013:1021:1047:3011
474:4294967295:1000:1006:1013:1021:1047:3011
475:4294967295:1000:1006:1013:1021:1047:3011
476:4294967295:1000:1006:1013:1021:1047:3011
477:4294967295:1000:1006:1013:1021:1047:3011
478:4294967295:1000:1006:1013:1021:1047:3011
479:4294967295:1000:1006:1013:1021:1047:3011
480:4294967295:1000:1006:1013:1021:1047:3011
481:4294967295:1000:1006:1013:1021:1047:3011
482:4294967295:1000:1006:1013:1021:1047:3011
483:4294967295:1000:1006:1013:1021:1047:3011
484:4294967295:1000:1006:1013:1021:1047:3011
485:4294967295:1000:1006:1013:1021:1047:3011
486:4294967295:1000:1006:1013:1021:1047:3011
487:4294967295:1000:1006:1013:1021:1047:3011
488:4294967295:1000:1006:1013:1021:1047:3011
489:4294967295:1000:1006:1013:1021:1047:3011
490:4294967295:1000:1006:1013:1021:1047:3011
491:4294967295:1000:1006:1013:1021:1047:3011
492:4294967295:1000:1006:1013:1021:1047:3011
493:4294967295:1000:1006:1013:1021:1047:3011
494:4294967295:1000:1006:1013:1021:1047:3011
495:4294967295:1000:1006:1013:1021:1047:3011
496:4294967295:1000:1006:1013:1021:1047:3011
497:4294967295:1000:1006:1013:1021:1047:3011
498:4294967295:1000:1006:1013:1021:1047:3011
499:4294967295:1000:1006:1013:1021:1047:3011
500:4294967295:1000:1006:1013:1021:1047:3011
501:4294967295:1000:1006:1013:1021:1047:3011
502:4294967295:1000:1006:1013:1021:1047:3011
503:4294967295:1000:1006:1013:1021:1047:3011
504:4294967295:1000:1006:1013:1021:1047:3011
505:4294967295:1000:1006:1013:1021:1047:3011
506:4294967295:1000:1006:1013:1021:1047:3011
507:4294967295:1000:1006:1013:1021:1047:3011
508:4294967295:1000:1006:1013:1021:1047:3011
509:4294967295:1000:1006:1013:1021:1047:3011
510:4294967295:1000:1006:1013:1021:1047:3011
511:4294967295:1000:1006:1013:1021:1047:3011
/* Allow RCS service to aquire net_raw permission */
18:4294967295:1001:3004
/* Allow RCS service to communicate to IMS QMI Priv Svc*/
77:4294967295:1001:3003
/* Allow SSGQMIGD to communicate to SSGCCS service*/
76:4294967295:1001
/* Allow cnd to accquire netbind */
18:4294967295:1000:3003
/* Allow QMID service to aquire net_raw permission */
3:4294967295:1001:1021:3004
2:4294967295:1000:1001:3004
42:4294967295:1001:3004
18:4294967295:1001:3004
9:4294967295:1001:3004
1:4294967295:1001:3004:1000
4:4294967295:1001:3004
7:4294967295:1001:3004
8:4294967295:1001:3004:1000
68:4294967295:1001:3004
/* DPM */
47:4294967295:1001:3004
/* Allow communication to some QMI services with radio privilages */
/* Format is <Service id>:<all instances>:<radio> */
/* PBM */
12:4294967295:1001
/* WMS */
5:4294967295:1001
/* IMS VT */
32:4294967295:1001
/* IMSP */
31:4294967295:1001
/* PDC */
36:4294967295:1001
/* SAR */
17:4294967295:1001
/* RFRPE */
41:4294967295:1001
/*UIM*/
11:4294967295:1001
/*CAT*/
10:4294967295:1001
/*IMSA*/
33:4294967295:1001
/* CSVT */
29:4294967295:1001
/*SERVREG_NOTIF*/
64:4294967295:1001
66:4294967295:1001
/*LTE*/
70:4294967295:1001
/* Allow Data dpmd to access QMI DFS */
48:4294967295:1000:3004
/* DIAG */
4097:4294967295:2002:2950:3009:2901
/* <WLFW QMI Service ID - 0x45>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
69:4294967295:1000
/* <WLPS QMI Service ID - 0x39>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
57:4294967295:1000
/* MOTEXT */
228:4294967295:1001:3004
+1 -1
View File
@@ -1114,7 +1114,7 @@
413 0xFFFFFE94 0x00010001 #Compensation_matrix_2_1
414 0x00010144 0x00010001 #Compensation_matrix_2_2
:property ro.hw.revision p0
:property ro.boot.hardware.revision p0
# accel x/y/z
700 -2 0x00010001 #accel-x-axis
701 1 0x00010001 #accel-y-axis

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