122 Commits

Author SHA1 Message Date
Boy Petersen
31de3dd1ce tweak bfq iosched for flash drives 2018-09-29 03:43:23 +00:00
Boy Petersen
aac335cb58 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.
2018-09-29 03:43:23 +00:00
Prema Chand Alugu
39262126ce sanders: Support for other gps defintions 2018-09-29 03:43:23 +00:00
Prema Chand Alugu
db39bda965 sanders: Knob to not-build device dummy libhidl 2018-09-29 03:43:23 +00:00
Keertesh19
d56eab61ff Use moto rebase kernel 2018-09-29 03:43:23 +00:00
therootlord
9a96ded3f5 sanders: update audio configs from OPS28.65-14 2018-09-29 03:43:23 +00:00
therootlord
eb1a87033f sanders: update wifi configs from OPS28.65-14 2018-09-29 03:43:23 +00:00
Bindu Gokul
1af861c1bc sanders: remove android.hardware.usb; no usbpd support
Change-Id: Icb46be06afd4f23252439e481e36741cde346612
2018-09-29 03:43:23 +00:00
therootlord
d1015bea67 sanders: sepolicy: give proper label to 32b sensors hal 2018-09-29 03:43:23 +00:00
Wei Wang
f5caeb7c79 sanders: Use mke2fs to create ext4 images
Set TARGET_USES_MKE2FS := true to use new EXT4 tool chain

Bug: 62421233
Change-Id: Id6e5c68b2d7854e5330ad87443b974361a4bff9d
2018-09-29 03:43:23 +00:00
Alberto97
ed71980826 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-09-29 03:43:23 +00:00
therootlord
50adf58370 sanders: MotoActions: Re-add/fix Glance Sensor 2018-09-29 03:43:23 +00:00
Henrique Silva
93b545d19d sanders: Add CarrierConfig overlays 2018-07-16 11:02:15 +00:00
Henrique Silva
365063b5fa sanders: Use GoogleCameraMod instead of Camera2
* Based on Arnova_V6bt5

My changes:

* Removed panorama, photo sphere and slowmo from left Menu, because with our current blobs lead to crash

Signed-off-by: Henrique Silva <jhenrique09.mcz@hotmail.com>
2018-07-16 11:02:15 +00:00
Henrique Silva
9818d39a16 sanders: overlay: Enable config_canDisableNavigationBar 2018-07-16 11:02:15 +00:00
Henrique Silva
afeaf50833 sanders: Include ARCore 2018-07-16 11:02:15 +00:00
coldhans
fa6d44cab3 sanders: Fix bluetooth calling
* Lineage inverted the logic

Signed-off-by: Henrique Silva <jhenrique09.mcz@hotmail.com>
2018-07-16 11:02:15 +00:00
Henrique Silva
65a670a120 sanders: Update keyhandler overlays 2018-07-16 11:02:15 +00:00
Vachounet
4297fc997e sanders: update KeyHandler for api change 2018-07-16 11:02:15 +00:00
Keertesh
6b3519493c PixelExperience Bringup 2018-07-16 11:02:10 +00:00
Keertesh
757f14a128 Fix DTV Modules and Add device specific property sets 2018-07-16 11:52:55 +05:30
Keertesh
f0ec66ea17 Track more updated vendor 2018-07-16 11:52:18 +05:30
Keertesh
ac8092d603 Set specific clang build 2018-07-02 06:51:34 +00:00
therootlord
59313ce8f4 sanders: update display calib data from stock 2018-07-02 06:51:34 +00:00
therootlord
2b4ceabd16 sanders: update some audio configs from stock 2018-07-02 06:51:34 +00:00
therootlord
1f70fe7596 sanders: disable TARGET_TAP_TO_WAKE_NODE
* We're not using DT2W
2018-07-02 06:51:34 +00:00
therootlord
bf1a55c009 sanders: add camera aux supported apps list prop 2018-07-02 06:51:34 +00:00
Vachounet
9da1099ed6 sanders: avoid conflicting with common thermal hal 2018-07-02 06:51:34 +00:00
Nilesh Shah
fcefe81e3c 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-02 06:51:34 +00:00
Michael Bestas
b5fb157109 sanders: Build 1.0 power HAL
* prima doesn't have support for wifi stats
2018-07-02 06:51:34 +00:00
therootlord
760b050f25 sanders: update sensor prop from stock 2018-07-02 06:51:34 +00:00
therootlord
c93c27c631 sanders: update some camera configs from stock 2018-07-02 06:51:34 +00:00
Vachounet
30188ef76a sanders: update init.*.rc from stock 2018-07-02 06:51:34 +00:00
Vachounet
a5ef4a468e sanders: clean-up camera shims 2018-07-02 06:51:34 +00:00
Vachounet
5541f10f9b sanders: address camera denials 2018-07-02 06:51:34 +00:00
Vachounet
ca47b272ab sanders: add some HALs required by camera 2018-07-02 06:51:34 +00:00
Vachounet
663bd057c6 sanders: sync media configs with stock 2018-07-02 06:51:34 +00:00
Henrique Silva
3e8c790568 sanders: Remove hal1 packagelist
Deprecated
2018-07-02 06:51:34 +00:00
Vachounet
32d520a2ab sanders: sync some props with stock 2018-07-02 06:51:34 +00:00
therootlord
ad56f6fb78 sanders: update sensors configs paths 2018-07-02 06:51:34 +00:00
therootlord
8d7fe952a9 sanders: build a 32b version of android.hardware.sensors service
* Also add input group access and add service to manifest
2018-07-02 06:51:34 +00:00
Vachounet
17530f7111 sanders: get rid of multihal config 2018-07-02 06:51:34 +00:00
Keertesh
d859b9bf2d Correct things up 2018-07-02 06:51:34 +00:00
Keertesh
c9d77c075b derp 2018-07-02 06:51:34 +00:00
Henrique Silva
2181592463 sanders: Build with clang 7.0 2018-07-02 06:51:34 +00:00
Alberto97
ae72fd85b3 Enable LLVM kernel building 2018-07-02 06:51:34 +00:00
Keertesh
e8d1e807b3 AEX Bringup 2018-07-02 06:51:34 +00:00
Boy Petersen
0e42d461e5 Increase volume steps for voice calls and media 2018-07-02 06:51:34 +00:00
Joey
8e3a098379 sanders: build textclassifier
Change-Id: I50d8173d24c4cab773824107b98929dbbc469783
Signed-off-by: Joey <joey@lineageos.org>
2018-07-02 06:51:34 +00:00
Keertesh
df0130358e sanders: Tree cleanup
*Move telephony-ext from BoardConfig.mk to device.mk.
*Remove tagGoogle
*Delete init.qcom/ril.sh
 -Unnecessary.
*Remove contexts from fstab.recovery
 -Needed after enforcing.
*Remove Android.bp libhidl.
*Update system.prop.
2018-07-02 06:51:34 +00:00
jhenrique09
5cd6fae534 potter: Fix DTV module path
* Also cleanup others modules
2018-07-02 06:51:34 +00:00
Henrique Silva
5dd980d9c2 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>
2018-07-02 06:51:34 +00:00
jhenrique09
7174dd3530 sanders: More DTV fixes
* Add to check_features
* Add proprietary blobs
* Fix sepolicy

Signed-off-by: jhenrique09 <jhenrique09.mcz@hotmail.com>
2018-07-02 06:51:27 +00:00
Bruno Martins
14c0a592e7 sanders: libinit: Also override certain vendor build properties 2018-06-13 13:38:45 +05:30
Bruno Martins
a0dbeeccfc 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-06-13 13:38:45 +05:30
Henrique Silva
fb1f775d88 sanders: Fix qti_whitelist path 2018-06-13 13:38:45 +05:30
jhenrique09
2030016da3 sanders: [1/2] Move DTV blobs to vendor 2018-06-13 13:38:45 +05:30
Vachounet
8b11e4a70b sanders: update post-install script
* Permissions moved to vendor
* Fix deep sleep issue on variants without NFC

Change-Id: Ie5a24a3debe638a3f491d12aa62bf1775b955972
2018-06-13 13:38:45 +05:30
jhenrique09
6f0e584044 sanders: Remove Notepadv3Solution on post build
Idk why this shit is coming in the build, this is a dirty solution, but it works for now.
2018-06-13 13:38:45 +05:30
Bruno Martins
f7e3f15e7b sanders: Drop useless CNE related flag
* Nothing in the OSS bits takes it into account.

Change-Id: I6f949a12c643810cb1fba764bf13abb30e5dd88c
2018-06-13 13:23:58 +05:30
Rashed Abdel-Tawab
9d3b8a1e30 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-06-13 13:23:58 +05:30
Vachounet
b8831c9162 sanders: init: cleanup
* Remove some proprietary scripts
* Should help for sepolicy rules
2018-06-13 13:23:58 +05:30
Vachounet
794cf8b6c2 sanders: remove init.qcom.ril.sh
* Not used
2018-06-13 13:23:58 +05:30
Boy Petersen
0d53255cc3 update autobrightness values 2018-06-13 13:23:57 +05:30
jhenrique09
e8e8df65f5 sanders: Update extractors 2018-06-12 12:27:57 +05:30
Keertesh
9c84b48a59 sanders: Update check_features.sh 2018-06-12 12:27:17 +05:30
Keertesh
a40c1443f5 Remove LTEPlus 2018-06-12 12:26:20 +05:30
Keertesh
fdd4075f6c overlays: Add overlays for api_v2 and Snap Camera 2018-06-12 12:25:50 +05:30
jhenrique09
00f58574c5 sanders: MotoActions: Fix double tap to open camera switch 2018-06-12 12:23:23 +05:30
Vachounet
70290609e7 sanders: build libqdMetaData.system
Change-Id: Ia5ad7e28569253d267cead4dbc85bc4fc202d7c2
2018-06-12 12:22:21 +05:30
Vachounet
1598f78c99 sanders: build libdisplayconfig
Change-Id: I06a4bfe9c775d1e3f831cb2f61cde27b19a4dc93
2018-06-12 12:22:21 +05:30
Vachounet
9a82df78aa sanders: enable TARGET_USE_SDCLANG
Change-Id: I3b4d503a5daa07cf15d96363a1fb88bd72ee7879
2018-06-12 12:22:21 +05:30
attack11
8459690a52 msm8953: sched_upmigrate need to be set first 2018-06-12 12:22:21 +05:30
attack11
1ca0f23e5d Revert "Use tracefs not debugfs"
This reverts commit 4312ce926ab60cbde9ff079908b7eb2954824419.
2018-06-12 12:22:21 +05:30
Varun Garg
abed536c00 msm8953: Update the sched parameters
Updating the sched params upmigrate, downmigrate
and upmigrate_min_nice for msm8953

Change-Id: I204bdc817bf769aa9f36acf4b4e2f151fe48d3c5
2018-06-12 12:22:21 +05:30
jhenrique09
177320f711 sanders: Use all cores in dex2oat 2018-06-12 12:22:21 +05:30
therootlord
6ffa9a3512 Revert "sanders: Use all cores for dex2oat"
This reverts commit 51644ac52a.
2018-06-12 12:22:21 +05:30
Dan Pasanen
29825aab62 sanders: use kernel-based exfat
Change-Id: If271a3441027cf66ed7142d99ee8fe7b6c596de3
2018-06-12 12:22:21 +05:30
Vachounet
36352e4542 sanders: add some qcom HALs 2018-06-12 12:22:21 +05:30
Vachounet
1d03566432 Revert "sanders: enable radio power save"
(reverted from commit 26ddbb0c29)
2018-06-12 12:22:21 +05:30
Vache
3424f39336 sanders: update trim properties from stock
* https://review.lineageos.org/#/c/208080/
2018-06-12 12:22:20 +05:30
Vache
0f1e782f0c sanders: enable radio power save 2018-06-12 12:22:20 +05:30
dianlujitao
8cf6cebb9e sanders: Add Lineage power hal to manifest
Change-Id: I03b213310b66be95d779c507dc22f748dc19c366
2018-06-12 12:22:20 +05:30
Vachounet
e5e0c3fc16 sanders: shim: transition to TARGET_LD_SHIM_LIBS 2018-06-12 12:22:20 +05:30
jhenrique09
fbc49b3d8b sanders: overlay: Enable turbo power charger support
* The text 'TurboPower connected' will be displayed on keyguard instead of 'Fast charging'
2018-06-12 12:22:20 +05:30
Lennart Wieboldt
257c8300ae 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-06-12 12:22:20 +05:30
Alexander Martinz
50bc24aa12 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-06-12 12:22:20 +05:30
Rashed Abdel-Tawab
462fe6df98 sanders: Add QTI low power whitelist
Change-Id: Idb4a954979f916a7903ead982bf18b33e5cf1baf
2018-06-12 12:22:20 +05:30
dianlujitao
e144a3d701 sanders: Add OEM privileged app permissions
Change-Id: If5425295a67449685737ab4e8099a5e2b432c78e
2018-06-12 12:22:20 +05:30
therootlord
0357ac4f82 sanders: MotoActions: Dexpreopt it 2018-06-12 12:21:53 +05:30
therootlord
50a81a383f sanders: MotoActions: Disable hand wave by default 2018-06-12 12:21:32 +05:30
Vachounet
f82d0fb3c3 Revert "sanders: drop libqsap_sdk"
* OSS one has missing symbols, keep it as blob only

(reverted from commit a9c2dd4486)

Change-Id: I388727a3f9c99719301565fde32ff36b3b26d225
2018-06-12 12:21:02 +05:30
Dan Pasanen
63e904f3d7 sanders: add shim for wifi_qsap_set_tx_power
Change-Id: I9ef277db6f4e068e7b92710f6039b4f261d72282
2018-06-12 12:21:02 +05:30
Vachounet
d7de007636 sanders: update GPS HAL
* LA.UM.6.5.r1-04000-8x96.0

Change-Id: I53666d7eb27d350c6a4893ad37d2a69b16fceb7e
2018-06-12 12:21:02 +05:30
Vachounet
e25dcf3632 sanders: add health HIDL 2018-06-12 12:21:02 +05:30
jhenrique09
cea15f2d7b sanders: Cleanup device 2018-06-12 12:20:40 +05:30
jhenrique09
fac236a501 sanders: Nuke data-ipa-cfg-mgr 2018-06-12 12:20:40 +05:30
jhenrique09
0ff1352559 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-06-12 12:20:40 +05:30
jhenrique09
8b78736022 sanders: MotoActions: Nuke PiP action
* Useless
2018-06-12 12:20:38 +05:30
jhenrique09
7c88aadccc sanders: MotoActions: Change to sdk 27 2018-06-12 12:20:18 +05:30
Vachounet
33f55353f1 sanders: use /system/vendor/bin/sh for init scripts
* For real

Change-Id: I41419e2b0f8746d94ca3b4b52af9e4bcade72f17
2018-06-12 12:20:18 +05:30
Vachounet
bbc3935e59 sanders: drop libqsap_sdk
* OSS one has missing symbols, keep it as blob only
2018-06-12 12:20:18 +05:30
Alberto97
0b59614277 sanders: Directly copy wlan files
* Symlinks are no more required, kill them
2018-06-12 12:19:56 +05:30
Alberto97
b72a890f23 sanders: WCNSS update 2018-06-12 12:19:56 +05:30
Vachounet
ff4fa261e2 sanders: use /system/vendor/bin/sh for init scripts 2018-06-12 12:19:56 +05:30
Vachounet
6f7b559b65 sanders: remove fingerprintd service
* Not needed
2018-06-12 12:19:55 +05:30
Vachounet
a169c7cf66 MotoActions: remove unused debug logs 2018-06-12 12:19:55 +05:30
Vachounet
7601d64207 sanders: update post-install script
* Permissions moved to vendor
* Fix deep sleep issue on variants without NFC

Change-Id: Ie5a24a3debe638a3f491d12aa62bf1775b955972
2018-06-12 12:19:55 +05:30
Vachounet
53bfe718ae sanders: add telephony-ext to boot JARs 2018-06-12 12:19:55 +05:30
Henrique Silva
566e67dafa sanders: rootdir: Move swapon_all to right place 2018-06-12 12:19:55 +05:30
Vachounet
5bf3421cdf 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-06-12 12:19:55 +05:30
Vachounet
bd37d7c55f sanders: build a dummy android.hidl.manager@1.0 2018-06-12 12:19:55 +05:30
dianlujitao
9297fa3b93 sanders: Build a dummy android.hidl.base@1.0 for Oreo-MR0 blobs
Change-Id: I81a081130869c4d92f30b2674e75bb6b096a7a2c
2018-06-12 12:19:55 +05:30
Rashed Abdel-Tawab
ef4b2b36b1 sanders: Set IMS to use CodeAurora extension
Change-Id: I64cba319986748e4dad206ca664ccda7eefb348a
2018-06-12 12:19:55 +05:30
Vachounet
5d8ed33094 sanders: shims cleanup
Change-Id: Ideafbadf8d51c94b7505201239e32435dc3ea54f
2018-06-12 12:19:55 +05:30
Vachounet
2725662273 sanders: update for IMS
* Services update
* Add HIDL HALs
2018-06-12 12:19:55 +05:30
Vachounet
59b7108aa2 sanders: add vendor.qti.hardware.alarm HIDL 2018-06-12 12:19:55 +05:30
Vachounet
fabb0ade08 sanders: build configstore service 2018-06-12 12:19:39 +05:30
jhenrique09
1e25b25524 MotoActions: Move strings to packages/resources/MotoActions 2018-06-12 12:19:11 +05:30
Adrian DC
aa68669332 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-06-12 12:18:11 +05:30
jhenrique09
fc5155379f sanders: LineageActions -> MotoActions 2018-06-12 12:18:00 +05:30
jhenrique09
a632d88af4 sanders: LineageActions: Remove from dashboard, move to system settings
Needs 7ad487fd5c

Signed-off-by: Keertesh <keertesh.k98@gmail.com>
2018-06-12 12:14:56 +05:30
502 changed files with 11825 additions and 14678 deletions

View File

@@ -1,3 +0,0 @@
subdirs = [
"light",
]

View File

