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