Commit graph

877 commits

Author SHA1 Message Date
Linux Build Service Account
4cfa967043 Merge "Add the support for geofence dwell" 2015-12-02 01:11:08 -08:00
Dante Russo
29a9152e50 NMEA generation change to prevent 2Hz reporting
GPGGA/GPRMC/GPGSA can be reported two times per
second in some cases where we lose all satellite
signals. We should report these NMEA sentences only
from position report to prevent this.

CRs-fixed: 884484

Change-Id: I123d9f074ca725703c6e90397160b701033e22f0
2015-11-27 13:06:47 +05:30
Linux Build Service Account
1e19c369f9 Merge "Add buffer length check for XTRA data" 2015-11-26 12:23:11 -08:00
Tushar Janefalkar
a4e5f9c150 Add buffer length check for XTRA data
To prevent reading beyond the length of
the buffer that contains XTRA data, a
check has been introduced assuming an
approximate limit for the size of the
data

Change-Id: I7e05beadec76c3308448b9198fd23c8e8b97394d
CRs-fixed: 420623
2015-11-26 00:32:17 -08:00
Dante Russo
557a4aa998 Remove reduntant clearing of GpsLocation memory
GpsLocation memory will now be cleared inside the
Loc Api handler itself, so no need to do it a second
time before calling into the Loc Api handler.

Change-Id: Iec37624621d6eb4806eb8e13c807bb4e40584e39
CRs-fixed: 726800
2015-11-25 22:30:10 -08:00
Jiafei Wen
34c44606e9 Add the support for geofence dwell
This change adds the support for
geofence dwell mask.

Change-Id: I4cbde8d3c49ef4ac287d34a88ea25787b507cdbe
CRs-Fixed: 940557
2015-11-25 19:10:06 -08:00
Vamana Murthi
fd7b78112e gps: enable measurement/poly reports only when AP DR enabled
GNSS Measurements and Polynomial reports need to be enabled
only when AP DR (EXTERNAL_DR_ENABLED=1) is enabled
in gps.conf

Change-Id: I13437d997e96a6403923d49f62f1e7c2f70e9c04
CRs-Fixed: 937944
2015-11-23 19:46:50 +05:30
Linux Build Service Account
f7ae18656c Merge "Location: reduce memory footprint" 2015-11-12 09:33:30 -08:00
Kevin Tang
67d576b55a another potential race condition
LocTimer on timeout would currently delete timer delegate.
This meddles into the management of LocTimer::stop() call,
and the order of obj delete needs to be synchronized in a
few different places as a result.

This change lets the delete of the timer delegate obj fold
into the stop() handling, which would be easier to synch.

Change-Id: Ic3e0b3d183dceb9e6e2db4c47ec9d6e296b0c3f6
CRs-Fixed: 916590
2015-11-12 13:08:00 +05:30
Kevin Tang
2f74f91ac1 Crash fix with MsgTask API change
Removed tCreate and tAssociate from MsgTask. LocThread
now can optionally take a tCreate method. Associator is
replaced with *firstMsg* option to MsgTask, which is a
more generic option, that can associate or do other set
up job at the create of a MsgTask.

The current MsgTask doesn't use tCreate, which exposes
a slight time window for Location HAL when its MsgTask
is NOT associated to DVM heap but a message delivery to
DVM could be attempted during this time.