@@ -17,47 +17,29 @@ ifneq ($(filter sanders,$(TARGET_DEVICE)),)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
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
$(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 := \ FIRMWARE_ADSP_IMAGES := \
adsp.b00 adsp.b01 adsp.b02 adsp.b03 adsp.b04 adsp.b05 adsp.b06 \ 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.b07 adsp.b08 adsp.b09 adsp.b10 adsp.b11 adsp.b12 adsp.b13 \
adsp.mdt adsp.mdt
FIRMWARE_ADSP_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_ADSP_IMAGES))) FIRMWARE_ADSP_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_ADSP_IMAGES)))
$(FIRMWARE_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(FIRMWARE_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "ADSP Firmware link: $@" @echo "ADSP Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_ADSP_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_ADSP_SYMLINKS)
FIRMWARE_CPPF_IMAGES := \ FIRMWARE_CPPF_IMAGES := \
cppf.b00 cppf.b01 cppf.b02 cppf.b03 cppf.b04 cppf.b05 cppf.b06 cppf.mdt 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 := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_CPPF_IMAGES)))
$(FIRMWARE_CPPF_SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(FIRMWARE_CPPF_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Fingerprint Firmware link: $@" @echo "Fingerprint Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_CPPF_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_CPPF_SYMLINKS)
@@ -66,12 +48,12 @@ FIRMWARE_FINGERPRINT_IMAGES := \
fpctzappfingerprint.b03 fpctzappfingerprint.b04 fpctzappfingerprint.b05 \ fpctzappfingerprint.b03 fpctzappfingerprint.b04 fpctzappfingerprint.b05 \
fpctzappfingerprint.b06 fpctzappfingerprint.mdt fpctzappfingerprint.b06 fpctzappfingerprint.mdt
FIRMWARE_FINGERPRINT_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_FINGERPRINT_IMAGES))) FIRMWARE_FINGERPRINT_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_FINGERPRINT_IMAGES)))
$(FIRMWARE_FINGERPRINT_SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(FIRMWARE_FINGERPRINT_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Fingerprint Firmware link: $@" @echo "Fingerprint Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_FINGERPRINT_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_FINGERPRINT_SYMLINKS)
@@ -81,12 +63,12 @@ FIRMWARE_MODEM_IMAGES := \
modem.b13 modem.b16 modem.b17 modem.b18 modem.b19 modem.b20 \ modem.b13 modem.b16 modem.b17 modem.b18 modem.b19 modem.b20 \
modem.mdt modem.mdt
FIRMWARE_MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_VENDOR)/firmware/,$(notdir $(FIRMWARE_MODEM_IMAGES))) FIRMWARE_MODEM_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_MODEM_IMAGES)))
$(FIRMWARE_MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(FIRMWARE_MODEM_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Modem Firmware link: $@" @echo "Modem Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MODEM_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_MODEM_SYMLINKS)
@@ -94,12 +76,12 @@ FIRMWARE_WCNSS_IMAGES := \
wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 wcnss.b06 \ wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 wcnss.b06 \
wcnss.b09 wcnss.b10 wcnss.b11 wcnss.b12 wcnss.mdt 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 := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(FIRMWARE_WCNSS_IMAGES)))
$(FIRMWARE_WCNSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(FIRMWARE_WCNSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "WCNSS Firmware link: $@" @echo "WCNSS Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WCNSS_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WCNSS_SYMLINKS)
@@ -112,7 +94,7 @@ $(FIRMWARE_WIDEVINE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "Widevine Firmware link: $@" @echo "Widevine Firmware link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/firmware_mnt/image/$(notdir $@) $@ $(hide) ln -sf /firmware/image/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WIDEVINE_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(FIRMWARE_WIDEVINE_SYMLINKS)
@@ -122,10 +104,10 @@ $(RFS_MSM_ADSP_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@rm -rf $@/* @rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor @mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps $(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/adsp $@/readwrite $(hide) ln -sf /persist/rfs/msm/adsp $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared $(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos $(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware $(hide) ln -sf /firmware $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/ RFS_MSM_SLPI_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/slpi/
@@ -134,10 +116,10 @@ $(RFS_MSM_SLPI_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@rm -rf $@/* @rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor @mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps $(hide) ln -sf /data/vendor/tombstones/rfs/lpass $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/slpi $@/readwrite $(hide) ln -sf /persist/rfs/msm/slpi $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared $(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos $(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware $(hide) ln -sf /firmware $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware $(hide) ln -sf /vendor/firmware $@/readonly/vendor/firmware
RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/ RFS_MSM_MPSS_SYMLINKS := $(TARGET_OUT_VENDOR)/rfs/msm/mpss/
@@ -146,10 +128,10 @@ $(RFS_MSM_MPSS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@rm -rf $@/* @rm -rf $@/*
@mkdir -p $(dir $@)/readonly/vendor @mkdir -p $(dir $@)/readonly/vendor
$(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps $(hide) ln -sf /data/vendor/tombstones/rfs/modem $@/ramdumps
$(hide) ln -sf /mnt/vendor/persist/rfs/msm/mpss $@/readwrite $(hide) ln -sf /persist/rfs/msm/mpss $@/readwrite
$(hide) ln -sf /mnt/vendor/persist/rfs/shared $@/shared $(hide) ln -sf /persist/rfs/shared $@/shared
$(hide) ln -sf /mnt/vendor/persist/hlos_rfs/shared $@/hlos $(hide) ln -sf /persist/hlos_rfs/shared $@/hlos
$(hide) ln -sf /vendor/firmware_mnt $@/readonly/firmware $(hide) ln -sf /firmware $@/readonly/firmware
$(hide) ln -sf /vendor/firmware $@/readonly/vendor/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) ALL_DEFAULT_INSTALLED_MODULES += $(RFS_MSM_ADSP_SYMLINKS) $(RFS_MSM_MPSS_SYMLINKS) $(RFS_MSM_SLPI_SYMLINKS)
@@ -160,10 +142,17 @@ $(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
@echo "IMS lib link: $@" @echo "IMS lib link: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -rf $@ @rm -rf $@
$(hide) ln -sf /vendor/lib64/$(notdir $@) $@ $(hide) ln -sf /system/vendor/lib64/$(notdir $@) $@
ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS) ALL_DEFAULT_INSTALLED_MODULES += $(IMS_SYMLINKS)
NUKE_NOTEPAD := $(TARGET_OUT)/app/Notepadv3Solution
$(NUKE_NOTEPAD): $(LOCAL_INSTALLED_MODULE)
@echo "Removing: $@"
@rm -rf $@
ALL_DEFAULT_INSTALLED_MODULES += $(NUKE_NOTEPAD)
include $(call all-makefiles-under,$(LOCAL_PATH)) include $(call all-makefiles-under,$(LOCAL_PATH))
endif endif

View File

@@ -27,6 +27,7 @@ TARGET_FS_CONFIG_GEN := $(DEVICE_PATH)/config.fs
# Platform # Platform
TARGET_BOARD_PLATFORM := msm8953 TARGET_BOARD_PLATFORM := msm8953
TARGET_BOARD_PLATFORM_GPU := qcom-adreno506
# Bootloader # Bootloader
TARGET_BOOTLOADER_BOARD_NAME := MSM8953 TARGET_BOOTLOADER_BOARD_NAME := MSM8953
@@ -38,30 +39,33 @@ TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 := TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53 TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_CORTEX_A53 := true
TARGET_2ND_ARCH := arm TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv8-a TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53 TARGET_2ND_CPU_VARIANT := cortex-a53
TARGET_CPU_CORTEX_A53 := true
TARGET_USES_64_BIT_BINDER := true
# Asserts # Asserts
TARGET_OTA_ASSERT_DEVICE := sanders,sanders_retail 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 # GPS
TARGET_NO_RPC := true TARGET_NO_RPC := true
USE_DEVICE_SPECIFIC_GPS := true USE_DEVICE_SPECIFIC_GPS := true
USING_DEVICE_GPS := true
BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM) BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := $(TARGET_BOARD_PLATFORM)
# HDIL - enable this for ROMs build base/transport hidl in their sources
#BUILD_DEVICE_LIBHIDL := false
# Init
TARGET_INIT_VENDOR_LIB := libinit_sanders
TARGET_RECOVERY_DEVICE_MODULES := libinit_sanders
# Kernel # Kernel
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
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 += ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 vmalloc=350M androidboot.selinux=permissive
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x80000000 BOARD_KERNEL_BASE := 0x80000000
BOARD_KERNEL_IMAGE_NAME := Image.gz BOARD_KERNEL_IMAGE_NAME := Image.gz
BOARD_KERNEL_PAGESIZE := 2048 BOARD_KERNEL_PAGESIZE := 2048
@@ -69,65 +73,47 @@ BOARD_KERNEL_SEPARATED_DT := true
TARGET_CUSTOM_DTBTOOL := dtbTool_custom TARGET_CUSTOM_DTBTOOL := dtbTool_custom
BOARD_DTBTOOL_ARGS := --force-v3 --motorola 1 BOARD_DTBTOOL_ARGS := --force-v3 --motorola 1
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01000000 --tags_offset 0x00000100 BOARD_MKBOOTIMG_ARGS := --ramdisk_offset 0x01000000 --tags_offset 0x00000100
TARGET_KERNEL_ARCH := arm64
TARGET_KERNEL_HEADER_ARCH := arm64 TARGET_KERNEL_HEADER_ARCH := arm64
TARGET_KERNEL_CONFIG := sanders_defconfig TARGET_KERNEL_CONFIG := sanders_defconfig
TARGET_KERNEL_SOURCE := kernel/motorola/msm8953 TARGET_KERNEL_SOURCE := kernel/motorola/msm8953
# CLANG
TARGET_KERNEL_CLANG_COMPILE := true TARGET_KERNEL_CLANG_COMPILE := true
#TARGET_USE_SDCLANG := true TARGET_KERNEL_CLANG_PATH := $(ANDROID_BUILD_TOP)/prebuilts/clang/host/$(HOST_OS)-x86/7.0-DragonTC/bin
# SDCLANG
TARGET_USE_SDCLANG := true
# Audio # 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_ALAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_APE_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_ACDB_LICENSE := true
AUDIO_FEATURE_ENABLED_DEV_ARBI := false AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
MM_AUDIO_ENABLED_FTM := true AUDIO_FEATURE_ENABLED_ANC_HEADSET := true
TARGET_USES_QCOM_MM_AUDIO := true AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
AUDIO_FEATURE_ENABLED_DEV_ARBI := true
AUDIO_FEATURE_ENABLED_EXT_HDMI := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HFP := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
BOARD_SUPPORTS_QAHW := false AUDIO_FEATURE_ENABLED_SSR := true
AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_WMA_OFFLOAD := true
AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true AUDIO_FEATURE_ENABLED_SND_MONITOR := true
AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true BOARD_USES_ALSA_AUDIO := true
AUDIO_FEATURE_ENABLED_DLKM := false BOARD_USES_GENERIC_AUDIO := true
TARGET_USES_QCOM_MM_AUDIO := true
# Bluetooth # Bluetooth
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
@@ -143,30 +129,46 @@ BACKLIGHT_PATH := /sys/class/leds/lcd-backlight/brightness
BOARD_CHARGER_ENABLE_SUSPEND := true BOARD_CHARGER_ENABLE_SUSPEND := true
BOARD_NO_CHARGER_LED := true BOARD_NO_CHARGER_LED := true
# DT2W
#TARGET_TAP_TO_WAKE_NODE := "/sys/android_touch/doubletap2wake"
# Crypto # Crypto
TARGET_HW_DISK_ENCRYPTION := true TARGET_HW_DISK_ENCRYPTION := true
TARGET_USES_METADATA_AS_FDE_KEY := true
# Enable dexpreopt to speed boot time
ifeq ($(HOST_OS),linux)
ifneq ($(TARGET_BUILD_VARIANT),eng)
ifeq ($(WITH_DEXPREOPT),)
WITH_DEXPREOPT := true
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := true
endif
endif
endif
# Display # Display
BOARD_USES_ADRENO := true BOARD_USES_ADRENO := true
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
OVERRIDE_RS_DRIVER := libRSDriver_adreno.so OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
TARGET_USES_C2D_COMPOSITION := true TARGET_USES_C2D_COMPOSITION := true
TARGET_USES_GRALLOC1 := true TARGET_USES_GRALLOC1 := true
TARGET_USES_ION := true TARGET_USES_ION := true
TARGET_USES_HWC2 := true TARGET_USES_HWC2 := true
TARGET_USES_OVERLAY := true
TARGET_USES_NEW_ION_API := true
USE_OPENGL_RENDERER := true
MAX_EGL_CACHE_KEY_SIZE := 12*1024 MAX_EGL_CACHE_KEY_SIZE := 12*1024
MAX_EGL_CACHE_SIZE := 2048*1024 MAX_EGL_CACHE_SIZE := 2048*1024
TARGET_USES_C2D_COMPOSITION := true TARGET_USES_C2D_COMPOSITION := true
MAX_VIRTUAL_DISPLAY_DIMENSION := 4096 MAX_VIRTUAL_DISPLAY_DIMENSION := 4096
TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
VSYNC_EVENT_PHASE_OFFSET_NS := 2000000
SF_VSYNC_EVENT_PHASE_OFFSET_NS := 6000000
# exfat # exfat
TARGET_EXFAT_DRIVER := exfat TARGET_EXFAT_DRIVER := exfat
# FM # FM
BOARD_HAVE_QCOM_FM := true BOARD_HAVE_QCOM_FM := true
BOARD_HAVE_FM_RADIO := true
TARGET_QCOM_NO_FM_FIRMWARE := true
# Keymaster # Keymaster
TARGET_PROVIDES_KEYMASTER := true TARGET_PROVIDES_KEYMASTER := true
@@ -195,7 +197,7 @@ BOARD_USERDATAIMAGE_PARTITION_SIZE := 25614597120 # 25014255 * 1024 mmcblk0p54
TARGET_PER_MGR_ENABLED := true TARGET_PER_MGR_ENABLED := true
# Power # Power
TARGET_HAS_NO_WLAN_STATS := true TARGET_HAS_NO_WIFI_STATS := true
# QC flags # QC flags
BOARD_USES_QCOM_HARDWARE := true BOARD_USES_QCOM_HARDWARE := true
@@ -206,30 +208,29 @@ BOARD_HAS_NO_SELECT_BUTTON := true
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.recovery TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.recovery
TARGET_USERIMAGES_USE_EXT4 := true TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true TARGET_USERIMAGES_USE_F2FS := true
LZMA_RAMDISK_TARGETS := recovery
# Releasetools # Releasetools
TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)/releasetools TARGET_RELEASETOOLS_EXTENSIONS := $(DEVICE_PATH)/releasetools
# RIL
TARGET_PROVIDES_QTI_TELEPHONY_JAR := true
# SELinux # SELinux
include device/qcom/sepolicy/Android.mk #include device/qcom/sepolicy/sepolicy.mk
BOARD_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy/vendor #BOARD_SEPOLICY_DIRS += $(DEVICE_PATH)/sepolicy
SELINUX_IGNORE_NEVERALLOWS := true # Shim
TARGET_ENABLE_MEDIADRM_64 := true TARGET_LD_SHIM_LIBS := \
/system/vendor/bin/adspd|libshim_adsp.so \
/system/vendor/lib64/libmdmcutback.so|libqsap_shim.so
# Treble # Thermal
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true USE_DEVICE_SPECIFIC_THERMAL := true
BOARD_VENDORIMAGE_PARTITION_SIZE := 805306368
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 # Use mke2fs to create ext4 images
PRODUCT_FULL_TREBLE_OVERRIDE := true TARGET_USES_MKE2FS := true
PRODUCT_VENDOR_MOVE_ENABLED := true
TARGET_COPY_OUT_VENDOR := vendor
# Wifi # Wifi
BOARD_HAS_QCOM_WLAN := true BOARD_HAS_QCOM_WLAN := true
BOARD_HAS_QCOM_WLAN_SDK := true
BOARD_WLAN_DEVICE := qcwcn BOARD_WLAN_DEVICE := qcwcn
BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_qcwcn BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_qcwcn
@@ -239,4 +240,6 @@ WIFI_DRIVER_FW_PATH_AP := "ap"
WIFI_DRIVER_FW_PATH_STA := "sta" WIFI_DRIVER_FW_PATH_STA := "sta"
WIFI_DRIVER_FW_PATH_P2P := "p2p" WIFI_DRIVER_FW_PATH_P2P := "p2p"
WPA_SUPPLICANT_VERSION := VER_0_8_X WPA_SUPPLICANT_VERSION := VER_0_8_X
TARGET_DISABLE_WCNSS_CONFIG_COPY := true
# MISSING_DEPENDENCIES
ALLOW_MISSING_DEPENDENCIES=true

View File

@@ -0,0 +1,10 @@
include $(CLEAR_VARS)
LOCAL_MODULE := GoogleCameraMod
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := GoogleCameraMod/Arnova_V6bt5_mod_jhenrique09.apk
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_DEX_PREOPT := false
LOCAL_OVERRIDES_PACKAGES := Camera2
include $(BUILD_PREBUILT)

Binary file not shown.

View File

@@ -6,19 +6,32 @@ LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := MotoActions LOCAL_PACKAGE_NAME := MotoActions
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true LOCAL_PRIVILEGED_MODULE := true
LOCAL_USE_AAPT2 := true
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v14-preference \
android-support-v7-appcompat \
android-support-v7-preference \
android-support-v7-recyclerview
LOCAL_PROGUARD_FLAG_FILES := proguard.flags LOCAL_PROGUARD_FLAG_FILES := proguard.flags
LOCAL_RESOURCE_DIR := \ LOCAL_RESOURCE_DIR := \
$(LOCAL_PATH)/res \ $(LOCAL_PATH)/res \
$(TOP)/packages/resources/devicesettings/res $(LOCAL_PATH)/../../../../packages/resources/MotoActions/res \
frameworks/support/v14/preference/res \
frameworks/support/v7/appcompat/res \
frameworks/support/v7/preference/res \
frameworks/support/v7/recyclerview/res
LOCAL_AAPT_FLAGS := --auto-add-overlay \
--extra-packages android.support.v14.preference:android.support.v7.appcompat:android.support.v7.preference:android.support.v7.recyclerview
LOCAL_PROGUARD_ENABLED := disabled LOCAL_PROGUARD_ENABLED := disabled
include frameworks/base/packages/SettingsLib/common.mk include frameworks/base/packages/SettingsLib/common.mk
include $(BUILD_PACKAGE) include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))

View File

@@ -7,7 +7,6 @@
<original-package android:name="com.cyanogenmod.settings.device" /> <original-package android:name="com.cyanogenmod.settings.device" />
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" /> <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.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE"/> <uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
@@ -15,9 +14,13 @@
<protected-broadcast android:name="com.android.systemui.doze.pulse" /> <protected-broadcast android:name="com.android.systemui.doze.pulse" />
<uses-sdk
android:minSdkVersion="27"
android:targetSdkVersion="27" />
<application <application
android:allowBackup="true" android:allowBackup="true"
android:label="@string/moto_actions_title" android:label="@string/screen_gestures_panel_title"
android:icon="@drawable/ic_gesture" android:icon="@drawable/ic_gesture"
android:persistent="true"> android:persistent="true">
@@ -58,21 +61,9 @@
<activity <activity
android:name=".ActionsPreferenceActivity" android:name=".ActionsPreferenceActivity"
android:label="@string/moto_actions_title" android:label="@string/screen_gestures_panel_title"
android:summary="@string/device_gestures_summary" android:summary="@string/device_gestures_summary"
android:theme="@style/MotoActions"> 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>
<activity <activity

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -1,9 +0,0 @@
<!-- 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>

View File

@@ -1,9 +0,0 @@
<!-- 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>

View File

@@ -1,28 +0,0 @@
<?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>

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -1,23 +0,0 @@
<?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>

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -1,20 +0,0 @@
<!--
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>

View File

@@ -32,7 +32,7 @@
android:paddingStart="48dp" android:paddingStart="48dp"
android:maxLines="2" android:maxLines="2"
android:ellipsize="end" android:ellipsize="end"
android:textAppearance="@*android:style/TextAppearanceTitle" android:textAppearance="@android:style/TextAppearance.Material.Title"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:textAlignment="viewStart" android:textAlignment="viewStart"
android:text="@string/switch_bar_on" /> android:text="@string/switch_bar_on" />

View File

@@ -18,6 +18,11 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<SwitchPreference
android:key="gesture_double_tap_power"
android:title="@string/double_tap_power_for_camera_title"
android:summary="@string/double_tap_power_for_camera_summary"/>
<SwitchPreference <SwitchPreference
android:key="gesture_camera_action" android:key="gesture_camera_action"
android:defaultValue="true" android:defaultValue="true"

View File

@@ -21,13 +21,12 @@
android:key="gesture_pick_up" android:key="gesture_pick_up"
android:defaultValue="true" android:defaultValue="true"
android:title="@string/pick_up_gesture_title" android:title="@string/pick_up_gesture_title"
android:summary="@string/pick_up_gesture_summary" android:summary="@string/pick_up_gesture_summary" />
android:icon="@drawable/ic_pickup" />
<SwitchPreference <SwitchPreference
android:key="gesture_hand_wave" android:key="gesture_hand_wave"
android:defaultValue="false" android:defaultValue="false"
android:title="@string/hand_wave_gesture_title" android:title="@string/hand_wave_gesture_title"
android:summary="@string/hand_wave_gesture_summary" android:summary="@string/hand_wave_gesture_summary" />
android:icon="@drawable/ic_hand" />
</PreferenceScreen> </PreferenceScreen>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2015-2016 The CyanogenMod Project Copyright (C) 2015-2016 The CyanogenMod Project
Copyright (C) 2017-2019 The LineageOS Project Copyright (C) 2017 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License" Licensed under the Apache License, Version 2.0 (the "License"
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
@@ -19,7 +19,6 @@
android:key="fp_home_scr_off" android:key="fp_home_scr_off"
android:enabled="false" android:enabled="false"
android:title="@string/fingerprint_gestures_screenoff_title" android:title="@string/fingerprint_gestures_screenoff_title"
android:icon="@drawable/ic_fingerprint"
android:summary="@string/fingerprint_gestures_screenoff_summary" /> android:summary="@string/fingerprint_gestures_screenoff_summary" />
<PreferenceCategory <PreferenceCategory
@@ -30,7 +29,6 @@
android:key="fp_haptic" android:key="fp_haptic"
android:defaultValue="0" android:defaultValue="0"
android:title="@string/haptic_feedback" android:title="@string/haptic_feedback"
android:icon="@drawable/ic_vibrate"
android:summary="@string/haptic_feedback_summary" /> android:summary="@string/haptic_feedback_summary" />
<ListPreference <ListPreference
@@ -40,7 +38,6 @@
android:key="fp_keys" android:key="fp_keys"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_listArray" android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_tap"
android:entryValues="@array/fp_keys_listValues" /> android:entryValues="@array/fp_keys_listValues" />
<ListPreference <ListPreference
@@ -50,7 +47,6 @@
android:key="fp_key_dbltap" android:key="fp_key_dbltap"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_listArray" android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_double_tap"
android:entryValues="@array/fp_keys_listValues" /> android:entryValues="@array/fp_keys_listValues" />
<ListPreference <ListPreference
@@ -60,7 +56,6 @@
android:key="fp_key_hold" android:key="fp_key_hold"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_listArray" android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_tap_hold"
android:entryValues="@array/fp_keys_listValues" /> android:entryValues="@array/fp_keys_listValues" />
<ListPreference <ListPreference
@@ -70,7 +65,6 @@
android:key="fp_key_left" android:key="fp_key_left"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_listArray" android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_swipe_left"
android:entryValues="@array/fp_keys_listValues" /> android:entryValues="@array/fp_keys_listValues" />
<ListPreference <ListPreference
@@ -80,7 +74,6 @@
android:key="fp_key_right" android:key="fp_key_right"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_listArray" android:entries="@array/fp_keys_listArray"
android:icon="@drawable/ic_swipe_right"
android:entryValues="@array/fp_keys_listValues" /> android:entryValues="@array/fp_keys_listValues" />
</PreferenceCategory> </PreferenceCategory>
@@ -94,7 +87,6 @@
android:dependency="fp_home_scr_off" android:dependency="fp_home_scr_off"
android:defaultValue="0" android:defaultValue="0"
android:title="@string/haptic_feedback" android:title="@string/haptic_feedback"
android:icon="@drawable/ic_vibrate"
android:summary="@string/haptic_feedback_summary" /> android:summary="@string/haptic_feedback_summary" />
<ListPreference <ListPreference
@@ -105,7 +97,6 @@
android:key="fp_keys_off" android:key="fp_keys_off"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray" android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_tap"
android:entryValues="@array/fp_keys_screen_off_listValues" /> android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference <ListPreference
@@ -116,7 +107,6 @@
android:key="fp_key_dbltap_off" android:key="fp_key_dbltap_off"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray" android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_double_tap"
android:entryValues="@array/fp_keys_screen_off_listValues" /> android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference <ListPreference
@@ -127,7 +117,6 @@
android:key="fp_key_hold_off" android:key="fp_key_hold_off"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray" android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_tap_hold"
android:entryValues="@array/fp_keys_screen_off_listValues" /> android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference <ListPreference
@@ -138,7 +127,6 @@
android:key="fp_key_left_off" android:key="fp_key_left_off"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray" android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_swipe_left"
android:entryValues="@array/fp_keys_screen_off_listValues" /> android:entryValues="@array/fp_keys_screen_off_listValues" />
<ListPreference <ListPreference
@@ -149,7 +137,6 @@
android:key="fp_key_right_off" android:key="fp_key_right_off"
android:defaultValue="0" android:defaultValue="0"
android:entries="@array/fp_keys_screen_off_listArray" android:entries="@array/fp_keys_screen_off_listArray"
android:icon="@drawable/ic_swipe_right"
android:entryValues="@array/fp_keys_screen_off_listValues" /> android:entryValues="@array/fp_keys_screen_off_listValues" />
</PreferenceCategory> </PreferenceCategory>

View File

@@ -17,6 +17,7 @@
package com.moto.actions; package com.moto.actions;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceActivity; import android.preference.PreferenceActivity;
public class ActionsPreferenceActivity extends PreferenceActivity { public class ActionsPreferenceActivity extends PreferenceActivity {
@@ -24,12 +25,9 @@ public class ActionsPreferenceActivity extends PreferenceActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (savedInstanceState == null){
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.replace(android.R.id.content, new ActionsPreferenceFragment()).commit(); .replace(android.R.id.content, new ActionsPreferenceFragment()).commit();
} }
} }
}

View File

@@ -21,6 +21,11 @@ import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
public class ActionsPreferenceFragment extends PreferenceFragment { public class ActionsPreferenceFragment extends PreferenceFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {

View File

@@ -27,6 +27,7 @@ import android.content.ServiceConnection;
import android.os.IBinder; import android.os.IBinder;
import android.util.Log; import android.util.Log;
import com.moto.actions.util.FileUtils;
import com.moto.actions.actions.Constants; import com.moto.actions.actions.Constants;
import com.moto.actions.ServiceWrapper.LocalBinder; import com.moto.actions.ServiceWrapper.LocalBinder;
@@ -40,10 +41,6 @@ public class BootCompletedReceiver extends BroadcastReceiver {
public void onReceive(final Context context, Intent intent) { public void onReceive(final Context context, Intent intent) {
Log.i(TAG, "Booting"); Log.i(TAG, "Booting");
if (intent.getAction() != null && !intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
return;
}
// Restore nodes to saved preference values // Restore nodes to saved preference values
for (String pref : Constants.sPrefKeys) { for (String pref : Constants.sPrefKeys) {
Constants.writePreference(context, pref); Constants.writePreference(context, pref);

View File

@@ -17,6 +17,7 @@
package com.moto.actions; package com.moto.actions;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceActivity; import android.preference.PreferenceActivity;
public class DozeSettingsActivity extends PreferenceActivity { public class DozeSettingsActivity extends PreferenceActivity {
@@ -24,12 +25,9 @@ public class DozeSettingsActivity extends PreferenceActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (getActionBar() != null) { if (savedInstanceState == null){
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(R.string.ambient_display_title);
}
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.replace(android.R.id.content, new DozeSettingsFragment()).commit(); .replace(android.R.id.content, new DozeSettingsFragment()).commit();
} }
} }
}

View File

@@ -16,6 +16,7 @@
package com.moto.actions; package com.moto.actions;
import android.app.ActionBar;
import android.os.Bundle; import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import android.provider.Settings; import android.provider.Settings;
@@ -40,6 +41,14 @@ public class DozeSettingsFragment extends PreferenceFragment {
private String KEY_GESTURE_HAND_WAVE = "gesture_hand_wave"; private String KEY_GESTURE_HAND_WAVE = "gesture_hand_wave";
private String KEY_GESTURE_PICK_UP = "gesture_pick_up"; private String KEY_GESTURE_PICK_UP = "gesture_pick_up";
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ActionBar actionbar = getActivity().getActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setTitle(R.string.ambient_display_title);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {

View File

@@ -25,13 +25,9 @@ public class FPGestureSettingsActivity extends PreferenceActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (savedInstanceState == null){
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setTitle(R.string.fingerprint_gestures_title);
}
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.replace(android.R.id.content, new FPGestureSettingsFragment()).commit(); .replace(android.R.id.content, new FPGestureSettingsFragment()).commit();
} }
} }
}

View File

@@ -47,6 +47,14 @@ public class FPGestureSettingsFragment extends PreferenceFragment {
private TextView mSwitchBarText; private TextView mSwitchBarText;
private Switch mFPGestureSwitch; private Switch mFPGestureSwitch;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ActionBar actionbar = getActivity().getActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setTitle(R.string.fingerprint_gestures_title);
}
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {

View File

@@ -25,12 +25,9 @@ public class GestureSettingsActivity extends PreferenceActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (savedInstanceState == null){
if (getActionBar() != null) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
getFragmentManager().beginTransaction() getFragmentManager().beginTransaction()
.replace(android.R.id.content, new GestureSettingsFragment()).commit(); .replace(android.R.id.content, new GestureSettingsFragment()).commit();
} }
} }
}

View File

@@ -17,13 +17,64 @@
package com.moto.actions; package com.moto.actions;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import android.support.v14.preference.SwitchPreference;
import android.os.UserHandle;
import android.provider.Settings;
import android.content.Context;
import android.content.res.Resources;
public class GestureSettingsFragment extends PreferenceFragment { public class GestureSettingsFragment extends PreferenceFragment {
private SwitchPreference mGestureDoubleTapPower;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.actions_panel); addPreferencesFromResource(R.xml.actions_panel);
mGestureDoubleTapPower = (SwitchPreference) findPreference("gesture_double_tap_power");
if (isCameraDoubleTapPowerAllowed()){
mGestureDoubleTapPower.setChecked(isCameraDoubleTapPowerEnabled());
mGestureDoubleTapPower.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
boolean value = (Boolean) objValue;
setCameraDoubleTapPowerEnabled(value);
return true;
}
});
try {
Resources settingsRes = getActivity().createPackageContext("com.android.settings", 0).getResources();
mGestureDoubleTapPower.setTitle(settingsRes.getString(
settingsRes.getIdentifier("double_tap_power_for_camera_title", "string", "com.android.settings")));
mGestureDoubleTapPower.setSummary(settingsRes.getString(
settingsRes.getIdentifier("double_tap_power_for_camera_summary", "string", "com.android.settings")));
} catch (Exception e) {
}
}else{
getPreferenceScreen().removePreference(mGestureDoubleTapPower);
}
}
private boolean isCameraDoubleTapPowerAllowed() {
return getActivity().getResources().getBoolean(
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
}
private boolean isCameraDoubleTapPowerEnabled(){
return Settings.Secure.getIntForUser(getActivity().getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, UserHandle.USER_CURRENT) == 0;
}
private void setCameraDoubleTapPowerEnabled(boolean enabled){
Settings.Secure.putInt(getActivity().getContentResolver(),
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, enabled ? 0 : 1);
} }
} }

View File

@@ -30,6 +30,9 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.hardware.camera2.CameraAccessException; import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraManager;
@@ -84,13 +87,18 @@ public class KeyHandler implements DeviceKeyHandler {
.build(); .build();
private final Context mContext; private final Context mContext;
private final PowerManager mPowerManager; private final PowerManager mPowerManager;
WakeLock mProximityWakeLock;
WakeLock mGestureWakeLock; WakeLock mGestureWakeLock;
private KeyguardManager mKeyguardManager; private KeyguardManager mKeyguardManager;
private FPScreenOffGesturesHandler mFPScreenOffGesturesHandler; private FPScreenOffGesturesHandler mFPScreenOffGesturesHandler;
private SensorManager mSensorManager;
private CameraManager mCameraManager; private CameraManager mCameraManager;
private String mRearCameraId; private String mRearCameraId;
private boolean mTorchEnabled; private boolean mTorchEnabled;
private Sensor mProximitySensor;
private Vibrator mVibrator; private Vibrator mVibrator;
private int mProximityTimeOut;
private boolean mProximityWakeSupported;
private ISearchManager mSearchManagerService; private ISearchManager mSearchManagerService;
private Handler mHandler; private Handler mHandler;
private int fpTapCounts = 0; private int fpTapCounts = 0;
@@ -131,6 +139,19 @@ public class KeyHandler implements DeviceKeyHandler {
mGestureWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, mGestureWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"GestureWakeLock"); "GestureWakeLock");
final Resources resources = mContext.getResources();
mProximityTimeOut = resources.getInteger(
com.android.internal.R.integer.config_proximityCheckTimeout);
mProximityWakeSupported = resources.getBoolean(
com.android.internal.R.bool.config_proximityCheckOnWake);
if (mProximityWakeSupported) {
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mProximityWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"ProximityWakeLock");
}
mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (mVibrator == null || !mVibrator.hasVibrator()) { if (mVibrator == null || !mVibrator.hasVibrator()) {
mVibrator = null; mVibrator = null;
@@ -635,9 +656,45 @@ public class KeyHandler implements DeviceKeyHandler {
if (!mFPScreenOffGesturesHandler.hasMessages(FP_ACTION_REQUEST)) { if (!mFPScreenOffGesturesHandler.hasMessages(FP_ACTION_REQUEST)) {
Message msg = mFPScreenOffGesturesHandler.obtainMessage(FP_ACTION_REQUEST); Message msg = mFPScreenOffGesturesHandler.obtainMessage(FP_ACTION_REQUEST);
msg.arg1 = scanCode; msg.arg1 = scanCode;
boolean defaultProximity = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_proximityCheckOnWakeEnabledByDefault);
boolean proximityWakeCheckEnabled = Settings.System.getInt(mContext.getContentResolver(),
Settings.System.PROXIMITY_ON_WAKE, defaultProximity ? 1 : 0) == 1;
if (mProximityWakeSupported && proximityWakeCheckEnabled && mProximitySensor != null) {
mFPScreenOffGesturesHandler.sendMessageDelayed(msg, mProximityTimeOut);
registerFPScreenOffListener(scanCode);
} else {
mFPScreenOffGesturesHandler.sendMessage(msg); mFPScreenOffGesturesHandler.sendMessage(msg);
} }
} }
}
private void registerFPScreenOffListener(final int scanCode) {
mProximityWakeLock.acquire();
mSensorManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
mProximityWakeLock.release();
mSensorManager.unregisterListener(this);
if (!mFPScreenOffGesturesHandler.hasMessages(FP_ACTION_REQUEST)) {
// The sensor took to long, ignoring.
return;
}
mFPScreenOffGesturesHandler.removeMessages(FP_ACTION_REQUEST);
if (event.values[0] == mProximitySensor.getMaximumRange()) {
Message msg = mFPScreenOffGesturesHandler.obtainMessage(FP_ACTION_REQUEST);
msg.arg1 = scanCode;
mFPScreenOffGesturesHandler.sendMessage(msg);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, mProximitySensor, SensorManager.SENSOR_DELAY_FASTEST);
}
private void resetFPGestureDelay() { private void resetFPGestureDelay() {
fpGesturePending = false; fpGesturePending = false;

View File

@@ -21,6 +21,7 @@ import android.app.IntentService;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.PowerManager; import android.os.PowerManager;
import android.provider.Settings;
import android.util.Log; import android.util.Log;
import java.util.List; import java.util.List;
@@ -43,38 +44,44 @@ public class MotoActionsService extends IntentService implements ScreenStateNoti
UpdatedStateNotifier { UpdatedStateNotifier {
private static final String TAG = "MotoActions"; private static final String TAG = "MotoActions";
private final Context mContext;
private final DozePulseAction mDozePulseAction;
private final PowerManager mPowerManager; private final PowerManager mPowerManager;
private final PowerManager.WakeLock mWakeLock; private final PowerManager.WakeLock mWakeLock;
private final ScreenReceiver mScreenReceiver;
private final SensorHelper mSensorHelper;
private final List<ScreenStateNotifier> mScreenStateNotifiers = new LinkedList<>(); private final List<ScreenStateNotifier> mScreenStateNotifiers = new LinkedList<ScreenStateNotifier>();
private final List<UpdatedStateNotifier> mUpdatedStateNotifiers = new LinkedList<>(); private final List<UpdatedStateNotifier> mUpdatedStateNotifiers =
new LinkedList<UpdatedStateNotifier>();
public MotoActionsService(Context context) { public MotoActionsService(Context context) {
super("MotoActionService"); super("MotoActionService");
mContext = context;
Log.d(TAG, "Starting"); Log.d(TAG, "Starting");
MotoActionsSettings motoActionsSettings = new MotoActionsSettings(context, this); MotoActionsSettings motoActionsSettings = new MotoActionsSettings(context, this);
SensorHelper sensorHelper = new SensorHelper(context); mSensorHelper = new SensorHelper(context);
new ScreenReceiver(context, this); mScreenReceiver = new ScreenReceiver(context, this);
DozePulseAction mDozePulseAction = new DozePulseAction(context); mDozePulseAction = new DozePulseAction(context);
mScreenStateNotifiers.add(mDozePulseAction); mScreenStateNotifiers.add(mDozePulseAction);
// Actionable sensors get screen on/off notifications // Actionable sensors get screen on/off notifications
mScreenStateNotifiers.add(new GlanceSensor(motoActionsSettings, sensorHelper, mDozePulseAction)); mScreenStateNotifiers.add(new GlanceSensor(motoActionsSettings, mSensorHelper, mDozePulseAction));
mScreenStateNotifiers.add(new ProximitySensor(motoActionsSettings, sensorHelper, mDozePulseAction)); mScreenStateNotifiers.add(new ProximitySensor(motoActionsSettings, mSensorHelper, mDozePulseAction));
// Other actions that are always enabled // Other actions that are always enabled
mUpdatedStateNotifiers.add(new CameraActivationSensor(motoActionsSettings, sensorHelper)); mUpdatedStateNotifiers.add(new CameraActivationSensor(motoActionsSettings, mSensorHelper));
mUpdatedStateNotifiers.add(new ChopChopSensor(motoActionsSettings, sensorHelper)); mUpdatedStateNotifiers.add(new ChopChopSensor(motoActionsSettings, mSensorHelper));
mUpdatedStateNotifiers.add(new ProximitySilencer(motoActionsSettings, context, sensorHelper)); mUpdatedStateNotifiers.add(new ProximitySilencer(motoActionsSettings, context, mSensorHelper));
mUpdatedStateNotifiers.add(new FlipToMute(motoActionsSettings, context, sensorHelper)); mUpdatedStateNotifiers.add(new FlipToMute(motoActionsSettings, context, mSensorHelper));
mUpdatedStateNotifiers.add(new LiftToSilence(motoActionsSettings, context, sensorHelper)); mUpdatedStateNotifiers.add(new LiftToSilence(motoActionsSettings, context, mSensorHelper));
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
String tag = context.getPackageName() + ":ServiceWakeLock"; mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MotoActionsWakeLock");
mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, tag);
updateState(); updateState();
} }

View File

@@ -30,7 +30,7 @@ import com.moto.actions.actions.UpdatedStateNotifier;
import com.moto.actions.actions.CameraActivationAction; import com.moto.actions.actions.CameraActivationAction;
import com.moto.actions.actions.TorchAction; import com.moto.actions.actions.TorchAction;
public class MotoActionsSettings implements SharedPreferences.OnSharedPreferenceChangeListener { public class MotoActionsSettings {
private static final String TAG = "MotoActions"; private static final String TAG = "MotoActions";
private static final String GESTURE_CAMERA_ACTION_KEY = "gesture_camera_action"; private static final String GESTURE_CAMERA_ACTION_KEY = "gesture_camera_action";
@@ -55,7 +55,7 @@ public class MotoActionsSettings implements SharedPreferences.OnSharedPreference
public MotoActionsSettings(Context context, UpdatedStateNotifier updatedStateNotifier) { public MotoActionsSettings(Context context, UpdatedStateNotifier updatedStateNotifier) {
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
loadPreferences(sharedPrefs); loadPreferences(sharedPrefs);
sharedPrefs.registerOnSharedPreferenceChangeListener(this); sharedPrefs.registerOnSharedPreferenceChangeListener(mPrefListener);
mContext = context; mContext = context;
mUpdatedStateNotifier = updatedStateNotifier; mUpdatedStateNotifier = updatedStateNotifier;
} }
@@ -114,6 +114,8 @@ public class MotoActionsSettings implements SharedPreferences.OnSharedPreference
mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false); mLiftToSilenceEnabled = sharedPreferences.getBoolean(GESTURE_LIFT_TO_SILENCE_KEY, false);
} }
private SharedPreferences.OnSharedPreferenceChangeListener mPrefListener =
new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
boolean updated = true; boolean updated = true;
@@ -144,4 +146,5 @@ public class MotoActionsSettings implements SharedPreferences.OnSharedPreference
mUpdatedStateNotifier.updateState(); mUpdatedStateNotifier.updateState();
} }
} }
};
} }

View File

@@ -18,5 +18,5 @@
package com.moto.actions; package com.moto.actions;
public interface SensorAction { public interface SensorAction {
void action(); public void action();
} }

View File

@@ -26,6 +26,7 @@ import android.content.Context;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
import android.hardware.SensorManager; import android.hardware.SensorManager;
import android.util.Log;
public class SensorHelper { public class SensorHelper {
private static final String TAG = "MotoActions"; private static final String TAG = "MotoActions";

View File

@@ -17,6 +17,8 @@
package com.moto.actions.actions; package com.moto.actions.actions;
import java.util.List;
import android.app.KeyguardManager; import android.app.KeyguardManager;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@@ -26,14 +28,12 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.PowerManager.WakeLock; import android.os.PowerManager.WakeLock;
import android.os.VibrationEffect;
import android.os.Vibrator; import android.os.Vibrator;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.util.Log;
import com.moto.actions.SensorAction; import com.moto.actions.SensorAction;
import java.util.List;
public class CameraActivationAction implements SensorAction { public class CameraActivationAction implements SensorAction {
private static final String TAG = "MotoActions"; private static final String TAG = "MotoActions";
@@ -55,7 +55,7 @@ public class CameraActivationAction implements SensorAction {
public void action() { public void action() {
vibrate(); vibrate();
turnScreenOn(); turnScreenOn();
if (mKeyguardManager.isKeyguardLocked()) { if (mKeyguardManager.inKeyguardRestrictedInputMode()) {
launchSecureCamera(); launchSecureCamera();
} else { } else {
launchCamera(); launchCamera();
@@ -63,16 +63,13 @@ public class CameraActivationAction implements SensorAction {
} }
private void vibrate() { private void vibrate() {
Vibrator vib = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE); Vibrator v = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
if (vib == null) return; v.vibrate(500);
VibrationEffect effect = VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE);
vib.vibrate(effect);
} }
private void turnScreenOn() { private void turnScreenOn() {
String tag = mContext.getPackageName() + ":CameraWakeLock"; PowerManager.WakeLock wl = mPowerManager.newWakeLock(
WakeLock wl = mPowerManager.newWakeLock( PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, tag);
wl.acquire(TURN_SCREEN_ON_WAKE_LOCK_MS); wl.acquire(TURN_SCREEN_ON_WAKE_LOCK_MS);
} }

View File

@@ -17,9 +17,12 @@
package com.moto.actions.actions; package com.moto.actions.actions;
import java.util.List;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent; import android.hardware.SensorEvent;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log; import android.util.Log;
import com.moto.actions.MotoActionsSettings; import com.moto.actions.MotoActionsSettings;
@@ -28,14 +31,20 @@ import com.moto.actions.SensorHelper;
public class CameraActivationSensor implements SensorEventListener, UpdatedStateNotifier { public class CameraActivationSensor implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-CameraSensor"; private static final String TAG = "MotoActions-CameraSensor";
private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500;
private final MotoActionsSettings mMotoActionsSettings; private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper;
private final Sensor mSensor;
private boolean mIsEnabled; private boolean mIsEnabled;
public CameraActivationSensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper) { public CameraActivationSensor(MotoActionsSettings motoActionsSettings, SensorHelper sensorHelper) {
mMotoActionsSettings = motoActionsSettings; mMotoActionsSettings = motoActionsSettings;
Sensor sensor = sensorHelper.getCameraActivationSensor(); mSensorHelper = sensorHelper;
sensorHelper.registerListener(sensor, this); mSensor = sensorHelper.getCameraActivationSensor();
mSensorHelper.registerListener(mSensor, this);
} }
@Override @Override

View File

@@ -17,9 +17,12 @@
package com.moto.actions.actions; package com.moto.actions.actions;
import java.util.List;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent; import android.hardware.SensorEvent;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log; import android.util.Log;
import com.moto.actions.MotoActionsSettings; import com.moto.actions.MotoActionsSettings;
@@ -28,6 +31,8 @@ import com.moto.actions.SensorHelper;
public class ChopChopSensor implements SensorEventListener, UpdatedStateNotifier { public class ChopChopSensor implements SensorEventListener, UpdatedStateNotifier {
private static final String TAG = "MotoActions-ChopChopSensor"; private static final String TAG = "MotoActions-ChopChopSensor";
private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500;
private final MotoActionsSettings mMotoActionsSettings; private final MotoActionsSettings mMotoActionsSettings;
private final SensorHelper mSensorHelper; private final SensorHelper mSensorHelper;
private final Sensor mSensor; private final Sensor mSensor;

View File

@@ -25,8 +25,6 @@ import android.content.IntentFilter;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent; import android.hardware.SensorEvent;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Log; import android.util.Log;
import com.moto.actions.MotoActionsSettings; import com.moto.actions.MotoActionsSettings;
@@ -41,7 +39,6 @@ public class FlipToMute implements UpdatedStateNotifier {
private final Sensor mFlatDown; private final Sensor mFlatDown;
private final Sensor mStow; private final Sensor mStow;
private boolean canVibrate = false;
private boolean mIsEnabled; private boolean mIsEnabled;
private boolean mIsFlatDown; private boolean mIsFlatDown;
private boolean mIsStowed; private boolean mIsStowed;
@@ -58,9 +55,7 @@ public class FlipToMute implements UpdatedStateNotifier {
mStow = sensorHelper.getStowSensor(); mStow = sensorHelper.getStowSensor();
mNotificationManager = mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (mNotificationManager != null) {
mFilter = mNotificationManager.getCurrentInterruptionFilter(); mFilter = mNotificationManager.getCurrentInterruptionFilter();
}
mReceiver = new Receiver(); mReceiver = new Receiver();
} }
@@ -111,33 +106,19 @@ public class FlipToMute implements UpdatedStateNotifier {
Log.d(TAG, "event: " + mIsFlatDown + " mIsStowed=" + mIsStowed); Log.d(TAG, "event: " + mIsFlatDown + " mIsStowed=" + mIsStowed);
if (mIsFlatDown && mIsStowed) { if (mIsFlatDown && mIsStowed) {
vibrate();
canVibrate = true;
mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY); mNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);
Log.d(TAG, "Interrupt filter: Allow priority"); Log.d(TAG, "Interrupt filter: Allow priority");
} else if (!mIsFlatDown) { } else if (!mIsFlatDown) {
if (canVibrate) {
vibrate();
canVibrate = false;
}
mNotificationManager.setInterruptionFilter(mFilter); mNotificationManager.setInterruptionFilter(mFilter);
Log.d(TAG, "Interrupt filter: Restore"); 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 { public class Receiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (!mIsFlatDown && !mIsStowed) { if (!mIsFlatDown && !mIsStowed) {
if (mNotificationManager == null) return;
mFilter = mNotificationManager.getCurrentInterruptionFilter(); mFilter = mNotificationManager.getCurrentInterruptionFilter();
Log.d(TAG, "Interrupt filter: Backup"); Log.d(TAG, "Interrupt filter: Backup");
} }

View File

@@ -72,18 +72,22 @@ public class ProximitySilencer extends PhoneStateListener implements SensorEvent
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
if (isNear){ if (isNear){
mCoveredRinging = mIsRinging && (now - mRingStartedMs >= SILENCE_DELAY_MS); if (mIsRinging && (now - mRingStartedMs >= SILENCE_DELAY_MS)){
mCoveredRinging = true;
} else {
mCoveredRinging = false;
}
return; return;
} }
if (mIsRinging) { if (!isNear && mIsRinging) {
Log.d(TAG, "event: " + event.values[0] + ", " + " covered " + Boolean.toString(mCoveredRinging)); Log.d(TAG, "event: " + event.values[0] + ", " + " covered " + Boolean.toString(mCoveredRinging));
if (mCoveredRinging) { if (mCoveredRinging) {
Log.d(TAG, "Silencing ringer"); Log.d(TAG, "Silencing ringer");
mTelecomManager.silenceRinger(); mTelecomManager.silenceRinger();
} else { } else {
Log.d(TAG, "Ignoring silence gesture: " + now + " is too close to " + Log.d(TAG, "Ignoring silence gesture: " + now + " is too close to " +
mRingStartedMs + ", delay=" + SILENCE_DELAY_MS); mRingStartedMs + ", delay=" + SILENCE_DELAY_MS + " or covered " + Boolean.toString(mCoveredRinging));
} }
mCoveredRinging = false; mCoveredRinging = false;
} }

View File

@@ -18,18 +18,19 @@
package com.moto.actions.actions; package com.moto.actions.actions;
import android.content.Context; import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraManager; import android.hardware.camera2.CameraManager;
import android.os.VibrationEffect; import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CameraAccessException;
import android.os.Vibrator; import android.os.Vibrator;
import android.support.annotation.NonNull; import android.util.Log;
import com.moto.actions.SensorAction; import com.moto.actions.SensorAction;
public class TorchAction implements SensorAction { public class TorchAction implements SensorAction {
private static final String TAG = "MotoActions"; private static final String TAG = "MotoActions";
private static final int TURN_SCREEN_ON_WAKE_LOCK_MS = 500;
private CameraManager mCameraManager; private CameraManager mCameraManager;
private final Vibrator mVibrator; private final Vibrator mVibrator;
private String mRearCameraId; private String mRearCameraId;
@@ -50,20 +51,17 @@ public class TorchAction implements SensorAction {
} }
} }
} catch (CameraAccessException e) { } catch (CameraAccessException e) {
// Noop
} }
} }
@Override @Override
public void action() { public void action() {
VibrationEffect vibrationEffect = VibrationEffect.createOneShot(250, VibrationEffect.DEFAULT_AMPLITUDE); mVibrator.vibrate(250);
mVibrator.vibrate(vibrationEffect);
if (mRearCameraId != null) { if (mRearCameraId != null) {
try { try {
mCameraManager.setTorchMode(mRearCameraId, !mTorchEnabled); mCameraManager.setTorchMode(mRearCameraId, !mTorchEnabled);
mTorchEnabled = !mTorchEnabled; mTorchEnabled = !mTorchEnabled;
} catch (CameraAccessException e) { } catch (CameraAccessException e) {
// Noop
} }
} }
} }
@@ -71,14 +69,14 @@ public class TorchAction implements SensorAction {
private class MyTorchCallback extends CameraManager.TorchCallback { private class MyTorchCallback extends CameraManager.TorchCallback {
@Override @Override
public void onTorchModeChanged(@NonNull String cameraId, boolean enabled) { public void onTorchModeChanged(String cameraId, boolean enabled) {
if (!cameraId.equals(mRearCameraId)) if (!cameraId.equals(mRearCameraId))
return; return;
mTorchEnabled = enabled; mTorchEnabled = enabled;
} }
@Override @Override
public void onTorchModeUnavailable(@NonNull String cameraId) { public void onTorchModeUnavailable(String cameraId) {
if (!cameraId.equals(mRearCameraId)) if (!cameraId.equals(mRearCameraId))
return; return;
mTorchEnabled = false; mTorchEnabled = false;

View File

@@ -18,5 +18,5 @@
package com.moto.actions.actions; package com.moto.actions.actions;
public interface UpdatedStateNotifier { public interface UpdatedStateNotifier {
void updateState(); public void updateState();
} }

View File

@@ -52,7 +52,7 @@ public class DozePulseAction implements SensorAction, ScreenStateNotifier {
} }
} }
private synchronized boolean mayDoze() { public synchronized boolean mayDoze() {
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
if (now - mLastDoze > DELAY_BETWEEN_DOZES_IN_MS) { if (now - mLastDoze > DELAY_BETWEEN_DOZES_IN_MS) {
Log.d(TAG, "Allowing doze"); Log.d(TAG, "Allowing doze");

View File

@@ -39,8 +39,6 @@ public class ScreenReceiver extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (intent.getAction() == null) return;
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mNotifier.screenTurnedOff(); mNotifier.screenTurnedOff();
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {

View File

@@ -18,6 +18,6 @@
package com.moto.actions.doze; package com.moto.actions.doze;
public interface ScreenStateNotifier { public interface ScreenStateNotifier {
void screenTurnedOn(); public void screenTurnedOn();
void screenTurnedOff(); public void screenTurnedOff();
} }

View File

@@ -1,21 +1,22 @@
Copyright (C) 2017-2019 - The LineageOS Project. Device Tree for Moto G5S Plus (sanders)
Device configuration for Moto G5S Plus (XT1802 XT1803 XT1804 XT1805 XT1806)
=========================================== ===========================================
The Motorola Moto G5S Plus (codenamed _"sanders"_) is a mid-range smartphone from Motorola mobility.
It was announced on August 2017.
Basic | Spec Sheet Basic | Spec Sheet
-------:|:------------------------- -------:|:-------------------------
CPU | Octa-core 2.0 GHz Cortex-A53 CPU | Octa-core 2.0 GHz Cortex-A53
Chipset | Qualcomm MSM8953 Snapdragon 625 Chipset | Qualcomm MSM8953 Snapdragon 625
GPU | 650MHz Adreno 506 GPU | Adreno 506
Memory | 3/4 GB (LPDDR3) Memory | 3/4 GB RAM
Shipped Android Version | 7.1 (Nougat MR1) Shipped Android Version | 7.1.1
Storage | 32/64GB (eMMC) Storage | 64/32 GB
MicroSD | Up to 256 GB MicroSD | Up to 256 GB
Battery | Li-Ion 3000mAh battery (non-removable) Battery | Li-Ion 3000mAh battery
Dimensions | 153.5 x 76.2 x 8 mm Display | 1080 x 1920 pixels, 5.2 inches (~402 ppi pixel density)
Display | 1080 x 1920 pixels, 5.5" IPS LCD, 16:9 ratio (~401 PPI density) Camera | Dual 13 MP, f/2.0, autofocus, dual-LED (dual tone) flash, 2150 x 1440 pixels
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") Copyright 2017 - The LineageOS Project.
![Moto G5S Plus](http://cdn2.gsmarena.com/vv/pics/motorola/motorola-moto-g5s-plus-1.jpg "Moto G5 Plus")

View File

@@ -1,17 +1,26 @@
[ [
{ {
"repository": "AlissonGrizotti/kernel_motorola_msm8953", "remote": "github",
"repository": "Keertesh19/kernel_motorola_msm8953",
"target_path": "kernel/motorola/msm8953", "target_path": "kernel/motorola/msm8953",
"branch": "perf+" "branch": "8.1-moto"
}, },
{ {
"repository": "vendor_motorola_sanders", "remote": "github",
"repository": "Keertesh19/vendor_motorola_sanders",
"target_path": "vendor/motorola/sanders", "target_path": "vendor/motorola/sanders",
"branch": "pie" "branch": "oreo-mr1"
}, },
{ {
"repository": "LineageOS/android_packages_resources_devicesettings", "remote": "github",
"target_path": "packages/resources/devicesettings", "repository": "PixelExperience/packages_resources_MotoActions",
"branch": "lineage-16.0" "target_path": "packages/resources/MotoActions",
"branch": "oreo-mr1"
},
{
"repository": "jhenrique09/prebuilts_clang_host_linux-x86_7.0-DragonTC",
"target_path": "prebuilts/clang/host/linux-x86/7.0-DragonTC",
"branch": "master",
"remote": "github"
} }
] ]

View File

@@ -15,17 +15,14 @@
# limitations under the License. # limitations under the License.
# Inherit from those products. # Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, device/motorola/sanders/full_sanders.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) # Inherit some common PixelExperience stuff.
$(call inherit-product, vendor/aosp/config/common.mk)
# Pixel Stuffs
TARGET_GAPPS_ARCH := arm64 TARGET_GAPPS_ARCH := arm64
TARGET_BOOT_ANIMATION_RES := 1080 TARGET_BOOT_ANIMATION_RES := 1080
TARGET_INCLUDE_ARCORE := true
$(call inherit-product, vendor/aosp/config/common_full_phone.mk)
## Device identifier. This must come after all inclusions ## Device identifier. This must come after all inclusions
PRODUCT_DEVICE := sanders PRODUCT_DEVICE := sanders
@@ -33,15 +30,8 @@ PRODUCT_NAME := aosp_sanders
PRODUCT_BRAND := motorola PRODUCT_BRAND := motorola
PRODUCT_MANUFACTURER := motorola PRODUCT_MANUFACTURER := motorola
PRODUCT_GMS_CLIENTID_BASE := android-motorola
PRODUCT_SYSTEM_PROPERTY_BLACKLIST := ro.product.model PRODUCT_SYSTEM_PROPERTY_BLACKLIST := ro.product.model
PRODUCT_BUILD_PROP_OVERRIDES += \ PRODUCT_BUILD_PROP_OVERRIDES += \
PRODUCT_NAME="Moto G (5S) Plus" \ PRODUCT_NAME="Moto G5S Plus"
PRIVATE_BUILD_DESC="sanders-user 8.1.0 OPS28.65-36 9fea release-keys" DEVICE_MAINTAINERS="Keertesh"
BUILD_FINGERPRINT := google/walleye/walleye:8.1.0/OPM1.171019.011/4448085:user/release-keys
PRODUCT_ENFORCE_RRO_TARGETS := \
framework-res

286
audio/audio_effects.conf Normal file
View File

@@ -0,0 +1,286 @@
# List of effect libraries to load. Each library element must contain a "path" element
# giving the full path of the library .so file.
# libraries {
# <lib name> {
# path <lib path>
# }
# }
libraries {
bundle {
path /vendor/lib/soundfx/libbundlewrapper.so
}
reverb {
path /vendor/lib/soundfx/libreverbwrapper.so
}
visualizer_sw {
path /vendor/lib/soundfx/libvisualizer.so
}
visualizer_hw {
path /vendor/lib/soundfx/libqcomvisualizer.so
}
downmix {
path /vendor/lib/soundfx/libdownmix.so
}
loudness_enhancer {
path /vendor/lib/soundfx/libldnhncr.so
}
proxy {
path /vendor/lib/soundfx/libeffectproxy.so
}
offload_bundle {
path /vendor/lib/soundfx/libqcompostprocbundle.so
}
audio_pre_processing {
path /vendor/lib/soundfx/libqcomvoiceprocessing.so
}
}
# Default pre-processing library. Add to audio_effect.conf "libraries" section if
# audio HAL implements support for default software audio pre-processing effects
#
# pre_processing {
# path /system/lib/soundfx/libaudiopreprocessing.so
# }
# list of effects to load. Each effect element must contain a "library" and a "uuid" element.
# The value of the "library" element must correspond to the name of one library element in the
# "libraries" element.
# The name of the effect element is indicative, only the value of the "uuid" element
# designates the effect.
# The uuid is the implementation specific UUID as specified by the effect vendor. This is not the
# generic effect type UUID.
# effects {
# <fx name> {
# library <lib name>
# uuid <effect uuid>
# }
# ...
# }
effects {
# additions for the proxy implementation
# Proxy implementation
#effectname {
#library proxy
#uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# SW implemetation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libsw {
#library libSW
#uuid yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
#} End of SW effect
# HW implementation of the effect. Added as a node under the proxy to
# indicate this as a sub effect.
#libhw {
#library libHW
#uuid zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
#}End of HW effect
#} End of effect proxy
bassboost {
library proxy
uuid 14804144-a5ee-4d24-aa88-0002a5d5c51b
libsw {
library bundle
uuid 8631f300-72e2-11df-b57e-0002a5d5c51b
}
libhw {
library offload_bundle
uuid 2c4a8c24-1581-487f-94f6-0002a5d5c51b
}
}
virtualizer {
library proxy
uuid d3467faa-acc7-4d34-acaf-0002a5d5c51b
libsw {
library bundle
uuid 1d4033c0-8557-11df-9f2d-0002a5d5c51b
}
libhw {
library offload_bundle
uuid 509a4498-561a-4bea-b3b1-0002a5d5c51b
}
}
equalizer {
library proxy
uuid c8e70ecd-48ca-456e-8a4f-0002a5d5c51b
libsw {
library bundle
uuid ce772f20-847d-11df-bb17-0002a5d5c51b
}
libhw {
library offload_bundle
uuid a0dac280-401c-11e3-9379-0002a5d5c51b
}
}
volume {
library bundle
uuid 119341a0-8469-11df-81f9-0002a5d5c51b
}
reverb_env_aux {
library proxy
uuid 48404ac9-d202-4ccc-bf84-0002a5d5c51b
libsw {
library reverb
uuid 4a387fc0-8ab3-11df-8bad-0002a5d5c51b
}
libhw {
library offload_bundle
uuid 79a18026-18fd-4185-8233-0002a5d5c51b
}
}
reverb_env_ins {
library proxy
uuid b707403a-a1c1-4291-9573-0002a5d5c51b
libsw {
library reverb
uuid c7a511a0-a3bb-11df-860e-0002a5d5c51b
}
libhw {
library offload_bundle
uuid eb64ea04-973b-43d2-8f5e-0002a5d5c51b
}
}
reverb_pre_aux {
library proxy
uuid 1b78f587-6d1c-422e-8b84-0002a5d5c51b
libsw {
library reverb
uuid f29a1400-a3bb-11df-8ddc-0002a5d5c51b
}
libhw {
library offload_bundle
uuid 6987be09-b142-4b41-9056-0002a5d5c51b
}
}
reverb_pre_ins {
library proxy
uuid f3e178d2-ebcb-408e-8357-0002a5d5c51b
libsw {
library reverb
uuid 172cdf00-a3bc-11df-a72f-0002a5d5c51b
}
libhw {
library offload_bundle
uuid aa2bebf6-47cf-4613-9bca-0002a5d5c51b
}
}
visualizer {
library proxy
uuid 1d0a1a53-7d5d-48f2-8e71-27fbd10d842c
libsw {
library visualizer_sw
uuid d069d9e0-8329-11df-9168-0002a5d5c51b
}
libhw {
library visualizer_hw
uuid 7a8044a0-1a71-11e3-a184-0002a5d5c51b
}
}
downmix {
library downmix
uuid 93f04452-e4fe-41cc-91f9-e475b6d1d69f
}
hw_acc {
library offload_bundle
uuid 7d1580bd-297f-4683-9239-e475b6d1d69f
}
loudness_enhancer {
library loudness_enhancer
uuid fa415329-2034-4bea-b5dc-5b381c8d1e2c
}
aec {
library audio_pre_processing
uuid 0f8d0d2a-59e5-45fe-b6e4-248c8a799109
}
ns {
library audio_pre_processing
uuid 1d97bb0b-9e2f-4403-9ae3-58c2554306f8
}
}
# Default pre-processing effects. Add to audio_effect.conf "effects" section if
# audio HAL implements support for them.
#
# agc {
# library pre_processing
# uuid aa8130e0-66fc-11e0-bad0-0002a5d5c51b
# }
# aec {
# library pre_processing
# uuid bb392ec0-8d4d-11e0-a896-0002a5d5c51b
# }
# ns {
# library pre_processing
# uuid c06c8400-8e06-11e0-9cb6-0002a5d5c51b
# }
# Audio preprocessor configurations.
# The pre processor configuration consists in a list of elements each describing
# pre processor settings for a given input source. Valid input source names are:
# "mic", "camcorder", "voice_recognition", "voice_communication"
# Each input source element contains a list of effects elements. The name of the effect
# element must be the name of one of the effects in the "effects" list of the file.
# Each effect element may optionally contain a list of parameters and their
# default value to apply when the pre processor effect is created.
# A parameter is defined by a "param" element and a "value" element. Each of these elements
# consists in one or more elements specifying a type followed by a value.
# The types defined are: "int", "short", "float", "bool" and "string"
# When both "param" and "value" are a single int, a simple form is allowed where just
# the param and value pair is present in the parameter description
# pre_processing {
# <input source name> {
# <fx name> {
# <param 1 name> {
# param {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# value {
# int|short|float|bool|string <value>
# [ int|short|float|bool|string <value> ]
# ...
# }
# }
# <param 2 name > {<param> <value>}
# ...
# }
# ...
# }
# ...
# }
# Added aec, ns effects for voice_commuincation, which are supported by the board
pre_processing {
voice_communication {
aec {
}
ns {
}
}
}
#
# TODO: add default audio pre processor configurations after debug and tuning phase
#

View File

@@ -1,62 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="visualizer_sw" path="libvisualizer.so"/>
<library name="visualizer_hw" path="libqcomvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="dynamics_processing" path="libdynproc.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="proxy" path="libeffectproxy.so"/>
<library name="offload_bundle" path="libqcompostprocbundle.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
<libsw library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="2c4a8c24-1581-487f-94f6-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="virtualizer" library="proxy" uuid="d3467faa-acc7-4d34-acaf-0002a5d5c51b">
<libsw library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="509a4498-561a-4bea-b3b1-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="equalizer" library="proxy" uuid="c8e70ecd-48ca-456e-8a4f-0002a5d5c51b">
<libsw library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="a0dac280-401c-11e3-9379-0002a5d5c51b"/>
</effectProxy>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effectProxy name="reverb_env_aux" library="proxy" uuid="48404ac9-d202-4ccc-bf84-0002a5d5c51b">
<libsw library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="79a18026-18fd-4185-8233-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_env_ins" library="proxy" uuid="b707403a-a1c1-4291-9573-0002a5d5c51b">
<libsw library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="eb64ea04-973b-43d2-8f5e-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_aux" library="proxy" uuid="1b78f587-6d1c-422e-8b84-0002a5d5c51b">
<libsw library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="6987be09-b142-4b41-9056-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_ins" library="proxy" uuid="f3e178d2-ebcb-408e-8357-0002a5d5c51b">
<libsw library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="aa2bebf6-47cf-4613-9bca-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="visualizer" library="proxy" uuid="1d0a1a53-7d5d-48f2-8e71-27fbd10d842c">
<libsw library="visualizer_sw" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<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"/>
<effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
</effects>
<preprocess>
<stream type="voice_communication">
<apply effect="aec"/>
<apply effect="ns"/>
</stream>
</preprocess>
</audio_effects_conf>

View File

@@ -1,30 +1,26 @@
global_config { global_config {
name Sanders name Sanders
sonification_pad 21 sonification_pad 20
sonification_prox_timeout_sec 5 sonification_prox_timeout_sec 5
force_ring_ramp true
} }
ring { ring {
#dB to attenuate playback to meet safety level at each volume step #dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation #16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps #given will be applied to all lower volume steps
attenuation 35,33,30,28,26,23,21,19,16,14,11,9,7,3,0,0 #attenuation 28,28,25,25,22,22,20,20,20,20,20,20,20,20,20,20
knee_step 16
} }
voice { voice {
#dB to attenuate playback to meet safety level at each volume step #dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation #16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps #given will be applied to all lower volume steps
attenuation 32,29,29,26,26,23,23,20,20,17,17,14,14,11,11,11 #attenuation 35,35,32,32,29,29,26,26,23,23,20,20,17,17,14,14
knee_step 16
} }
media { media {
#dB to attenuate playback to meet safety level at each volume step #dB to attenuate playback to meet safety level at each volume step
#16 steps total, 15...0. In case of truncated list, last attenuation #16 steps total, 15...0. In case of truncated list, last attenuation
#given will be applied to all lower volume steps #given will be applied to all lower volume steps
attenuation 35,33,30,28,26,23,21,19,16,14,11,9,7,3,0,0 #attenuation 38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8
knee_step 16
} }

View File

@@ -0,0 +1,56 @@
# List of profiles for the output device session where stream is routed.
# A stream opened with the inputs attributes which match the "flags" and
# "formats" as specified in the profile is routed to a device at
# sample rate specified under "sampling_rates" and bit width under
# "bit_width" and the topology extracted from the acdb data against
# the "app_type".
#
# the flags and formats are specified using the strings corresponding to
# enums in audio.h and audio_policy.h. They are concatenated with "|"
# without space or "\n".
# the flags and formats should match the ones in "audio_policy.conf"
outputs {
default {
flags AUDIO_OUTPUT_FLAG_PRIMARY
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69937
}
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69936
}
direct {
flags AUDIO_OUTPUT_FLAG_DIRECT
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 48000
bit_width 16
app_type 69936
}
direct_pcm {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_DIRECT_PCM
formats AUDIO_FORMAT_PCM_16_BIT
sampling_rates 44100|48000|96000|192000
bit_width 16
app_type 69936
}
compress_offload_16 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AC3|AUDIO_FORMAT_E_AC3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2
sampling_rates 44100|48000
bit_width 16
app_type 69936
}
compress_offload_24 {
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
formats AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_VORBIS
sampling_rates 44100|48000|96000|192000
bit_width 24
app_type 69940
}
}

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<audio_platform_info>
<acdb_ids>
<!-- Output devices -->
<device name="SND_DEVICE_OUT_VOICE_HANDSET" acdb_id="7" />
<device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS" acdb_id="7" />
<device name="SND_DEVICE_OUT_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES" acdb_id="9" />
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="14" />
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED" acdb_id="14" />
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="14" />
<device name="SND_DEVICE_OUT_SPEAKER_SAFE" acdb_id="14" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" acdb_id="15" />
<device name="SND_DEVICE_OUT_SPEAKER_AND_HDMI" acdb_id="18" />
<device name="SND_DEVICE_OUT_VOICE_LINE" acdb_id="78" />
<device name="SND_DEVICE_OUT_VOLTE_NB_ANC_HANDSET" acdb_id="200" />
<device name="SND_DEVICE_OUT_VOLTE_NB_HANDSET_TMUS" acdb_id="200" />
<device name="SND_DEVICE_OUT_VOLTE_NB_TX" acdb_id="245" />
<!-- Input devices -->
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="0" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_AEC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_HANDSET_MIC_NS" acdb_id="4" />
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" acdb_id="4" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC" acdb_id="11" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_AEC_NS" acdb_id="11" />
<device name="SND_DEVICE_IN_SPEAKER_MIC_NS" acdb_id="11" />
<device name="SND_DEVICE_IN_UNPROCESSED_MIC" acdb_id="11" />
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_FLUENCE" acdb_id="35" />
<device name="SND_DEVICE_IN_VOICE_DMIC_TMUS" acdb_id="41" />
<device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="43" />
<device name="SND_DEVICE_IN_HEADSET_MIC_AEC" acdb_id="47" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_AEC" acdb_id="62" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" acdb_id="62" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" acdb_id="111" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" acdb_id="111" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" acdb_id="117" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" acdb_id="117" />
<device name="SND_DEVICE_IN_QUAD_MIC" acdb_id="125" />
<device name="SND_DEVICE_IN_THREE_MIC" acdb_id="125" />
</acdb_ids>
<pcm_ids>
<usecase name="USECASE_AUDIO_PLAYBACK_LOW_LATENCY" type="out" id="12" />
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="12" />
<usecase name="USECASE_VOICEMMODE1_CALL" type="in" id="35" />
<usecase name="USECASE_VOICEMMODE1_CALL" type="out" id="35" />
<usecase name="USECASE_VOICEMMODE2_CALL" type="in" id="36" />
<usecase name="USECASE_VOICEMMODE2_CALL" type="out" id="36" />
<usecase name="USECASE_AUDIO_DSM_FEEDBACK" type="in" id="61" />
<usecase name="USECASE_MOTVR_COMMAND" type="in" id="40" />
<usecase name="USECASE_MOTVR_TRACE" type="in" id="41" />
</pcm_ids>
<backend_names>
<device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" />
<device name="SND_DEVICE_OUT_LINE" backend="headphones" />
</backend_names>
<config_params>
<param key="input_mic_max_count" value="3"/>
</config_params>
</audio_platform_info>

123
audio/audio_policy.conf Normal file
View File

@@ -0,0 +1,123 @@
# Global configuration section:
# - lists input and output devices always present on the device
# as well as the output device selected by default.
# Devices are designated by a string that corresponds to the enum in audio.h
# - defines whether the speaker output path uses DRC
# "TRUE" means DRC is enabled, "FALSE" or omission means DRC isn't used.
global_configuration {
attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_TELEPHONY_TX
default_output_device AUDIO_DEVICE_OUT_SPEAKER
attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_FM_TUNER|AUDIO_DEVICE_IN_TELEPHONY_RX
}
# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
audio_hw_modules {
primary {
outputs {
primary {
sampling_rates 44100|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_LINE|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET|AUDIO_DEVICE_OUT_FM
flags AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_PRIMARY
}
deep_buffer {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_LINE|AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
}
compress_offload {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000|88200|96000|176400|192000
channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_FLAC
devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_LINE
flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
}
voice_tx {
sampling_rates 8000|16000|48000
channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_TELEPHONY_TX
}
}
inputs {
primary {
sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM_TUNER
}
voice_rx {
sampling_rates 8000|16000|48000
channel_masks AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_MONO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_TELEPHONY_RX
}
}
}
a2dp {
outputs {
a2dp {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_ALL_A2DP
}
}
}
usb {
outputs {
usb_accessory {
sampling_rates 44100
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_USB_ACCESSORY
}
usb_device {
sampling_rates dynamic
channel_masks dynamic
formats dynamic
devices AUDIO_DEVICE_OUT_USB_DEVICE|AUDIO_DEVICE_OUT_USB_HEADSET
}
}
inputs {
usb_device {
sampling_rates dynamic
channel_masks dynamic
formats dynamic
devices AUDIO_DEVICE_IN_USB_DEVICE|AUDIO_DEVICE_IN_USB_HEADSET
}
}
}
r_submix {
outputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_OUT_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
}
}
inputs {
submix {
sampling_rates 48000
channel_masks AUDIO_CHANNEL_IN_STEREO
formats AUDIO_FORMAT_PCM_16_BIT
devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
}
}
}
}

View File

@@ -1,203 +0,0 @@
<?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">
<globalConfiguration speaker_drc_enabled="true"/>
<modules>
<module name="primary" halVersion="2.0">
<attachedDevices>
<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>
</attachedDevices>
<defaultOutputDevice>Speaker</defaultOutputDevice>
<mixPorts>
<mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
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"/>
</mixPort>
<mixPort name="compressed_offload" role="source"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
<profile name="" format="AUDIO_FORMAT_MP3"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
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,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,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"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="voice_tx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_MONO"/>
</mixPort>
</mixPorts>
<devicePorts>
<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" 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="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="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">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
</devicePorts>
<routes>
<route type="mix" sink="Earpiece"
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="FM"
sources="primary output"/>
<route type="mix" sink="Line"
sources="primary output,deep_buffer,compressed_offload"/>
<route type="mix" sink="BT SCO"
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO Headset"
sources="primary output,deep_buffer"/>
<route type="mix" sink="BT SCO Car Kit"
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"/>
<route type="mix" sink="fast input"
sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic"/>
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
<xi:include href="/vendor/etc/a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
</audioPolicyConfiguration>

View File

@@ -1,144 +0,0 @@
#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

View File

@@ -23,9 +23,9 @@
<ctl name="RX HPH Mode" value="NORMAL" /> <ctl name="RX HPH Mode" value="NORMAL" />
<ctl name="COMP0 RX1" value="0" /> <ctl name="COMP0 RX1" value="0" />
<ctl name="COMP0 RX2" value="0" /> <ctl name="COMP0 RX2" value="0" />
<ctl name="RX1 Digital Volume" value="88" /> <ctl name="RX1 Digital Volume" value="84" />
<ctl name="RX2 Digital Volume" value="88" /> <ctl name="RX2 Digital Volume" value="84" />
<ctl name="RX3 Digital Volume" value="88" /> <ctl name="RX3 Digital Volume" value="84" />
<ctl name="IIR1 INP1 MUX" value="ZERO" /> <ctl name="IIR1 INP1 MUX" value="ZERO" />
<ctl name="IIR1 INP1 Volume" value="84" /> <ctl name="IIR1 INP1 Volume" value="84" />
<ctl name="IIR1 INP2 Volume" value="84" /> <ctl name="IIR1 INP2 Volume" value="84" />
@@ -839,7 +839,7 @@
<path name="handset"> <path name="handset">
<ctl name="RX1 MIX1 INP1" value="RX1" /> <ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RDAC2 MUX" value="RX1" /> <ctl name="RDAC2 MUX" value="RX1" />
<ctl name="RX1 Digital Volume" value="87" /> <ctl name="RX1 Digital Volume" value="84" />
<ctl name="EAR PA Gain" value="POS_6_DB" /> <ctl name="EAR PA Gain" value="POS_6_DB" />
<ctl name="EAR_S" value="Switch" /> <ctl name="EAR_S" value="Switch" />
<ctl name="OSPL Rx" value="Disable" /> <ctl name="OSPL Rx" value="Disable" />
@@ -852,8 +852,8 @@
<path name="headphones"> <path name="headphones">
<ctl name="MI2S_RX Channels" value="Two" /> <ctl name="MI2S_RX Channels" value="Two" />
<ctl name="RX1 Digital Volume" value="86" /> <ctl name="RX1 Digital Volume" value="77" />
<ctl name="RX2 Digital Volume" value="86" /> <ctl name="RX2 Digital Volume" value="77" />
<ctl name="RX1 MIX1 INP1" value="RX1" /> <ctl name="RX1 MIX1 INP1" value="RX1" />
<ctl name="RX2 MIX1 INP1" value="RX2" /> <ctl name="RX2 MIX1 INP1" value="RX2" />
<ctl name="RX HPH Mode" value="HD2" /> <ctl name="RX HPH Mode" value="HD2" />

View File

@@ -17,6 +17,9 @@
#ifndef _BDROID_BUILDCFG_H #ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H #define _BDROID_BUILDCFG_H
#include <cutils/properties.h>
#include <string.h>
#define BTM_DEF_LOCAL_NAME "Moto G5S Plus" #define BTM_DEF_LOCAL_NAME "Moto G5S Plus"
#define BLUETOOTH_QTI_SW TRUE #define BLUETOOTH_QTI_SW TRUE
#define MAX_ACL_CONNECTIONS 16 #define MAX_ACL_CONNECTIONS 16
@@ -26,5 +29,4 @@
#define BTM_WBS_INCLUDED TRUE #define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED TRUE #define BTIF_HF_WBS_PREFERRED TRUE
#define BTM_SCO_ENHANCED_SYNC_ENABLED FALSE #define BTM_SCO_ENHANCED_SYNC_ENABLED FALSE
#undef PROPERTY_VALUE_MAX
#endif #endif

View File

@@ -13,76 +13,61 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
[AID_VENDOR_QCOM_DIAG] [AID_RFS]
value:2950
[AID_VENDOR_RFS]
value:2951 value:2951
[AID_VENDOR_RFS_SHARED] [AID_RFS_SHARED]
value:2952 value:2952
[vendor/bin/wcnss_filter] [system/vendor/bin/wcnss_filter]
mode: 0755 mode: 0755
user: AID_BLUETOOTH user: AID_BLUETOOTH
group: AID_BLUETOOTH group: AID_BLUETOOTH
caps: BLOCK_SUSPEND caps: BLOCK_SUSPEND
[vendor/bin/cnss-daemon] [system/vendor/bin/cnss-daemon]
mode: 0755 mode: 0755
user: AID_BLUETOOTH user: AID_BLUETOOTH
group: AID_BLUETOOTH group: AID_BLUETOOTH
caps: NET_BIND_SERVICE caps: NET_BIND_SERVICE
[vendor/bin/imsdatadaemon] [system/vendor/bin/imsdatadaemon]
user: AID_SYSTEM user: AID_SYSTEM
group: AID_SYSTEM group: AID_SYSTEM
mode: 0755 mode: 0755
caps: NET_BIND_SERVICE caps: NET_BIND_SERVICE
[vendor/bin/ims_rtp_daemon] [system/vendor/bin/ims_rtp_daemon]
user: AID_SYSTEM user: AID_SYSTEM
group: AID_RADIO group: AID_RADIO
mode: 0755 mode: 0755
caps: NET_BIND_SERVICE caps: NET_BIND_SERVICE
[vendor/bin/pm-service] [system/vendor/bin/pm-service]
user: AID_SYSTEM user: AID_SYSTEM
group: AID_SYSTEM group: AID_SYSTEM
mode: 0755 mode: 0755
caps: NET_BIND_SERVICE caps: NET_BIND_SERVICE
[vendor/bin/cnd] [system/vendor/bin/cnd]
mode: 0755 mode: 0755
user: AID_SYSTEM user: AID_SYSTEM
group: AID_SYSTEM group: AID_SYSTEM
caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN
[vendor/bin/slim_daemon] [system/vendor/bin/slim_daemon]
mode: 0755 mode: 0755
user: AID_GPS user: AID_GPS
group: AID_GPS group: AID_GPS
caps: NET_BIND_SERVICE caps: NET_BIND_SERVICE
[vendor/bin/loc_launcher] [system/vendor/bin/xtwifi-client]
mode: 0755
user: AID_GPS
group: AID_GPS
caps: SETUID SETGID
[vendor/bin/xtwifi-client]
mode: 0755 mode: 0755
user: AID_GPS user: AID_GPS
group: AID_GPS group: AID_GPS
caps: NET_BIND_SERVICE BLOCK_SUSPEND caps: NET_BIND_SERVICE BLOCK_SUSPEND
[vendor/bin/sensors.qti] [system/vendor/bin/mm-qcamera-daemon]
mode: 0755
user: AID_SYSTEM
group: AID_SYSTEM
caps: NET_BIND_SERVICE
[vendor/bin/mm-qcamera-daemon]
mode: 0700 mode: 0700
user: AID_CAMERA user: AID_CAMERA
group: AID_SHELL group: AID_SHELL
@@ -100,74 +85,74 @@ user: AID_SYSTEM
group: AID_SYSTEM group: AID_SYSTEM
caps: 0 caps: 0
[AID_VENDOR_MOT_ACCY] [AID_MOT_ACCY]
value: 5000 value: 5000
[AID_VENDOR_MOT_PWRIC] [AID_MOT_PWRIC]
value: 5001 value: 5001
[AID_VENDOR_MOT_USB] [AID_MOT_USB]
value: 5002 value: 5002
[AID_VENDOR_MOT_DRM] [AID_MOT_DRM]
value: 5003 value: 5003
[AID_VENDOR_MOT_TCMD] [AID_MOT_TCMD]
value: 5004 value: 5004
[AID_VENDOR_MOT_SEC_RTC] [AID_MOT_SEC_RTC]
value: 5005 value: 5005
[AID_VENDOR_MOT_TOMBSTONE] [AID_MOT_TOMBSTONE]
value: 5006 value: 5006
[AID_VENDOR_MOT_TPAPI] [AID_MOT_TPAPI]
value: 5007 value: 5007
[AID_VENDOR_MOT_SECCLKD] [AID_MOT_SECCLKD]
value: 5008 value: 5008
[AID_VENDOR_MOT_WHISPER] [AID_MOT_WHISPER]
value: 5009 value: 5009
[AID_VENDOR_MOT_CAIF] [AID_MOT_CAIF]
value: 5010 value: 5010
[AID_VENDOR_MOT_DLNA] [AID_MOT_DLNA]
value: 5011 value: 5011
[AID_VENDOR_MOT_ATVC] [AID_MOT_ATVC]
value: 5012 value: 5012
[AID_VENDOR_MOT_DBVC] [AID_MOT_DBVC]
value: 5014 value: 5014
[AID_VENDOR_FINGERP] [AID_FINGERP]
value: 5015 value: 5015
[AID_VENDOR_MOT_ESDFS] [AID_MOT_ESDFS]
value: 5016 value: 5016
[AID_VENDOR_MOT_ESDFS] [AID_MOT_ESDFS]
value: 5016 value: 5016
[AID_VENDOR_MOT_ESDFS] [AID_MOT_ESDFS]
value: 5016 value: 5016
[AID_VENDOR_POWER] [AID_POWER]
value: 5017 value: 5017
[AID_VENDOR_ITSON] [AID_ITSON]
value: 5018 value: 5018
[AID_VENDOR_MOT_DTV] [AID_MOT_DTV]
value: 5019 value: 5019
[AID_VENDOR_MOT_MOD] [AID_MOT_MOD]
value: 5020 value: 5020
[AID_VENDOR_MOT_SHARED] [AID_MOT_SHARED]
value: 5323 value: 5323
[AID_VENDOR_MOT_COMMON] [AID_MOT_COMMON]
value: 5341 value: 5341

View File

@@ -0,0 +1,59 @@
<!-- This calibration file was created by fidning an average of the factory
calibration for 12 different marlin devices -->
<rig>
<device_id>0</device_id>
<camera>
<camera_model name="" index="3" type="calibu_fu_fv_u0_v0_k1_k2_k3">
<width>320</width>
<height>180</height>
<params> [260.215; 260.277; 157.511; 86.24160000000001; 0.23834; -0.688656; 0.664354] </params>
</camera_model>
<pose />
</camera>
<camera>
<camera_model name="Narrow" index="1" type="calibu_fu_fv_u0_v0_k1_k2_k3">
<width>1920</width>
<height>1080</height>
<params> [1436.454; 1436.235; 961.194; 544.107; 0.0226009; -0.0657141; 0.0971462] </params>
</camera_model>
<pose />
</camera>
<camera>
<camera_model name="MotionTracking" index="0" type="calibu_fu_fv_u0_v0_k1_k2_k3">
<rolling_shutter_readout_time>0.032</rolling_shutter_readout_time>
<rolling_shutter_direction>vertical</rolling_shutter_direction>
<width>640</width>
<height>480</height>
<params> [478.818; 478.745; 320.398; 241.369; 0.0226009; -0.0657141; 0.0971462] </params>
</camera_model>
<pose />
</camera>
<intrinsic_imu_calibration name="" imu_id="100" type="linear_imu_sg_mg_sa_ma_gqa">
<b_w_b_a> [-3.07369782e-04; 4.28678044e-04; 9.12135974e-05; -1.85969238e-02; 2.03411118e-01; 5.32338456e-02] </b_w_b_a>
<intrinsics> [1.010190509929088; 0.99952874560230054; 0.99875073981115248; 0.00020295094237530545; -0.0010146324225753722; -0.0015288737491827727; 1.0037397346218304; 0.9998363203309959; 1.0086648122514161; -2.7183776773623861e-05; -0.011104403267733234; 0.0017284620688527564; 9.30533440e-04; 4.04378542e-03; -2.00236441e-03; 9.99989386e-01] </intrinsics>
<gyro_noise_sigma>0.00053088400000000002</gyro_noise_sigma>
<gyro_bias_sigma>0.000141254</gyro_bias_sigma>
<accel_noise_sigma>0.0048836499999999998</accel_noise_sigma>
<accel_bias_sigma>0.012589299999999999</accel_bias_sigma>
</intrinsic_imu_calibration>
<extrinsic_calibration name="Device_T_OpenGl" index="0" frame_A_id="40" frame_B_id="42">
<A_T_B> [0, 1, 0, 0; -1, 0, 0, 0; 0, 0, 1, 0] </A_T_B>
</extrinsic_calibration>
<extrinsic_calibration name="Imu_T_Device" index="0" frame_A_id="100" frame_B_id="40">
<A_T_B> [0, -1, 0, 0; 1, 0, 0, 0; 0, 0, 1, 0] </A_T_B>
</extrinsic_calibration>
<extrinsic_calibration name="Imu_T_3" index="0" frame_A_id="100" frame_B_id="3">
<A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
<A_p_B> [-0.008424721099186037; 0.007710053076859457; -0.006284916910266555] </A_p_B>
</extrinsic_calibration>
<extrinsic_calibration name="Imu_T_Narrow" index="0" frame_A_id="100" frame_B_id="1">
<A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
<A_p_B> [-0.008424721099186037; 0.007710053076859457; -0.006284916910266555] </A_p_B>
</extrinsic_calibration>
<extrinsic_calibration name="Imu_T_MotionTracking" index="0" frame_A_id="100" frame_B_id="0">
<A_q_B> [-0.99996425050397042; 0.00011372; -0.00485282; 0.00692351] </A_q_B>
<A_p_B> [-0.008424721099186037; 0.007710053076859457; -0.006284916910266555] </A_p_B>
</extrinsic_calibration>
</rig>

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,30 @@
#!/sbin/sh #!/sbin/sh
# 1802 - Brazil
# 1803 - Europe
# 1804 - India
# 1805 - Europe
# 1806 - USA
sku=`getprop ro.boot.hardware.sku` sku=`getprop ro.boot.hardware.sku`
if [ "$sku" = "XT1806" ]; then if [ "$sku" = "XT1806" ]; then
# XT1806 doesn't have NFC chip # XT1806 doesn't have NFC chip
rm /vendor/etc/permissions/android.hardware.nfc.xml rm /system/vendor/etc/permissions/android.hardware.nfc.xml
rm /vendor/etc/permissions/android.hardware.nfc.hce.xml rm /system/vendor/etc/permissions/android.hardware.nfc.hce.xml
rm /vendor/etc/permissions/android.hardware.nfc.hcef.xml rm /system/vendor/etc/permissions/com.android.nfc_extras.xml
rm /vendor/etc/permissions/com.android.nfc_extras.xml
rm -r /system/app/NfcNci rm -r /system/app/NfcNci
else
# Only XT1806 variant got a compass
rm /vendor/etc/permissions/android.hardware.sensor.compass.xml
fi fi
if ! [ "$sku" = "XT1802" ]; then
# Others variants doesn't have DTV support
rm /system/vendor/etc/permissions/com.motorola.hardware.dtv.xml
rm /system/vendor/etc/permissions/mot_dtv_permissions.xml
rm /system/vendor/lib/libdtvtuner.so
rm /system/vendor/lib64/libdtvtuner.so
rm /system/vendor/lib/libdtvhal.so
rm /system/vendor/lib64/libdtvhal.so
rm -r /system/vendor/app/DTVPlayer
rm -r /system/vendor/app/DTVService
fi

View File

@@ -55,23 +55,7 @@
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </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> <vndk>
<version>0.0.0</version> <version>0.0.0</version>
</vndk> </vndk>
<avb>
<vbmeta-version>0.0</vbmeta-version>
</avb>
</compatibility-matrix> </compatibility-matrix>

View File

@@ -1,14 +0,0 @@
<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>

402
configs/libnfc-brcm.conf Normal file
View File

@@ -0,0 +1,402 @@
###################### Start of libnfc-common.conf #######################
###############################################################################
# Application options
APPL_TRACE_LEVEL=0xFF
PROTOCOL_TRACE_LEVEL=0xFFFFFFFF
###############################################################################
# performance measurement
# Change this setting to control how often USERIAL log the performance (throughput)
# data on read/write/poll
# defailt is to log performance dara for every 100 read or write
#REPORT_PERFORMANCE_MEASURE=100
###############################################################################
# File used for NFA storage
NFA_STORAGE="/data/nfc"
###############################################################################
# Snooze Mode Settings
#
# By default snooze mode is enabled. Set SNOOZE_MODE_CFG byte[0] to 0
# to disable.
#
# If SNOOZE_MODE_CFG is not provided, the default settings are used:
# They are as follows:
# 8 Sleep Mode (0=Disabled 1=UART 8=SPI/I2C)
# 0 Idle Threshold Host
# 0 Idle Threshold HC
# 0 NFC Wake active mode (0=ActiveLow 1=ActiveHigh)
# 1 Host Wake active mode (0=ActiveLow 1=ActiveHigh)
#
#SNOOZE_MODE_CFG={08:00:00:00:01}
###############################################################################
# Insert a delay in milliseconds after NFC_WAKE and before write to NFCC
#NFC_WAKE_DELAY=20
###############################################################################
# Various Delay settings (in ms) used in USERIAL
# POWER_ON_DELAY
# Delay after turning on chip, before writing to transport (default 300)
# PRE_POWER_OFF_DELAY
# Delay after deasserting NFC-Wake before turn off chip (default 0)
# POST_POWER_OFF_DELAY
# Delay after turning off chip, before USERIAL_close returns (default 0)
#
#POWER_ON_DELAY=300
#PRE_POWER_OFF_DELAY=0
#POST_POWER_OFF_DELAY=0
###############################################################################
# Maximum time (ms) to wait for RESET NTF after setting REG_PU to high
# The default is 1000.
#NFCC_ENABLE_TIMEOUT=0
###############################################################################
# LPTD mode configuration
# byte[0] is the length of the remaining bytes in this value
# if set to 0, LPTD params will NOT be sent to NFCC (i.e. disabled).
# byte[1] is the param id it should be set to B9.
# byte[2] is the length of the LPTD parameters
# byte[3] indicates if LPTD is enabled
# if set to 0, LPTD will be disabled (parameters will still be sent).
# byte[4-n] are the LPTD parameters.
# By default, LPTD is enabled and default settings are used.
# See nfc_hal_dm_cfg.c for defaults
#LPTD_CFG={23:B9:21:01:02:FF:FF:04:A0:0F:40:00:80:02:02:10:00:00:00:31:0C:30:00:00:00:00:00:00:00:00:00:00:00:00:00:00}
###############################################################################
# Startup Configuration (100 bytes maximum)
#
# For the 0xCA parameter, byte[9] (marked by 'AA') is for UICC0, and byte[10] (marked by BB) is
# for UICC1. The values are defined as:
# 0 : UICCx only supports ISO_DEP in low power mode.
# 2 : UICCx only supports Mifare in low power mode.
# 3 : UICCx supports both ISO_DEP and Mifare in low power mode.
#
# AA BB
#NFA_DM_START_UP_CFG={1F:CB:01:01:A5:01:01:CA:14:00:00:00:00:06:E8:03:00:00:00:00:00:00:00:00:00:00:00:00:00:80:01:01}
###############################################################################
# Startup Vendor Specific Configuration (100 bytes maximum);
# byte[0] TLV total len = 0x5
# byte[1] NCI_MTS_CMD|NCI_GID_PROP = 0x2f
# byte[2] NCI_MSG_FRAME_LOG = 0x9
# byte[3] 2
# byte[4] 0=turn off RF frame logging; 1=turn on
# byte[5] 0=turn off SWP frame logging; 1=turn on
# NFA_DM_START_UP_VSC_CFG={05:2F:09:02:01:01}
###############################################################################
# Antenna Configuration - This data is used when setting 0xC8 config item
# at startup (before discovery is started). If not used, no value is sent.
#
# The settings for this value are documented here:
# http://wcgbu.broadcom.com/wpan/PM/Project%20Document%20Library/bcm20791B0/
# Design/Doc/PHY%20register%20settings/BCM20791-B2-1027-02_PHY_Recommended_Reg_Settings.xlsx
# This document is maintained by Paul Forshaw.
#
# The values marked as ?? should be tweaked per antenna or customer/app:
# {20:C8:1E:06:??:00:??:??:??:00:??:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:??:01:00:00:40:04}
# array[0] = 0x20 is length of the payload from array[1] to the end
# array[1] = 0xC8 is PREINIT_DSP_CFG
#PREINIT_DSP_CFG={20:C8:1E:06:1F:00:0F:03:3C:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:48:01:00:00:40:04}
###############################################################################
# Configure crystal frequency when internal LPO can't detect the frequency.
#XTAL_FREQUENCY=0
###############################################################################
# Configure the default Destination Gate used by HCI (the default is 4, which
# is the ETSI loopback gate.
NFA_HCI_DEFAULT_DEST_GATE=0xF0
###############################################################################
# Configure the single default SE to use. The default is to use the first
# SE that is detected by the stack. This value might be used when the phone
# supports multiple SE (e.g. 0xF3 and 0xF4) but you want to force it to use
# one of them (e.g. 0xF4).
#ACTIVE_SE=0xF3
###############################################################################
# Configure the default NfcA/IsoDep techology and protocol route. Can be
# either a secure element (e.g. 0xF4) or the host (0x00)
#DEFAULT_ISODEP_ROUTE=0x00
###############################################################################
# Configure the NFC Extras to open and use a static pipe. If the value is
# not set or set to 0, then the default is use a dynamic pipe based on a
# destination gate (see NFA_HCI_DEFAULT_DEST_GATE). Note there is a value
# for each UICC (where F3="UICC0" and F4="UICC1")
#NFA_HCI_STATIC_PIPE_ID_F3=0x70
#NFA_HCI_STATIC_PIPE_ID_01=0x19
NFA_HCI_STATIC_PIPE_ID_C0=0x19
###############################################################################
# When disconnecting from Oberthur secure element, perform a warm-reset of
# the secure element to deselect the applet.
# The default hex value of the command is 0x3. If this variable is undefined,
# then this feature is not used.
#OBERTHUR_WARM_RESET_COMMAND=0x03
###############################################################################
# Force UICC to only listen to the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | NFA_TECHNOLOGY_MASK_F
UICC_LISTEN_TECH_MASK=0x07
###############################################################################
# Force HOST listen feature enable or disable.
# 0: Disable
# 1: Enable
HOST_LISTEN_ENABLE=0x01
###############################################################################
# Enabling/Disabling Forward functionality
# Disable 0x00
# Enable 0x01
NXP_FWD_FUNCTIONALITY_ENABLE=0x01
###############################################################################
# Allow UICC to be powered off if there is no traffic.
# Timeout is in ms. If set to 0, then UICC will not be powered off.
#UICC_IDLE_TIMEOUT=30000
UICC_IDLE_TIMEOUT=0
###############################################################################
# AID for Empty Select command
# If specified, this AID will be substituted when an Empty SELECT command is
# detected. The first byte is the length of the AID. Maximum length is 16.
AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}
###############################################################################
# Maximum Number of Credits to be allowed by the NFCC
# This value overrides what the NFCC specifices allowing the host to have
# the control to work-around transport limitations. If this value does
# not exist or is set to 0, the NFCC will provide the number of credits.
MAX_RF_DATA_CREDITS=1
###############################################################################
# This setting allows you to disable registering the T4t Virtual SE that causes
# the NFCC to send PPSE requests to the DH.
# The default setting is enabled (i.e. T4t Virtual SE is registered).
#REGISTER_VIRTUAL_SE=1
###############################################################################
# When screen is turned off, specify the desired power state of the controller.
# 0: power-off-sleep state; DEFAULT
# 1: full-power state
# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
SCREEN_OFF_POWER_STATE=1
###############################################################################
# Firmware patch file
# If the value is not set then patch download is disabled.
#FW_PATCH="/vendor/firmware/bcm2079x_firmware.ncd"
###############################################################################
# Firmware pre-patch file (sent before the above patch file)
# If the value is not set then pre-patch is not used.
#FW_PRE_PATCH="/vendor/firmware/bcm2079x_pre_firmware.ncd"
###############################################################################
# Firmware patch format
# 1 = HCD
# 2 = NCD (default)
#NFA_CONFIG_FORMAT=2
###############################################################################
# SPD Debug mode
# If set to 1, any failure of downloading a patch will trigger a hard-stop
#SPD_DEBUG=0
###############################################################################
# SPD Max Retry Count
# The number of attempts to download a patch before giving up (defualt is 3).
# Note, this resets after a power-cycle.
#SPD_MAX_RETRY_COUNT=3
###############################################################################
# transport driver
#
# TRANSPORT_DRIVER=<driver>
#
# where <driver> can be, for example:
# "/dev/ttyS" (UART)
# "/dev/bcmi2cnfc" (I2C)
# "hwtun" (HW Tunnel)
# "/dev/bcmspinfc" (SPI)
# "/dev/btusb0" (BT USB)
#TRANSPORT_DRIVER="/dev/bcm2079x-i2c"
###############################################################################
# power control driver
# Specify a kernel driver that support ioctl commands to control NFC_EN and
# NFC_WAKE gpio signals.
#
# POWER_CONTRL_DRIVER=<driver>
# where <driver> can be, for example:
# "/dev/nfcpower"
# "/dev/bcmi2cnfc" (I2C)
# "/dev/bcmspinfc" (SPI)
# i2c and spi driver may be used to control NFC_EN and NFC_WAKE signal
#POWER_CONTROL_DRIVER="/dev/bcm2079x-i2c"
###############################################################################
# I2C transport driver options
# Mako does not support 10-bit I2C addresses
# Revert to 7-bit address
#BCMI2CNFC_ADDRESS=0x77
###############################################################################
# I2C transport driver try to read multiple packets in read() if data is available
# remove the comment below to enable this feature
#READ_MULTIPLE_PACKETS=1
###############################################################################
# SPI transport driver options
#SPI_NEGOTIATION={0A:F0:00:01:00:00:00:FF:FF:00:00}
###############################################################################
# UART transport driver options
#
# PORT=1,2,3,...
# BAUD=115200, 19200, 9600, 4800,
# DATABITS=8, 7, 6, 5
# PARITY="even" | "odd" | "none"
# STOPBITS="0" | "1" | "1.5" | "2"
#UART_PORT=2
#UART_BAUD=115200
#UART_DATABITS=8
#UART_PARITY="none"
#UART_STOPBITS="1"
###############################################################################
# Insert a delay in microseconds per byte after a write to NFCC.
# after writing a block of data to the NFCC, delay this an amopunt of time before
# writing next block of data. the delay is calculated as below
# NFC_WRITE_DELAY * (number of byte written) / 1000 milliseconds
# e.g. after 259 bytes is written, delay (259 * 20 / 1000) 5 ms before next write
#NFC_WRITE_DELAY=20
###############################################################################
# Maximum Number of Credits to be allowed by the NFCC
# This value overrides what the NFCC specifices allowing the host to have
# the control to work-around transport limitations. If this value does
# not exist or is set to 0, the NFCC will provide the number of credits.
MAX_RF_DATA_CREDITS=1
###############################################################################
# Default poll duration (in ms)
# The defualt is 500ms if not set (see nfc_target.h)
#NFA_DM_DISC_DURATION_POLL=333
###############################################################################
# Antenna Configuration - This data is used when setting 0xC8 config item
# at startup (before discovery is started). If not used, no value is sent.
#
# The settings for this value are documented here:
# http://wcgbu.broadcom.com/wpan/PM/Project%20Document%20Library/bcm20791B0/
# Design/Doc/PHY%20register%20settings/BCM20791-B2-1027-02_PHY_Recommended_Reg_Settings.xlsx
# This document is maintained by Paul Forshaw.
#
# The values marked as ?? should be tweaked per antenna or customer/app:
# {20:C8:1E:06:??:00:??:??:??:00:??:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:??:01:00:00:40:04}
# array[0] = 0x20 is length of the payload from array[1] to the end
# array[1] = 0xC8 is PREINIT_DSP_CFG
#PREINIT_DSP_CFG={20:C8:1E:06:1F:00:0F:03:3C:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:48:01:00:00:40:04}
###############################################################################
# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1.
# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
# 2 NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate
# 3 NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
# 4 NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
PRESENCE_CHECK_ALGORITHM=1
###############################################################################
# Force tag polling for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
# NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
# NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO |
# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE.
#
# Notable bits:
# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
# NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */
# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
# NFA_TECHNOLOGY_MASK_ISO15693 0x08 /* Proprietary Technology */
# NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */
# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
POLLING_TECH_MASK=0xEF
###############################################################################
# Force P2P to only listen for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE
#
# Notable bits:
# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
P2P_LISTEN_TECH_MASK=0xC5
PRESERVE_STORAGE=0x01
###############################################################################
# Override the stack default for NFA_EE_MAX_EE_SUPPORTED set in nfc_target.h.
# The value is set to 3 by default as it assumes we will discover 0xF2,
# 0xF3, and 0xF4. If a platform will exclude and SE, this value can be reduced
# so that the stack will not wait any longer than necessary.
# Maximum EE supported number
# NXP PN547C2 0x02
# NXP PN65T 0x03
# NXP PN548C2 0x02
# NXP PN66T 0x03
NFA_MAX_EE_SUPPORTED=0x02
###############################################################################
# NCI Hal Module name
NCI_HAL_MODULE="nfc_nci"
##############################################################################
# Deactivate notification wait time out in seconds used in ETSI Reader mode
# 0 - Infinite wait
#NFA_DM_DISC_NTF_TIMEOUT=0
###############################################################################
# AID_MATCHING constants
# AID_MATCHING_EXACT_ONLY 0x00
# AID_MATCHING_EXACT_OR_PREFIX 0x01
# AID_MATCHING_PREFIX_ONLY 0x02
AID_MATCHING_MODE=0x01
###############################################################################
# Default Secure Element route id
DEFAULT_OFFHOST_ROUTE=0x02
###############################################################################
# Vendor Specific Proprietary Protocol & Discovery Configuration
# Set to 0xFF if unsupported
# byte[0] NCI_PROTOCOL_18092_ACTIVE
# byte[1] NCI_PROTOCOL_B_PRIME
# byte[2] NCI_PROTOCOL_DUAL
# byte[3] NCI_PROTOCOL_15693
# byte[4] NCI_PROTOCOL_KOVIO
# byte[5] NCI_PROTOCOL_MIFARE
# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO
# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME
# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME
NFA_PROPRIETARY_CFG={05:FF:FF:06:81:80:70:FF:FF}
#################################################################################
# Bail out mode
# If set to 1, NFCC is using bail out mode for either Type A or Type B poll.
NFA_POLL_BAIL_OUT_MODE=0x01
#################################################################################

View File

@@ -1,68 +0,0 @@
###############################################################################
# Application options
NFC_DEBUG_ENABLED=0
###############################################################################
# File used for NFA storage
NFA_STORAGE="/data/vendor/nfc"
###############################################################################
# Force UICC to only listen to the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | NFA_TECHNOLOGY_MASK_F
UICC_LISTEN_TECH_MASK=0x07
###############################################################################
# AID for Empty Select command
# If specified, this AID will be substituted when an Empty SELECT command is
# detected. The first byte is the length of the AID. Maximum length is 16.
AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00}
###############################################################################
# When screen is turned off, specify the desired power state of the controller.
# 0: power-off-sleep state; DEFAULT
# 1: full-power state
# 2: screen-off card-emulation (CE4/CE3/CE1 modes are used)
SCREEN_OFF_POWER_STATE=1
###############################################################################
# Force tag polling for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B |
# NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 |
# NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO |
# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE.
#
# Notable bits:
# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
# NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */
# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
# NFA_TECHNOLOGY_MASK_ISO15693 0x08 /* Proprietary Technology */
# NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */
# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
POLLING_TECH_MASK=0xEF
###############################################################################
# Force P2P to only listen for the following technology(s).
# The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h.
# Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F |
# NFA_TECHNOLOGY_MASK_A_ACTIVE | NFA_TECHNOLOGY_MASK_F_ACTIVE
#
# Notable bits:
# NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */
# NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */
# NFA_TECHNOLOGY_MASK_A_ACTIVE 0x40 /* NFC Technology A active mode */
# NFA_TECHNOLOGY_MASK_F_ACTIVE 0x80 /* NFC Technology F active mode */
P2P_LISTEN_TECH_MASK=0xC4
PRESERVE_STORAGE=0x01
###############################################################################
# AID_MATCHING constants
# AID_MATCHING_EXACT_ONLY 0x00
# AID_MATCHING_EXACT_OR_PREFIX 0x01
# AID_MATCHING_PREFIX_ONLY 0x02
AID_MATCHING_MODE=0x01
#################################################################################

View File

@@ -14,13 +14,12 @@
# ANDROID_LOG_ERROR 0x01 # ANDROID_LOG_ERROR 0x01
# ANDROID_LOG_SILENT 0x00 # ANDROID_LOG_SILENT 0x00
# #
NXPLOG_EXTNS_LOGLEVEL=0x03 NXPLOG_EXTNS_LOGLEVEL=0x01
NXPLOG_NCIHAL_LOGLEVEL=0x03 NXPLOG_NCIHAL_LOGLEVEL=0x01
NXPLOG_NCIX_LOGLEVEL=0x03 NXPLOG_NCIX_LOGLEVEL=0x01
NXPLOG_NCIR_LOGLEVEL=0x03 NXPLOG_NCIR_LOGLEVEL=0x01
NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_FWDNLD_LOGLEVEL=0x01
NXPLOG_TML_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x01
NFC_DEBUG_ENABLED=0x00
############################################################################### ###############################################################################
# Nfc Device Node name # Nfc Device Node name
@@ -33,10 +32,14 @@ NXP_NFC_DEV_NODE="/dev/pn544"
MIFARE_READER_ENABLE=0x01 MIFARE_READER_ENABLE=0x01
############################################################################### ###############################################################################
# Firmware file type # Vzw Feature enable
#.so file 0x01 # Disabled - 0x00
#.bin file 0x02 # Enabled - 0x01
NXP_FW_TYPE=0x01 VZW_FEATURE_ENABLE=0x01
###############################################################################
# File name for Firmware
NXP_FW_NAME="libpn548ad_fw.so"
############################################################################### ###############################################################################
# System clock source selection configuration # System clock source selection configuration
@@ -69,6 +72,19 @@ NXP_ACT_PROP_EXTN={2F, 02, 00}
# NFC forum profile settings # NFC forum profile settings
NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00}
###############################################################################
# NFCC Configuration Control
# Allow NFCC to manage RF Config 0x01
# Don't allow NFCC to manage RF Config 0x00
NXP_NFC_MERGE_RF_PARAMS={20, 02, 04, 01, 85, 01, 01}
###############################################################################
# Standby enable settings
# Disabled - 0x00
# Enabled - 0x01
NXP_CORE_STANDBY={2F, 00, 01, 01}
############################################################################### ###############################################################################
# NXP TVDD configurations settings # NXP TVDD configurations settings
# Allow NFCC to configure the external TVDD # Allow NFCC to configure the external TVDD
@@ -391,6 +407,15 @@ NXP_RF_CONF_BLK_5={
A0, 0D, 03, 0A, 40, 00 A0, 0D, 03, 0A, 40, 00
} }
###############################################################################
## Set configuration optimization decision setting
## Enable = 0x01
## Disable = 0x00
NXP_SET_CONFIG_ALWAYS=0x01
############################################################################### ###############################################################################
# Core configuration extensions # Core configuration extensions
# It includes # It includes
@@ -479,27 +504,107 @@ NXP_CORE_CONF={20, 02, 2A, 0E,
32, 01, 60 32, 01, 60
} }
###############################################################################
# Mifare Classic Key settings
#NXP_CORE_MFCKEY_SETTING={20, 02, 25,04, A0, 51, 06, A0, A1, A2, A3, A4, A5,
# A0, 52, 06, D3, F7, D3, F7, D3, F7,
# A0, 53, 06, FF, FF, FF, FF, FF, FF,
# A0, 54, 06, 00, 00, 00, 00, 00, 00}
###############################################################################
# Default SE Options
# No secure element 0x00
# eSE 0x01
# UICC 0x02
NXP_DEFAULT_SE=0x02
############################################################################### ###############################################################################
#Enable SWP full power mode when phone is power off #Enable SWP full power mode when phone is power off
NXP_SWP_FULL_PWR_ON=0x00 NXP_SWP_FULL_PWR_ON=0x00
############################################################################### ###############################################################################
#Set the default Felica T3T System Code OffHost route Location : #### Select the CHIP ####
# host 0x00 #PN547C2 0x01
# UICC 0x02 #PN65T 0x02
# UICC2 0x03 #PN548AD 0x03
DEFAULT_SYS_CODE_ROUTE=0x02 #PN66T 0x04
NXP_NFC_CHIP=0x03
############################################################################### ###############################################################################
#Set the Felica T3T System Code Power state : # CE when Screen state is locked
# Disable 0x00
# Enable 0x01
NXP_CE_ROUTE_STRICT_DISABLE=0x01
###############################################################################
# Timeout in secs to get NFCEE Discover notification
NXP_DEFAULT_NFCEE_DISC_TIMEOUT=20
NXP_DEFAULT_NFCEE_TIMEOUT=0x06
###############################################################################
# SWP Reader feature
# Timeout in seconds
NXP_SWP_RD_START_TIMEOUT=0x0A
#Timeout in secs
NXP_SWP_RD_TAG_OP_TIMEOUT=0x01
###############################################################################
#Set the default AID route Location :
#This settings will be used when application does not set this parameter
# host 0x00
# eSE 0x01
# UICC 0x02
DEFAULT_AID_ROUTE=0x02
###############################################################################
#Set the Mifare Desfire route Location :
#This settings will be used when application does not set this parameter
# host 0x00
# eSE 0x01
# UICC 0x02
DEFAULT_DESFIRE_ROUTE=0x02
###############################################################################
#Set the Mifare CLT route Location :
#This settings will be used when application does not set this parameter
# host 0x00
# eSE 0x01
# UICC 0x02
DEFAULT_MIFARE_CLT_ROUTE=0x02
###############################################################################
#Set the default AID Power state :
#This settings will be used when application does not set this parameter #This settings will be used when application does not set this parameter
# bit pos 0 = Switch On # bit pos 0 = Switch On
# bit pos 1 = Switch Off # bit pos 1 = Switch Off
# bit pos 2 = Battery Off # bit pos 2 = Battery Off
# bit pos 3 = Screen On lock # bit pos 3 = Screen Lock
# bit pos 4 = Screen off unlock # bit pos 4 = Screen Off
# bit pos 5 = Screen Off lock DEFAULT_AID_PWR_STATE=0x19
DEFAULT_SYS_CODE_PWR_STATE=0x1B
###############################################################################
#Set the Mifare Desfire Power state :
#This settings will be used when application does not set this parameter
# bit pos 0 = Switch On
# bit pos 1 = Switch Off
# bit pos 2 = Battery Off
# bit pos 3 = Screen Lock
# bit pos 4 = Screen Off
DEFAULT_DESFIRE_PWR_STATE=0x1B
###############################################################################
#Set the Mifare CLT Power state :
#This settings will be used when application does not set this parameter
# bit pos 0 = Switch On
# bit pos 1 = Switch Off
# bit pos 2 = Battery Off
# bit pos 3 = Screen Lock
# bit pos 4 = Screen Off
DEFAULT_MIFARE_CLT_PWR_STATE=0x1B
############################################################################### ###############################################################################
# AID Matching platform options # AID Matching platform options
@@ -522,27 +627,10 @@ NXP_CHINA_TIANJIN_RF_ENABLED=0x01
NXP_SWP_SWITCH_TIMEOUT=0x0A NXP_SWP_SWITCH_TIMEOUT=0x0A
############################################################################### ###############################################################################
# Vendor Specific Proprietary Protocol & Discovery Configuration #Dynamic RSSI feature enable
# Set to 0xFF if unsupported # Disable 0x00
# byte[0] NCI_PROTOCOL_18092_ACTIVE # Enable 0x01
# byte[1] NCI_PROTOCOL_B_PRIME NXP_AGC_DEBUG_ENABLE=0x00
# byte[2] NCI_PROTOCOL_DUAL
# byte[3] NCI_PROTOCOL_15693
# byte[4] NCI_PROTOCOL_KOVIO
# byte[5] NCI_PROTOCOL_MIFARE
# byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO
# byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME
# byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME
NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, 70, FF, FF}
###############################################################################
# Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1.
# 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm
# 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block
# 2 NFA_RW_PRES_CHK_RESET; Deactivate to Sleep, then re-activate
# 3 NFA_RW_PRES_CHK_RB_CH0; Type-4 tag protocol's ReadBinary command on channel 0
# 4 NFA_RW_PRES_CHK_RB_CH3; Type-4 tag protocol's ReadBinary command on channel 3
PRESENCE_CHECK_ALGORITHM=1
############################################################################### ###############################################################################
# UICC mode supported # UICC mode supported
@@ -550,6 +638,19 @@ PRESENCE_CHECK_ALGORITHM=1
# Enable 0x01 # Enable 0x01
NXP_DUAL_UICC_ENABLE=0x00 NXP_DUAL_UICC_ENABLE=0x00
###############################################################################
#Config to allow adding aids
#NFC on/off is required after this config
#1 = enabling adding aid to NFCC routing table.
#0 = disabling adding aid to NFCC routing table.
NXP_ENABLE_ADD_AID=0x01
###############################################################################
# Enable/Disable checking default proto SE Id
# Disable 0x00
# Enable 0x01
NXP_CHECK_DEFAULT_PROTO_SE_ID=0x01
################################################################################ ################################################################################
# Restriction of Type A UICC baud rate # Restriction of Type A UICC baud rate
# Default supported - 0x00 # Default supported - 0x00
@@ -565,7 +666,3 @@ NXP_TYPEA_UICC_BAUD_RATE=0x00
# 424kbps maximum supported - 0x02 # 424kbps maximum supported - 0x02
# 848kbps maximum supported - 0x03 # 848kbps maximum supported - 0x03
NXP_TYPEB_UICC_BAUD_RATE=0x00 NXP_TYPEB_UICC_BAUD_RATE=0x00
###############################################################################
# Extended APDU length for ISO_DEP
ISO_DEP_MAX_TRANSCEIVE=0xFEFF

