34a1da07 |
1 | |
b2264797 |
2 | project external/hostap/ |
3 | diff --git a/external/hostap/Android.mk b/external/hostap/Android.mk |
4 | index 77d72ea..5c6b589 100644 |
5 | --- a/external/hostap/Android.mk |
6 | +++ b/external/hostap/Android.mk |
7 | @@ -1,3 +1,5 @@ |
8 | ifeq ($(WPA_SUPPLICANT_VERSION),VER_0_8_X) |
9 | - include $(call all-subdir-makefiles) |
10 | + #include $(call all-subdir-makefiles) |
11 | + LOCAL_PATH := $(call my-dir) |
12 | + include $(LOCAL_PATH)/wpa_supplicant/Android.mk |
13 | endif |
14 | diff --git a/external/hostap/wpa_supplicant/config-android b/external/hostap/wpa_supplicant/config-android |
15 | index c71056c..2532ccd 100644 |
16 | --- a/external/hostap/wpa_supplicant/config-android |
17 | +++ b/external/hostap/wpa_supplicant/config-android |
18 | @@ -81,7 +81,7 @@ |
19 | CONFIG_DRIVER_WEXT=y |
20 | |
21 | # Driver interface for Linux drivers using the nl80211 kernel interface |
22 | -CONFIG_DRIVER_NL80211=y |
23 | +#CONFIG_DRIVER_NL80211=y |
24 | |
25 | # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) |
26 | #CONFIG_DRIVER_BSD=y |
27 | |
28 | project external/openssl/ |
29 | diff --git a/external/openssl/crypto/Android.mk b/external/openssl/crypto/Android.mk |
30 | index 222bc96..f2361a5 100644 |
31 | --- a/external/openssl/crypto/Android.mk |
32 | +++ b/external/openssl/crypto/Android.mk |
33 | @@ -155,6 +155,7 @@ local_src_files := \ |
34 | bn/bn_sqr.c \ |
35 | bn/bn_sqrt.c \ |
36 | bn/bn_word.c \ |
37 | + bn/bn_const.c \ |
38 | buffer/buf_err.c \ |
39 | buffer/buffer.c \ |
40 | comp/c_rle.c \ |
41 | |
34a1da07 |
42 | project frameworks/base/ |
43 | diff --git a/frameworks/base/libs/ui/InputReader.cpp b/frameworks/base/libs/ui/InputReader.cpp |
b2264797 |
44 | index 7626b15..16e17b3 100644 |
34a1da07 |
45 | --- a/frameworks/base/libs/ui/InputReader.cpp |
46 | +++ b/frameworks/base/libs/ui/InputReader.cpp |
b2264797 |
47 | @@ -1468,12 +1468,36 @@ bool TouchInputMapper::configureSurfaceLocked() { |
34a1da07 |
48 | |
49 | // Configure X and Y factors. |
50 | if (mRawAxes.x.valid && mRawAxes.y.valid) { |
51 | - mLocked.xOrigin = mRawAxes.x.minValue; |
52 | - mLocked.yOrigin = mRawAxes.y.minValue; |
53 | - mLocked.xScale = float(width) / mRawAxes.x.getRange(); |
54 | - mLocked.yScale = float(height) / mRawAxes.y.getRange(); |
55 | - mLocked.xPrecision = 1.0f / mLocked.xScale; |
56 | - mLocked.yPrecision = 1.0f / mLocked.yScale; |
57 | + int a[7], have_pointercal = 0; |
58 | + const char *fname = "/vendor/pointercal"; |
59 | + FILE *f = fopen(fname, "r"); |
60 | + int ret; |
61 | + if (f) { |
62 | + ret = fscanf(f, "%d %d %d %d %d %d %d", |
63 | + &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]); |
64 | + if (ret == 7) |
65 | + have_pointercal = 1; |
66 | + else |
67 | + LOGW("Failed to parse %s", fname); |
68 | + fclose(f); |
69 | + } |
70 | + else |
71 | + LOGW("Failed to open %s", fname); |
72 | + |
73 | + if (have_pointercal) { |
74 | + mLocked.xScale = float(a[0]) / float(a[6]); |
75 | + mLocked.yScale = float(a[4]) / float(a[6]); |
76 | + // a[2] / mLocked.xScale / a[6] |
77 | + mLocked.xOrigin = -a[2] / a[0]; |
78 | + mLocked.yOrigin = -a[5] / a[4]; |
79 | + } else { |
80 | + mLocked.xOrigin = mRawAxes.x.minValue; |
81 | + mLocked.yOrigin = mRawAxes.y.minValue; |
82 | + mLocked.xScale = float(width) / mRawAxes.x.getRange(); |
83 | + mLocked.yScale = float(height) / mRawAxes.y.getRange(); |
84 | + } |
85 | + mLocked.xPrecision = fabsf(1.0f / mLocked.xScale); |
86 | + mLocked.yPrecision = fabsf(1.0f / mLocked.yScale); |
87 | |
88 | configureVirtualKeysLocked(); |
89 | } else { |
b2264797 |
90 | @@ -1489,7 +1513,7 @@ bool TouchInputMapper::configureSurfaceLocked() { |
34a1da07 |
91 | // Scale factor for terms that are not oriented in a particular axis. |
92 | // If the pixels are square then xScale == yScale otherwise we fake it |
93 | // by choosing an average. |
94 | - mLocked.geometricScale = avg(mLocked.xScale, mLocked.yScale); |
95 | + mLocked.geometricScale = avg(fabsf(mLocked.xScale), fabsf(mLocked.yScale)); |
96 | |
97 | // Size of diagonal axis. |
98 | float diagonalSize = pythag(width, height); |
b2264797 |
99 | diff --git a/frameworks/base/services/java/com/android/server/PowerManagerService.java b/frameworks/base/services/java/com/android/server/PowerManagerService.java |
100 | index 44eb228..9444fad 100644 |
101 | --- a/frameworks/base/services/java/com/android/server/PowerManagerService.java |
102 | +++ b/frameworks/base/services/java/com/android/server/PowerManagerService.java |
103 | @@ -766,7 +766,8 @@ class PowerManagerService extends IPowerManager.Stub |
104 | } |
105 | |
106 | private void updateWakeLockLocked() { |
107 | - if (mStayOnConditions != 0 && mBatteryService.isPowered(mStayOnConditions)) { |
108 | + /* pandora hack: screenoff breakage workaround */ |
109 | + if (true || mStayOnConditions != 0 && mBatteryService.isPowered(mStayOnConditions)) { |
110 | // keep the device on if we're plugged in and mStayOnWhilePluggedIn is set. |
111 | mStayOnWhilePluggedInScreenDimLock.acquire(); |
112 | mStayOnWhilePluggedInPartialLock.acquire(); |
34a1da07 |
113 | |
114 | project hardware/libhardware/ |
115 | diff --git a/hardware/libhardware/modules/gralloc/framebuffer.cpp b/hardware/libhardware/modules/gralloc/framebuffer.cpp |
116 | index fe57a8a..b5465e4 100644 |
117 | --- a/hardware/libhardware/modules/gralloc/framebuffer.cpp |
118 | +++ b/hardware/libhardware/modules/gralloc/framebuffer.cpp |
119 | @@ -109,6 +109,12 @@ static int fb_post(struct framebuffer_device_t* dev, buffer_handle_t buffer) |
120 | } |
121 | m->currentBuffer = buffer; |
122 | |
123 | +#ifndef FBIO_WAITFORVSYNC |
124 | +#define FBIO_WAITFORVSYNC _IOW ('F', 32, unsigned int) |
125 | +#endif |
126 | + int mode = 0; |
127 | + ioctl(m->framebuffer->fd, FBIO_WAITFORVSYNC, &mode); |
128 | + |
129 | } else { |
130 | // If we can't do the page_flip, just copy the buffer to the front |
131 | // FIXME: use copybit HAL instead of memcpy |
132 | |
b2264797 |
133 | project hardware/libhardware_legacy/ |
134 | diff --git a/hardware/libhardware_legacy/power/power.c b/hardware/libhardware_legacy/power/power.c |
135 | index bca52fc..2ffadfa 100644 |
136 | --- a/hardware/libhardware_legacy/power/power.c |
137 | +++ b/hardware/libhardware_legacy/power/power.c |
138 | @@ -254,6 +254,9 @@ set_screen_state(int on) |
139 | //LOGI("go_to_sleep eventTime=%lld now=%lld g_error=%s\n", eventTime, |
140 | // systemTime(), strerror(g_error)); |
141 | |
142 | + // pandora hack |
143 | + return 0; |
144 | + |
145 | if (g_error) return g_error; |
146 | |
147 | char buf[32]; |
148 | diff --git a/hardware/libhardware_legacy/wifi/wifi.c b/hardware/libhardware_legacy/wifi/wifi.c |
149 | index 167402b..4e03740 100644 |
150 | --- a/hardware/libhardware_legacy/wifi/wifi.c |
151 | +++ b/hardware/libhardware_legacy/wifi/wifi.c |
152 | @@ -695,17 +695,40 @@ int wifi_connect_to_supplicant() |
153 | return 0; |
154 | } |
155 | |
156 | +#include <sys/types.h> |
157 | +#include <sys/socket.h> |
158 | +#include <unistd.h> |
159 | +#include <sys/ioctl.h> |
160 | +#include <net/if.h> |
161 | + |
162 | int wifi_send_command(struct wpa_ctrl *ctrl, const char *cmd, char *reply, size_t *reply_len) |
163 | { |
164 | int ret; |
165 | |
166 | + int sock = socket(AF_INET, SOCK_DGRAM, 0); |
167 | + if (sock != -1) { |
168 | + struct ifreq ifr; |
169 | + memset(&ifr, 0, sizeof(ifr)); |
170 | + strcpy(ifr.ifr_name, "wlan0"); |
171 | + |
172 | + if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) { |
173 | + if (!(ifr.ifr_flags & IFF_UP)) { |
174 | + LOGE("wlan0 is down - attempting to bring up..\n"); |
175 | + ifr.ifr_flags |= IFF_UP; |
176 | + if (ioctl(sock, SIOCSIFFLAGS, &ifr) == 0) |
177 | + LOGE("wlan0 brought up\n"); |
178 | + } |
179 | + } |
180 | + close(sock); |
181 | + } |
182 | + |
183 | if (ctrl_conn == NULL) { |
184 | - LOGV("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd); |
185 | + LOGE("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd); |
186 | return -1; |
187 | } |
188 | ret = wpa_ctrl_request(ctrl, cmd, strlen(cmd), reply, reply_len, NULL); |
189 | if (ret == -2) { |
190 | - LOGD("'%s' command timed out.\n", cmd); |
191 | + LOGE("'%s' command timed out.\n", cmd); |
192 | return -2; |
193 | } else if (ret < 0 || strncmp(reply, "FAIL", 4) == 0) { |
194 | return -1; |
195 | |
196 | project packages/providers/MediaProvider/ |
197 | diff --git a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java |
198 | index 146966f..3938841 100644 |
199 | --- a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java |
200 | +++ b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java |
201 | @@ -3317,8 +3317,9 @@ public class MediaProvider extends ContentProvider { |
202 | Log.i(TAG, "External storage is not (yet) mounted, cannot attach volume."); |
203 | } |
204 | |
205 | - throw new IllegalArgumentException("Unable to obtain external storage volume ID for " + |
206 | - volume + " volume."); |
207 | + // pandora hack: ignore for now, like older Android did |
208 | + //throw new IllegalArgumentException("Unable to obtain external storage volume ID for " + |
209 | + // volume + " volume."); |
210 | } |
211 | |
212 | // generate database name based on volume ID |
213 | |
34a1da07 |
214 | project system/core/ |
b2264797 |
215 | diff --git a/system/core/init/devices.c b/system/core/init/devices.c |
216 | index 04f2caf..5affc06 100644 |
217 | --- a/system/core/init/devices.c |
218 | +++ b/system/core/init/devices.c |
219 | @@ -572,6 +572,9 @@ static void handle_firmware_event(struct uevent *uevent) |
220 | int status; |
221 | int ret; |
222 | |
223 | + // pandora hack: udev is handling this for us |
224 | + return; |
225 | + |
226 | if(strcmp(uevent->subsystem, "firmware")) |
227 | return; |
228 | |
34a1da07 |
229 | diff --git a/system/core/libsysutils/src/NetlinkListener.cpp b/system/core/libsysutils/src/NetlinkListener.cpp |
230 | index fb088e1..f99227c 100644 |
231 | --- a/system/core/libsysutils/src/NetlinkListener.cpp |
232 | +++ b/system/core/libsysutils/src/NetlinkListener.cpp |
233 | @@ -45,21 +45,21 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli) |
234 | } |
235 | |
236 | if ((snl.nl_groups != 1) || (snl.nl_pid != 0)) { |
237 | - SLOGE("ignoring non-kernel netlink multicast message"); |
238 | - return false; |
239 | + //SLOGE("ignoring non-kernel netlink multicast message"); |
240 | + return true; |
241 | } |
242 | |
243 | struct cmsghdr * cmsg = CMSG_FIRSTHDR(&hdr); |
244 | |
245 | if (cmsg == NULL || cmsg->cmsg_type != SCM_CREDENTIALS) { |
246 | SLOGE("ignoring message with no sender credentials"); |
247 | - return false; |
248 | + return true; |
249 | } |
250 | |
251 | struct ucred * cred = (struct ucred *)CMSG_DATA(cmsg); |
252 | if (cred->uid != 0) { |
253 | SLOGE("ignoring message from non-root UID %d", cred->uid); |
254 | - return false; |
255 | + return true; |
256 | } |
257 | |
258 | NetlinkEvent *evt = new NetlinkEvent(); |