Change-Id: Iafd5b91b693baacb9b7064463f8c44f74026f54c
CRs-Fixed: 902350
2015-11-12 13:06:32 +05:30
Kevin Tang
f533181bd6 timer bug fix
when a ticking timer is stopped, currently kernel doesn't
get updated with the next immediate timer's interval. As a
result, kernel timer will expire sooner (with the stopped
timer's interval), and the next timer's client is notified
for this expiration.

Change-Id: I0d67d1418cb9bfe7f70ae71252901d4c6bb699b3
CRs-Fixed: 909776
2015-11-12 13:02:18 +05:30
Kevin Tang
91488d6fc5 fixing a crash vulnerability due to race condition
LocTimer::stop() can be called from different threads, which must
be protected. Currently there is a race condition between back to
back stop()'s or expire() + stop() events.

Change-Id: Iae80b78f049a32da87639f813c6f5126b4ccd072
CRs-Fixed: 904627
2015-11-12 13:00:03 +05:30
Bhavna Sharma
62a30d2faa Fix for timerfd_create on older kernel revisions
BOOTTIME_ALARM and BOOTTIME were added to timerfd_create
in kernel version 3.11 and 3.15 respectively.
But for targets still on older kernel version we fallback on MONOTONIC.

CRs-Fixed: 897805

Change-Id: I47d9780d69ce5ee8c183c84baa93ea3c1a00db57
2015-11-12 12:59:22 +05:30
Kevin Tang
153ba77107 crash in LocTimer wrapper
LocTimerWrapper implements loc_timer_start/stop calls for backward
compatibility. There is a race condtiion where the wrapper object
could be deleted by the client thread and expireation handling at
rough the same time, which would have the memory freed twice. Now
they are mutext protected.

Change-Id: I25d7466db88a840a8a09e7a476cface48c91d22e
2015-11-12 12:57:56 +05:30
Kevin Tang
c9db5166b5 LocTimer repeated expiration
Timer must be removed from epoll as soon as it expires,
otherwise it continuously expire. Current timer removes
from a different thread, this triggers repeated expire
events until the maintain thread gets to remove it.

Change-Id: Ie523bce5069416521d49bc0178d2cad2dd1f04da
CRs-Fixed: 870568
2015-11-12 12:57:22 +05:30
Kevin Tang
58c3d32868 Adding a number of utilities
LocHeap, LocThread, LocTimer, and moved MsgTask to
utils. Also added are LocRankable and LocRunnable
abstract classes.

Change-Id: I76975455d24f2c84a95dcc1b04f79fea562ea5ba
CRs-Fixed: 855222
2015-11-12 12:56:25 +05:30
Ruifeng Xu
c53037dc6a encode field separator characters
Replace all separator characters ('/','+','|','%') in the raw string
by their corresponding encodings (%2F","%2B","%7C", "%25")

Change-Id: I3c895adc2ce1cef36032a25e3c6fd63e70350607
CRs-fixed: 881265
2015-11-10 17:35:59 -08:00
Ruifeng Xu
30c54b87d9 Xtra client always reports carrier as 'unknown'
The problem was caused by populating the carrier upon phone bootup
when the the property maybe not initialized yet. This module is
updated to remove the populating code of carrier in phone bootup.

Change-Id: I9c3f970aa0f0ca0805fdc2e04aa809329b6a2676
CRs-fixed: 935146
2015-11-09 16:22:55 -08:00
Linux Build Service Account
72993211dd Merge f5e6e2eeee on remote branch
Change-Id: I89b0b79894c93b407e6d125c6861bb060da9e241
2015-11-09 12:10:32 -07:00
Valeri Atamaniouk
78bb13288e Location: reduce memory footprint
Reduce memory footprint by moving data sets into const
data segments. Update function parameters to accept const
parameters when appropriate.

CRs-fixed: 928770
Change-Id: I42955cf18de2b0541cfaed89359cdcf9ae6fea8a
2015-11-09 11:33:15 +02:00
Bhavna Sharma
c9a243bc15 Move some debug logs to verbose.
While it is important to continue to log events
at debug level logs, logging all data may not be
as important. Moving such logs to verbose level

CRs-Fixed: 936031

Change-Id: I634d173b645180d55d620a24cce2c31aee966b8f
2015-11-06 20:42:13 -08:00
Kevin Tang
c3643ebf64 remove link depedency to dsi_netctrl temporarily
the link dependency is necessary for ds_api to work, but
it would bring in libqcci_legacy indirectly, which would
cause crash at runtime when calling into the qmi client
implementation fromlibqcci_legacy, while the right impl
is from qmi-frameworks.

Change-Id: If986fe059199dd752526dbe837fcf03b4b4d8002
2015-11-05 10:37:26 -08:00
Dante Russo
f5e6e2eeee Add glo and bds to used-in-fix mask
The used-in-fix mask is only keeping track
of GPS SVs, so add a used-in-fix mask for
GlONASS SVs and BDS SVs as well to avoid
NMEA generation issues

CRs-fixed: 826152

Change-Id: I33862cf8d40db1d667179ef68d18703edc359843
2015-11-05 14:18:32 +05:30
Kevin Tang
594daf9692 Add AP Coarse Timestamp Uncertainty configuration parameter
Change-Id: Ic93291d451704ced88bdf45df3cb9215acf6f2de
2015-10-21 00:20:07 -07:00
Linux Build Service Account
15ea4fca38 Merge "set LPP CP as default" 2015-10-16 09:09:27 -07:00
Linux Build Service Account
f0a11ae99a Merge "missing util header file" 2015-10-15 10:51:54 -07:00
Kevin Tang
0b4a33bc45 missing util header file
causing the unit test builds failure.

Change-Id: Id65290c0198904eda020b566e6636b0bb772aa1d
2015-10-09 16:10:40 -07:00
Qiang Chen
56a5a75a22 set LPP CP as default
LPP CPP E911 is required by
many carriers on LTE.

Change-Id: If0d3a3107652e114bfdf7fbb59fe648cb3ddd940
CRs-fixed: 919242
2015-10-09 10:47:42 -07:00
Dante Russo
9336256027 Add support for new sockaddr_storage struct
In order to handle ipv6 requests, a new struct
is being used instead of an array to store ipv6
info

CRs-Fixed: 817295
Change-Id: I030d4206c01724f08b311697f0bbefb1f9fd10e6
2015-10-07 10:25:06 -07:00
Linux Build Service Account
7fc64a6c2f Merge "another potential race condition" 2015-10-03 21:37:27 -07:00
Linux Build Service Account
e8c149a153 Merge "Opt out of clang till issues are fixed" 2015-10-03 09:38:13 -07:00
Kevin Tang
8da6427472 Add AP Timestamp for coarse/fine time to position reports
Change to add APTimestamp field to position reports to carry
Coarse or fine timestamp.

Change-Id: Iaf5490cb991865d4b6376b0934b306a31528d90c
2015-09-30 23:22:37 -07:00
Kevin Tang
9b3aa46ebb another potential race condition
LocTimer on timeout would currently delete timer delegate.
This meddles into the management of LocTimer::stop() call,
and the order of obj delete needs to be synchronized in a
few different places as a result.

This change lets the delete of the timer delegate obj fold
into the stop() handling, which would be easier to synch.

Change-Id: Ic3e0b3d183dceb9e6e2db4c47ec9d6e296b0c3f6
CRs-Fixed: 916590
2015-09-30 14:03:36 -07:00
Linux Build Service Account
f75c6e0f7b Merge "Fix for Cppcheck warnings" 2015-09-24 21:35:41 -07:00
Linux Build Service Account
9f830f906d Merge "Add 3 new fields in GPS and FLP pipe" 2015-09-24 21:35:40 -07:00
Aravind Asam
68104bd701 Opt out of clang till issues are fixed
Needed for moving to clang

Change-Id: I5922c62cb2f6efc297120c5a359c92a82260f3a7
2015-09-24 16:30:36 -07:00
Linux Build Service Account
bd034a21f2 Merge "Sending FLP fixes to ULP" 2015-09-24 05:12:57 -07:00
Vamana Murthi
e9e399737b Fix for Cppcheck warnings
Fixed cppcheck warnings reported by customer

Change-Id: Ia6cf5e940d204111d8354f9eec71ac816a142719
CRs-fixed: 901373
2015-09-24 13:34:17 +05:30
Jiafei Wen
bf80dfb9e9 Add 3 new fields in GPS and FLP pipe
To support next version of GTP AP protocol,
this change adds the support for the below
3 fields in GPS pipe and FLP pipe :
  1). heading_unc
  2). horizontal_reliability
  3). vertical_reliability