View File

@@ -1,101 +1,4 @@
<manifest version="1.0" type="device" target-level="1"> <manifest version="1.0" type="device">
<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"> <hal format="hidl">
<name>android.hardware.graphics.allocator</name> <name>android.hardware.graphics.allocator</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -124,29 +27,20 @@
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.health</name> <name>android.hardware.wifi</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>2.0</version> <version>1.1</version>
<interface> <interface>
<name>IHealth</name> <name>IWifi</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.keymaster</name> <name>android.hardware.wifi.supplicant</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>3.0</version> <version>1.0</version>
<interface> <interface>
<name>IKeymasterDevice</name> <name>ISupplicant</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> <instance>default</instance>
</interface> </interface>
</hal> </hal>
@@ -164,222 +58,38 @@
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.memtrack</name> <name>android.hardware.drm</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.0</version> <version>1.0</version>
<interface> <interface>
<name>IMemtrack</name> <name>ICryptoFactory</name>
<instance>widevine</instance>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>widevine</instance>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.nfc</name> <name>android.hardware.light</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.1</version> <version>2.0</version>
<interface> <interface>
<name>INfc</name> <name>ILight</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>android.hardware.power</name> <name>android.hardware.power</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.1</version> <version>1.0</version>
<interface> <interface>
<name>IPower</name> <name>IPower</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </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"> <hal format="hidl">
<name>vendor.qti.hardware.perf</name> <name>vendor.qti.hardware.perf</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -389,6 +99,121 @@
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl">
<name>android.hardware.gnss</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IGnss</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>android.hardware.keymaster</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<version>3.0</version>
<interface>
<name>IKeymasterDevice</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.quicinc.cne.server</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<version>1.0</version>
<interface>
<name>IServer</name>
<instance>cnd</instance>
</interface>
</hal>
<hal format="hidl">
<name>com.quicinc.cne.api</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<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>
<impl level="generic"></impl>
<version>2.0</version>
<interface>
<name>IServer</name>
<instance>cnd</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.renderscript</name>
<transport arch="32+64">passthrough</transport>
<version>1.0</version>
<interface>
<name>IDevice</name>
<instance>default</instance>
</interface>
</hal>
<!-- Iop HAL service -->
<hal format="hidl">
<name>vendor.qti.hardware.iop</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<version>1.0</version>
<interface>
<name>IIop</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.color</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IDisplayColor</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>vendor.display.postproc</name>
<transport>hwbinder</transport>
<impl level="generic"></impl>
<version>1.0</version>
<interface>
<name>IDisplayPostproc</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl"> <hal format="hidl">
<name>vendor.qti.hardware.qdutils_disp</name> <name>vendor.qti.hardware.qdutils_disp</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -398,6 +223,33 @@
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </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>com.qualcomm.qti.bluetooth_audio</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IBluetoothAudio</name>
<instance>default</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"> <hal format="hidl">
<name>vendor.qti.hardware.radio.am</name> <name>vendor.qti.hardware.radio.am</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -408,15 +260,6 @@
<instance>slot2</instance> <instance>slot2</instance>
</interface> </interface>
</hal> </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"> <hal format="hidl">
<name>vendor.qti.hardware.radio.config</name> <name>vendor.qti.hardware.radio.config</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -488,32 +331,94 @@
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>vendor.qti.hardware.sensorscalibrate</name> <name>android.hardware.radio</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.0</version> <version>1.0</version>
<interface> <interface>
<name>ISensorsCalibrate</name> <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.radio.deprecated</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IOemHook</name>
<instance>slot1</instance>
<instance>slot2</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> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>vendor.qti.hardware.wifi.hostapd</name> <name>android.hardware.vibrator</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<impl level="generic"></impl>
<version>1.0</version> <version>1.0</version>
<interface> <interface>
<name>IHostapdVendor</name> <name>IVibrator</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>vendor.qti.hardware.wifi.supplicant</name> <name>vendor.qti.esepowermanager</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>2.0</version> <version>1.0</version>
<interface> <interface>
<name>ISupplicantVendor</name> <name>IEsePowerManager</name>
<instance>default</instance> <instance>default</instance>
</interface> </interface>
</hal> </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.0</version>
<interface>
<name>ISurfaceFlingerConfigs</name>
<instance>default</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>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"> <hal format="hidl">
<name>vendor.qti.imsrtpservice</name> <name>vendor.qti.imsrtpservice</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
@@ -524,16 +429,39 @@
</interface> </interface>
</hal> </hal>
<hal format="hidl"> <hal format="hidl">
<name>com.qualcomm.qti.wifidisplayhal</name> <name>android.hardware.health</name>
<transport>hwbinder</transport> <transport>hwbinder</transport>
<version>1.0</version> <version>1.0</version>
<interface> <interface>
<name>IDSManager</name> <name>IHealth</name>
<instance>wifidisplaydshal</instance> <instance>default</instance>
</interface> </interface>
</hal>
<hal format="hidl">
<name>android.hardware.sensors</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface> <interface>
<name>IHDCPSession</name> <name>ISensors</name>
<instance>wifidisplayhdcphal</instance> <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.memtrack</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IMemtrack</name>
<instance>default</instance>
</interface> </interface>
</hal> </hal>
</manifest> </manifest>

