+project hardware/libhardware_legacy/
+diff --git a/hardware/libhardware_legacy/power/power.c b/hardware/libhardware_legacy/power/power.c
+index bca52fc..2ffadfa 100644
+--- a/hardware/libhardware_legacy/power/power.c
++++ b/hardware/libhardware_legacy/power/power.c
+@@ -254,6 +254,9 @@ set_screen_state(int on)
+ //LOGI("go_to_sleep eventTime=%lld now=%lld g_error=%s\n", eventTime,
+ // systemTime(), strerror(g_error));
+
++ // pandora hack
++ return 0;
++
+ if (g_error) return g_error;
+
+ char buf[32];
+diff --git a/hardware/libhardware_legacy/wifi/wifi.c b/hardware/libhardware_legacy/wifi/wifi.c
+index 167402b..4e03740 100644
+--- a/hardware/libhardware_legacy/wifi/wifi.c
++++ b/hardware/libhardware_legacy/wifi/wifi.c
+@@ -695,17 +695,40 @@ int wifi_connect_to_supplicant()
+ return 0;
+ }
+
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <unistd.h>
++#include <sys/ioctl.h>
++#include <net/if.h>
++
+ int wifi_send_command(struct wpa_ctrl *ctrl, const char *cmd, char *reply, size_t *reply_len)
+ {
+ int ret;
+
++ int sock = socket(AF_INET, SOCK_DGRAM, 0);
++ if (sock != -1) {
++ struct ifreq ifr;
++ memset(&ifr, 0, sizeof(ifr));
++ strcpy(ifr.ifr_name, "wlan0");
++
++ if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) {
++ if (!(ifr.ifr_flags & IFF_UP)) {
++ LOGE("wlan0 is down - attempting to bring up..\n");
++ ifr.ifr_flags |= IFF_UP;
++ if (ioctl(sock, SIOCSIFFLAGS, &ifr) == 0)
++ LOGE("wlan0 brought up\n");
++ }
++ }
++ close(sock);
++ }
++
+ if (ctrl_conn == NULL) {
+- LOGV("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd);
++ LOGE("Not connected to wpa_supplicant - \"%s\" command dropped.\n", cmd);
+ return -1;
+ }
+ ret = wpa_ctrl_request(ctrl, cmd, strlen(cmd), reply, reply_len, NULL);
+ if (ret == -2) {
+- LOGD("'%s' command timed out.\n", cmd);
++ LOGE("'%s' command timed out.\n", cmd);
+ return -2;
+ } else if (ret < 0 || strncmp(reply, "FAIL", 4) == 0) {
+ return -1;
+
+project packages/providers/MediaProvider/
+diff --git a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
+index 146966f..3938841 100644
+--- a/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
++++ b/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
+@@ -3317,8 +3317,9 @@ public class MediaProvider extends ContentProvider {
+ Log.i(TAG, "External storage is not (yet) mounted, cannot attach volume.");
+ }
+
+- throw new IllegalArgumentException("Unable to obtain external storage volume ID for " +
+- volume + " volume.");
++ // pandora hack: ignore for now, like older Android did
++ //throw new IllegalArgumentException("Unable to obtain external storage volume ID for " +
++ // volume + " volume.");
+ }
+
+ // generate database name based on volume ID
+