The first time injection is ignored from
an adapter that doesn't support CPI Extended
Capabilities to prevent time from being
injected twice on startup.
CRs-fixed: 720540
Change-Id: If786cf2c750906093f21272aae928e4d9fc4dea8
Since libmdmdetect and peripheral manager
are not available on all targets, added
compilation flags to use these APIs only on
supported targets
Change-Id: I404e3273718dc7f9e6475f5a1d2c2f0b010cb33f
*Added logic to remove xtra1.gpsonextra.net from URLs
received from modem.
*Added logic to override modem URLs with those configured
in gps.conf
*Replaced all instances of xtra{1,2,3}.gpsonextra.net domain URLs
in gps.conf with xtrapath{1,2,3}.izatcloud.net URLs.
*Replaced all commented instances of xtra.bin in gps.conf with xtra2.bin.
CRs-fixed: 643816
Change-Id: I803b26bce22f06910dcaa1ee057902b9381667bf
Peripheral manager APIs are now used to vote
for modem to be powered up when location is enabled
and powered down when location is disabled.
If peripheral manager is not supported, the powerup
node will be opened and closed to vote
CRs-fixed: 655587
Change-Id: I2b865ce1d88bf1a65e3c9b875f24d669579bc61e
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAlP0pJ4ACgkQoUgPZYCpAfEsUwCdGjNzYIPjaZVFcZdeL246BVXQ
PZ8AnibMuxZm7CO5PzCHKg3tJQdA0msp
=x/5c
-----END PGP SIGNATURE-----
Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.110' into HEAD
AU_LINUX_ANDROID_KK.04.04.04.010.110 based on quic/aosp/kk
Change-Id: Ibdbb06bff5d0c6bd1aec3f6243ae864b70818277
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAlPoLFcACgkQoUgPZYCpAfHA3gCgxHO4Ygg/L4/AivXneonD8kls
t80AoOVB7Ts81w7Qea3Ui7jhoq/jbRui
=UdP7
-----END PGP SIGNATURE-----
Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.094' into HEAD
AU_LINUX_ANDROID_KK.04.04.04.010.094 based on quic/aosp/kk
Change-Id: I0b9428f15516e1f6b6cd625caa2e4af86b9c1c5e
eLOC_CLIENT_FAILURE_INTERNAL returned from loc_api_v02 was mapped
to LOC_API_ADAPTER_ERR_FAILUR, however in loc_eng_start_handle it
is LOC_API_ADAPTER_ERR_GENERAL_FAILURE that is being checked for.
Created a new error ID LOC_API_ADAPTER_ERR_INTERNAL specifically
for this error case.
Change-Id: Ib2ad6e983d6c598ec57f1a2584166da2be95946b
CRs-Fixed: 706520
There is a race condition where when startFix is
called right at the time when modem or griffon
subsystem is down, GPS HAL doesn't get the correct
error code, and therefore the right handling.
Mapped ENGINE_DOWN to ENGINE_OFFLINE, as they are
the same; and modified loc_eng_start_handler to
update the state upon the right error code.
There is a one problem though. General failure is
also handled as SSR. This is because of an unhandled
race condition in the kernel, so the error code
returned and propagated is not deterministic enough
for us to tell if this is SSR. Until that fix is in
place, we might have to treat general failure as SSR
although the side effect should be none. Only
semantically incorrect.
Change-Id: If93823f08428275da171bb22d73a06e38365585b
CR-Fixed: 692085
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAlPXonYACgkQoUgPZYCpAfEVqgCg0nHy46bwOfBa0LPbxt0PTV4r
MGsAnAlTanVV1UfX/HzMGmdNyA0D0VZ4
=Wxhx
-----END PGP SIGNATURE-----
Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.073' into HEAD
AU_LINUX_ANDROID_KK.04.04.04.010.073 based on quic/aosp/kk
Change-Id: I5ae2317a9d43cde94c587cb292212f1435472607
A new QMI LOC msg is introduced which injects into
the modem a value that determines whether or not
the version of XTRA is to be checked
Change-Id: I0ef579332d064713ce73d80e66dc8c6fef1c1638
CRs-fixed: 649860
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAlO8DZQACgkQoUgPZYCpAfE0FwCeKxGsLPtFF/FWR+coAoCqL/cl
bpcAoKwddkDxgpMYfbQbTuGJOakiXjuj
=4Acq
-----END PGP SIGNATURE-----
Merge tag 'AU_LINUX_ANDROID_KK.04.04.04.010.031' into HEAD
AU_LINUX_ANDROID_KK.04.04.04.010.031 based on quic/aosp/kk
Change-Id: I59b376b2feccb9daa02374529095be179247dbaa
Remove dependence on android_runtime and
return invalid value if gps daemon is not
responding
CRs-fixed: 649065
Change-Id: I16dbf1bffe6193114c1da08730f0627377179a2a
New qmi loc api v02 adds a raw uncertainty to the
inject position api, which will be used by the
geofence engine.
Change-Id: I307619006c799c31121941ac5c11bf62f4691c86
CRs-fixed: 682963
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iEYEABECAAYFAlOoKSoACgkQoUgPZYCpAfH/0gCgrdvhLCxiMA17ewmFLtDKdCvc
Wl0AmwZmm+tU/pJ1+wKBmJaFRd38+99K
=J3/5
-----END PGP SIGNATURE-----
Merge tag 'AU_LINUX_ANDROID_KK.04.04.02.010.465' into HEAD
AU_LINUX_ANDROID_KK.04.04.02.010.465 based on quic/aosp/kk
Change-Id: I0690d66e8010c49ad5af34e8b104280530381c1c
dlsym on gps_geofence_get_interface should check NULL,
and gmtime return should also check NULL
Change-Id: I23ab17f016ad9f4667ac197c12f016433c48af90
CRs-Fixed: 674884
Network Initiated notify verify request that is
the emergency type should override any pending
Network Initiaed notify verify session.
CRs-fixed: 563670
Change-Id: I2d05449a8ebaa1dfa08f4c839422a7adbd1b871d
CPI should not be dependent on persist.gps.qc_nlp_in_use
property. It should only be dependent on whether CPI is enabled
or not.
Reduce confidence in position if required.
CRs-Fixed: 639153
Change-Id: I9e54ab1ac605143843a2e19607ff8e2e20704d01
Use mdmdetect library to detect
presence of an mdm and open/close the
device node if present
CRs-fixed: 605216
Change-Id: I81d5b35ff8259e775dc6cb9d5c531fe06ae77ba0
This change is for the new added emergency
SUPL session. Adding a new field in gps.conf
named SUPL_ES, which is for emergency supl NI.
CRs-fixed: 600375
Change-Id: I7c21c5589259df4f1cb7ec2f850e708b2c4faa1a
To avoid the race condition between
when the fix criteria is set and checked,
the position mode is copied to the dummy
ULP proxy and it is used to inform ULP
when a true proxy is registered
Change-Id: I72285c7926814ec85dae64e6634f0c79ea5e6c51
CRs-fixed: 604905
To avoid the race condition between
when the fix criteria is set and checked,
the position mode is copied to the dummy
ULP proxy and it is used to inform ULP
when a true proxy is registered
Change-Id: I72285c7926814ec85dae64e6634f0c79ea5e6c51
CRs-fixed: 604905
Different location daemons each has its own locations for data,
pipe, or sockets files. Centralize them all under the same dir,
namely /data/misc/location
CRs-Fixed: 595946
Change-Id: I532e2b0b4bcd100bab600724a12a1e6ba9ebf119
This change is for the new added emergency
SUPL session. Adding a new field in gps.conf
named SUPL_ES, which is for emergency supl NI.
CRs-fixed: 600375
Change-Id: I7c21c5589259df4f1cb7ec2f850e708b2c4faa1a
Since libandroid_runtime is not used anymore, it
can be removed from the makefile, which will save
space in the binary.
Change-Id: Iadb3f0378e41af658d7b0256721508c5e7de4daf
CRs-fixed: 590483
Changes for enabling Zero Power positioning feature in the
location services subsystem.It involves modifications to
HAL and ULP engine.
CRs-Fixed: 457060
Change-Id: I62187e66d44c5b40e1b2a41cafc0cb3e7c94f6d8
Added NULL check before calling nmea call back
function to prevent segmentation fault in case
no nmea call back is registered.
Change-Id: If2371f4522e12312630043c3953405f583829068
CRs-fixed: 578444
Fixes a potential crash in jni layer caused by
invalid characters in the string.
CRs-fixed: 555829
Change-Id: I03ae100c4b7e65c95bac5841fcf00b27e2940741
Provide function for qca1530 detection. Rename 'get_target' to
'loc_get_target'. Fix loc_get_target state detection to avoid double
detection. Fix few minor code defects.
Change-Id: I3daaff99598771742572aab407475474fad41e93
send ULP the position mode if it is valid when ULP handle
is first received. This helps handling a race condition
where ULP handshake happens when a GPS session is about
to happen or already happening.
Change-Id: I029e5c3bbb9d8e89b220ca44e9704b5a1d1451ff
CRs-Fixed: 554340
The offset calculation on the 2nd and 3rd server urls
were wrong. The are off by 1 and 2 bytes respectively.
Change-Id: Iab9da5dbd2b0c779e18a6fe4615ad7e705800654
In order to preserve the ordering of
position reports and status reports from
the GPS engine, status reports are sent
through the ULP too
CRS-Fixed: 538143
Change-Id: I41be2121493c6a0b35a5726fd546eb0fa5e9b20c
Always register for ATL events reguardless of hw target
or MSA/MSB capabilities. For APQ target, do not handle
certain types of ATL events that it doen't support.
For APQ target, use only position mode of Standalone.
CRs-fixed: 533932
Change-Id: Icd626e3e7155d5c2ba871a343430e441924ce93c
Changes to ensure that positions reported with TECH_MASK_HYBRID
are also updated to the location clients.
CRs-Fixed: 537773
Change-Id: I09c7d440369d8fc37abd069fbefc2c7e23414ab1
To avoid multiple xtra data auto-downloading, the change
delete the 3 xtra URL in gps.conf used by
GpsLocationProvider. Meanwhile, GPS HAL become to
allow GLP send Xtra data to modem.
CRs: 537744
Change-Id: I27f3122f4ecd1d4da4323e9c59bd0358f3d635f2
Fixed conditional check from
MSA|MSA to MSA|MSB. Bug was
introduced in commit 782431a
CRs-Fixed: 533849
Change-Id: I7931563e08c5c875b49cc9ada2969a34373a2890
Changes to launch the BIT service request handler thread only if
AggpsExt is present. Small formatting fixes for pritining the IP
address.
Change-Id: Iaf3b9bd6d967ba35b04b591750784c5f221ee539
Before injecting time, check the gps ON_DEMAND_TIME
capability. if it is disabled, it will not sent time
inject command.
Change-Id: Ie51cf1f65e086bdb49d6159051c3d66700b25d78
In order to avoid a synchronous call
from Location Manager to the data layer,
the call to initialize the data client is
sent as a msg to the MsgTask so that it
gets handled in a separate thread
CRs-fixed: 535079
Change-Id: I3d7a72c32eb629572178c90dc4f55c3d74443332
Generate GPGSV and GLGSV sentence separately
rather than combination according to satelite
prn number.
CRs-Fixed: 491156
Change-Id: Ie2bc60ae680a75cbe95702a7f842c1546a3a2f21
Changes to ensure that we dont free UlpProxy object
by mistake when loc_init is invoked twice.
CRs-Fixed: 532599
Change-Id: I0989368b67614181b3d834e61690211497663352
Resolved issue where XTRA data was being requested instead
of time during On-Demand time injection.
CRs-Fixed: 530415
Change-Id: Ibf057073dc4eddc011f5df5c13d60eb552eec8c9
This may be a temporary fix to filter the reqeust here,
because this point the xtra data is already downloaded.
Next we should look at how to save the download itself.
Change-Id: I0efba22df3d8d330c03a157a07c7ee490a22027d
ENABLE_WIPER parameter is no longer
included in gps.conf and used in the
HAL code. So it is removed to avoid
confusion.
CRs-fixed: 520700
Change-Id: Ic0ffb762d7d27019407a9f5b4600d6ea9693b401
The AGPS interface will be returned
as null if MSA and MSB capabilities
are not set in gps config
Change-Id: I388654c9f527bfed128f431ccb8956e19be0f7f2
(cherry picked from commit 50891ecfe09b19a130b675ddc818ecf4ae31a3da)
ULP will no longer be loaded and init'ed from loc eng
HAL. GPS HAL will look for ULP once it completes init
and waits for a msg back once it hears from ULP. This
is done with introduction of UlpProxy. Default proxy
is a no op proxy.
Change-Id: If0be0b5744f9de20f12c2f0b9704dea66aa454c0
(cherry picked from commit 2eb4ddcae94283df6c6be450c4c070ffd8ff9cd7)
Removed makefile dependency to AndrodRuntime; Renamed
library to be loaded from liblocation to libizat_core;
Made some class private access to protected for the
needs of inheritance; piggy bagged some optimizations.
Change-Id: Id7e3127baa1833cbad7739f50808941c733b87f2
(cherry picked from commit c039ceaec84b25573d710b31831c9b06d4f3d1c6)
Changes can be highlighted with below summary:
* Split the original LocApiAdapter to LocAdapter and LocApi.
Now different adapter implementations can flexibly connect
to different LocApi;
* LocApi continues to abstract the API binding to RPC or QMI;
* MsgTask which creates and owns a msg Q and a thread, and it
define a LocMsg base msg class. The handler pulls a msg out
of the Q and calls its proc() method. This makes it possible
for msg sender to keep the data in the msg encapsulated, as
it no longer requires a central msg handler who must under-
stand all data format. This used to be where all the compile
time dependencies are tangled together;
* Added Context to bundle MsgTask and LocApi;
* Added LocDualContext specifically for the FLP Location Hal
architecture requirement;
* Placed all the base classes of the above in loc_core folder
/ loc_core namespace / libloc_core.so, so other libraries
can easily use derive from here without having to pull in
the loc_eng implementation, which is a large library to
include or link to;
Change-Id: I40abfba96dea76757c98530c1f5e076b34ba4ac7
The current changes to default the operation mode
to Standalone by the CHIP ID. A new method is used
for solving this issue.
CRs-Fixed: 510462
Change-Id: I58fd85e2c28bf824edeaef62660c62c34761bd37
Check the CAPABILITIES in gps.conf to see if the geofence is
enabled or not. If it is not enabled, the function of getting
geofence interface will return null.
Change-Id: I6500cedd775d83b4701fbe2b3a111c170c8a34be
CRs-fixed: 513494
Changed the communication path from ULP JNI to libulp
engine to avoid the GPS HAL layer. This improves modularity,
removes dependencies and promote easier integration for OEMs.
Change-Id: I6bc883499b8ed3649cfc194038057a19ba2fd4f6
Changes to ensure FLP positioning call flow works
even if GPS is disabled on the Android settings
menu.
CRs-Fixed: 476628
Change-Id: I54b9f9861a14f7c42f45c48e57e9558f14a4de92
The function was returning an error code
which was causing GPSLocationProvider to
fail initialization
CRs-fixed: 501318
Change-Id: Icec707c3b9edc60bd07914b130077f9a96c5e794
GPS-enable gets too heavy at powerup, when loc_init is
synchronous, where loc goes to get the hardware handle
if AP init happens faster than the GPS hardware. The
loc init calling thread is from Android framework, and
it locks a mutex that in turn could lock up system server
main thread upon race conditions.
The second half of loc init, i.e. the reinit, is now moved
to loc worker thread. This should help release some of the
powerup timing pressure on the framework threads.
Added a message just for asynchrous Loc Init so as to execute
init specifically.
Change-Id: I369e461ca4ca61cea3a9729c84d24af4ffa8e51d
CRs-fixed: 472843
Removed FEATURE_DELEXT flag that is no longer
needed after adding the flags for this feature
to gps_extended.h
Change-Id: Id8a095309892e2eb328a02ef17e4aa1b1b54e815
qcom bsp will handle xtra/agps/ni/time through
qcom propreitary service, and non-qcom bsp will handle
xtra/gps/ni/time through android framework.
xtra url will be queried from modem on qcom bsp,
and read from gps.conf from non-qcom bsp.
Change-Id: Ib54a1596caa65f7aa0358f639640c3d1074980e7
When a request to RELEASE ATL finds no
active subscribers, return ATL close
failure
Change-Id: I591d5456d5ce1218cc82bf7ba430176ec4f13174
CRs-fixed: 502024
In accordance to gps.conf, debug level of 0 now
produces no logs at all. In addition, if the
parameter DEBUG_LEVEL is commented in gps.conf,
logs will be printed according to Android's logging
levels
CRs-fixed: 503157
Change-Id: I26ca2be67fbc7ce2bf633f66d9b88ca6450e9d27
The struct was not defined in the
NAME_VAL() format and hence was returning
garbage characters in place of error
strings
Change-Id: Ic59e636c8bf99fe91488c312b83f31c36941c202
Introduced support for handling modem request
to start an emergency call using QMI WDS profiles
or fallback to an ATL request if the call does
not succeed.
Change-Id: I29b617687db0d3f26610bc74f8dc95940574f52d
The function was returning an error code
which was causing GPSLocationProvider to
fail initialization
CRs-fixed: 501318
Change-Id: Icec707c3b9edc60bd07914b130077f9a96c5e794
Position report NMEAs will be generated only
if the position report is a final fix and not
an intermediate fix. Blank NMEAs will be sent
otherwise.
CRs-fixed: 467575
Change-Id: I60e63faf3e4503f5a6ce93211d4017aa7695b78b
In order to prevent the issue where the xtra server url
that stored in gps.conf is incorrect (like xtra.bin instead
of xtra2.bin) for a particular modem, I've made this change
so that the xtra server url can be queried through loc api.
CRs-fixed: 366599
Change-Id: If65de98d837f068fd61a235cbf1104026246e5a9
Moving these features out of afw allows these
features to still work on platforms that do not
allow changes to afw and it also gives us more
control.
Change-Id: I6923b302f93222dc10189c3a6a7b6ba2ec1a3378
GPS-enable gets too heavy at powerup, when loc_init is
synchronous, where loc goes to get the hardware handle
if AP init happens faster than the GPS hardware. The
loc init calling thread is from Android framework, and
it locks a mutex that in turn could lock up system server
main thread upon race conditions.
The second half of loc init, i.e. the reinit, is now moved
to loc worker thread. This should help release some of the
powerup timing pressure on the framework threads.
Add a message just for asynchrous Loc Init so as to execute
init specifically.
Change-Id: I369e461ca4ca61cea3a9729c84d24af4ffa8e51d
CRs-fixed: 472843
Changes to ensure FLP positioning call flow works
even if GPS is disabled on the Android settings
menu.
CRs-Fixed: 476628
Change-Id: I54b9f9861a14f7c42f45c48e57e9558f14a4de92
Changes to manage user preference for Precise Indoor
Positioning Control through settings on the OS UI menu
CRs-Fixed: 492707
Change-Id: I6a0cc0a92c35d05122efce310274f20590a16118
Updated LOC API source and header files
since the new version had updated masks
that were required for loc eng
Change-Id: Ia0d57770a737ef6d05e881ac0512eb174e7c9fd1
To allow ulp to select MSA for single shot
location requests, change the recurrence type
for MSA requests to SINGLE.
CRs-fixed: 479303
Change-Id: I97043233e0590b25bc63f3709b2bbb3dfd22cbd0
This is so that data disable is not
sent to the modem by default if data
is enabled
Change-Id: I383443fc0321380c22382ba7d7f85dacf948853a
CRs-fixed: 460376
No support for SUPl,starting MSB it wouldn.t request a PD.
Disabled the MSA and MSB for this PL.
This fix is needed because this PL doesnot have a modem.
Change-Id: I8fa1145db07f681c0f6e733da253f06f01f7edd6
CRs-Fixed: 471589