View File

@@ -45,7 +45,7 @@
<!ELEMENT EncoderOutputFileFormat EMPTY> <!ELEMENT EncoderOutputFileFormat EMPTY>
<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED> <!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
<!ELEMENT VideoEncoderCap EMPTY> <!ELEMENT VideoEncoderCap EMPTY>
<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED> <!ATTLIST VideoEncoderCap name (h264|h263|m4v|wmv) #REQUIRED>
<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED> <!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED> <!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED> <!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
@@ -89,45 +89,6 @@
<!-- Each camcorder profile defines a set of predefined configuration parameters --> <!-- Each camcorder profile defines a set of predefined configuration parameters -->
<CamcorderProfiles cameraId="0"> <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"> <EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v" <Video codec="m4v"
bitRate="128000" bitRate="128000"
@@ -188,19 +149,6 @@
channels="1" /> channels="1" />
</EncoderProfile> </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"> <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264" <Video codec="h264"
bitRate="192000" bitRate="192000"
@@ -266,19 +214,6 @@
channels="1" /> channels="1" />
</EncoderProfile> </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="95" />
<ImageEncoding quality="80" /> <ImageEncoding quality="80" />
<ImageEncoding quality="70" /> <ImageEncoding quality="70" />
@@ -288,45 +223,6 @@
<CamcorderProfiles cameraId="1"> <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"> <EncoderProfile quality="qvga" fileFormat="3gp" duration="60">
<Video codec="m4v" <Video codec="m4v"
bitRate="128000" bitRate="128000"
@@ -375,19 +271,6 @@
channels="1" /> channels="1" />
</EncoderProfile> </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"> <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="30">
<Video codec="h264" <Video codec="h264"
bitRate="192000" bitRate="192000"
@@ -455,16 +338,10 @@
In other words, the applications won't be able to use the codec 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 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" <VideoEncoderCap name="h264" enabled="true"
minBitRate="64000" maxBitRate="42000000" minBitRate="64000" maxBitRate="40000000"
minFrameWidth="176" maxFrameWidth="3840" minFrameWidth="176" maxFrameWidth="1920"
minFrameHeight="144" maxFrameHeight="2160" minFrameHeight="144" maxFrameHeight="1080"
minFrameRate="15" maxFrameRate="30" /> minFrameRate="15" maxFrameRate="30" />
<VideoEncoderCap name="h263" enabled="true" <VideoEncoderCap name="h263" enabled="true"
@@ -482,7 +359,7 @@
<AudioEncoderCap name="aac" enabled="true" <AudioEncoderCap name="aac" enabled="true"
minBitRate="758" maxBitRate="288000" minBitRate="758" maxBitRate="288000"
minSampleRate="8000" maxSampleRate="48000" minSampleRate="8000" maxSampleRate="48000"
minChannels="1" maxChannels="6" /> minChannels="1" maxChannels="1" />
<AudioEncoderCap name="heaac" enabled="true" <AudioEncoderCap name="heaac" enabled="true"
minBitRate="8000" maxBitRate="64000" minBitRate="8000" maxBitRate="64000"

