From 0aa7fe6876d533610b4b993035030b946cc32e4c Mon Sep 17 00:00:00 2001
From: Alexey Zaytsev
Date: Tue, 21 Oct 2008 23:52:01 +0400
Subject: [PATCH 001/115] Add a few missing headers
Fixes build with gcc 4.3.2
Signed-off-by: Alexey Zaytsev
---
tools/aidl/aidl.cpp | 2 ++
tools/aidl/generate_java.cpp | 1 +
tools/aidl/options.h | 1 +
tools/aidl/search_path.h | 1 +
4 files changed, 5 insertions(+)
diff --git a/tools/aidl/aidl.cpp b/tools/aidl/aidl.cpp
index 927d21e49af65..dc61567d8f3e9 100644
--- a/tools/aidl/aidl.cpp
+++ b/tools/aidl/aidl.cpp
@@ -10,6 +10,8 @@
#include
#include
+#include
+#include
#include
- * {@sample packages/apps/Phone/res/layout/dialer_list_item.xml}
+ * layout for this object as shown in the Phone Application.
+ * (packages/apps/Phone/res/layout/dialer_list_item.xml)
*
* @attr ref android.R.styleable#TwoLineListItem_mode
*/
From 78233dd9121f4d5e988b79d89b106bdd2a54af18 Mon Sep 17 00:00:00 2001
From: Nick Pelly
Date: Mon, 24 Nov 2008 16:14:21 -0800
Subject: [PATCH 011/115] Add bluetooth include path.
Fixes build when BOARD_HAVE_BLUETOOTH := true
Signed-off-by: Nick Pelly
---
core/jni/Android.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index e9009e6865b03..f7b7e6793bc47 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -146,7 +146,8 @@ LOCAL_SHARED_LIBRARIES := \
ifeq ($(BOARD_HAVE_BLUETOOTH),true)
LOCAL_C_INCLUDES += \
external/dbus \
- external/bluez/libs/include
+ external/bluez/libs/include \
+ system/bluetooth/bluedroid/include
LOCAL_CFLAGS += -DHAVE_BLUETOOTH
LOCAL_SHARED_LIBRARIES += libbluedroid libdbus
endif
From 56fe6be0c3e1eaa7d5d1ba96910008c504a6c362 Mon Sep 17 00:00:00 2001
From: Jon Larimer
Date: Sun, 7 Dec 2008 18:40:05 -0500
Subject: [PATCH 012/115] Enforce permission for using addGpsStatusListener.
Even though it's currently hidden and inaccessible from the SDK, it's still
possible for an Android app to use, so it needs to check perms.
---
services/java/com/android/server/LocationManagerService.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index 1bf60d4bc5df3..aa8bdbb173c5f 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -905,6 +905,11 @@ public class LocationManagerService extends ILocationManager.Stub {
if (mGpsLocationProvider == null) {
return false;
}
+
+ if(mContext.checkCallingPermission(ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
+ }
+
try {
mGpsLocationProvider.addGpsStatusListener(listener);
} catch (RemoteException e) {
From fd9f42a6967370490cd2c66e628ccbf2eacc4a4b Mon Sep 17 00:00:00 2001
From: Jon Larimer
Date: Sun, 7 Dec 2008 18:44:24 -0500
Subject: [PATCH 013/115] In removeGpsStatusListener, remove the listener for
real.
---
.../com/android/internal/location/GpsLocationProvider.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java
index d0e4f49a3ae32..b780c523ed064 100644
--- a/location/java/com/android/internal/location/GpsLocationProvider.java
+++ b/location/java/com/android/internal/location/GpsLocationProvider.java
@@ -470,8 +470,7 @@ public class GpsLocationProvider extends LocationProviderImpl {
for (int i = 0; i < size && l == null; i++) {
Listener test = mListeners.get(i);
if (binder.equals(test.mListener.asBinder())) {
- // listener already added
- return;
+ l = test;
}
}
From 1a2d9dbe9c6f54c5e0dc26386dc01df1d18073ad Mon Sep 17 00:00:00 2001
From: Mike Reed
Date: Tue, 9 Dec 2008 09:51:08 -0500
Subject: [PATCH 014/115] Refresh fonts with updated license strings in the
'name' table Use compressed kerning format Add cyrillic characters
---
data/fonts/DroidSans-Bold.ttf | Bin 150804 -> 191032 bytes
data/fonts/DroidSans.ttf | Bin 149076 -> 190044 bytes
data/fonts/DroidSansFallback.ttf | Bin 3022632 -> 3081908 bytes
data/fonts/DroidSansMono.ttf | Bin 78296 -> 117072 bytes
data/fonts/DroidSerif-Bold.ttf | Bin 172012 -> 184836 bytes
data/fonts/DroidSerif-BoldItalic.ttf | Bin 137212 -> 189916 bytes
data/fonts/DroidSerif-Italic.ttf | Bin 155220 -> 177176 bytes
data/fonts/DroidSerif-Regular.ttf | Bin 162864 -> 172532 bytes
8 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/data/fonts/DroidSans-Bold.ttf b/data/fonts/DroidSans-Bold.ttf
index fc60df40026220dbd010e40331795de665072928..7ac04b6f0d8a7e8407ec37445a29ad72d6c43fd3 100644
GIT binary patch
delta 94989
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