am 27976c4..27976c4 from mirror-m-wireless-internal-release
27976c4 Introduction of the new SAP-UIM socket
Change-Id: I9ab9d65f230edd83037e2d1779b3bdd3b32a0aa7
diff --git a/libril/ril.cpp b/libril/ril.cpp
index 30e51c6..4aea484 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -698,6 +698,7 @@
int32_t t;
status_t status;
+ RLOGD("dispatchSmsWrite");
memset (&args, 0, sizeof(args));
status = p.readInt32(&t);
@@ -750,6 +751,7 @@
int32_t uusPresent;
status_t status;
+ RLOGD("dispatchDial");
memset (&dial, 0, sizeof(dial));
dial.address = strdupReadString(p);
@@ -854,6 +856,7 @@
int size;
status_t status;
+ RLOGD("dispatchSIM_IO");
memset (&simIO, 0, sizeof(simIO));
// note we only check status at the end
@@ -931,6 +934,7 @@
status_t status;
RIL_SIM_APDU apdu;
+ RLOGD("dispatchSIM_APDU");
memset (&apdu, 0, sizeof(RIL_SIM_APDU));
// Note we only check status at the end. Any single failure leads to
@@ -1000,6 +1004,7 @@
int32_t t;
status_t status;
+ RLOGD("dispatchCallForward");
memset (&cff, 0, sizeof(cff));
// note we only check status at the end
@@ -1174,7 +1179,7 @@
dispatchCdmaSms(Parcel &p, RequestInfo *pRI) {
RIL_CDMA_SMS_Message rcsm;
- ALOGD("dispatchCdmaSms");
+ RLOGD("dispatchCdmaSms");
if (NO_ERROR != constructCdmaSms(p, pRI, rcsm)) {
goto invalid;
}
@@ -1197,7 +1202,7 @@
RIL_IMS_SMS_Message rism;
RIL_CDMA_SMS_Message rcsm;
- ALOGD("dispatchImsCdmaSms: retry=%d, messageRef=%d", retry, messageRef);
+ RLOGD("dispatchImsCdmaSms: retry=%d, messageRef=%d", retry, messageRef);
if (NO_ERROR != constructCdmaSms(p, pRI, rcsm)) {
goto invalid;
@@ -1231,7 +1236,7 @@
status_t status;
size_t datalen;
char **pStrings;
- ALOGD("dispatchImsGsmSms: retry=%d, messageRef=%d", retry, messageRef);
+ RLOGD("dispatchImsGsmSms: retry=%d, messageRef=%d", retry, messageRef);
status = p.readInt32 (&countStrings);
@@ -1304,7 +1309,7 @@
uint8_t retry;
int32_t messageRef;
- ALOGD("dispatchImsSms");
+ RLOGD("dispatchImsSms");
if (status != NO_ERROR) {
goto invalid;
}
@@ -1343,6 +1348,7 @@
status_t status;
int32_t digitCount;
+ RLOGD("dispatchCdmaSmsAck");
memset(&rcsa, 0, sizeof(rcsa));
status = p.readInt32(&t);
@@ -4282,7 +4288,7 @@
char rildebug[MAX_DEBUG_SOCKET_NAME_LENGTH] = SOCKET_NAME_RIL_DEBUG;
if (inst != NULL) {
- strncat(rildebug, inst, MAX_DEBUG_SOCKET_NAME_LENGTH);
+ strlcat(rildebug, inst, MAX_DEBUG_SOCKET_NAME_LENGTH);
}
s_fdDebug = android_get_control_socket(rildebug);
@@ -4482,11 +4488,7 @@
wakeTimeoutCallback (void *param) {
// We're using "param != NULL" as a cancellation mechanism
if (param == NULL) {
- //RLOGD("wakeTimeout: releasing wake lock");
-
releaseWakeLock();
- } else {
- //RLOGD("wakeTimeout: releasing wake lock CANCELLED");
}
}
@@ -4610,11 +4612,11 @@
#if defined(ANDROID_MULTI_SIM)
extern "C"
-void RIL_onUnsolicitedResponse(int unsolResponse, void *data,
+void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
size_t datalen, RIL_SOCKET_ID socket_id)
#else
extern "C"
-void RIL_onUnsolicitedResponse(int unsolResponse, void *data,
+void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
size_t datalen)
#endif
{
diff --git a/libril/ril_event.cpp b/libril/ril_event.cpp
index 9d2954e..84b8b72 100644
--- a/libril/ril_event.cpp
+++ b/libril/ril_event.cpp
@@ -95,14 +95,10 @@
static void getNow(struct timeval * tv)
{
-#ifdef HAVE_POSIX_CLOCKS
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);
tv->tv_sec = ts.tv_sec;
tv->tv_usec = ts.tv_nsec/1000;
-#else
- gettimeofday(tv, NULL);
-#endif
}
static void init_list(struct ril_event * list)
@@ -124,18 +120,20 @@
static void removeFromList(struct ril_event * ev)
{
- dlog("~~~~ Removing event ~~~~");
+ dlog("~~~~ +removeFromList ~~~~");
dump_event(ev);
ev->next->prev = ev->prev;
ev->prev->next = ev->next;
ev->next = NULL;
ev->prev = NULL;
+ dlog("~~~~ -removeFromList ~~~~");
}
static void removeWatch(struct ril_event * ev, int index)
{
+ dlog("~~~~ +removeWatch ~~~~");
watch_table[index] = NULL;
ev->index = -1;
@@ -154,6 +152,7 @@
nfds = n + 1;
dlog("~~~~ nfds = %d ~~~~", nfds);
}
+ dlog("~~~~ -removeWatch ~~~~");
}
static void processTimeouts()
diff --git a/rild/rild.c b/rild/rild.c
index 268170e..6324253 100644
--- a/rild/rild.c
+++ b/rild/rild.c
@@ -31,6 +31,8 @@
#include <cutils/sockets.h>
#include <sys/capability.h>
#include <sys/prctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
#include <libril/ril_ex.h>
#include <private/android_filesystem_config.h>
@@ -55,6 +57,7 @@
extern void RIL_onRequestComplete(RIL_Token t, RIL_Errno e,
void *response, size_t responselen);
+extern void RIL_setRilSocketName(char *);
#if defined(ANDROID_MULTI_SIM)
extern void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
@@ -95,6 +98,8 @@
* Our group, cache, was set by init.
*/
void switchUser() {
+ char debuggable[PROP_VALUE_MAX];
+
prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
setuid(AID_RADIO);
@@ -116,6 +121,15 @@
RLOGE("capset failed: %s", strerror(errno));
exit(EXIT_FAILURE);
}
+
+ /*
+ * Debuggable build only:
+ * Set DUMPABLE that was cleared by setuid() to have tombstone on RIL crash
+ */
+ property_get("ro.debuggable", debuggable, "0");
+ if (strcmp(debuggable, "1") == 0) {
+ prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+ }
}
int main(int argc, char **argv) {