View File

@@ -6,8 +6,6 @@
<privapp-permissions package="com.qualcomm.location"> <privapp-permissions package="com.qualcomm.location">
<permission name="android.permission.CONTROL_LOCATION_UPDATES"/> <permission name="android.permission.CONTROL_LOCATION_UPDATES"/>
<permission name="android.permission.WRITE_SECURE_SETTINGS"/>
<permission name="android.permission.MANAGE_USERS"/>
</privapp-permissions> </privapp-permissions>
<privapp-permissions package="com.qualcomm.qcrilmsgtunnel"> <privapp-permissions package="com.qualcomm.qcrilmsgtunnel">
@@ -18,83 +16,4 @@
<permission name="android.permission.INTERACT_ACROSS_USERS"/> <permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/> <permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
</privapp-permissions> </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> </permissions>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- <!--
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2017, The Linux Foundation. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are * modification, are permitted provided that the following conditions are
@@ -34,7 +34,7 @@
<!-- These are telephony components that need to freely run in the background --> <!-- 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.atfwd" />
<allow-in-power-save package="com.qualcomm.qti.telephonyservice" /> <allow-in-power-save package="com.qualcomm.qti.telephonyservice" />
<allow-in-power-save package="com.qualcomm.qcrilmsgtunnel" /> <allow-in-power-save package="com.qulacomm.qcrilmsgtunnel" />
<allow-in-power-save package="com.qualcomm.qti.ims" /> <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.qti.radioconfiginterface" />
<allow-in-power-save package="com.qualcomm.simcontacts" /> <allow-in-power-save package="com.qualcomm.simcontacts" />
@@ -42,74 +42,4 @@
<allow-in-power-save package="com.qualcomm.qti.server.wigigapp" /> <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.StatsPollManager" />
<allow-in-power-save package="com.qualcomm.qti.gsma.services.nfc" /> <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> </config>

View File