Change-Id: If51c38f9159f372c2b2c12fbb55d123958cfee95
CRs-Fixed: 898876
2015-09-23 18:01:06 -07:00
Linux Build Service Account
30173edcf2 Merge "Crash fix with MsgTask API change" 2015-09-23 01:53:49 -07:00
Jiafei Wen
eb01e397ed Sending FLP fixes to ULP
For crowd sourcing, FLP HAL needs to share
with ULP the flp fixes in real time. This
change is making FLP HAL to send flp fixes
to ULP.

Change-Id: I1a852ec69db8eb50de5c18b03205d1b488cfd4b0
CRs-fixed: 874928 878064
2015-09-22 22:37:57 -07:00
Linux Build Service Account
c40ded235a Merge "Set SUPL_ES to 0 in gps.conf" 2015-09-22 15:33:58 -07:00
Kevin Tang
94ecbf6804 Crash fix with MsgTask API change
Removed tCreate and tAssociate from MsgTask. LocThread
now can optionally take a tCreate method. Associator is
replaced with *firstMsg* option to MsgTask, which is a
more generic option, that can associate or do other set
up job at the create of a MsgTask.

The current MsgTask doesn't use tCreate, which exposes
a slight time window for Location HAL when its MsgTask
is NOT associated to DVM heap but a message delivery to
DVM could be attempted during this time.

