diff --git a/adb/commandline.c b/adb/commandline.c
index 75f337b..973932f 100644
--- a/adb/commandline.c
+++ b/adb/commandline.c
@@ -1419,16 +1419,19 @@
         if (*argv[i] != '-') {
             file_arg = i;
             break;
+        } else if (!strcmp(argv[i], "-i")) {
+            // Skip the installer package name.
+            i++;
         } else if (!strcmp(argv[i], "-s")) {
             where = SD_DEST;
         }
     }
 
     if (file_arg < 0) {
-        fprintf(stderr, "can't find filename in arguments");
+        fprintf(stderr, "can't find filename in arguments\n");
         return 1;
     } else if (file_arg + 2 < argc) {
-        fprintf(stderr, "too many files specified; only takes APK file and verifier file");
+        fprintf(stderr, "too many files specified; only takes APK file and verifier file\n");
         return 1;
     }
 
diff --git a/adb/usb_vendors.c b/adb/usb_vendors.c
index a59431b..06f21dd 100644
--- a/adb/usb_vendors.c
+++ b/adb/usb_vendors.c
@@ -98,7 +98,7 @@
 // T & A Mobile Phones' USB Vendor ID
 #define VENDOR_ID_T_AND_A       0x1BBB
 // LenovoMobile's USB Vendor ID
-#define VENDOR_ID_LENOVOMOBILE        0x2006
+#define VENDOR_ID_LENOVOMOBILE  0x2006
 // Lenovo's USB Vendor ID
 #define VENDOR_ID_LENOVO        0x17EF
 // Vizio's USB Vendor ID
@@ -109,6 +109,8 @@
 #define VENDOR_ID_PEGATRON      0x1D4D
 // Archos's USB Vendor ID
 #define VENDOR_ID_ARCHOS        0x0E79
+// Positivo's USB Vendor ID
+#define VENDOR_ID_POSITIVO      0x1662
 
 
 /** built-in vendor list */
@@ -150,6 +152,7 @@
     VENDOR_ID_K_TOUCH,
     VENDOR_ID_PEGATRON,
     VENDOR_ID_ARCHOS,
+    VENDOR_ID_POSITIVO,
 };
 
 #define BUILT_IN_VENDOR_COUNT    (sizeof(builtInVendorIds)/sizeof(builtInVendorIds[0]))
diff --git a/charger/Android.mk b/charger/Android.mk
index ba21a9b..5367a98 100644
--- a/charger/Android.mk
+++ b/charger/Android.mk
@@ -1,5 +1,7 @@
 # Copyright 2011 The Android Open Source Project
 
+ifneq ($(BUILD_TINY_ANDROID),true)
+
 LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
@@ -44,3 +46,5 @@
 
 _add-charger-image :=
 _img_modules :=
+
+endif
diff --git a/rootdir/etc/init.goldfish.rc b/rootdir/etc/init.goldfish.rc
index 1ac09ca..83b7f8a 100644
--- a/rootdir/etc/init.goldfish.rc
+++ b/rootdir/etc/init.goldfish.rc
@@ -52,6 +52,18 @@
     group root
     oneshot
 
+# The qemu-props program is used to set various system
+# properties on boot. It must be run early during the boot
+# process to avoid race conditions with other daemons that
+# might read them (e.g. surface flinger), so define it in
+# class 'core'
+#
+service qemu-props /system/bin/qemu-props
+    class core
+    user root
+    group root
+    oneshot
+
 service qemud /system/bin/qemud
     socket qemud    stream 666
     oneshot
diff --git a/rootdir/etc/init.goldfish.sh b/rootdir/etc/init.goldfish.sh
index 1156dd7..ece75b4 100755
--- a/rootdir/etc/init.goldfish.sh
+++ b/rootdir/etc/init.goldfish.sh
@@ -57,10 +57,6 @@
     ;;
 esac
 
-# call 'qemu-props' to set system properties from the emulator.
-#
-/system/bin/qemu-props
-
 # set up the second interface (for inter-emulator connections)
 # if required
 my_ip=`getprop net.shared_net_ip`