@@ -1,8 +1,6 @@
/* IPC Security Config */ /* IPC Security Config */
/* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */ /* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */
16:4294967295:1000:1021:1026 16:4294967295:1000:1021
/* <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> */ /* <LOWI QMI Service ID - 38>:<LOWI QMI Instance ID - all instances>:<Client Group ID> */
56:4294967295:1021 56:4294967295:1021
/* Allow SS CTL service to be used by system and net_raw processes */ /* Allow SS CTL service to be used by system and net_raw processes */
@@ -14,270 +12,264 @@
/* QMI-SLIM service permitted to gps and net_raw */ /* QMI-SLIM service permitted to gps and net_raw */
55:4294967295:1021 55:4294967295:1021
/* Allow Sensor services to be used by sensor process */ /* Allow Sensor services to be used by sensor process */
256:4294967295:1000:1006:1013:1021:1047:3011 256:4294967295:1000:1006:1013:1021:1047
257:4294967295:1000:1006:1013:1021:1047:3011 257:4294967295:1000:1006:1013:1021:1047
258:4294967295:1000:1006:1013:1021:1047:3011 258:4294967295:1000:1006:1013:1021:1047
259:4294967295:1000:1006:1013:1021:1047:3011 259:4294967295:1000:1006:1013:1021:1047
260:4294967295:1000:1006:1013:1021:1047:3011 260:4294967295:1000:1006:1013:1021:1047
261:4294967295:1000:1006:1013:1021:1047:3011 261:4294967295:1000:1006:1013:1021:1047
262:4294967295:1000:1006:1013:1021:1047:3011 262:4294967295:1000:1006:1013:1021:1047
263:4294967295:1000:1006:1013:1021:1047:3011 263:4294967295:1000:1006:1013:1021:1047
264:4294967295:1000:1006:1013:1021:1047:3011 264:4294967295:1000:1006:1013:1021:1047
265:4294967295:1000:1006:1013:1021:1047:3011 265:4294967295:1000:1006:1013:1021:1047
266:4294967295:1000:1006:1013:1021:1047:3011 266:4294967295:1000:1006:1013:1021:1047
267:4294967295:1000:1006:1013:1021:1047:3011 267:4294967295:1000:1006:1013:1021:1047
268:4294967295:1000:1006:1013:1021:1047:3011 268:4294967295:1000:1006:1013:1021:1047
269:4294967295:1000:1006:1013:1021:1047:3011 269:4294967295:1000:1006:1013:1021:1047
270:4294967295:1000:1006:1013:1021:1047:3011 270:4294967295:1000:1006:1013:1021:1047
271:4294967295:1000:1006:1013:1021:1047:3011 271:4294967295:1000:1006:1013:1021:1047
272:4294967295:1000:1006:1013:1021:1047:3011 272:4294967295:1000:1006:1013:1021:1047
273:4294967295:1000:1006:1013:1021:1047:3011 273:4294967295:1000:1006:1013:1021:1047
274:4294967295:1000:1006:1013:1021:1047:3011 274:4294967295:1000:1006:1013:1021:1047
275:4294967295:1000:1006:1013:1021:1047:3011 275:4294967295:1000:1006:1013:1021:1047
276:4294967295:1000:1006:1013:1021:1047:3011 276:4294967295:1000:1006:1013:1021:1047
277:4294967295:1000:1006:1013:1021:1047:3011 277:4294967295:1000:1006:1013:1021:1047
278:4294967295:1000:1006:1013:1021:1047:3011 278:4294967295:1000:1006:1013:1021:1047
279:4294967295:1000:1006:1013:1021:1047:3011 279:4294967295:1000:1006:1013:1021:1047
280:4294967295:1000:1006:1013:1021:1047:3011 280:4294967295:1000:1006:1013:1021:1047
281:4294967295:1000:1006:1013:1021:1047:3011 281:4294967295:1000:1006:1013:1021:1047
282:4294967295:1000:1006:1013:1021:1047:3011 282:4294967295:1000:1006:1013:1021:1047
283:4294967295:1000:1006:1013:1021:1047:3011 283:4294967295:1000:1006:1013:1021:1047
284:4294967295:1000:1006:1013:1021:1047:3011 284:4294967295:1000:1006:1013:1021:1047
285:4294967295:1000:1006:1013:1021:1047:3011 285:4294967295:1000:1006:1013:1021:1047
286:4294967295:1000:1006:1013:1021:1047:3011 286:4294967295:1000:1006:1013:1021:1047
287:4294967295:1000:1006:1013:1021:1047:3011 287:4294967295:1000:1006:1013:1021:1047
288:4294967295:1000:1006:1013:1021:1047:3011 288:4294967295:1000:1006:1013:1021:1047
289:4294967295:1000:1006:1013:1021:1047:3011 289:4294967295:1000:1006:1013:1021:1047
290:4294967295:1000:1006:1013:1021:1047:3011 290:4294967295:1000:1006:1013:1021:1047
291:4294967295:1000:1006:1013:1021:1047:3011 291:4294967295:1000:1006:1013:1021:1047
292:4294967295:1000:1006:1013:1021:1047:3011 292:4294967295:1000:1006:1013:1021:1047
293:4294967295:1000:1006:1013:1021:1047:3011 293:4294967295:1000:1006:1013:1021:1047
294:4294967295:1000:1006:1013:1021:1047:3011 294:4294967295:1000:1006:1013:1021:1047
295:4294967295:1000:1006:1013:1021:1047:3011 295:4294967295:1000:1006:1013:1021:1047
296:4294967295:1000:1006:1013:1021:1047:3011 296:4294967295:1000:1006:1013:1021:1047
297:4294967295:1000:1006:1013:1021:1047:3011 297:4294967295:1000:1006:1013:1021:1047
298:4294967295:1000:1006:1013:1021:1047:3011 298:4294967295:1000:1006:1013:1021:1047
299:4294967295:1000:1006:1013:1021:1047:3011 299:4294967295:1000:1006:1013:1021:1047
300:4294967295:1000:1006:1013:1021:1047:3011 300:4294967295:1000:1006:1013:1021:1047
301:4294967295:1000:1006:1013:1021:1047:3011 301:4294967295:1000:1006:1013:1021:1047
302:4294967295:1000:1006:1013:1021:1047:3011 302:4294967295:1000:1006:1013:1021:1047
303:4294967295:1000:1006:1013:1021:1047:3011 303:4294967295:1000:1006:1013:1021:1047
304:4294967295:1000:1006:1013:1021:1047:3011 304:4294967295:1000:1006:1013:1021:1047
305:4294967295:1000:1006:1013:1021:1047:3011 305:4294967295:1000:1006:1013:1021:1047
306:4294967295:1000:1006:1013:1021:1047:3011 306:4294967295:1000:1006:1013:1021:1047
307:4294967295:1000:1006:1013:1021:1047:3011 307:4294967295:1000:1006:1013:1021:1047
308:4294967295:1000:1006:1013:1021:1047:3011 308:4294967295:1000:1006:1013:1021:1047
309:4294967295:1000:1006:1013:1021:1047:3011 309:4294967295:1000:1006:1013:1021:1047
310:4294967295:1000:1006:1013:1021:1047:3011 310:4294967295:1000:1006:1013:1021:1047
311:4294967295:1000:1006:1013:1021:1047:3011 311:4294967295:1000:1006:1013:1021:1047
312:4294967295:1000:1006:1013:1021:1047:3011 312:4294967295:1000:1006:1013:1021:1047
313:4294967295:1000:1006:1013:1021:1047:3011 313:4294967295:1000:1006:1013:1021:1047
314:4294967295:1000:1006:1013:1021:1047:3011 314:4294967295:1000:1006:1013:1021:1047
315:4294967295:1000:1006:1013:1021:1047:3011 315:4294967295:1000:1006:1013:1021:1047
316:4294967295:1000:1006:1013:1021:1047:3011 316:4294967295:1000:1006:1013:1021:1047
317:4294967295:1000:1006:1013:1021:1047:3011 317:4294967295:1000:1006:1013:1021:1047
318:4294967295:1000:1006:1013:1021:1047:3011 318:4294967295:1000:1006:1013:1021:1047
319:4294967295:1000:1006:1013:1021:1047:3011 319:4294967295:1000:1006:1013:1021:1047
320:4294967295:1000:1006:1013:1021:1047:3011 320:4294967295:1000:1006:1013:1021:1047
321:4294967295:1000:1006:1013:1021:1047:3011 321:4294967295:1000:1006:1013:1021:1047
322:4294967295:1000:1006:1013:1021:1047:3011 322:4294967295:1000:1006:1013:1021:1047
323:4294967295:1000:1006:1013:1021:1047:3011 323:4294967295:1000:1006:1013:1021:1047
324:4294967295:1000:1006:1013:1021:1047:3011 324:4294967295:1000:1006:1013:1021:1047
325:4294967295:1000:1006:1013:1021:1047:3011 325:4294967295:1000:1006:1013:1021:1047
326:4294967295:1000:1006:1013:1021:1047:3011 326:4294967295:1000:1006:1013:1021:1047
327:4294967295:1000:1006:1013:1021:1047:3011 327:4294967295:1000:1006:1013:1021:1047
328:4294967295:1000:1006:1013:1021:1047:3011 328:4294967295:1000:1006:1013:1021:1047
329:4294967295:1000:1006:1013:1021:1047:3011 329:4294967295:1000:1006:1013:1021:1047
330:4294967295:1000:1006:1013:1021:1047:3011 330:4294967295:1000:1006:1013:1021:1047
331:4294967295:1000:1006:1013:1021:1047:3011 331:4294967295:1000:1006:1013:1021:1047
332:4294967295:1000:1006:1013:1021:1047:3011 332:4294967295:1000:1006:1013:1021:1047
333:4294967295:1000:1006:1013:1021:1047:3011 333:4294967295:1000:1006:1013:1021:1047
334:4294967295:1000:1006:1013:1021:1047:3011 334:4294967295:1000:1006:1013:1021:1047
335:4294967295:1000:1006:1013:1021:1047:3011 335:4294967295:1000:1006:1013:1021:1047
336:4294967295:1000:1006:1013:1021:1047:3011 336:4294967295:1000:1006:1013:1021:1047
337:4294967295:1000:1006:1013:1021:1047:3011 337:4294967295:1000:1006:1013:1021:1047
338:4294967295:1000:1006:1013:1021:1047:3011 338:4294967295:1000:1006:1013:1021:1047
339:4294967295:1000:1006:1013:1021:1047:3011 339:4294967295:1000:1006:1013:1021:1047
340:4294967295:1000:1006:1013:1021:1047:3011 340:4294967295:1000:1006:1013:1021:1047
341:4294967295:1000:1006:1013:1021:1047:3011 341:4294967295:1000:1006:1013:1021:1047
342:4294967295:1000:1006:1013:1021:1047:3011 342:4294967295:1000:1006:1013:1021:1047
343:4294967295:1000:1006:1013:1021:1047:3011 343:4294967295:1000:1006:1013:1021:1047
344:4294967295:1000:1006:1013:1021:1047:3011 344:4294967295:1000:1006:1013:1021:1047
345:4294967295:1000:1006:1013:1021:1047:3011 345:4294967295:1000:1006:1013:1021:1047
346:4294967295:1000:1006:1013:1021:1047:3011 346:4294967295:1000:1006:1013:1021:1047
347:4294967295:1000:1006:1013:1021:1047:3011 347:4294967295:1000:1006:1013:1021:1047
348:4294967295:1000:1006:1013:1021:1047:3011 348:4294967295:1000:1006:1013:1021:1047
349:4294967295:1000:1006:1013:1021:1047:3011 349:4294967295:1000:1006:1013:1021:1047
350:4294967295:1000:1006:1013:1021:1047:3011 350:4294967295:1000:1006:1013:1021:1047
351:4294967295:1000:1006:1013:1021:1047:3011 351:4294967295:1000:1006:1013:1021:1047
352:4294967295:1000:1006:1013:1021:1047:3011 352:4294967295:1000:1006:1013:1021:1047
353:4294967295:1000:1006:1013:1021:1047:3011 353:4294967295:1000:1006:1013:1021:1047
354:4294967295:1000:1006:1013:1021:1047:3011 354:4294967295:1000:1006:1013:1021:1047
355:4294967295:1000:1006:1013:1021:1047:3011 355:4294967295:1000:1006:1013:1021:1047
356:4294967295:1000:1006:1013:1021:1047:3011 356:4294967295:1000:1006:1013:1021:1047
357:4294967295:1000:1006:1013:1021:1047:3011 357:4294967295:1000:1006:1013:1021:1047
358:4294967295:1000:1006:1013:1021:1047:3011 358:4294967295:1000:1006:1013:1021:1047
359:4294967295:1000:1006:1013:1021:1047:3011 359:4294967295:1000:1006:1013:1021:1047
360:4294967295:1000:1006:1013:1021:1047:3011 360:4294967295:1000:1006:1013:1021:1047
361:4294967295:1000:1006:1013:1021:1047:3011 361:4294967295:1000:1006:1013:1021:1047
362:4294967295:1000:1006:1013:1021:1047:3011 362:4294967295:1000:1006:1013:1021:1047
363:4294967295:1000:1006:1013:1021:1047:3011 363:4294967295:1000:1006:1013:1021:1047
364:4294967295:1000:1006:1013:1021:1047:3011 364:4294967295:1000:1006:1013:1021:1047
365:4294967295:1000:1006:1013:1021:1047:3011 365:4294967295:1000:1006:1013:1021:1047
366:4294967295:1000:1006:1013:1021:1047:3011 366:4294967295:1000:1006:1013:1021:1047
367:4294967295:1000:1006:1013:1021:1047:3011 367:4294967295:1000:1006:1013:1021:1047
368:4294967295:1000:1006:1013:1021:1047:3011 368:4294967295:1000:1006:1013:1021:1047
369:4294967295:1000:1006:1013:1021:1047:3011 369:4294967295:1000:1006:1013:1021:1047
370:4294967295:1000:1006:1013:1021:1047:3011 370:4294967295:1000:1006:1013:1021:1047
371:4294967295:1000:1006:1013:1021:1047:3011 371:4294967295:1000:1006:1013:1021:1047
372:4294967295:1000:1006:1013:1021:1047:3011 372:4294967295:1000:1006:1013:1021:1047
373:4294967295:1000:1006:1013:1021:1047:3011 373:4294967295:1000:1006:1013:1021:1047
374:4294967295:1000:1006:1013:1021:1047:3011 374:4294967295:1000:1006:1013:1021:1047
375:4294967295:1000:1006:1013:1021:1047:3011 375:4294967295:1000:1006:1013:1021:1047
376:4294967295:1000:1006:1013:1021:1047:3011 376:4294967295:1000:1006:1013:1021:1047
377:4294967295:1000:1006:1013:1021:1047:3011 377:4294967295:1000:1006:1013:1021:1047
378:4294967295:1000:1006:1013:1021:1047:3011 378:4294967295:1000:1006:1013:1021:1047
379:4294967295:1000:1006:1013:1021:1047:3011 379:4294967295:1000:1006:1013:1021:1047
380:4294967295:1000:1006:1013:1021:1047:3011 380:4294967295:1000:1006:1013:1021:1047
381:4294967295:1000:1006:1013:1021:1047:3011 381:4294967295:1000:1006:1013:1021:1047
382:4294967295:1000:1006:1013:1021:1047:3011 382:4294967295:1000:1006:1013:1021:1047
383:4294967295:1000:1006:1013:1021:1047:3011 383:4294967295:1000:1006:1013:1021:1047
384:4294967295:1000:1006:1013:1021:1047:3011 384:4294967295:1000:1006:1013:1021:1047
385:4294967295:1000:1006:1013:1021:1047:3011 385:4294967295:1000:1006:1013:1021:1047
386:4294967295:1000:1006:1013:1021:1047:3011 386:4294967295:1000:1006:1013:1021:1047
387:4294967295:1000:1006:1013:1021:1047:3011 387:4294967295:1000:1006:1013:1021:1047
388:4294967295:1000:1006:1013:1021:1047:3011 388:4294967295:1000:1006:1013:1021:1047
389:4294967295:1000:1006:1013:1021:1047:3011 389:4294967295:1000:1006:1013:1021:1047
390:4294967295:1000:1006:1013:1021:1047:3011 390:4294967295:1000:1006:1013:1021:1047
391:4294967295:1000:1006:1013:1021:1047:3011 391:4294967295:1000:1006:1013:1021:1047
392:4294967295:1000:1006:1013:1021:1047:3011 392:4294967295:1000:1006:1013:1021:1047
393:4294967295:1000:1006:1013:1021:1047:3011 393:4294967295:1000:1006:1013:1021:1047
394:4294967295:1000:1006:1013:1021:1047:3011 394:4294967295:1000:1006:1013:1021:1047
395:4294967295:1000:1006:1013:1021:1047:3011 395:4294967295:1000:1006:1013:1021:1047
396:4294967295:1000:1006:1013:1021:1047:3011 396:4294967295:1000:1006:1013:1021:1047
397:4294967295:1000:1006:1013:1021:1047:3011 397:4294967295:1000:1006:1013:1021:1047
398:4294967295:1000:1006:1013:1021:1047:3011 398:4294967295:1000:1006:1013:1021:1047
399:4294967295:1000:1006:1013:1021:1047:3011 399:4294967295:1000:1006:1013:1021:1047
400:4294967295:1000:1006:1013:1021:1047:3011 400:4294967295:1000:1006:1013:1021:1047
401:4294967295:1000:1006:1013:1021:1047:3011 401:4294967295:1000:1006:1013:1021:1047
402:4294967295:1000:1006:1013:1021:1047:3011 402:4294967295:1000:1006:1013:1021:1047
403:4294967295:1000:1006:1013:1021:1047:3011 403:4294967295:1000:1006:1013:1021:1047
404:4294967295:1000:1006:1013:1021:1047:3011 404:4294967295:1000:1006:1013:1021:1047
405:4294967295:1000:1006:1013:1021:1047:3011 405:4294967295:1000:1006:1013:1021:1047
406:4294967295:1000:1006:1013:1021:1047:3011 406:4294967295:1000:1006:1013:1021:1047
407:4294967295:1000:1006:1013:1021:1047:3011 407:4294967295:1000:1006:1013:1021:1047
408:4294967295:1000:1006:1013:1021:1047:3011 408:4294967295:1000:1006:1013:1021:1047
409:4294967295:1000:1006:1013:1021:1047:3011 409:4294967295:1000:1006:1013:1021:1047
410:4294967295:1000:1006:1013:1021:1047:3011 410:4294967295:1000:1006:1013:1021:1047
411:4294967295:1000:1006:1013:1021:1047:3011 411:4294967295:1000:1006:1013:1021:1047
412:4294967295:1000:1006:1013:1021:1047:3011 412:4294967295:1000:1006:1013:1021:1047
413:4294967295:1000:1006:1013:1021:1047:3011 413:4294967295:1000:1006:1013:1021:1047
414:4294967295:1000:1006:1013:1021:1047:3011 414:4294967295:1000:1006:1013:1021:1047
415:4294967295:1000:1006:1013:1021:1047:3011 415:4294967295:1000:1006:1013:1021:1047
416:4294967295:1000:1006:1013:1021:1047:3011 416:4294967295:1000:1006:1013:1021:1047
417:4294967295:1000:1006:1013:1021:1047:3011 417:4294967295:1000:1006:1013:1021:1047
418:4294967295:1000:1006:1013:1021:1047:3011 418:4294967295:1000:1006:1013:1021:1047
419:4294967295:1000:1006:1013:1021:1047:3011 419:4294967295:1000:1006:1013:1021:1047
420:4294967295:1000:1006:1013:1021:1047:3011 420:4294967295:1000:1006:1013:1021:1047
421:4294967295:1000:1006:1013:1021:1047:3011 421:4294967295:1000:1006:1013:1021:1047
422:4294967295:1000:1006:1013:1021:1047:3011 422:4294967295:1000:1006:1013:1021:1047
423:4294967295:1000:1006:1013:1021:1047:3011 423:4294967295:1000:1006:1013:1021:1047
424:4294967295:1000:1006:1013:1021:1047:3011 424:4294967295:1000:1006:1013:1021:1047
425:4294967295:1000:1006:1013:1021:1047:3011 425:4294967295:1000:1006:1013:1021:1047
426:4294967295:1000:1006:1013:1021:1047:3011 426:4294967295:1000:1006:1013:1021:1047
427:4294967295:1000:1006:1013:1021:1047:3011 427:4294967295:1000:1006:1013:1021:1047
428:4294967295:1000:1006:1013:1021:1047:3011 428:4294967295:1000:1006:1013:1021:1047
429:4294967295:1000:1006:1013:1021:1047:3011 429:4294967295:1000:1006:1013:1021:1047
430:4294967295:1000:1006:1013:1021:1047:3011 430:4294967295:1000:1006:1013:1021:1047
431:4294967295:1000:1006:1013:1021:1047:3011 431:4294967295:1000:1006:1013:1021:1047
432:4294967295:1000:1006:1013:1021:1047:3011 432:4294967295:1000:1006:1013:1021:1047
433:4294967295:1000:1006:1013:1021:1047:3011 433:4294967295:1000:1006:1013:1021:1047
434:4294967295:1000:1006:1013:1021:1047:3011 434:4294967295:1000:1006:1013:1021:1047
435:4294967295:1000:1006:1013:1021:1047:3011 435:4294967295:1000:1006:1013:1021:1047
436:4294967295:1000:1006:1013:1021:1047:3011 436:4294967295:1000:1006:1013:1021:1047
437:4294967295:1000:1006:1013:1021:1047:3011 437:4294967295:1000:1006:1013:1021:1047
438:4294967295:1000:1006:1013:1021:1047:3011 438:4294967295:1000:1006:1013:1021:1047
439:4294967295:1000:1006:1013:1021:1047:3011 439:4294967295:1000:1006:1013:1021:1047
440:4294967295:1000:1006:1013:1021:1047:3011 440:4294967295:1000:1006:1013:1021:1047
441:4294967295:1000:1006:1013:1021:1047:3011 441:4294967295:1000:1006:1013:1021:1047
442:4294967295:1000:1006:1013:1021:1047:3011 442:4294967295:1000:1006:1013:1021:1047
443:4294967295:1000:1006:1013:1021:1047:3011 443:4294967295:1000:1006:1013:1021:1047
444:4294967295:1000:1006:1013:1021:1047:3011 444:4294967295:1000:1006:1013:1021:1047
445:4294967295:1000:1006:1013:1021:1047:3011 445:4294967295:1000:1006:1013:1021:1047
446:4294967295:1000:1006:1013:1021:1047:3011 446:4294967295:1000:1006:1013:1021:1047
447:4294967295:1000:1006:1013:1021:1047:3011 447:4294967295:1000:1006:1013:1021:1047
448:4294967295:1000:1006:1013:1021:1047:3011 448:4294967295:1000:1006:1013:1021:1047
449:4294967295:1000:1006:1013:1021:1047:3011 449:4294967295:1000:1006:1013:1021:1047
450:4294967295:1000:1006:1013:1021:1047:3011 450:4294967295:1000:1006:1013:1021:1047
451:4294967295:1000:1006:1013:1021:1047:3011 451:4294967295:1000:1006:1013:1021:1047
452:4294967295:1000:1006:1013:1021:1047:3011 452:4294967295:1000:1006:1013:1021:1047
453:4294967295:1000:1006:1013:1021:1047:3011 453:4294967295:1000:1006:1013:1021:1047
454:4294967295:1000:1006:1013:1021:1047:3011 454:4294967295:1000:1006:1013:1021:1047
455:4294967295:1000:1006:1013:1021:1047:3011 455:4294967295:1000:1006:1013:1021:1047
456:4294967295:1000:1006:1013:1021:1047:3011 456:4294967295:1000:1006:1013:1021:1047
457:4294967295:1000:1006:1013:1021:1047:3011 457:4294967295:1000:1006:1013:1021:1047
458:4294967295:1000:1006:1013:1021:1047:3011 458:4294967295:1000:1006:1013:1021:1047
459:4294967295:1000:1006:1013:1021:1047:3011 459:4294967295:1000:1006:1013:1021:1047
460:4294967295:1000:1006:1013:1021:1047:3011 460:4294967295:1000:1006:1013:1021:1047
461:4294967295:1000:1006:1013:1021:1047:3011 461:4294967295:1000:1006:1013:1021:1047
462:4294967295:1000:1006:1013:1021:1047:3011 462:4294967295:1000:1006:1013:1021:1047
463:4294967295:1000:1006:1013:1021:1047:3011 463:4294967295:1000:1006:1013:1021:1047
464:4294967295:1000:1006:1013:1021:1047:3011 464:4294967295:1000:1006:1013:1021:1047
465:4294967295:1000:1006:1013:1021:1047:3011 465:4294967295:1000:1006:1013:1021:1047
466:4294967295:1000:1006:1013:1021:1047:3011 466:4294967295:1000:1006:1013:1021:1047
467:4294967295:1000:1006:1013:1021:1047:3011 467:4294967295:1000:1006:1013:1021:1047
468:4294967295:1000:1006:1013:1021:1047:3011 468:4294967295:1000:1006:1013:1021:1047
469:4294967295:1000:1006:1013:1021:1047:3011 469:4294967295:1000:1006:1013:1021:1047
470:4294967295:1000:1006:1013:1021:1047:3011 470:4294967295:1000:1006:1013:1021:1047
471:4294967295:1000:1006:1013:1021:1047:3011 471:4294967295:1000:1006:1013:1021:1047
472:4294967295:1000:1006:1013:1021:1047:3011 472:4294967295:1000:1006:1013:1021:1047
473:4294967295:1000:1006:1013:1021:1047:3011 473:4294967295:1000:1006:1013:1021:1047
474:4294967295:1000:1006:1013:1021:1047:3011 474:4294967295:1000:1006:1013:1021:1047
475:4294967295:1000:1006:1013:1021:1047:3011 475:4294967295:1000:1006:1013:1021:1047
476:4294967295:1000:1006:1013:1021:1047:3011 476:4294967295:1000:1006:1013:1021:1047
477:4294967295:1000:1006:1013:1021:1047:3011 477:4294967295:1000:1006:1013:1021:1047
478:4294967295:1000:1006:1013:1021:1047:3011 478:4294967295:1000:1006:1013:1021:1047
479:4294967295:1000:1006:1013:1021:1047:3011 479:4294967295:1000:1006:1013:1021:1047
480:4294967295:1000:1006:1013:1021:1047:3011 480:4294967295:1000:1006:1013:1021:1047
481:4294967295:1000:1006:1013:1021:1047:3011 481:4294967295:1000:1006:1013:1021:1047
482:4294967295:1000:1006:1013:1021:1047:3011 482:4294967295:1000:1006:1013:1021:1047
483:4294967295:1000:1006:1013:1021:1047:3011 483:4294967295:1000:1006:1013:1021:1047
484:4294967295:1000:1006:1013:1021:1047:3011 484:4294967295:1000:1006:1013:1021:1047
485:4294967295:1000:1006:1013:1021:1047:3011 485:4294967295:1000:1006:1013:1021:1047
486:4294967295:1000:1006:1013:1021:1047:3011 486:4294967295:1000:1006:1013:1021:1047
487:4294967295:1000:1006:1013:1021:1047:3011 487:4294967295:1000:1006:1013:1021:1047
488:4294967295:1000:1006:1013:1021:1047:3011 488:4294967295:1000:1006:1013:1021:1047
489:4294967295:1000:1006:1013:1021:1047:3011 489:4294967295:1000:1006:1013:1021:1047
490:4294967295:1000:1006:1013:1021:1047:3011 490:4294967295:1000:1006:1013:1021:1047
491:4294967295:1000:1006:1013:1021:1047:3011 491:4294967295:1000:1006:1013:1021:1047
492:4294967295:1000:1006:1013:1021:1047:3011 492:4294967295:1000:1006:1013:1021:1047
493:4294967295:1000:1006:1013:1021:1047:3011 493:4294967295:1000:1006:1013:1021:1047
494:4294967295:1000:1006:1013:1021:1047:3011 494:4294967295:1000:1006:1013:1021:1047
495:4294967295:1000:1006:1013:1021:1047:3011 495:4294967295:1000:1006:1013:1021:1047
496:4294967295:1000:1006:1013:1021:1047:3011 496:4294967295:1000:1006:1013:1021:1047
497:4294967295:1000:1006:1013:1021:1047:3011 497:4294967295:1000:1006:1013:1021:1047
498:4294967295:1000:1006:1013:1021:1047:3011 498:4294967295:1000:1006:1013:1021:1047
499:4294967295:1000:1006:1013:1021:1047:3011 499:4294967295:1000:1006:1013:1021:1047
500:4294967295:1000:1006:1013:1021:1047:3011 500:4294967295:1000:1006:1013:1021:1047
501:4294967295:1000:1006:1013:1021:1047:3011 501:4294967295:1000:1006:1013:1021:1047
502:4294967295:1000:1006:1013:1021:1047:3011 502:4294967295:1000:1006:1013:1021:1047
503:4294967295:1000:1006:1013:1021:1047:3011 503:4294967295:1000:1006:1013:1021:1047
504:4294967295:1000:1006:1013:1021:1047:3011 504:4294967295:1000:1006:1013:1021:1047
505:4294967295:1000:1006:1013:1021:1047:3011 505:4294967295:1000:1006:1013:1021:1047
506:4294967295:1000:1006:1013:1021:1047:3011 506:4294967295:1000:1006:1013:1021:1047
507:4294967295:1000:1006:1013:1021:1047:3011 507:4294967295:1000:1006:1013:1021:1047
508:4294967295:1000:1006:1013:1021:1047:3011 508:4294967295:1000:1006:1013:1021:1047
509:4294967295:1000:1006:1013:1021:1047:3011 509:4294967295:1000:1006:1013:1021:1047
510:4294967295:1000:1006:1013:1021:1047:3011 510:4294967295:1000:1006:1013:1021:1047
511:4294967295:1000:1006:1013:1021:1047:3011 511:4294967295:1000:1006:1013:1021:1047
/* Allow RCS service to aquire net_raw permission */ /* Allow RCS service to aquire net_raw permission */
18:4294967295:1001:3004 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 */ /* Allow QMID service to aquire net_raw permission */
3:4294967295:1001:1021:3004 3:4294967295:1001:1021:3004
2:4294967295:1000:1001:3004 2:4294967295:1000:1001:3004
@@ -328,5 +320,5 @@
69:4294967295:1000 69:4294967295:1000
/* <WLPS QMI Service ID - 0x39>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */ /* <WLPS QMI Service ID - 0x39>:<WLFW QMI Instance ID - all instances>:<Client Group ID> */
57:4294967295:1000 57:4294967295:1000
/* MOTEXT */ /* Allow MOTEXT service to be used by radio processes and net_raw processes */
228:4294967295:1001:3004 228:4294967295:1001:3004

View File