Change-Id: Iafd5b91b693baacb9b7064463f8c44f74026f54c
CRs-Fixed: 902350
2015-09-21 14:45:58 -07:00
Linux Build Service Account
049cc84d3a Merge "timer bug fix" 2015-09-19 15:13:48 -07:00
Kevin Tang
088a127c31 timer bug fix
when a ticking timer is stopped, currently kernel doesn't
get updated with the next immediate timer's interval. As a
result, kernel timer will expire sooner (with the stopped
timer's interval), and the next timer's client is notified
for this expiration.

Change-Id: I0d67d1418cb9bfe7f70ae71252901d4c6bb699b3
CRs-Fixed: 909776
2015-09-18 09:30:33 -07:00
Ruifeng Xu
9c22ef8bca fixed XTRA bug
The change included the following fixes:
increased buffer size to hold the initial UA string;
use file for saving the initial UA string

Change-Id: I52ef94e57695f1411a34e338e89325de382b09b5
CRs-fixed: 905170
2015-09-11 13:51:26 -07:00
Linux Build Service Account
c1021a05dc Merge "fixing a crash vulnerability due to race condition" 2015-09-11 07:24:11 -07:00
Kevin Tang
9957a19f5f fixing a crash vulnerability due to race condition
LocTimer::stop() can be called from different threads, which must
be protected. Currently there is a race condition between back to
back stop()'s or expire() + stop() events.

Change-Id: Iae80b78f049a32da87639f813c6f5126b4ccd072
CRs-Fixed: 904627
2015-09-09 10:06:50 -07:00
Kevin Tang
623f5a6fc5 adding dev id into xtra user agent
setting XTRA_USER_AGENT at GPS HAL init time, incorporating
Android sw version, manufacturer, model, board.

CRs-Fixed: 788356

Change-Id: I8d9dcc80a0769796a25a0477f5f1598a292fe8b0
2015-09-02 10:09:14 -07:00
Bhavna Sharma
5e77108972 Fix for timerfd_create on older kernel revisions
BOOTTIME_ALARM and BOOTTIME were added to timerfd_create
in kernel version 3.11 and 3.15 respectively.
But for targets still on older kernel version we fallback on MONOTONIC.

CRs-Fixed: 897805

Change-Id: I47d9780d69ce5ee8c183c84baa93ea3c1a00db57
2015-08-27 10:29:54 -07:00