@@ -1640,7 +1640,7 @@
# AMD Cfg # AMD Cfg
200 0x000A0000 0x00010001 #AMD Default Sample rate 200 0x000A0000 0x00010001 #AMD Default Sample rate
201 0x00001A1C 0x00010001 #AMD INT Cfg param1 201 0x00000D0E 0x00010001 #AMD INT Cfg param1
202 0x00008000 0x00010001 #AMD INT Cfg param2 202 0x00008000 0x00010001 #AMD INT Cfg param2
# RMD Cfg # RMD Cfg

317
device.mk
View File

@@ -16,8 +16,10 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)
# Vendor properties # Overlay
-include device/motorola/sanders/vendor_prop.mk DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay \
vendor/aosp/overlay/CarrierConfig
# These are the hardware-specific features # These are the hardware-specific features
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
@@ -31,7 +33,7 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \ frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml \
frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
@@ -44,32 +46,46 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level-0.xml \ frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version-1_0_3.xml \ frameworks/native/data/etc/android.hardware.vulkan.version-1_0_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute-0.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml \
frameworks/native/data/etc/android.software.print.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.print.xml \ frameworks/native/data/etc/android.software.print.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.print.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \ frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml
# Screen density # Screen density
PRODUCT_AAPT_PREF_CONFIG := xxhdpi PRODUCT_AAPT_PREF_CONFIG := xxhdpi
PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_CONFIG := normal
# HIDL
PRODUCT_PACKAGES += \
android.hidl.manager@1.0 \
android.hidl.base@1.0
# ARCore
PRODUCT_PACKAGES += \
arcore
PRODUCT_PROPERTY_OVERRIDES += \
ro.config.calibration_cad=/system/etc/calibration_cad.xml
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/calibration_cad.xml:system/etc/calibration_cad.xml
# Audio # Audio
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
audiod \
audio.primary.msm8953 \ audio.primary.msm8953 \
audio.a2dp.default \ audio.a2dp.default \
audio.r_submix.default \
audio.usb.default \ audio.usb.default \
libaacwrapper \ audio.r_submix.default \
libaudio-resampler \ libaudio-resampler \
libtinycompress libshim_adsp \
libtinycompress \
audiod
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libqcomvisualizer \ libqcomvisualizer \
@@ -78,55 +94,59 @@ PRODUCT_PACKAGES += \
libqcompostprocbundle libqcompostprocbundle
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.audio@4.0-impl \ android.hardware.audio@2.0-impl \
android.hardware.audio@2.0-service \ android.hardware.audio.effect@2.0-impl \
android.hardware.audio.effect@4.0-impl \
android.hardware.broadcastradio@1.0-impl android.hardware.broadcastradio@1.0-impl
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_tuning_mixer.txt:$(TARGET_COPY_OUT_VENDOR)/etc/audio_tuning_mixer.txt \ $(LOCAL_PATH)/audio/audio_effects.conf:system/vendor/etc/audio_effects.conf \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \ $(LOCAL_PATH)/audio/audio_policy.conf:system/vendor/etc/audio_policy.conf \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ $(LOCAL_PATH)/audio/audio_output_policy.conf:system/vendor/etc/audio_output_policy.conf \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ $(LOCAL_PATH)/audio/audio_platform_info_extcodec.xml:system/vendor/etc/audio_platform_info_extcodec.xml \
$(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \ $(LOCAL_PATH)/audio/mixer_paths.xml:system/vendor/etc/mixer_paths.xml \
$(LOCAL_PATH)/audio/audio_ext_spkr.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_ext_spkr.conf \ $(LOCAL_PATH)/audio/audio_ext_spkr.conf:system/vendor/etc/audio_ext_spkr.conf \
$(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \ $(LOCAL_PATH)/audio/audio_platform_info.xml:system/vendor/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml $(LOCAL_PATH)/audio/sound_trigger_mixer_paths.xml:system/vendor/etc/sound_trigger_mixer_paths.xml \
$(LOCAL_PATH)/audio/sound_trigger_platform_info.xml:system/vendor/etc/sound_trigger_platform_info.xml
PRODUCT_COPY_FILES += \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
# Bluetooth # Bluetooth
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libbt-vendor libbt-vendor \
android.hardware.bluetooth@1.0-impl \
android.hardware.bluetooth@1.0-service
# Camera # Camera
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libbson \ libbson \
libgui_vendor \ GoogleCameraMod \
camera.device@1.0-impl \ camera.device@1.0-impl \
camera.device@3.2-impl \ camera.device@3.2-impl \
android.hardware.camera.provider@2.4-impl \ android.hardware.camera.provider@2.4-impl \
vendor.qti.hardware.camera.device@1.0 \ vendor.qti.hardware.camera.device@1.0 \
vendor.qti.hardware.camera.device@1.0_vendor vendor.qti.hardware.camera.device@1.0_vendor
# CarrierConfig PRODUCT_COPY_FILES += \
PRODUCT_PACKAGES += \ $(LOCAL_PATH)/configs/camera/imx219_chromatix.xml:system/etc/camera/imx219_chromatix.xml \
CarrierConfig $(LOCAL_PATH)/configs/camera/mot_imx258_bear_chromatix.xml:system/etc/camera/mot_imx258_bear_chromatix.xml \
$(LOCAL_PATH)/configs/camera/mot_imx258_mono_chromatix.xml:system/etc/camera/mot_imx258_mono_chromatix.xml \
$(LOCAL_PATH)/configs/camera/mot_s5k3l8_bear_chromatix.xml:system/etc/camera/mot_s5k3l8_bear_chromatix.xml \
$(LOCAL_PATH)/configs/camera/mot_s5k3l8_mono_chromatix.xml:system/etc/camera/mot_s5k3l8_mono_chromatix.xml \
$(LOCAL_PATH)/configs/camera/msm8953_mot_sanders_camera.xml:system/etc/camera/msm8953_mot_sanders_camera.xml \
$(LOCAL_PATH)/configs/camera/s5k4h8_chromatix.xml:system/etc/camera/s5k4h8_chromatix.xml \
$(LOCAL_PATH)/configs/camera/vfwconfig.json:system/etc/camera/vfwconfig.json
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/camera/imx219_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/imx219_chromatix.xml \ $(LOCAL_PATH)/gps/etc/flp.conf:system/vendor/etc/flp.conf \
$(LOCAL_PATH)/configs/camera/mot_imx258_bear_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/mot_imx258_bear_chromatix.xml \ $(LOCAL_PATH)/gps/etc/gps.conf:system/vendor/etc/gps.conf \
$(LOCAL_PATH)/configs/camera/mot_imx258_mono_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/mot_imx258_mono_chromatix.xml \ $(LOCAL_PATH)/gps/etc/izat.conf:system/vendor/etc/izat.conf \
$(LOCAL_PATH)/configs/camera/mot_s5k3l8_bear_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/mot_s5k3l8_bear_chromatix.xml \ $(LOCAL_PATH)/gps/etc/lowi.conf:system/vendor/etc/lowi.conf \
$(LOCAL_PATH)/configs/camera/mot_s5k3l8_mono_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/mot_s5k3l8_mono_chromatix.xml \ $(LOCAL_PATH)/gps/etc/sap.conf:system/vendor/etc/sap.conf \
$(LOCAL_PATH)/configs/camera/msm8953_mot_sanders_camera.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/msm8953_mot_sanders_camera.xml \ $(LOCAL_PATH)/gps/etc/xtwifi.conf:system/vendor/etc/xtwifi.conf \
$(LOCAL_PATH)/configs/camera/s5k4h8_chromatix.xml:$(TARGET_COPY_OUT_VENDOR)/etc/camera/s5k4h8_chromatix.xml \ $(LOCAL_PATH)/gps/etc/cacert_location.pem:system/vendor/etc/cacert_location.pem
$(LOCAL_PATH)/configs/external_camera_config.xml:$(TARGET_COPY_OUT_VENDOR)/etc/external_camera_config.xml
# MotoActions
PRODUCT_PACKAGES += \
MotoActions
# Display # Display
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
@@ -146,15 +166,18 @@ PRODUCT_PACKAGES += \
libtinyxml \ libtinyxml \
libdisplayconfig \ libdisplayconfig \
libqdMetaData.system \ libqdMetaData.system \
vendor.display.config@1.0 vendor.display.config@1.0 \
vendor.display.config@1.0_vendor
PRODUCT_PACKAGES += android.hardware.media.omx PRODUCT_PACKAGES += android.hardware.media.omx
# RenderScript HAL
PRODUCT_PACKAGES += \
android.hardware.renderscript@1.0-impl
# DRM # DRM
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.drm@1.0-service \ libprotobuf-cpp-lite
android.hardware.drm@1.0-impl \
android.hardware.drm@1.0-service.widevine
# limit dex2oat threads to improve thermals # limit dex2oat threads to improve thermals
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
@@ -170,13 +193,13 @@ PRODUCT_PACKAGES += \
# Fingerprint # Fingerprint
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.biometrics.fingerprint@2.1 android.hardware.biometrics.fingerprint@2.1-service_32 \
fingerprint.msm8953
# FM # FM
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
FMRadio \ FMRadio \
libfmjni \ libfmjni
init.qti.fm.sh
# Gatekeeper HAL # Gatekeeper HAL
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
@@ -189,101 +212,91 @@ PRODUCT_PACKAGES += \
libgnsspps \ libgnsspps \
android.hardware.gnss@1.0-impl-qti \ android.hardware.gnss@1.0-impl-qti \
android.hardware.gnss@1.0-impl \ android.hardware.gnss@1.0-impl \
android.hardware.gnss@1.0-service-qti android.hardware.gnss@1.0-service-qti \
libqsap_sdk \
PRODUCT_COPY_FILES += \ libqsap_shim
$(LOCAL_PATH)/gps/etc/flp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/flp.conf \
$(LOCAL_PATH)/gps/etc/gps.conf:$(TARGET_COPY_OUT_VENDOR)/etc/gps.conf \
$(LOCAL_PATH)/gps/etc/izat.conf:$(TARGET_COPY_OUT_VENDOR)/etc/izat.conf \
$(LOCAL_PATH)/gps/etc/lowi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/lowi.conf \
$(LOCAL_PATH)/gps/etc/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \
$(LOCAL_PATH)/gps/etc/xtwifi.conf:$(TARGET_COPY_OUT_VENDOR)/etc/xtwifi.conf
# health # health
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.health@2.0-impl \ android.hardware.health@1.0-convert \
android.hardware.health@2.0-service android.hardware.health@1.0-impl \
android.hardware.health@1.0-service
# HIDL
PRODUCT_PACKAGES += \
android.hidl.base@1.0 \
android.hidl.manager@1.0 \
android.hidl.manager-V1.0-java
# IDC
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/idc/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc
# IMS
PRODUCT_PACKAGES += \
ims-ext-common
# IMS
PRODUCT_PACKAGES += \
com.android.ims.rcsmanager
# IRSC # IRSC
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config $(LOCAL_PATH)/configs/sec_config:system/vendor/etc/sec_config
# Keylayouts # Keylayouts
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/keylayout/ft5x06_ts.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/ft5x06_ts.kl \ $(LOCAL_PATH)/keylayout/ft5x06_ts.kl:system/usr/keylayout/ft5x06_ts.kl \
$(LOCAL_PATH)/keylayout/gpio-keys.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/gpio-keys.kl \ $(LOCAL_PATH)/keylayout/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl \
$(LOCAL_PATH)/keylayout/synaptics_dsx.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/synaptics_dsx.kl \ $(LOCAL_PATH)/keylayout/synaptics_dsx.kl:system/usr/keylayout/synaptics_dsx.kl \
$(LOCAL_PATH)/keylayout/synaptics_dsxv26.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/synaptics_dsxv26.kl \ $(LOCAL_PATH)/keylayout/synaptics_dsxv26.kl:system/usr/keylayout/synaptics_dsxv26.kl \
$(LOCAL_PATH)/keylayout/synaptics_rmi4_i2c.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/synaptics_rmi4_i2c.kl \ $(LOCAL_PATH)/keylayout/synaptics_rmi4_i2c.kl:system/usr/keylayout/synaptics_rmi4_i2c.kl \
$(LOCAL_PATH)/keylayout/uinput-fpc.kl:$(TARGET_COPY_OUT_VENDOR)/usr/keylayout/uinput-fpc.kl $(LOCAL_PATH)/keylayout/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl
# Keymaster HAL # Keymaster HAL
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-impl \
android.hardware.keymaster@3.0-service android.hardware.keymaster@3.0-service
# IDC
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/idc/uinput-fpc.idc:system/usr/idc/uinput-fpc.idc
# Lights # Lights
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.light@2.0-impl \ android.hardware.light@2.0-impl \
android.hardware.light@2.0-service.sanders android.hardware.light@2.0-service \
lights.msm8953
# DRM
PRODUCT_PACKAGES += \
android.hardware.drm@1.0-service \
android.hardware.drm@1.0-impl \
android.hardware.drm@1.0-service.widevine
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/qdcm_calib_data_mipi_mot_vid_djn_1080p_550.xml:system/vendor/etc/qdcm_calib_data_mipi_mot_vid_djn_1080p_550.xml \
$(LOCAL_PATH)/configs/qdcm_calib_data_mipi_mot_vid_tianma_1080p_550.xml:system/vendor/etc/qdcm_calib_data_mipi_mot_vid_tianma_1080p_550.xml
# Media # Media
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libc2dcolorconvert libc2dcolorconvert
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ $(LOCAL_PATH)/configs/media_codecs.xml:system/vendor/etc/media_codecs.xml \
$(LOCAL_PATH)/configs/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml \ $(LOCAL_PATH)/configs/media_codecs_performance.xml:system/vendor/etc/media_codecs_performance.xml \
$(LOCAL_PATH)/configs/media_profiles_vendor.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_vendor.xml \ $(LOCAL_PATH)/configs/media_profiles.xml:system/vendor/etc/media_profiles_vendor.xml \
$(LOCAL_PATH)/configs/media_profiles.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles.xml \ $(LOCAL_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml
$(LOCAL_PATH)/configs/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/vendor/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/vendor/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/vendor/etc/media_codecs_google_video.xml
# MotoActions # NFC
PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \
MotoActions frameworks/base/nfc-extras/com.android.nfc_extras.xml:system/etc/permissions/com.android.nfc_extras.xml
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
$(LOCAL_PATH)/configs/libnfc-nxp.conf:system/etc/libnfc-nxp.conf
# Netutils # Netutils
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.system.net.netd@1.0 \ android.system.net.netd@1.0 \
netutils-wrapper-1.0 \
libandroid_net \ libandroid_net \
libandroid_net_32 \ libandroid_net_32
netutils-wrapper-1.0
# NFC
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.nfc@1.1-service \
com.android.nfc_extras \
libnfc \ libnfc \
libnfc_jni \
nfc_nci.msm8953 \
NfcNci \ NfcNci \
SecureElement \ Tag \
Tag com.android.nfc_extras \
android.hardware.nfc@1.0-impl
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/libnfc-nci.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci.conf \
$(LOCAL_PATH)/configs/libnfc-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nxp.conf
# OMX # OMX
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
@@ -297,18 +310,9 @@ PRODUCT_PACKAGES += \
libOmxVidcCommon \ libOmxVidcCommon \
libstagefrighthw libstagefrighthw
# Overlay
DEVICE_PACKAGE_OVERLAYS += \
$(LOCAL_PATH)/overlay
# Power # Power
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.power@1.1-service-qti android.hardware.power@1.0-service-qti
# Powerhint configuration file
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/powerhint.xml:system/etc/powerhint.xml \
$(LOCAL_PATH)/configs/perfboostsconfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perfboostsconfig.xml
# Qualcomm # Qualcomm
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
@@ -325,34 +329,24 @@ PRODUCT_PACKAGES += \
init.mmi.boot.sh \ init.mmi.boot.sh \
init.mmi.rc \ init.mmi.rc \
init.mmi.usb.rc \ init.mmi.usb.rc \
init.safailnet.rc \ init.qcom.rc
init.qcom.rc \
init.qcom.sensors.sh \
init.sanders.rc
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/rootdir/etc/ueventd.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc $(LOCAL_PATH)/rootdir/etc/ueventd.qcom.rc:system/vendor/ueventd.rc
# RCS # Powerhint configuration file
PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \
rcs_service_aidl \ $(LOCAL_PATH)/configs/powerhint.xml:system/etc/powerhint.xml \
rcs_service_aidl.xml \ $(LOCAL_PATH)/configs/perfboostsconfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perfboostsconfig.xml
rcs_service_api \
rcs_service_api.xml
# Releasetools script # Releasetools script
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/check_features.sh:$(TARGET_COPY_OUT_VENDOR)/bin/check_features.sh $(LOCAL_PATH)/configs/check_features.sh:system/vendor/bin/check_features.sh
# RenderScript HAL
PRODUCT_PACKAGES += \
android.hardware.renderscript@1.0-impl
# RIL # RIL
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
librmnetctl \ librmnetctl \
libprotobuf-cpp-full \ libprotobuf-cpp-full \
libprotobuf-cpp-lite \
libxml2 libxml2
#RIL #RIL
@@ -361,41 +355,44 @@ PRODUCT_PACKAGES += \
# Seccomp policy # Seccomp policy
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ $(LOCAL_PATH)/seccomp_policy/mediacodec.policy:system/vendor/etc/seccomp_policy/mediacodec.policy \
$(LOCAL_PATH)/seccomp_policy/mediaextractor.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy $(LOCAL_PATH)/seccomp_policy/mediaextractor.policy:system/vendor/etc/seccomp_policy/mediaextractor.policy
# IMS
PRODUCT_PACKAGES += \
ims-ext-common \
telephony-ext
PRODUCT_BOOT_JARS += \
telephony-ext
# Sensors # Sensors
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sensors/hals.conf:system/vendor/etc/sensors/hals.conf \
$(LOCAL_PATH)/configs/sensors/sensor_def_qcomdev.conf:system/vendor/etc/sensors/sensor_def_qcomdev.conf
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.sensors@1.0-impl \ android.hardware.sensors@1.0-impl \
android.hardware.sensors@1.0-service android.hardware.sensors@1.0-service_32 \
sensorservice_32
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf \
$(LOCAL_PATH)/configs/sensors/sensor_def_qcomdev.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/sensor_def_qcomdev.conf
# Shims # Shims
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libqsap_shim libqsap_shim
# Thermal # Thermal
PRODUCT_PACKAGES += \
android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service \
thermal.msm8953
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/thermal-engine-sanders.conf:$(TARGET_COPY_OUT_VENDOR)/etc/thermal-engine.conf $(LOCAL_PATH)/configs/thermal-engine-sanders.conf:system/vendor/etc/thermal-engine.conf
# USB HAL # TextClassifier smart selection model files
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.usb@1.0-service.basic textclassifier.smartselection.bundle1
# Vibrator # Vibrator
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
android.hardware.vibrator@1.0-impl \ android.hardware.vibrator@1.0-impl \
android.hardware.vibrator@1.0-service android.hardware.vibrator@1.0-service
# VNDK
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
vndk-sp vndk-sp
@@ -404,7 +401,6 @@ PRODUCT_PACKAGES += \
android.hardware.wifi@1.0-service \ android.hardware.wifi@1.0-service \
hostapd \ hostapd \
libqsap_sdk \ libqsap_sdk \
libcld80211 \
libwpa_client \ libwpa_client \
wcnss_service \ wcnss_service \
wificond \ wificond \
@@ -412,6 +408,11 @@ PRODUCT_PACKAGES += \
wpa_supplicant \ wpa_supplicant \
wpa_supplicant.conf wpa_supplicant.conf
#Thermal
PRODUCT_PACKAGES += android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service \
thermal.msm8953
PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \
libcurl \ libcurl \
libQWiFiSoftApCfg \ libQWiFiSoftApCfg \
@@ -438,12 +439,10 @@ PRODUCT_COPY_FILES += \
PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
# Wi-Fi Display PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_BOOT_JARS += \ ro.config.vc_call_vol_steps=7 \
WfdCommon ro.config.media_vol_steps=20
# for specific PRODUCT_GMS_CLIENTID_BASE := android-motorola
$(call inherit-product, vendor/motorola/sanders/sanders-vendor.mk)
# Performance PRODUCT_VENDOR_KERNEL_HEADERS := hardware/qcom/msm8996/kernel-headers
include vendor/qcom/common/qti-vendor.mk

View File

@@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# Copyright (C) 2016 The CyanogenMod Project # Copyright (C) 2016 The CyanogenMod Project
# Copyright (C) 2017 The LineageOS Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -20,38 +21,51 @@ set -e
DEVICE=sanders DEVICE=sanders
VENDOR=motorola VENDOR=motorola
# Load extractutils and do some sanity checks # Load extract_utils and do some sanity checks
MY_DIR="${BASH_SOURCE%/*}" MY_DIR="${BASH_SOURCE%/*}"
if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
AOSP_ROOT="$MY_DIR"/../../.. LINEAGE_ROOT="$MY_DIR"/../../..
HELPER="$AOSP_ROOT"/vendor/aosp/build/tools/extract_utils.sh HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh
if [ ! -f "$HELPER" ]; then if [ ! -f "$HELPER" ]; then
echo "Unable to find helper script at $HELPER" echo "Unable to find helper script at $HELPER"
exit 1 exit 1
fi fi
. "$HELPER" . "$HELPER"
if [ $# -eq 0 ]; then # Default to sanitizing the vendor folder before extraction
SRC=adb CLEAN_VENDOR=true
else
if [ $# -eq 1 ]; then while [ "$1" != "" ]; do
case $1 in
-p | --path ) shift
SRC=$1 SRC=$1
else ;;
echo "$0: bad number of arguments" -s | --section ) shift
echo "" SECTION=$1
echo "usage: $0 [PATH_TO_EXPANDED_ROM]" CLEAN_VENDOR=false
echo "" ;;
echo "If PATH_TO_EXPANDED_ROM is not specified, blobs will be extracted from" -n | --no-cleanup ) CLEAN_VENDOR=false
echo "the device using adb pull." ;;
exit 1 esac
fi shift
done
if [ -z "$SRC" ]; then
SRC=adb
fi fi
# Initialize the helper # Initialize the helper for device
setup_vendor "$DEVICE" "$VENDOR" "$AOSP_ROOT" setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" true "$CLEAN_VENDOR"
extract "$MY_DIR"/proprietary-files.txt "$SRC" extract "$MY_DIR"/proprietary-files.txt "$SRC" "$SECTION"
if [ -s "$MY_DIR"/../$DEVICE/proprietary-files.txt ]; then
# Reinitialize the helper for device
setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT" false "$CLEAN_VENDOR"
extract "$MY_DIR"/../$DEVICE/proprietary-files.txt "$SRC" "$SECTION"
fi
"$MY_DIR"/setup-makefiles.sh "$MY_DIR"/setup-makefiles.sh

View File

@@ -1,5 +1,5 @@
# #
# Copyright (C) 2017-2018 The LineageOS Project # Copyright (C) 2017 The LineageOS Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -12,6 +12,24 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
FingerprintWrapper.cpp
LOCAL_SHARED_LIBRARIES := \
libhardware liblog
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_MODULE := fingerprint.msm8953
LOCAL_MODULE_TAGS := optional
LOCAL_32_BIT_ONLY := true
include $(BUILD_SHARED_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/aosp_sanders.mk

View File

@@ -0,0 +1,196 @@
/*
* 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.
*/
//#define LOG_NDEBUG 0
#define LOG_TAG "FingerprintWrapper"
#include <cutils/log.h>
#include <hardware/hardware.h>
#include <hardware/fingerprint.h>
#include <utils/threads.h>
typedef struct {
fingerprint_device_t base;
union {
fingerprint_device_t *device;
hw_device_t *hw_device;
} vendor;
} device_t;
static android::Mutex vendor_mutex;
static union {
const fingerprint_module_t *module;
const hw_module_t *hw_module;
} vendor;
static bool ensure_vendor_module_is_loaded(void)
{
android::Mutex::Autolock lock(vendor_mutex);
if (!vendor.module) {
int rv = hw_get_module_by_class("fingerprint", "vendor", &vendor.hw_module);
if (rv) {
ALOGE("failed to open vendor module, error %d", rv);
vendor.module = NULL;
} else {
ALOGI("loaded vendor module: %s version %x", vendor.module->common.name,
vendor.module->common.module_api_version);
}
}
return vendor.module != NULL;
}
static int set_notify(struct fingerprint_device *dev, fingerprint_notify_t notify)
{
device_t *device = (device_t *) dev;
return device->vendor.device->set_notify(device->vendor.device, notify);
}
static uint64_t pre_enroll(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
return device->vendor.device->pre_enroll(device->vendor.device);
}
static int enroll(struct fingerprint_device *dev, const hw_auth_token_t *hat, uint32_t gid,
uint32_t timeout_sec)
{
device_t *device = (device_t *) dev;
return device->vendor.device->enroll(device->vendor.device, hat, gid, timeout_sec);
}
static int post_enroll(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
return device->vendor.device->post_enroll(device->vendor.device);
}
static uint64_t get_authenticator_id(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
return device->vendor.device->get_authenticator_id(device->vendor.device);
}
static int cancel(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
return device->vendor.device->cancel(device->vendor.device);
}
static int enumerate(struct fingerprint_device *dev)
{
device_t *device = (device_t *) dev;
return device->vendor.device->enumerate(device->vendor.device);
}
static int remove(struct fingerprint_device *dev, uint32_t gid, uint32_t fid)
{
device_t *device = (device_t *) dev;
return device->vendor.device->remove(device->vendor.device, gid, fid);
}
static int set_active_group(struct fingerprint_device *dev, uint32_t gid, const char *store_path)
{
device_t *device = (device_t *) dev;
return device->vendor.device->set_active_group(device->vendor.device, gid, store_path);
}
static int authenticate(struct fingerprint_device *dev, uint64_t operation_id, uint32_t gid)
{
device_t *device = (device_t *) dev;
return device->vendor.device->authenticate(device->vendor.device, operation_id, gid);
}
static int device_close(hw_device_t *hw_device)
{
device_t *device = (device_t *) hw_device;
int rv = device->base.common.close(device->vendor.hw_device);
free(device);
return rv;
}
static int device_open(const hw_module_t *module, const char *name, hw_device_t **device_out)
{
int rv;
device_t *device;
if (!ensure_vendor_module_is_loaded()) {
return -EINVAL;
}
device = (device_t *) calloc(sizeof(*device), 1);
if (!device) {
ALOGE("%s: Failed to allocate memory", __func__);
return -ENOMEM;
}
rv = vendor.module->common.methods->open(vendor.hw_module, name, &device->vendor.hw_device);
if (rv) {
ALOGE("%s: failed to open, error %d\n", __func__, rv);
free(device);
return rv;
}
device->base.common.tag = HARDWARE_DEVICE_TAG;
device->base.common.version = FINGERPRINT_MODULE_API_VERSION_2_1;
device->base.common.module = (hw_module_t *) module;
device->base.common.close = device_close;
device->base.set_notify = set_notify;
device->base.pre_enroll = pre_enroll;
device->base.enroll = enroll;
device->base.post_enroll = post_enroll;
device->base.get_authenticator_id = get_authenticator_id;
device->base.cancel = cancel;
device->base.enumerate = enumerate;
device->base.remove = remove;
device->base.set_active_group = set_active_group;
device->base.authenticate = authenticate;
*device_out = (hw_device_t *) device;
return 0;
}
static struct hw_module_methods_t module_methods = {
.open = device_open
};
fingerprint_module_t HAL_MODULE_INFO_SYM = {
.common = {
.tag = HARDWARE_MODULE_TAG,
.module_api_version = FINGERPRINT_MODULE_API_VERSION_2_1,
.hal_api_version = HARDWARE_HAL_API_VERSION,
.id = FINGERPRINT_HARDWARE_MODULE_ID,
.name = "Lineage Fingerprint Wrapper",
.author = "The LineageOS Project",
.methods = &module_methods,
.dso = NULL, /* remove compilation warnings */
.reserved = {0}, /* remove compilation warnings */
},
};

View File

@@ -0,0 +1,22 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.biometrics.fingerprint@2.1-service_32
LOCAL_INIT_RC := android.hardware.biometrics.fingerprint@2.1-service_32.rc
LOCAL_PROPRIETARY_MODULE := true
LOCAL_32_BIT_ONLY := true
LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \
../../../../../hardware/interfaces/biometrics/fingerprint/2.1/default/BiometricsFingerprint.cpp \
../../../../../hardware/interfaces/biometrics/fingerprint/2.1/default/service.cpp
LOCAL_SHARED_LIBRARIES := \
libcutils \
liblog \
libhidlbase \
libhidltransport \
libhardware \
libutils \
android.hardware.biometrics.fingerprint@2.1
include $(BUILD_EXECUTABLE)

View File

@@ -0,0 +1,7 @@
service fps_hal /vendor/bin/hw/android.hardware.biometrics.fingerprint@2.1-service_32
# "class hal" causes a race condition on some devices due to files created
# in /data. As a workaround, postpone startup until later in boot once
# /data is mounted.
class late_start
user system
group system input

29
full_sanders.mk Normal file
View File

@@ -0,0 +1,29 @@
#
# 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.
#
# Inherit from those products. Most specific first.
$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
# Inherit from potter device
$(call inherit-product, device/motorola/sanders/device.mk)
# Device identifier. This must come after all inclusions
PRODUCT_DEVICE := sanders
PRODUCT_NAME := full_sanders
# for specific
$(call inherit-product, vendor/motorola/sanders/sanders-vendor.mk)

View File

@@ -1,6 +1,5 @@
ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),) ifneq ($(BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE),)
LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/build/target_specific_features.mk
include $(call all-makefiles-under,$(LOCAL_PATH)) include $(call all-makefiles-under,$(LOCAL_PATH))
endif endif

View File

@@ -3,7 +3,7 @@
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
SUBDIRS = gnss SUBDIRS = core location gnss
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = loc-hal.pc pkgconfig_DATA = loc-hal.pc

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -30,23 +30,12 @@ namespace gnss {
namespace V1_0 { namespace V1_0 {
namespace implementation { namespace implementation {
static AGnss* spAGnss = nullptr; sp<IAGnssCallback> AGnss::sAGnssCbIface = nullptr;
AGnss::AGnss(Gnss* gnss) : mGnss(gnss) { AGnss::AGnss(Gnss* gnss) : mGnss(gnss) {
spAGnss = this;
}
AGnss::~AGnss() {
spAGnss = nullptr;
} }
void AGnss::agnssStatusIpV4Cb(AGnssExtStatusIpV4 status){ void AGnss::agnssStatusIpV4Cb(AGnssExtStatusIpV4 status){
if (nullptr != spAGnss) {
spAGnss->statusIpV4Cb(status);
}
}
void AGnss::statusIpV4Cb(AGnssExtStatusIpV4 status) {
IAGnssCallback::AGnssStatusIpV4 st = {}; IAGnssCallback::AGnssStatusIpV4 st = {};
switch (status.type) { switch (status.type) {
@@ -83,13 +72,9 @@ void AGnss::statusIpV4Cb(AGnssExtStatusIpV4 status) {
} }
st.ipV4Addr = status.ipV4Addr; st.ipV4Addr = status.ipV4Addr;
if (mAGnssCbIface != nullptr) { auto r = sAGnssCbIface->agnssStatusIpV4Cb(st);
auto r = mAGnssCbIface->agnssStatusIpV4Cb(st);
if (!r.isOk()) { if (!r.isOk()) {
LOC_LOGw("Error invoking AGNSS status cb %s", r.description().c_str()); LOC_LOGE("Error invoking AGNSS status cb %s", r.description().c_str());
}
} else {
LOC_LOGw("setCallback has not been called yet");
} }
} }
@@ -101,7 +86,7 @@ Return<void> AGnss::setCallback(const sp<IAGnssCallback>& callback) {
} }
// Save the interface // Save the interface
mAGnssCbIface = callback; sAGnssCbIface = callback;
AgpsCbInfo cbInfo = {}; AgpsCbInfo cbInfo = {};
cbInfo.statusV4Cb = (void*)agnssStatusIpV4Cb; cbInfo.statusV4Cb = (void*)agnssStatusIpV4Cb;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -18,8 +18,8 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_AGNSS_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H
#define ANDROID_HARDWARE_GNSS_V1_0_AGNSS_H #define ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H
#include <android/hardware/gnss/1.0/IAGnss.h> #include <android/hardware/gnss/1.0/IAGnss.h>
#include <hidl/Status.h> #include <hidl/Status.h>
@@ -43,7 +43,7 @@ struct Gnss;
struct AGnss : public IAGnss { struct AGnss : public IAGnss {
AGnss(Gnss* gnss); AGnss(Gnss* gnss);
~AGnss(); ~AGnss() = default;
/* /*
* Methods from ::android::hardware::gnss::V1_0::IAGnss interface follow. * Methods from ::android::hardware::gnss::V1_0::IAGnss interface follow.
* These declarations were generated from IAGnss.hal. * These declarations were generated from IAGnss.hal.
@@ -60,14 +60,12 @@ struct AGnss : public IAGnss {
Return<bool> setServer(IAGnssCallback::AGnssType type, Return<bool> setServer(IAGnssCallback::AGnssType type,
const hidl_string& hostname, int32_t port) override; const hidl_string& hostname, int32_t port) override;
void statusIpV4Cb(AGnssExtStatusIpV4 status);
/* Data call setup callback passed down to GNSS HAL implementation */ /* Data call setup callback passed down to GNSS HAL implementation */
static void agnssStatusIpV4Cb(AGnssExtStatusIpV4 status); static void agnssStatusIpV4Cb(AGnssExtStatusIpV4 status);
private: private:
Gnss* mGnss = nullptr; Gnss* mGnss = nullptr;
sp<IAGnssCallback> mAGnssCbIface = nullptr; static sp<IAGnssCallback> sAGnssCbIface;
}; };
} // namespace implementation } // namespace implementation
@@ -76,4 +74,4 @@ struct AGnss : public IAGnss {
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_AGNSS_H #endif // ANDROID_HARDWARE_GNSS_V1_1_AGNSS_H

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -29,8 +29,6 @@
#include <string> #include <string>
#include "Gnss.h" #include "Gnss.h"
#include "AGnssRil.h" #include "AGnssRil.h"
#include <DataItemConcreteTypesBase.h>
typedef void* (getLocationInterface)(); typedef void* (getLocationInterface)();
namespace android { namespace android {
@@ -53,35 +51,7 @@ Return<bool> AGnssRil::updateNetworkState(bool connected, NetworkType type, bool
// for XTRA // for XTRA
if (nullptr != mGnss && ( nullptr != mGnss->getGnssInterface() )) { if (nullptr != mGnss && ( nullptr != mGnss->getGnssInterface() )) {
int8_t typeout = loc_core::NetworkInfoDataItemBase::TYPE_UNKNOWN; mGnss->getGnssInterface()->updateConnectionStatus(connected, (uint8_t)type);
switch(type)
{
case IAGnssRil::NetworkType::MOBILE:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_MOBILE;
break;
case IAGnssRil::NetworkType::WIFI:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_WIFI;
break;
case IAGnssRil::NetworkType::MMS:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_MMS;
break;
case IAGnssRil::NetworkType::SUPL:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_SUPL;
break;
case IAGnssRil::NetworkType::DUN:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_DUN;
break;
case IAGnssRil::NetworkType::HIPRI:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_HIPRI;
break;
case IAGnssRil::NetworkType::WIMAX:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_WIMAX;
break;
default:
typeout = loc_core::NetworkInfoDataItemBase::TYPE_UNKNOWN;
break;
}
mGnss->getGnssInterface()->updateConnectionStatus(connected, typeout);
} }
return true; return true;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*

View File

@@ -2,7 +2,8 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.gnss@1.0-impl-qti LOCAL_MODULE := android.hardware.gnss@1.0-impl-qti
LOCAL_VENDOR_MODULE := true LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib
LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64
LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
AGnss.cpp \ AGnss.cpp \
@@ -35,7 +36,6 @@ LOCAL_SHARED_LIBRARIES := \
libhidlbase \ libhidlbase \
libhidltransport \ libhidltransport \
libhwbinder \ libhwbinder \
libcutils \
libutils \ libutils \
android.hardware.gnss@1.0 \ android.hardware.gnss@1.0 \
@@ -43,6 +43,7 @@ LOCAL_SHARED_LIBRARIES += \
libloc_core \ libloc_core \
libgps.utils \ libgps.utils \
libdl \ libdl \
libloc_pla \
liblocation_api \ liblocation_api \
LOCAL_CFLAGS += $(GNSS_CFLAGS) LOCAL_CFLAGS += $(GNSS_CFLAGS)
@@ -51,15 +52,19 @@ include $(BUILD_SHARED_LIBRARY)
BUILD_GNSS_HIDL_SERVICE := true BUILD_GNSS_HIDL_SERVICE := true
ifneq ($(BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET), true) ifneq ($(BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET), true)
ifneq ($(LW_FEATURE_SET),true) ifneq ($(LW_FEATURE_SET),true)
ifneq ($(TARGET_HAS_LOW_RAM),true)
BUILD_GNSS_HIDL_SERVICE := false BUILD_GNSS_HIDL_SERVICE := false
endif # TARGET_HAS_LOW_RAM
endif # LW_FEATURE_SET endif # LW_FEATURE_SET
endif # BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET endif # BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET
ifeq ($(BUILD_GNSS_HIDL_SERVICE), true) ifeq ($(BUILD_GNSS_HIDL_SERVICE), true)
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE := android.hardware.gnss@1.0-service-qti LOCAL_MODULE := android.hardware.gnss@1.0-service-qti
LOCAL_VENDOR_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_MODULE_RELATIVE_PATH := hw
LOCAL_VENDOR_MODULE := true
LOCAL_MODULE_OWNER := qti
LOCAL_INIT_RC := android.hardware.gnss@1.0-service-qti.rc LOCAL_INIT_RC := android.hardware.gnss@1.0-service-qti.rc
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
service.cpp \ service.cpp \

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -20,13 +20,9 @@
#define LOG_TAG "LocSvc_GnssInterface" #define LOG_TAG "LocSvc_GnssInterface"
#include <fstream>
#include <log_util.h> #include <log_util.h>
#include <dlfcn.h> #include <dlfcn.h>
#include <cutils/properties.h>
#include "Gnss.h" #include "Gnss.h"
#include <LocationUtil.h>
typedef void* (getLocationInterface)(); typedef void* (getLocationInterface)();
namespace android { namespace android {
@@ -111,7 +107,7 @@ GnssInterface* Gnss::getGnssInterface() {
return mGnssInterface; return mGnssInterface;
} }
Return<bool> Gnss::setCallback(const sp<V1_0::IGnssCallback>& callback) { Return<bool> Gnss::setCallback(const sp<IGnssCallback>& callback) {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
if (mGnssCbIface != nullptr) { if (mGnssCbIface != nullptr) {
mGnssCbIface->unlinkToDeath(mGnssDeathRecipient); mGnssCbIface->unlinkToDeath(mGnssDeathRecipient);
@@ -255,7 +251,7 @@ Return<bool> Gnss::injectTime(int64_t timeMs, int64_t timeReferenceMs,
} }
} }
Return<void> Gnss::deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) { Return<void> Gnss::deleteAidingData(IGnss::GnssAidingData aidingDataFlags) {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
GnssAPIClient* api = getApi(); GnssAPIClient* api = getApi();
if (api) { if (api) {
@@ -264,8 +260,8 @@ Return<void> Gnss::deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags)
return Void(); return Void();
} }
Return<bool> Gnss::setPositionMode(V1_0::IGnss::GnssPositionMode mode, Return<bool> Gnss::setPositionMode(IGnss::GnssPositionMode mode,
V1_0::IGnss::GnssPositionRecurrence recurrence, IGnss::GnssPositionRecurrence recurrence,
uint32_t minIntervalMs, uint32_t minIntervalMs,
uint32_t preferredAccuracyMeters, uint32_t preferredAccuracyMeters,
uint32_t preferredTimeMs) { uint32_t preferredTimeMs) {
@@ -279,49 +275,48 @@ Return<bool> Gnss::setPositionMode(V1_0::IGnss::GnssPositionMode mode,
return retVal; return retVal;
} }
Return<sp<V1_0::IAGnss>> Gnss::getExtensionAGnss() { Return<sp<IAGnss>> Gnss::getExtensionAGnss() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
mAGnssIface = new AGnss(this); mAGnssIface = new AGnss(this);
return mAGnssIface; return mAGnssIface;
} }
Return<sp<V1_0::IGnssNi>> Gnss::getExtensionGnssNi() { Return<sp<IGnssNi>> Gnss::getExtensionGnssNi() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
mGnssNi = new GnssNi(this); mGnssNi = new GnssNi(this);
return mGnssNi; return mGnssNi;
} }
Return<sp<V1_0::IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() { Return<sp<IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
if (mGnssMeasurement == nullptr)
mGnssMeasurement = new GnssMeasurement(); mGnssMeasurement = new GnssMeasurement();
return mGnssMeasurement; return mGnssMeasurement;
} }
Return<sp<V1_0::IGnssConfiguration>> Gnss::getExtensionGnssConfiguration() { Return<sp<IGnssConfiguration>> Gnss::getExtensionGnssConfiguration() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
mGnssConfig = new GnssConfiguration(this); mGnssConfig = new GnssConfiguration(this);
return mGnssConfig; return mGnssConfig;
} }
Return<sp<V1_0::IGnssGeofencing>> Gnss::getExtensionGnssGeofencing() { Return<sp<IGnssGeofencing>> Gnss::getExtensionGnssGeofencing() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
mGnssGeofencingIface = new GnssGeofencing(); mGnssGeofencingIface = new GnssGeofencing();
return mGnssGeofencingIface; return mGnssGeofencingIface;
} }
Return<sp<V1_0::IGnssBatching>> Gnss::getExtensionGnssBatching() { Return<sp<IGnssBatching>> Gnss::getExtensionGnssBatching() {
mGnssBatching = new GnssBatching(); mGnssBatching = new GnssBatching();
return mGnssBatching; return mGnssBatching;
} }
Return<sp<V1_0::IGnssDebug>> Gnss::getExtensionGnssDebug() { Return<sp<IGnssDebug>> Gnss::getExtensionGnssDebug() {
ENTRY_LOG_CALLFLOW(); ENTRY_LOG_CALLFLOW();
mGnssDebug = new GnssDebug(this); mGnssDebug = new GnssDebug(this);
return mGnssDebug; return mGnssDebug;
} }
Return<sp<V1_0::IAGnssRil>> Gnss::getExtensionAGnssRil() { Return<sp<IAGnssRil>> Gnss::getExtensionAGnssRil() {
mGnssRil = new AGnssRil(this); mGnssRil = new AGnssRil(this);
return mGnssRil; return mGnssRil;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018-2018-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -18,8 +18,8 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSS_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSS_H
#define ANDROID_HARDWARE_GNSS_V1_0_GNSS_H #define ANDROID_HARDWARE_GNSS_V1_1_GNSS_H
#include <AGnss.h> #include <AGnss.h>
#include <AGnssRil.h> #include <AGnssRil.h>
@@ -31,7 +31,6 @@
#include <GnssDebug.h> #include <GnssDebug.h>
#include <android/hardware/gnss/1.0/IGnss.h> #include <android/hardware/gnss/1.0/IGnss.h>
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h> #include <hidl/Status.h>
#include <GnssAPIClient.h> #include <GnssAPIClient.h>
@@ -43,24 +42,34 @@ namespace gnss {
namespace V1_0 { namespace V1_0 {
namespace implementation { namespace implementation {
using ::android::hardware::hidl_array;
using ::android::hardware::hidl_memory;
using ::android::hardware::hidl_string;
using ::android::hardware::hidl_vec;
using ::android::hardware::Return; using ::android::hardware::Return;
using ::android::hardware::Void; using ::android::hardware::Void;
using ::android::hardware::hidl_vec;
using ::android::hardware::hidl_string;
using ::android::sp; using ::android::sp;
using ::android::hardware::gnss::V1_0::GnssLocation;
struct Gnss : public IGnss { struct Gnss : public IGnss {
Gnss(); Gnss();
~Gnss(); ~Gnss();
// registerAsService will call interfaceChain to determine the version of service
/* comment this out until we know really how to manipulate hidl version
using interfaceChain_cb = std::function<
void(const ::android::hardware::hidl_vec<::android::hardware::hidl_string>& descriptors)>;
virtual ::android::hardware::Return<void> interfaceChain(interfaceChain_cb _hidl_cb) override {
_hidl_cb({
"android.hardware.gnss@1.1::IGnss",
::android::hidl::base::V1_0::IBase::descriptor,
});
return ::android::hardware::Void();
}
*/
/* /*
* Methods from ::android::hardware::gnss::V1_0::IGnss follow. * Methods from ::android::hardware::gnss::V1_0::IGnss follow.
* These declarations were generated from Gnss.hal. * These declarations were generated from Gnss.hal.
*/ */
Return<bool> setCallback(const sp<V1_0::IGnssCallback>& callback) override; Return<bool> setCallback(const sp<IGnssCallback>& callback) override;
Return<bool> start() override; Return<bool> start() override;
Return<bool> stop() override; Return<bool> stop() override;
Return<void> cleanup() override; Return<void> cleanup() override;
@@ -70,30 +79,30 @@ struct Gnss : public IGnss {
Return<bool> injectTime(int64_t timeMs, Return<bool> injectTime(int64_t timeMs,
int64_t timeReferenceMs, int64_t timeReferenceMs,
int32_t uncertaintyMs) override; int32_t uncertaintyMs) override;
Return<void> deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) override; Return<void> deleteAidingData(IGnss::GnssAidingData aidingDataFlags) override;
Return<bool> setPositionMode(V1_0::IGnss::GnssPositionMode mode, Return<bool> setPositionMode(IGnss::GnssPositionMode mode,
V1_0::IGnss::GnssPositionRecurrence recurrence, IGnss::GnssPositionRecurrence recurrence,
uint32_t minIntervalMs, uint32_t minIntervalMs,
uint32_t preferredAccuracyMeters, uint32_t preferredAccuracyMeters,
uint32_t preferredTimeMs) override; uint32_t preferredTimeMs) override;
Return<sp<V1_0::IAGnss>> getExtensionAGnss() override; Return<sp<IAGnss>> getExtensionAGnss() override;
Return<sp<V1_0::IGnssNi>> getExtensionGnssNi() override; Return<sp<IGnssNi>> getExtensionGnssNi() override;
Return<sp<V1_0::IGnssMeasurement>> getExtensionGnssMeasurement() override; Return<sp<IGnssMeasurement>> getExtensionGnssMeasurement() override;
Return<sp<V1_0::IGnssConfiguration>> getExtensionGnssConfiguration() override; Return<sp<IGnssConfiguration>> getExtensionGnssConfiguration() override;
Return<sp<V1_0::IGnssGeofencing>> getExtensionGnssGeofencing() override; Return<sp<IGnssGeofencing>> getExtensionGnssGeofencing() override;
Return<sp<V1_0::IGnssBatching>> getExtensionGnssBatching() override; Return<sp<IGnssBatching>> getExtensionGnssBatching() override;
Return<sp<V1_0::IAGnssRil>> getExtensionAGnssRil() override; Return<sp<IAGnssRil>> getExtensionAGnssRil() override;
inline Return<sp<V1_0::IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override { inline Return<sp<IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override {
return nullptr; return nullptr;
} }
inline Return<sp<V1_0::IGnssXtra>> getExtensionXtra() override { inline Return<sp<IGnssXtra>> getExtensionXtra() override {
return nullptr; return nullptr;
} }
Return<sp<V1_0::IGnssDebug>> getExtensionGnssDebug() override; Return<sp<IGnssDebug>> getExtensionGnssDebug() override;
// These methods are not part of the IGnss base class. // These methods are not part of the IGnss base class.
GnssAPIClient* getApi(); GnssAPIClient* getApi();
@@ -101,9 +110,6 @@ struct Gnss : public IGnss {
Return<bool> updateConfiguration(GnssConfig& gnssConfig); Return<bool> updateConfiguration(GnssConfig& gnssConfig);
GnssInterface* getGnssInterface(); GnssInterface* getGnssInterface();
// Callback for ODCPI request
void odcpiRequestCb(const OdcpiRequestInfo& request);
private: private:
struct GnssDeathRecipient : hidl_death_recipient { struct GnssDeathRecipient : hidl_death_recipient {
GnssDeathRecipient(sp<Gnss> gnss) : mGnss(gnss) { GnssDeathRecipient(sp<Gnss> gnss) : mGnss(gnss) {
@@ -126,8 +132,8 @@ struct Gnss : public IGnss {
sp<AGnssRil> mGnssRil = nullptr; sp<AGnssRil> mGnssRil = nullptr;
GnssAPIClient* mApi = nullptr; GnssAPIClient* mApi = nullptr;
sp<V1_0::IGnssCallback> mGnssCbIface = nullptr; sp<IGnssCallback> mGnssCbIface = nullptr;
sp<V1_0::IGnssNiCallback> mGnssNiCbIface = nullptr; sp<IGnssNiCallback> mGnssNiCbIface = nullptr;
GnssConfig mPendingConfig; GnssConfig mPendingConfig;
GnssInterface* mGnssInterface = nullptr; GnssInterface* mGnssInterface = nullptr;
}; };
@@ -140,4 +146,4 @@ extern "C" IGnss* HIDL_FETCH_IGnss(const char* name);
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_GNSS_H #endif // ANDROID_HARDWARE_GNSS_V1_1_GNSS_H

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -18,8 +18,8 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H
#define ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H #define ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H
#include <android/hardware/gnss/1.0/IGnssBatching.h> #include <android/hardware/gnss/1.0/IGnssBatching.h>
#include <hidl/Status.h> #include <hidl/Status.h>
@@ -77,4 +77,4 @@ struct GnssBatching : public IGnssBatching {
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_GNSSBATCHING_H #endif // ANDROID_HARDWARE_GNSS_V1_1_GNSSBATCHING_H

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
@@ -19,8 +19,8 @@
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSSCONFIGURATION_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H
#define ANDROID_HARDWARE_GNSS_V1_0_GNSSCONFIGURATION_H #define ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H
#include <android/hardware/gnss/1.0/IGnssConfiguration.h> #include <android/hardware/gnss/1.0/IGnssConfiguration.h>
#include <hidl/Status.h> #include <hidl/Status.h>
@@ -68,4 +68,4 @@ struct GnssConfiguration : public IGnssConfiguration {
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_GNSSCONFIGURATION_H #endif // ANDROID_HARDWARE_GNSS_V1_1_GNSSCONFIGURATION_H

View File

@@ -30,14 +30,8 @@ namespace implementation {
using ::android::hardware::hidl_vec; using ::android::hardware::hidl_vec;
#define GNSS_DEBUG_UNKNOWN_HORIZONTAL_ACCURACY_METERS (20000000) #define GNSS_DEBUG_UNKNOWN_UTC_TIME (1483228800000ULL) // 1/1/2017 00:00 GMT
#define GNSS_DEBUG_UNKNOWN_VERTICAL_ACCURACY_METERS (20000)
#define GNSS_DEBUG_UNKNOWN_SPEED_ACCURACY_PER_SEC (500)
#define GNSS_DEBUG_UNKNOWN_BEARING_ACCURACY_DEG (180)
#define GNSS_DEBUG_UNKNOWN_UTC_TIME (1483228800000LL) // 1/1/2017 00:00 GMT
#define GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC (1.57783680E17) // 5 years in ns #define GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC (1.57783680E17) // 5 years in ns
#define GNSS_DEBUG_UNKNOWN_FREQ_UNC_NS_PER_SEC (2.0e5) // ppm
GnssDebug::GnssDebug(Gnss* gnss) : mGnss(gnss) GnssDebug::GnssDebug(Gnss* gnss) : mGnss(gnss)
{ {
@@ -97,40 +91,6 @@ Return<void> GnssDebug::getDebugData(getDebugData_cb _hidl_cb)
data.position.valid = false; data.position.valid = false;
} }
if (data.position.horizontalAccuracyMeters <= 0 ||
data.position.horizontalAccuracyMeters > GNSS_DEBUG_UNKNOWN_HORIZONTAL_ACCURACY_METERS) {
data.position.horizontalAccuracyMeters = GNSS_DEBUG_UNKNOWN_HORIZONTAL_ACCURACY_METERS;
}
if (data.position.verticalAccuracyMeters <= 0 ||
data.position.verticalAccuracyMeters > GNSS_DEBUG_UNKNOWN_VERTICAL_ACCURACY_METERS) {
data.position.verticalAccuracyMeters = GNSS_DEBUG_UNKNOWN_VERTICAL_ACCURACY_METERS;
}
if (data.position.speedAccuracyMetersPerSecond <= 0 ||
data.position.speedAccuracyMetersPerSecond > GNSS_DEBUG_UNKNOWN_SPEED_ACCURACY_PER_SEC) {
data.position.speedAccuracyMetersPerSecond = GNSS_DEBUG_UNKNOWN_SPEED_ACCURACY_PER_SEC;
}
if (data.position.bearingAccuracyDegrees <= 0 ||
data.position.bearingAccuracyDegrees > GNSS_DEBUG_UNKNOWN_BEARING_ACCURACY_DEG) {
data.position.bearingAccuracyDegrees = GNSS_DEBUG_UNKNOWN_BEARING_ACCURACY_DEG;
}
if (data.position.horizontalAccuracyMeters <= 0 ||
data.position.horizontalAccuracyMeters > GNSS_DEBUG_UNKNOWN_HORIZONTAL_ACCURACY_METERS) {
data.position.horizontalAccuracyMeters = GNSS_DEBUG_UNKNOWN_HORIZONTAL_ACCURACY_METERS;
}
if (data.position.verticalAccuracyMeters <= 0 ||
data.position.verticalAccuracyMeters > GNSS_DEBUG_UNKNOWN_VERTICAL_ACCURACY_METERS) {
data.position.verticalAccuracyMeters = GNSS_DEBUG_UNKNOWN_VERTICAL_ACCURACY_METERS;
}
if (data.position.speedAccuracyMetersPerSecond <= 0 ||
data.position.speedAccuracyMetersPerSecond > GNSS_DEBUG_UNKNOWN_SPEED_ACCURACY_PER_SEC) {
data.position.speedAccuracyMetersPerSecond = GNSS_DEBUG_UNKNOWN_SPEED_ACCURACY_PER_SEC;
}
if (data.position.bearingAccuracyDegrees <= 0 ||
data.position.bearingAccuracyDegrees > GNSS_DEBUG_UNKNOWN_BEARING_ACCURACY_DEG) {
data.position.bearingAccuracyDegrees = GNSS_DEBUG_UNKNOWN_BEARING_ACCURACY_DEG;
}
// time block // time block
if (reports.mTime.mValid) { if (reports.mTime.mValid) {
data.time.timeEstimate = reports.mTime.timeEstimate; data.time.timeEstimate = reports.mTime.timeEstimate;
@@ -138,17 +98,10 @@ Return<void> GnssDebug::getDebugData(getDebugData_cb _hidl_cb)
data.time.frequencyUncertaintyNsPerSec = data.time.frequencyUncertaintyNsPerSec =
reports.mTime.frequencyUncertaintyNsPerSec; reports.mTime.frequencyUncertaintyNsPerSec;
} }
else {
if (data.time.timeEstimate < GNSS_DEBUG_UNKNOWN_UTC_TIME) {
data.time.timeEstimate = GNSS_DEBUG_UNKNOWN_UTC_TIME; data.time.timeEstimate = GNSS_DEBUG_UNKNOWN_UTC_TIME;
} data.time.timeUncertaintyNs = (float)(GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC);
if (data.time.timeUncertaintyNs <= 0 || data.time.frequencyUncertaintyNsPerSec = 0;
data.time.timeUncertaintyNs > (float)GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC) {
data.time.timeUncertaintyNs = (float)GNSS_DEBUG_UNKNOWN_UTC_TIME_UNC;
}
if (data.time.frequencyUncertaintyNsPerSec <= 0 ||
data.time.frequencyUncertaintyNsPerSec > (float)GNSS_DEBUG_UNKNOWN_FREQ_UNC_NS_PER_SEC) {
data.time.frequencyUncertaintyNsPerSec = (float)GNSS_DEBUG_UNKNOWN_FREQ_UNC_NS_PER_SEC;
} }
// satellite data block // satellite data block

View File

@@ -14,8 +14,8 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSSDEBUG_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H
#define ANDROID_HARDWARE_GNSS_V1_0_GNSSDEBUG_H #define ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H
#include <android/hardware/gnss/1.0/IGnssDebug.h> #include <android/hardware/gnss/1.0/IGnssDebug.h>
@@ -56,4 +56,4 @@ private:
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_GNSSDEBUG_H #endif // ANDROID_HARDWARE_GNSS_V1_1_GNSSDEBUG_H

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -18,8 +18,8 @@
* limitations under the License. * limitations under the License.
*/ */
#ifndef ANDROID_HARDWARE_GNSS_V1_0_GNSSGEOFENCING_H #ifndef ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H
#define ANDROID_HARDWARE_GNSS_V1_0_GNSSGEOFENCING_H #define ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H
#include <android/hardware/gnss/1.0/IGnssGeofencing.h> #include <android/hardware/gnss/1.0/IGnssGeofencing.h>
#include <hidl/Status.h> #include <hidl/Status.h>
@@ -88,4 +88,4 @@ struct GnssGeofencing : public IGnssGeofencing {
} // namespace hardware } // namespace hardware
} // namespace android } // namespace android
#endif // ANDROID_HARDWARE_GNSS_V1_0_GNSSGEOFENCING_H #endif // ANDROID_HARDWARE_GNSS_V1_1_GNSSGEOFENCING_H

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2017, The Linux Foundation. All rights reserved.
* Not a Contribution * Not a Contribution
*/ */
/* /*
@@ -52,9 +52,8 @@ GnssMeasurement::~GnssMeasurement() {
} }
// Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow. // Methods from ::android::hardware::gnss::V1_0::IGnssMeasurement follow.
Return<IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback( Return<IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback(
const sp<V1_0::IGnssMeasurementCallback>& callback) { const sp<IGnssMeasurementCallback>& callback) {
Return<IGnssMeasurement::GnssMeasurementStatus> ret = Return<IGnssMeasurement::GnssMeasurementStatus> ret =
IGnssMeasurement::GnssMeasurementStatus::ERROR_GENERIC; IGnssMeasurement::GnssMeasurementStatus::ERROR_GENERIC;
@@ -73,10 +72,9 @@ Return<IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback(
} }
mGnssMeasurementCbIface = callback; mGnssMeasurementCbIface = callback;
mGnssMeasurementCbIface->linkToDeath(mGnssMeasurementDeathRecipient, 0); mGnssMeasurementCbIface->linkToDeath(mGnssMeasurementDeathRecipient, 0 /*cookie*/);
return mApi->measurementSetCallback(callback); return mApi->measurementSetCallback(callback);
} }
Return<void> GnssMeasurement::close() { Return<void> GnssMeasurement::close() {

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