am 7908581b: am 5bff5517: Merge "Refresh the status bar clock format on user switch." into jb-mr1.1-dev

* commit '7908581bc023cc1bfe289e7e36fa965f1698cad6':
  Refresh the status bar clock format on user switch.
diff --git a/api/current.txt b/api/current.txt
index 345b862..6b893d5 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -23429,17 +23429,6 @@
     method public void set(T, V);
   }
 
-  public class PropertyValueModel extends android.util.ValueModel {
-    method public T get();
-    method public H getHost();
-    method public android.util.Property<H, T> getProperty();
-    method public java.lang.Class<T> getType();
-    method public static android.util.PropertyValueModel<H, T> of(H, android.util.Property<H, T>);
-    method public static android.util.PropertyValueModel<H, T> of(H, java.lang.Class<T>, java.lang.String);
-    method public static android.util.PropertyValueModel of(java.lang.Object, java.lang.String);
-    method public void set(T);
-  }
-
   public class SparseArray implements java.lang.Cloneable {
     ctor public SparseArray();
     ctor public SparseArray(int);
@@ -23588,14 +23577,6 @@
     field public int type;
   }
 
-  public abstract class ValueModel {
-    ctor protected ValueModel();
-    method public abstract T get();
-    method public abstract java.lang.Class<T> getType();
-    method public abstract void set(T);
-    field public static final android.util.ValueModel EMPTY;
-  }
-
   public class Xml {
     method public static android.util.AttributeSet asAttributeSet(org.xmlpull.v1.XmlPullParser);
     method public static android.util.Xml.Encoding findEncodingByName(java.lang.String) throws java.io.UnsupportedEncodingException;
@@ -27986,12 +27967,10 @@
     method public abstract void onSelectedDayChange(android.widget.CalendarView, int, int, int);
   }
 
-  public class CheckBox extends android.widget.CompoundButton implements android.widget.ValueEditor {
+  public class CheckBox extends android.widget.CompoundButton {
     ctor public CheckBox(android.content.Context);
     ctor public CheckBox(android.content.Context, android.util.AttributeSet);
     ctor public CheckBox(android.content.Context, android.util.AttributeSet, int);
-    method public android.util.ValueModel<java.lang.Boolean> getValueModel();
-    method public void setValueModel(android.util.ValueModel<java.lang.Boolean>);
   }
 
   public abstract interface Checkable {
@@ -28164,16 +28143,14 @@
     method public void setSize(int, int);
   }
 
-  public class EditText extends android.widget.TextView implements android.widget.ValueEditor {
+  public class EditText extends android.widget.TextView {
     ctor public EditText(android.content.Context);
     ctor public EditText(android.content.Context, android.util.AttributeSet);
     ctor public EditText(android.content.Context, android.util.AttributeSet, int);
     method public void extendSelection(int);
-    method public android.util.ValueModel<java.lang.CharSequence> getValueModel();
     method public void selectAll();
     method public void setSelection(int, int);
     method public void setSelection(int);
-    method public void setValueModel(android.util.ValueModel<java.lang.CharSequence>);
   }
 
   public abstract interface ExpandableListAdapter {
@@ -29198,13 +29175,11 @@
     method public abstract java.lang.Object[] getSections();
   }
 
-  public class SeekBar extends android.widget.AbsSeekBar implements android.widget.ValueEditor {
+  public class SeekBar extends android.widget.AbsSeekBar {
     ctor public SeekBar(android.content.Context);
     ctor public SeekBar(android.content.Context, android.util.AttributeSet);
     ctor public SeekBar(android.content.Context, android.util.AttributeSet, int);
-    method public android.util.ValueModel<java.lang.Integer> getValueModel();
     method public void setOnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener);
-    method public void setValueModel(android.util.ValueModel<java.lang.Integer>);
   }
 
   public static abstract interface SeekBar.OnSeekBarChangeListener {
@@ -29792,11 +29767,6 @@
     method public android.widget.TextView getText2();
   }
 
-  public abstract interface ValueEditor {
-    method public abstract android.util.ValueModel<T> getValueModel();
-    method public abstract void setValueModel(android.util.ValueModel<T>);
-  }
-
   public class VideoView extends android.view.SurfaceView implements android.widget.MediaController.MediaPlayerControl {
     ctor public VideoView(android.content.Context);
     ctor public VideoView(android.content.Context, android.util.AttributeSet);
diff --git a/cmds/content/src/com/android/commands/content/Content.java b/cmds/content/src/com/android/commands/content/Content.java
index 070e105..787fbdb 100644
--- a/cmds/content/src/com/android/commands/content/Content.java
+++ b/cmds/content/src/com/android/commands/content/Content.java
@@ -83,14 +83,14 @@
         + "  Example:\n"
         + "  # Change \"new_setting\" secure setting to \"newer_value\".\n"
         + "  adb shell content update --uri content://settings/secure --bind"
-                + " value:s:newer_value --where \"name=\\'new_setting\\'\"\n"
+                + " value:s:newer_value --where \"name=\'new_setting\'\"\n"
         + "\n"
         + "usage: adb shell content delete --uri <URI> [--user <USER_ID>] --bind <BINDING>"
                 + " [--bind <BINDING>...] [--where <WHERE>]\n"
         + "  Example:\n"
         + "  # Remove \"new_setting\" secure setting.\n"
         + "  adb shell content delete --uri content://settings/secure "
-                + "--where \"name=\\'new_setting\\'\"\n"
+                + "--where \"name=\'new_setting\'\"\n"
         + "\n"
         + "usage: adb shell content query --uri <URI> [--user <USER_ID>]"
                 + " [--projection <PROJECTION>] [--where <WHERE>] [--sort <SORT_ORDER>]\n"
@@ -101,7 +101,7 @@
         + "  # Select \"name\" and \"value\" columns from secure settings where \"name\" is "
                 + "equal to \"new_setting\" and sort the result by name in ascending order.\n"
         + "  adb shell content query --uri content://settings/secure --projection name:value"
-                + " --where \"name=\\'new_setting\\'\" --sort \"name ASC\"\n"
+                + " --where \"name=\'new_setting\'\" --sort \"name ASC\"\n"
         + "\n";
 
     private static class Parser {
diff --git a/cmds/input/src/com/android/commands/input/Input.java b/cmds/input/src/com/android/commands/input/Input.java
old mode 100755
new mode 100644
diff --git a/cmds/installd/Android.mk b/cmds/installd/Android.mk
index 3e722ea..1dd4ee5 100644
--- a/cmds/installd/Android.mk
+++ b/cmds/installd/Android.mk
@@ -29,17 +29,12 @@
     $(common_src_files)
 
 LOCAL_SHARED_LIBRARIES := \
-    libcutils
+    libcutils \
+    libselinux
 
 LOCAL_STATIC_LIBRARIES := \
     libdiskusage
 
-ifeq ($(HAVE_SELINUX),true)
-LOCAL_C_INCLUDES += external/libselinux/include
-LOCAL_SHARED_LIBRARIES += libselinux
-LOCAL_CFLAGS := -DHAVE_SELINUX
-endif # HAVE_SELINUX
-
 LOCAL_MODULE := installd
 
 LOCAL_MODULE_TAGS := optional
diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c
index 387f33d..2a54710 100644
--- a/cmds/installd/commands.c
+++ b/cmds/installd/commands.c
@@ -17,10 +17,7 @@
 #include <linux/capability.h>
 #include "installd.h"
 #include <diskusage/dirsize.h>
-
-#ifdef HAVE_SELINUX
 #include <selinux/android.h>
-#endif
 
 /* Directory records that are used in execution of commands. */
 dir_rec_t android_data_dir;
@@ -94,14 +91,12 @@
         return -1;
     }
 
-#ifdef HAVE_SELINUX
     if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) {
         ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno));
         unlink(libsymlink);
         unlink(pkgdir);
-        return -1;
+        return -errno;
     }
-#endif
 
     if (chown(pkgdir, uid, gid) < 0) {
         ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
@@ -250,21 +245,19 @@
         return -1;
     }
 
-    if (chown(pkgdir, uid, uid) < 0) {
-        ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
-        unlink(libsymlink);
-        unlink(pkgdir);
-        return -errno;
-    }
-
-#ifdef HAVE_SELINUX
     if (selinux_android_setfilecon(pkgdir, pkgname, uid) < 0) {
         ALOGE("cannot setfilecon dir '%s': %s\n", pkgdir, strerror(errno));
         unlink(libsymlink);
         unlink(pkgdir);
         return -errno;
     }
-#endif
+
+    if (chown(pkgdir, uid, uid) < 0) {
+        ALOGE("cannot chown dir '%s': %s\n", pkgdir, strerror(errno));
+        unlink(libsymlink);
+        unlink(pkgdir);
+        return -errno;
+    }
 
     return 0;
 }
diff --git a/cmds/installd/tests/Android.mk b/cmds/installd/tests/Android.mk
index 315acdb..c0192f4 100644
--- a/cmds/installd/tests/Android.mk
+++ b/cmds/installd/tests/Android.mk
@@ -18,13 +18,7 @@
     libgtest_main
 
 c_includes := \
-    frameworks/base/cmds/installd \
-    bionic \
-    bionic/libstdc++/include \
-    external/gtest/include \
-    external/stlport/stlport
-
-module_tags := eng tests
+    frameworks/base/cmds/installd
 
 $(foreach file,$(test_src_files), \
     $(eval include $(CLEAR_VARS)) \
@@ -33,6 +27,5 @@
     $(eval LOCAL_SRC_FILES := $(file)) \
     $(eval LOCAL_C_INCLUDES := $(c_includes)) \
     $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \
-    $(eval LOCAL_MODULE_TAGS := $(module_tags)) \
-    $(eval include $(BUILD_EXECUTABLE)) \
+    $(eval include $(BUILD_NATIVE_TEST)) \
 )
diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c
index 71e840e..c563a82 100644
--- a/cmds/servicemanager/service_manager.c
+++ b/cmds/servicemanager/service_manager.c
@@ -47,6 +47,7 @@
     { AID_RADIO, "simphonebook" },
     { AID_MEDIA, "common_time.clock" },
     { AID_MEDIA, "common_time.config" },
+    { AID_KEYSTORE, "android.security.keystore" },
 };
 
 void *svcmgr_handle;
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java
old mode 100755
new mode 100644
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index c136a4d..456d757 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -113,6 +113,7 @@
 import java.util.regex.Pattern;
 
 import libcore.io.DropBox;
+import libcore.io.EventLogger;
 import libcore.io.IoUtils;
 
 import dalvik.system.CloseGuard;
@@ -4978,6 +4979,13 @@
         }
     }
 
+    private static class EventLoggingReporter implements EventLogger.Reporter {
+        @Override
+        public void report (int code, Object... list) {
+            EventLog.writeEvent(code, list);
+        }
+    }
+
     private class DropBoxReporter implements DropBox.Reporter {
 
         private DropBoxManager dropBox;
@@ -5007,6 +5015,9 @@
 
         Environment.initForCurrentUser();
 
+        // Set the reporter for event logging in libcore
+        EventLogger.setReporter(new EventLoggingReporter());
+
         Process.setArgV0("<pre-initialized>");
 
         Looper.prepareMainLooper();
diff --git a/core/java/android/app/IAlarmManager.aidl b/core/java/android/app/IAlarmManager.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/app/IThumbnailReceiver.aidl b/core/java/android/app/IThumbnailReceiver.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
old mode 100755
new mode 100644
diff --git a/core/java/android/appwidget/AppWidgetProvider.java b/core/java/android/appwidget/AppWidgetProvider.java
old mode 100755
new mode 100644
diff --git a/core/java/android/content/IIntentReceiver.aidl b/core/java/android/content/IIntentReceiver.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/content/res/Configuration.aidl b/core/java/android/content/res/Configuration.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/content/res/ObbInfo.aidl b/core/java/android/content/res/ObbInfo.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
old mode 100755
new mode 100644
diff --git a/core/java/android/database/IContentObserver.aidl b/core/java/android/database/IContentObserver.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/ddm/package.html b/core/java/android/ddm/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/debug/package.html b/core/java/android/debug/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/Gesture.java b/core/java/android/gesture/Gesture.java
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/GestureOverlayView.java b/core/java/android/gesture/GestureOverlayView.java
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/GestureUtils.java b/core/java/android/gesture/GestureUtils.java
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/Instance.java b/core/java/android/gesture/Instance.java
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/Learner.java b/core/java/android/gesture/Learner.java
old mode 100755
new mode 100644
diff --git a/core/java/android/gesture/Prediction.java b/core/java/android/gesture/Prediction.java
old mode 100755
new mode 100644
diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java
index 0204e94..7375e7d 100644
--- a/core/java/android/hardware/SystemSensorManager.java
+++ b/core/java/android/hardware/SystemSensorManager.java
@@ -373,7 +373,8 @@
                         for (Sensor s : l.getSensors()) {
                             disableSensorLocked(s);
                         }
-                    } else if (l.removeSensor(sensor) == 0) {
+                    // Check if the ListenerDelegate has the sensor it is trying to unregister.
+                    } else if (l.hasSensor(sensor) && l.removeSensor(sensor) == 0) {
                         // if we have no more sensors enabled on this listener,
                         // take it off the list.
                         sListeners.remove(i);
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
old mode 100755
new mode 100644
diff --git a/core/java/android/net/Uri.aidl b/core/java/android/net/Uri.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/net/http/package.html b/core/java/android/net/http/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/net/package.html b/core/java/android/net/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/os/IHardwareService.aidl b/core/java/android/os/IHardwareService.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/os/IVibratorService.aidl b/core/java/android/os/IVibratorService.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/os/TokenWatcher.java b/core/java/android/os/TokenWatcher.java
old mode 100755
new mode 100644
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
old mode 100755
new mode 100644
diff --git a/core/java/android/security/IKeystoreService.java b/core/java/android/security/IKeystoreService.java
new file mode 100644
index 0000000..f8a49e6
--- /dev/null
+++ b/core/java/android/security/IKeystoreService.java
@@ -0,0 +1,505 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.security;
+
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.IInterface;
+import android.os.Parcel;
+import android.os.RemoteException;
+
+/**
+ * This must be kept manually in sync with system/security/keystore until AIDL
+ * can generate both Java and C++ bindings.
+ *
+ * @hide
+ */
+public interface IKeystoreService extends IInterface {
+    public static abstract class Stub extends Binder implements IKeystoreService {
+        private static class Proxy implements IKeystoreService {
+            private final IBinder mRemote;
+
+            Proxy(IBinder remote) {
+                mRemote = remote;
+            }
+
+            public IBinder asBinder() {
+                return mRemote;
+            }
+
+            public String getInterfaceDescriptor() {
+                return DESCRIPTOR;
+            }
+
+            public int test() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_test, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public byte[] get(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                byte[] _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_get, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.createByteArray();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int insert(String name, byte[] item) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeByteArray(item);
+                    mRemote.transact(Stub.TRANSACTION_insert, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int del(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_del, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int exist(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_exist, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public String[] saw(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                String[] _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_saw, _data, _reply, 0);
+                    _reply.readException();
+                    int size = _reply.readInt();
+                    _result = new String[size];
+                    for (int i = 0; i < size; i++) {
+                        _result[i] = _reply.readString();
+                    }
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            @Override
+            public int reset() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_reset, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int password(String password) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(password);
+                    mRemote.transact(Stub.TRANSACTION_password, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int lock() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_lock, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int unlock(String password) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(password);
+                    mRemote.transact(Stub.TRANSACTION_unlock, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            @Override
+            public int zero() throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    mRemote.transact(Stub.TRANSACTION_zero, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int generate(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_generate, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int import_key(String name, byte[] data) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeByteArray(data);
+                    mRemote.transact(Stub.TRANSACTION_import, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public byte[] sign(String name, byte[] data) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                byte[] _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeByteArray(data);
+                    mRemote.transact(Stub.TRANSACTION_sign, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.createByteArray();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int verify(String name, byte[] data, byte[] signature) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeByteArray(data);
+                    _data.writeByteArray(signature);
+                    mRemote.transact(Stub.TRANSACTION_verify, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public byte[] get_pubkey(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                byte[] _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_get_pubkey, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.createByteArray();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int del_key(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_del_key, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int grant(String name, int granteeUid) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeInt(granteeUid);
+                    mRemote.transact(Stub.TRANSACTION_grant, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            public int ungrant(String name, int granteeUid) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                int _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    _data.writeInt(granteeUid);
+                    mRemote.transact(Stub.TRANSACTION_ungrant, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readInt();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+
+            @Override
+            public long getmtime(String name) throws RemoteException {
+                Parcel _data = Parcel.obtain();
+                Parcel _reply = Parcel.obtain();
+                long _result;
+                try {
+                    _data.writeInterfaceToken(DESCRIPTOR);
+                    _data.writeString(name);
+                    mRemote.transact(Stub.TRANSACTION_getmtime, _data, _reply, 0);
+                    _reply.readException();
+                    _result = _reply.readLong();
+                } finally {
+                    _reply.recycle();
+                    _data.recycle();
+                }
+                return _result;
+            }
+        }
+
+        private static final String DESCRIPTOR = "android.security.keystore";
+
+        static final int TRANSACTION_test = IBinder.FIRST_CALL_TRANSACTION + 0;
+        static final int TRANSACTION_get = IBinder.FIRST_CALL_TRANSACTION + 1;
+        static final int TRANSACTION_insert = IBinder.FIRST_CALL_TRANSACTION + 2;
+        static final int TRANSACTION_del = IBinder.FIRST_CALL_TRANSACTION + 3;
+        static final int TRANSACTION_exist = IBinder.FIRST_CALL_TRANSACTION + 4;
+        static final int TRANSACTION_saw = IBinder.FIRST_CALL_TRANSACTION + 5;
+        static final int TRANSACTION_reset = IBinder.FIRST_CALL_TRANSACTION + 6;
+        static final int TRANSACTION_password = IBinder.FIRST_CALL_TRANSACTION + 7;
+        static final int TRANSACTION_lock = IBinder.FIRST_CALL_TRANSACTION + 8;
+        static final int TRANSACTION_unlock = IBinder.FIRST_CALL_TRANSACTION + 9;
+        static final int TRANSACTION_zero = IBinder.FIRST_CALL_TRANSACTION + 10;
+        static final int TRANSACTION_generate = IBinder.FIRST_CALL_TRANSACTION + 11;
+        static final int TRANSACTION_import = IBinder.FIRST_CALL_TRANSACTION + 12;
+        static final int TRANSACTION_sign = IBinder.FIRST_CALL_TRANSACTION + 13;
+        static final int TRANSACTION_verify = IBinder.FIRST_CALL_TRANSACTION + 14;
+        static final int TRANSACTION_get_pubkey = IBinder.FIRST_CALL_TRANSACTION + 15;
+        static final int TRANSACTION_del_key = IBinder.FIRST_CALL_TRANSACTION + 16;
+        static final int TRANSACTION_grant = IBinder.FIRST_CALL_TRANSACTION + 17;
+        static final int TRANSACTION_ungrant = IBinder.FIRST_CALL_TRANSACTION + 18;
+        static final int TRANSACTION_getmtime = IBinder.FIRST_CALL_TRANSACTION + 19;
+
+        /**
+         * Cast an IBinder object into an IKeystoreService interface, generating
+         * a proxy if needed.
+         */
+        public static IKeystoreService asInterface(IBinder obj) {
+            if (obj == null) {
+                return null;
+            }
+            IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
+            if (iin != null && iin instanceof IKeystoreService) {
+                return (IKeystoreService) iin;
+            }
+            return new IKeystoreService.Stub.Proxy(obj);
+        }
+
+        /** Construct the stub at attach it to the interface. */
+        public Stub() {
+            attachInterface(this, DESCRIPTOR);
+        }
+
+        public IBinder asBinder() {
+            return this;
+        }
+
+        @Override
+        public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
+                throws RemoteException {
+            switch (code) {
+                case INTERFACE_TRANSACTION: {
+                    reply.writeString(DESCRIPTOR);
+                    return true;
+                }
+                case TRANSACTION_test: {
+                    data.enforceInterface(DESCRIPTOR);
+                    int resultCode = test();
+                    reply.writeNoException();
+                    reply.writeInt(resultCode);
+                    return true;
+                }
+            }
+            return super.onTransact(code, data, reply, flags);
+        }
+    }
+
+    public int test() throws RemoteException;
+
+    public byte[] get(String name) throws RemoteException;
+
+    public int insert(String name, byte[] item) throws RemoteException;
+
+    public int del(String name) throws RemoteException;
+
+    public int exist(String name) throws RemoteException;
+
+    public String[] saw(String name) throws RemoteException;
+
+    public int reset() throws RemoteException;
+
+    public int password(String password) throws RemoteException;
+
+    public int lock() throws RemoteException;
+
+    public int unlock(String password) throws RemoteException;
+
+    public int zero() throws RemoteException;
+
+    public int generate(String name) throws RemoteException;
+
+    public int import_key(String name, byte[] data) throws RemoteException;
+
+    public byte[] sign(String name, byte[] data) throws RemoteException;
+
+    public int verify(String name, byte[] data, byte[] signature) throws RemoteException;
+
+    public byte[] get_pubkey(String name) throws RemoteException;
+
+    public int del_key(String name) throws RemoteException;
+
+    public int grant(String name, int granteeUid) throws RemoteException;
+
+    public int ungrant(String name, int granteeUid) throws RemoteException;
+
+    public long getmtime(String name) throws RemoteException;
+}
diff --git a/core/java/android/server/package.html b/core/java/android/server/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/speech/tts/ITextToSpeechCallback.aidl b/core/java/android/speech/tts/ITextToSpeechCallback.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/speech/tts/TextToSpeech.java b/core/java/android/speech/tts/TextToSpeech.java
old mode 100755
new mode 100644
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index 200b57b..5ef86b1 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -411,6 +411,9 @@
      * @throws android.util.TimeFormatException if s cannot be parsed.
      */
     public boolean parse(String s) {
+        if (s == null) {
+            throw new NullPointerException("time string is null");
+        }
         if (nativeParse(s)) {
             timezone = TIMEZONE_UTC;
             return true;
diff --git a/core/java/android/util/PropertyValueModel.java b/core/java/android/util/PropertyValueModel.java
deleted file mode 100755
index eb9c47d..0000000
--- a/core/java/android/util/PropertyValueModel.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-/**
- * A value model for a {@link Property property} of a host object. This class can be used for
- * both reflective and non-reflective property implementations.
- *
- * @param <H> the host type, where the host is the object that holds this property
- * @param <T> the value type
- *
- * @see Property
- * @see ValueModel
- */
-public class PropertyValueModel<H, T> extends ValueModel<T> {
-    private final H mHost;
-    private final Property<H, T> mProperty;
-
-    private PropertyValueModel(H host, Property<H, T> property) {
-        mProperty = property;
-        mHost = host;
-    }
-
-    /**
-     * Returns the host.
-     *
-     * @return the host
-     */
-    public H getHost() {
-        return mHost;
-    }
-
-    /**
-     * Returns the property.
-     *
-     * @return the property
-     */
-    public Property<H, T> getProperty() {
-        return mProperty;
-    }
-
-    @Override
-    public Class<T> getType() {
-        return mProperty.getType();
-    }
-
-    @Override
-    public T get() {
-        return mProperty.get(mHost);
-    }
-
-    @Override
-    public void set(T value) {
-        mProperty.set(mHost, value);
-    }
-
-    /**
-     * Return an appropriate PropertyValueModel for this host and property.
-     *
-     * @param host the host
-     * @param property the property
-     * @return the value model
-     */
-    public static <H, T> PropertyValueModel<H, T> of(H host, Property<H, T> property) {
-        return new PropertyValueModel<H, T>(host, property);
-    }
-
-    /**
-     * Return a PropertyValueModel for this {@code host} and a
-     * reflective property, constructed from this {@code propertyType} and {@code propertyName}.
-     *
-     * @param host
-     * @param propertyType the property type
-     * @param propertyName the property name
-     * @return a value model with this host and a reflective property with this type and name
-     *
-     * @see Property#of
-     */
-    public static <H, T> PropertyValueModel<H, T> of(H host, Class<T> propertyType,
-            String propertyName) {
-        return of(host, Property.of((Class<H>) host.getClass(), propertyType, propertyName));
-    }
-
-    private static Class getNullaryMethodReturnType(Class c, String name) {
-        try {
-            return c.getMethod(name).getReturnType();
-        } catch (NoSuchMethodException e) {
-            return null;
-        }
-    }
-
-    private static Class getFieldType(Class c, String name) {
-        try {
-            return c.getField(name).getType();
-        } catch (NoSuchFieldException e) {
-            return null;
-        }
-    }
-
-    private static String capitalize(String name) {
-        if (name.isEmpty()) {
-            return name;
-        }
-        return Character.toUpperCase(name.charAt(0)) + name.substring(1);
-    }
-
-    /**
-     * Return a PropertyValueModel for this {@code host} and and {@code propertyName}.
-     *
-     * @param host the host
-     * @param propertyName the property name
-     * @return a value model with this host and a reflective property with this name
-     */
-    public static PropertyValueModel of(Object host, String propertyName) {
-        Class clazz = host.getClass();
-        String suffix = capitalize(propertyName);
-        Class propertyType = getNullaryMethodReturnType(clazz, "get" + suffix);
-        if (propertyType == null) {
-            propertyType = getNullaryMethodReturnType(clazz, "is" + suffix);
-        } 
-        if (propertyType == null) {
-            propertyType = getFieldType(clazz, propertyName); 
-        }         
-        if (propertyType == null) {
-            throw new NoSuchPropertyException(propertyName); 
-        }
-        return of(host, propertyType, propertyName);
-    }
-}
diff --git a/core/java/android/util/ValueModel.java b/core/java/android/util/ValueModel.java
deleted file mode 100755
index 4789682..0000000
--- a/core/java/android/util/ValueModel.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.util;
-
-/**
- * A ValueModel is an abstraction for a 'slot' or place in memory in which a value
- * may be stored and retrieved. A common implementation of ValueModel is a regular property of
- * an object, whose value may be retrieved by calling the appropriate <em>getter</em>
- * method and set by calling the corresponding <em>setter</em> method.
- *
- * @param <T> the value type
- *
- * @see PropertyValueModel
- */
-public abstract class ValueModel<T> {
-    /**
-     * The empty model should be used in place of {@code null} to indicate that a
-     * model has not been set. The empty model has no value and does nothing when it is set.
-     */
-    public static final ValueModel EMPTY = new ValueModel() {
-        @Override
-        public Class getType() {
-            return Object.class;
-        }
-
-        @Override
-        public Object get() {
-            return null;
-        }
-
-        @Override
-        public void set(Object value) {
-
-        }
-    };
-
-    protected ValueModel() {
-    }
-
-    /**
-     * Returns the type of this property.
-     *
-     * @return the property type
-     */
-    public abstract Class<T> getType();
-
-    /**
-     * Returns the value of this property.
-     *
-     * @return the property value
-     */
-    public abstract T get();
-
-    /**
-     * Sets the value of this property.
-     *
-     * @param value the new value for this property
-     */
-    public abstract void set(T value);
-}
\ No newline at end of file
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
old mode 100755
new mode 100644
diff --git a/core/java/android/view/InputEvent.java b/core/java/android/view/InputEvent.java
old mode 100755
new mode 100644
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
old mode 100755
new mode 100644
diff --git a/core/java/android/view/OrientationEventListener.java b/core/java/android/view/OrientationEventListener.java
old mode 100755
new mode 100644
diff --git a/core/java/android/view/ViewStub.java b/core/java/android/view/ViewStub.java
index 69a26c2..a5dc3ae 100644
--- a/core/java/android/view/ViewStub.java
+++ b/core/java/android/view/ViewStub.java
@@ -212,7 +212,8 @@
     /**
      * When visibility is set to {@link #VISIBLE} or {@link #INVISIBLE},
      * {@link #inflate()} is invoked and this StubbedView is replaced in its parent
-     * by the inflated layout resource.
+     * by the inflated layout resource. After that calls to this function are passed
+     * through to the inflated view.
      *
      * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}.
      *
diff --git a/core/java/android/view/WindowManager.aidl b/core/java/android/view/WindowManager.aidl
old mode 100755
new mode 100644
diff --git a/core/java/android/view/WindowOrientationListener.java b/core/java/android/view/WindowOrientationListener.java
old mode 100755
new mode 100644
diff --git a/core/java/android/view/animation/package.html b/core/java/android/view/animation/package.html
old mode 100755
new mode 100644
diff --git a/core/java/android/webkit/DeviceMotionService.java b/core/java/android/webkit/DeviceMotionService.java
old mode 100755
new mode 100644
diff --git a/core/java/android/webkit/DeviceOrientationService.java b/core/java/android/webkit/DeviceOrientationService.java
old mode 100755
new mode 100644
diff --git a/core/java/android/webkit/GeolocationPermissions.java b/core/java/android/webkit/GeolocationPermissions.java
old mode 100755
new mode 100644
diff --git a/core/java/android/webkit/GeolocationPermissionsClassic.java b/core/java/android/webkit/GeolocationPermissionsClassic.java
old mode 100755
new mode 100644
diff --git a/core/java/android/webkit/GeolocationService.java b/core/java/android/webkit/GeolocationService.java
old mode 100755
new mode 100644
diff --git a/core/java/android/widget/AppSecurityPermissions.java b/core/java/android/widget/AppSecurityPermissions.java
old mode 100755
new mode 100644
diff --git a/core/java/android/widget/CheckBox.java b/core/java/android/widget/CheckBox.java
index 41ab5f2..f1804f8 100644
--- a/core/java/android/widget/CheckBox.java
+++ b/core/java/android/widget/CheckBox.java
@@ -20,7 +20,6 @@
 import android.util.AttributeSet;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
-import android.util.ValueModel;
 
 
 /**
@@ -56,9 +55,7 @@
  * {@link android.R.styleable#View View Attributes}
  * </p>
  */
-public class CheckBox extends CompoundButton implements ValueEditor<Boolean> {
-    private ValueModel<Boolean> mValueModel = ValueModel.EMPTY;
-
+public class CheckBox extends CompoundButton {
     public CheckBox(Context context) {
         this(context, null);
     }
@@ -82,22 +79,4 @@
         super.onInitializeAccessibilityNodeInfo(info);
         info.setClassName(CheckBox.class.getName());
     }
-
-    @Override
-    public ValueModel<Boolean> getValueModel() {
-        return mValueModel;
-    }
-
-    @Override
-    public void setValueModel(ValueModel<Boolean> valueModel) {
-        mValueModel = valueModel;
-        setChecked(mValueModel.get());
-    }
-
-    @Override
-    public boolean performClick() {
-        boolean handled = super.performClick();
-        mValueModel.set(isChecked());
-        return handled;
-    }
 }
diff --git a/core/java/android/widget/EditText.java b/core/java/android/widget/EditText.java
index ec81214..57e51c2 100644
--- a/core/java/android/widget/EditText.java
+++ b/core/java/android/widget/EditText.java
@@ -17,7 +17,6 @@
 package android.widget;
 
 import android.content.Context;
-import android.graphics.Rect;
 import android.text.Editable;
 import android.text.Selection;
 import android.text.Spannable;
@@ -25,7 +24,6 @@
 import android.text.method.ArrowKeyMovementMethod;
 import android.text.method.MovementMethod;
 import android.util.AttributeSet;
-import android.util.ValueModel;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
 
@@ -49,9 +47,7 @@
  * {@link android.R.styleable#TextView TextView Attributes},
  * {@link android.R.styleable#View View Attributes}
  */
-public class EditText extends TextView implements ValueEditor<CharSequence> {
-    private ValueModel<CharSequence> mValueModel = ValueModel.EMPTY;
-
+public class EditText extends TextView {
     public EditText(Context context) {
         this(context, null);
     }
@@ -132,21 +128,4 @@
         super.onInitializeAccessibilityNodeInfo(info);
         info.setClassName(EditText.class.getName());
     }
-
-    @Override
-    public ValueModel<CharSequence> getValueModel() {
-        return mValueModel;
-    }
-
-    @Override
-    public void setValueModel(ValueModel<CharSequence> valueModel) {
-        mValueModel = valueModel;
-        setText(mValueModel.get());
-    }
-
-    @Override
-    void sendAfterTextChanged(Editable text) {
-        super.sendAfterTextChanged(text);
-        mValueModel.set(text);
-    }
 }
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 03507b5..69e3177 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -2981,11 +2981,9 @@
             while (first.getBottom() < listTop) {
                 AbsListView.LayoutParams layoutParams = (LayoutParams) first.getLayoutParams();
                 if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) {
-                    detachViewFromParent(first);
                     recycleBin.addScrapView(first, mFirstPosition);
-                } else {
-                    removeViewInLayout(first);
                 }
+                detachViewFromParent(first);
                 first = getChildAt(0);
                 mFirstPosition++;
             }
@@ -3012,11 +3010,9 @@
             while (last.getTop() > listBottom) {
                 AbsListView.LayoutParams layoutParams = (LayoutParams) last.getLayoutParams();
                 if (recycleBin.shouldRecycleViewType(layoutParams.viewType)) {
-                    detachViewFromParent(last);
                     recycleBin.addScrapView(last, mFirstPosition+lastIndex);
-                } else {
-                    removeViewInLayout(last);
                 }
+                detachViewFromParent(last);
                 last = getChildAt(--lastIndex);
             }
         }
diff --git a/core/java/android/widget/SeekBar.java b/core/java/android/widget/SeekBar.java
index a6486a8..2737f94 100644
--- a/core/java/android/widget/SeekBar.java
+++ b/core/java/android/widget/SeekBar.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
-import android.util.ValueModel;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
 
@@ -34,7 +33,7 @@
  *
  * @attr ref android.R.styleable#SeekBar_thumb
  */
-public class SeekBar extends AbsSeekBar implements ValueEditor<Integer> {
+public class SeekBar extends AbsSeekBar {
 
     /**
      * A callback that notifies clients when the progress level has been
@@ -70,9 +69,8 @@
         void onStopTrackingTouch(SeekBar seekBar);
     }
 
-    private ValueModel<Integer> mValueModel = ValueModel.EMPTY;
     private OnSeekBarChangeListener mOnSeekBarChangeListener;
-
+    
     public SeekBar(Context context) {
         this(context, null);
     }
@@ -91,23 +89,9 @@
 
         if (mOnSeekBarChangeListener != null) {
             mOnSeekBarChangeListener.onProgressChanged(this, getProgress(), fromUser);
-            if (fromUser) {
-                mValueModel.set(getProgress());
-            }
         }
     }
 
-    @Override
-    public ValueModel<Integer> getValueModel() {
-        return mValueModel;
-    }
-
-    @Override
-    public void setValueModel(ValueModel<Integer> valueModel) {
-        mValueModel = valueModel;
-        setProgress(mValueModel.get());
-    }
-
     /**
      * Sets a listener to receive notifications of changes to the SeekBar's progress level. Also
      * provides notifications of when the user starts and stops a touch gesture within the SeekBar.
diff --git a/core/java/android/widget/ValueEditor.java b/core/java/android/widget/ValueEditor.java
deleted file mode 100755
index 2b91abf..0000000
--- a/core/java/android/widget/ValueEditor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.widget;
-
-import android.util.ValueModel;
-
-/**
- * An interface for editors of simple values. Classes implementing this interface are normally
- * UI controls (subclasses of {@link android.view.View View}) that can provide a suitable
- * user interface to display and edit values of the specified type. This interface is
- * intended to describe editors for simple types, like {@code boolean}, {@code int} or
- * {@code String}, where the values themselves are immutable.
- * <p>
- * For example, {@link android.widget.CheckBox CheckBox} implements
- * this interface for the Boolean type as it is capable of providing an appropriate
- * mechanism for displaying and changing the value of a Boolean property.
- *
- * @param <T> the value type that this editor supports
- */
-public interface ValueEditor<T> {
-    /**
-     * Return the last value model that was set. If no value model has been set, the editor
-     * should return the value {@link android.util.ValueModel#EMPTY}.
-     *
-     * @return the value model
-     */
-    public ValueModel<T> getValueModel();
-
-    /**
-     * Sets the value model for this editor. When the value model is set, the editor should
-     * retrieve the value from the value model, using {@link android.util.ValueModel#get()},
-     * and set its internal state accordingly. Likewise, when the editor's internal state changes
-     * it should update the value model by calling  {@link android.util.ValueModel#set(T)}
-     * with the appropriate value.
-     *
-     * @param valueModel the new value model for this editor.
-     */
-    public void setValueModel(ValueModel<T> valueModel);
-}
diff --git a/core/java/com/android/internal/app/IMediaContainerService.aidl b/core/java/com/android/internal/app/IMediaContainerService.aidl
old mode 100755
new mode 100644
diff --git a/core/java/com/android/internal/app/IUsageStats.aidl b/core/java/com/android/internal/app/IUsageStats.aidl
old mode 100755
new mode 100644
diff --git a/core/java/com/android/internal/app/NetInitiatedActivity.java b/core/java/com/android/internal/app/NetInitiatedActivity.java
old mode 100755
new mode 100644
diff --git a/core/java/com/android/internal/os/PkgUsageStats.aidl b/core/java/com/android/internal/os/PkgUsageStats.aidl
old mode 100755
new mode 100644
diff --git a/core/java/com/android/internal/os/PkgUsageStats.java b/core/java/com/android/internal/os/PkgUsageStats.java
old mode 100755
new mode 100644
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java
index 9f7441d..7189610 100644
--- a/core/java/com/android/internal/view/menu/MenuItemImpl.java
+++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -93,6 +93,7 @@
      */ 
     private ContextMenuInfo mMenuInfo;
     
+    private static String sLanguage;
     private static String sPrependShortcutLabel;
     private static String sEnterShortcutLabel;
     private static String sDeleteShortcutLabel;
@@ -114,7 +115,9 @@
     MenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering,
             CharSequence title, int showAsAction) {
 
-        if (sPrependShortcutLabel == null) {
+        String lang = menu.getContext().getResources().getConfiguration().locale.toString();
+        if (sPrependShortcutLabel == null || !lang.equals(sLanguage)) {
+            sLanguage = lang;
             // This is instantiated from the UI thread, so no chance of sync issues 
             sPrependShortcutLabel = menu.getContext().getResources().getString(
                     com.android.internal.R.string.prepend_shortcut_label);
diff --git a/core/jni/Android.mk b/core/jni/Android.mk
index 3ca085b..9b95be1 100644
--- a/core/jni/Android.mk
+++ b/core/jni/Android.mk
@@ -11,10 +11,6 @@
 	LOCAL_CFLAGS += -DPACKED=""
 endif
 
-ifeq ($(WITH_JIT),true)
-	LOCAL_CFLAGS += -DWITH_JIT
-endif
-
 ifneq ($(USE_CUSTOM_RUNTIME_HEAP_MAX),)
   LOCAL_CFLAGS += -DCUSTOM_RUNTIME_HEAP_MAX=$(USE_CUSTOM_RUNTIME_HEAP_MAX)
 endif
@@ -200,6 +196,7 @@
 	libETC1 \
 	libhardware \
 	libhardware_legacy \
+	libselinux \
 	libsonivox \
 	libcrypto \
 	libssl \
@@ -213,12 +210,6 @@
 	libharfbuzz \
 	libz
 
-ifeq ($(HAVE_SELINUX),true)
-LOCAL_C_INCLUDES += external/libselinux/include
-LOCAL_SHARED_LIBRARIES += libselinux
-LOCAL_CFLAGS += -DHAVE_SELINUX
-endif # HAVE_SELINUX
-
 ifeq ($(USE_OPENGL_RENDERER),true)
 	LOCAL_SHARED_LIBRARIES += libhwui
 endif
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 9820e60..94324f8 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -465,9 +465,7 @@
       kEMDefault,
       kEMIntPortable,
       kEMIntFast,
-#if defined(WITH_JIT)
       kEMJitCompiler,
-#endif
     } executionMode = kEMDefault;
 
 
@@ -487,10 +485,8 @@
         executionMode = kEMIntPortable;
     } else if (strcmp(propBuf, "int:fast") == 0) {
         executionMode = kEMIntFast;
-#if defined(WITH_JIT)
     } else if (strcmp(propBuf, "int:jit") == 0) {
         executionMode = kEMJitCompiler;
-#endif
     }
 
     property_get("dalvik.vm.stack-trace-file", stackTraceFileBuf, "");
@@ -660,7 +656,6 @@
       mOptions.add(opt);
     }
 
-#if defined(WITH_JIT)
     /* Force interpreter-only mode for selected opcodes. Eg "1-0a,3c,f1-ff" */
     char jitOpBuf[sizeof("-Xjitop:") + PROPERTY_VALUE_MAX];
     property_get("dalvik.vm.jit.op", propBuf, "");
@@ -680,7 +675,6 @@
         opt.optionString = jitMethodBuf;
         mOptions.add(opt);
     }
-#endif
 
     if (executionMode == kEMIntPortable) {
         opt.optionString = "-Xint:portable";
@@ -688,11 +682,9 @@
     } else if (executionMode == kEMIntFast) {
         opt.optionString = "-Xint:fast";
         mOptions.add(opt);
-#if defined(WITH_JIT)
     } else if (executionMode == kEMJitCompiler) {
         opt.optionString = "-Xint:jit";
         mOptions.add(opt);
-#endif
     }
 
     if (checkDexSum) {
diff --git a/core/jni/android_os_SELinux.cpp b/core/jni/android_os_SELinux.cpp
index e813c38..b12fdfc 100644
--- a/core/jni/android_os_SELinux.cpp
+++ b/core/jni/android_os_SELinux.cpp
@@ -20,10 +20,8 @@
 #include "JNIHelp.h"
 #include "jni.h"
 #include "android_runtime/AndroidRuntime.h"
-#ifdef HAVE_SELINUX
 #include "selinux/selinux.h"
 #include "selinux/android.h"
-#endif
 #include <errno.h>
 
 namespace android {
@@ -56,11 +54,7 @@
    * Exceptions: none
    */
   static jboolean isSELinuxEnforced(JNIEnv *env, jobject clazz) {
-#ifdef HAVE_SELINUX
     return (security_getenforce() == 1) ? true : false;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -71,16 +65,12 @@
    * Exceptions: none
    */
   static jboolean setSELinuxEnforce(JNIEnv *env, jobject clazz, jboolean value) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return false;
 
     int enforce = (value) ? 1 : 0;
 
     return (security_setenforce(enforce) != -1) ? true : false;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -92,7 +82,6 @@
    * Exceptions: NullPointerException if fileDescriptor object is NULL
    */
   static jstring getPeerCon(JNIEnv *env, jobject clazz, jobject fileDescriptor) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return NULL;
 
@@ -123,9 +112,6 @@
       freecon(context);
 
     return securityString;
-#else
-    return NULL;
-#endif
   }
 
   /*
@@ -138,7 +124,6 @@
    * Exception: none
    */
   static jboolean setFSCreateCon(JNIEnv *env, jobject clazz, jstring context) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return false;
 
@@ -163,9 +148,6 @@
       env->ReleaseStringUTFChars(context, constant_securityContext);
 
     return (ret == 0) ? true : false;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -178,7 +160,6 @@
    * Exception: NullPointerException is thrown if either path or context strign are NULL
    */
   static jboolean setFileCon(JNIEnv *env, jobject clazz, jstring path, jstring con) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return false;
 
@@ -208,9 +189,6 @@
     env->ReleaseStringUTFChars(path, objectPath);
     env->ReleaseStringUTFChars(con, constant_con);
     return (ret == 0) ? true : false;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -224,7 +202,6 @@
    * Exceptions: NullPointerException if the path object is null
    */
   static jstring getFileCon(JNIEnv *env, jobject clazz, jstring path) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return NULL;
 
@@ -252,9 +229,6 @@
     env->ReleaseStringUTFChars(path, objectPath);
 
     return securityString;
-#else
-    return NULL;
-#endif
   }
 
   /*
@@ -266,7 +240,6 @@
    * Exceptions: none
    */
   static jstring getCon(JNIEnv *env, jobject clazz) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return NULL;
 
@@ -285,9 +258,6 @@
       freecon(context);
 
     return securityString;
-#else
-    return NULL;
-#endif
   }
 
   /*
@@ -300,7 +270,6 @@
    * Exceptions: none
    */
   static jstring getPidCon(JNIEnv *env, jobject clazz, jint pid) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return NULL;
 
@@ -321,9 +290,6 @@
       freecon(context);
 
     return securityString;
-#else
-    return NULL;
-#endif
   }
 
   /*
@@ -335,7 +301,6 @@
    * Exceptions: None
    */
   static jobjectArray getBooleanNames(JNIEnv *env, JNIEnv clazz) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return NULL;
 
@@ -359,9 +324,6 @@
     free(list);
 
     return stringArray;
-#else
-    return NULL;
-#endif
   }
 
   /*
@@ -373,7 +335,6 @@
    * Exceptions: None
    */
   static jboolean getBooleanValue(JNIEnv *env, jobject clazz, jstring name) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return false;
 
@@ -386,9 +347,6 @@
     ret = security_get_boolean_active(boolean_name);
     env->ReleaseStringUTFChars(name, boolean_name);
     return (ret == 1) ? true : false;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -401,7 +359,6 @@
    * Exceptions: None
    */
   static jboolean setBooleanValue(JNIEnv *env, jobject clazz, jstring name, jboolean value) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return false;
 
@@ -420,9 +377,6 @@
       return false;
 
     return true;
-#else
-    return false;
-#endif
   }
 
   /*
@@ -436,7 +390,6 @@
    * Exceptions: None
    */
   static jboolean checkSELinuxAccess(JNIEnv *env, jobject clazz, jstring scon, jstring tcon, jstring tclass, jstring perm) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return true;
 
@@ -468,10 +421,6 @@
 
   bail:
     return (accessGranted == 0) ? true : false;
-
-#else
-    return true;
-#endif
   }
 
   /*
@@ -482,7 +431,6 @@
    * Exceptions: none
    */
   static jboolean native_restorecon(JNIEnv *env, jobject clazz, jstring pathname) {
-#ifdef HAVE_SELINUX
     if (isSELinuxDisabled)
       return true;
 
@@ -490,9 +438,6 @@
     int ret = selinux_android_restorecon(file);
     env->ReleaseStringUTFChars(pathname, file);
     return (ret == 0);
-#else
-    return true;
-#endif
   }
 
   /*
@@ -526,14 +471,12 @@
   }
 
   int register_android_os_SELinux(JNIEnv *env) {
-#ifdef HAVE_SELINUX
     union selinux_callback cb;
     cb.func_log = log_callback;
     selinux_set_callback(SELINUX_CB_LOG, cb);
 
     isSELinuxDisabled = (is_selinux_enabled() != 1) ? true : false;
 
-#endif
     return AndroidRuntime::registerNativeMethods(
          env, "android/os/SELinux",
          method_table, NELEM(method_table));
diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp
index 0a59ae7..aa2c5f39 100644
--- a/core/jni/android_text_format_Time.cpp
+++ b/core/jni/android_text_format_Time.cpp
@@ -23,6 +23,7 @@
 #include "jni.h"
 #include "utils/misc.h"
 #include "android_runtime/AndroidRuntime.h"
+#include "ScopedStringChars.h"
 #include "TimeUtils.h"
 #include <nativehelper/JNIHelp.h>
 #include <cutils/tztime.h>
@@ -71,11 +72,10 @@
     t->t.tm_gmtoff = env->GetLongField(o, g_gmtoffField);
     bool allDay = env->GetBooleanField(o, g_allDayField);
     if (allDay &&
-	((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) {
-        char msg[100];
-	sprintf(msg, "allDay is true but sec, min, hour are not 0.");
-	jniThrowException(env, "java/lang/IllegalArgumentException", msg);
-	return false;
+       ((t->t.tm_sec !=0) || (t->t.tm_min != 0) || (t->t.tm_hour != 0))) {
+        jniThrowException(env, "java/lang/IllegalArgumentException",
+                          "allDay is true but sec, min, hour are not 0.");
+        return false;
     }
     return true;
 }
@@ -313,7 +313,7 @@
 static jstring android_text_format_Time_toString(JNIEnv* env, jobject This)
 {
     Time t;
-    if (!java2time(env, &t, This)) return env->NewStringUTF("");;
+    if (!java2time(env, &t, This)) return env->NewStringUTF("");
     ACQUIRE_TIMEZONE(This, t)
 
     String8 r = t.toString();
@@ -365,32 +365,30 @@
 // ============================================================================
 // Just do this here because it's not worth recreating the strings
 
-static int get_char(JNIEnv* env, const jchar *s, int spos, int mul,
-                    bool *thrown)
+static int get_char(JNIEnv* env, const ScopedStringChars& s, int spos, int mul,
+                    bool* thrown)
 {
     jchar c = s[spos];
     if (c >= '0' && c <= '9') {
         return (c - '0') * mul;
     } else {
         if (!*thrown) {
-            char msg[100];
-            sprintf(msg, "Parse error at pos=%d", spos);
-            jniThrowException(env, "android/util/TimeFormatException", msg);
+            jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+                                 "Parse error at pos=%d", spos);
             *thrown = true;
         }
         return 0;
     }
 }
 
-static bool check_char(JNIEnv* env, const jchar *s, int spos, jchar expected)
+static bool check_char(JNIEnv* env, const ScopedStringChars& s, int spos, jchar expected)
 {
     jchar c = s[spos];
     if (c != expected) {
-        char msg[100];
-	sprintf(msg, "Unexpected character 0x%02x at pos=%d.  Expected %c.", c, spos,
-		expected);
-	jniThrowException(env, "android/util/TimeFormatException", msg);
-	return false;
+        jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+                             "Unexpected character 0x%02x at pos=%d.  Expected %c.",
+                             c, spos, expected);
+        return false;
     }
     return true;
 }
@@ -399,20 +397,19 @@
 static jboolean android_text_format_Time_parse(JNIEnv* env, jobject This, jstring strObj)
 {
     jsize len = env->GetStringLength(strObj);
-    const jchar *s = env->GetStringChars(strObj, NULL);
-
-    bool thrown = false;
-    int n;
-    jboolean inUtc = false;
-
     if (len < 8) {
-        char msg[100];
-        sprintf(msg, "String too short -- expected at least 8 characters.");
-	jniThrowException(env, "android/util/TimeFormatException", msg);
-	return false;
+        jniThrowException(env, "android/util/TimeFormatException",
+                          "String too short -- expected at least 8 characters.");
+        return false;
     }
 
+    jboolean inUtc = false;
+
+    ScopedStringChars s(env, strObj);
+
     // year
+    int n;
+    bool thrown = false;
     n = get_char(env, s, 0, 1000, &thrown);
     n += get_char(env, s, 1, 100, &thrown);
     n += get_char(env, s, 2, 10, &thrown);
@@ -459,7 +456,7 @@
         if (len > 15) {
             // Z
             if (!check_char(env, s, 15, 'Z')) return false;
-	    inUtc = true;
+            inUtc = true;
         }
     } else {
         env->SetBooleanField(This, g_allDayField, JNI_TRUE);
@@ -472,8 +469,7 @@
     env->SetIntField(This, g_ydayField, 0);
     env->SetIntField(This, g_isdstField, -1);
     env->SetLongField(This, g_gmtoffField, 0);
-    
-    env->ReleaseStringChars(strObj, s);
+
     return inUtc;
 }
 
@@ -482,19 +478,19 @@
                                            jstring strObj)
 {
     jsize len = env->GetStringLength(strObj);
-    const jchar *s = env->GetStringChars(strObj, NULL);
-
-    bool thrown = false;
-    int n;
-    jboolean inUtc = false;
-
     if (len < 10) {
         jniThrowException(env, "android/util/TimeFormatException",
-                "Time input is too short; must be at least 10 characters");
+                          "String too short --- expected at least 10 characters.");
         return false;
     }
 
+    jboolean inUtc = false;
+
+    ScopedStringChars s(env, strObj);
+
     // year
+    int n;
+    bool thrown = false;
     n = get_char(env, s, 0, 1000, &thrown);    
     n += get_char(env, s, 1, 100, &thrown);
     n += get_char(env, s, 2, 10, &thrown);
@@ -525,28 +521,28 @@
         // T
         if (!check_char(env, s, 10, 'T')) return false;
 
-	env->SetBooleanField(This, g_allDayField, JNI_FALSE);
+        env->SetBooleanField(This, g_allDayField, JNI_FALSE);
         // hour
         n = get_char(env, s, 11, 10, &thrown);
         n += get_char(env, s, 12, 1, &thrown);
         if (thrown) return false;
-	int hour = n;
+        int hour = n;
         // env->SetIntField(This, g_hourField, n);
-	
-	// :
-	if (!check_char(env, s, 13, ':')) return false;
 
-	// minute
+        // :
+        if (!check_char(env, s, 13, ':')) return false;
+
+        // minute
         n = get_char(env, s, 14, 10, &thrown);
         n += get_char(env, s, 15, 1, &thrown);
         if (thrown) return false;
-	int minute = n;
+        int minute = n;
         // env->SetIntField(This, g_minField, n);
 
-	// :
-	if (!check_char(env, s, 16, ':')) return false;
+        // :
+        if (!check_char(env, s, 16, ':')) return false;
 
-	// second
+        // second
         n = get_char(env, s, 17, 10, &thrown);
         n += get_char(env, s, 18, 1, &thrown);
         if (thrown) return false;
@@ -566,64 +562,63 @@
         if (len > tz_index) {
             char c = s[tz_index];
 
-	    // NOTE: the offset is meant to be subtracted to get from local time
-	    // to UTC.  we therefore use 1 for '-' and -1 for '+'.
-	    switch (c) {
-	    case 'Z':
-	        // Zulu time -- UTC
-	        offset = 0;
-		break;
-	    case '-': 
+            // NOTE: the offset is meant to be subtracted to get from local time
+            // to UTC.  we therefore use 1 for '-' and -1 for '+'.
+            switch (c) {
+            case 'Z':
+                // Zulu time -- UTC
+                offset = 0;
+                break;
+            case '-': 
                 offset = 1;
-	        break;
-	    case '+': 
+                break;
+            case '+': 
                 offset = -1;
-	        break;
-	    default:
-	        char msg[100];
-	        sprintf(msg, "Unexpected character 0x%02x at position %d.  Expected + or -",
-			c, tz_index);
-	        jniThrowException(env, "android/util/TimeFormatException", msg);
-	        return false;
-	    }
+                break;
+            default:
+                jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+                                     "Unexpected character 0x%02x at position %d.  Expected + or -",
+                                     c, tz_index);
+                return false;
+            }
             inUtc = true;
 
-	    if (offset != 0) {
-	        if (len < tz_index + 6) {
-	            char msg[100];
-	            sprintf(msg, "Unexpected length; should be %d characters", tz_index + 6);
-	            jniThrowException(env, "android/util/TimeFormatException", msg);
-	            return false;
-	        }
+            if (offset != 0) {
+                if (len < tz_index + 6) {
+                    jniThrowExceptionFmt(env, "android/util/TimeFormatException",
+                                         "Unexpected length; should be %d characters",
+                                         tz_index + 6);
+                    return false;
+                }
 
-	        // hour
-	        n = get_char(env, s, tz_index + 1, 10, &thrown);
-		n += get_char(env, s, tz_index + 2, 1, &thrown);
-		if (thrown) return false;
-		n *= offset;
-		hour += n;
+                // hour
+                n = get_char(env, s, tz_index + 1, 10, &thrown);
+                n += get_char(env, s, tz_index + 2, 1, &thrown);
+                if (thrown) return false;
+                n *= offset;
+                hour += n;
 
-		// :
-		if (!check_char(env, s, tz_index + 3, ':')) return false;
-	    
-		// minute
-		n = get_char(env, s, tz_index + 4, 10, &thrown);
-		n += get_char(env, s, tz_index + 5, 1, &thrown);
-		if (thrown) return false;
-		n *= offset;
-		minute += n;
-	    }
-	}
-	env->SetIntField(This, g_hourField, hour);
+                // :
+                if (!check_char(env, s, tz_index + 3, ':')) return false;
+            
+                // minute
+                n = get_char(env, s, tz_index + 4, 10, &thrown);
+                n += get_char(env, s, tz_index + 5, 1, &thrown);
+                if (thrown) return false;
+                n *= offset;
+                minute += n;
+            }
+        }
+        env->SetIntField(This, g_hourField, hour);
         env->SetIntField(This, g_minField, minute);
 
-	if (offset != 0) {
-	    // we need to normalize after applying the hour and minute offsets
-	    android_text_format_Time_normalize(env, This, false /* use isdst */);
-	    // The timezone is set to UTC in the calling Java code.
-	}
+        if (offset != 0) {
+            // we need to normalize after applying the hour and minute offsets
+            android_text_format_Time_normalize(env, This, false /* use isdst */);
+            // The timezone is set to UTC in the calling Java code.
+        }
     } else {
-	env->SetBooleanField(This, g_allDayField, JNI_TRUE);
+        env->SetBooleanField(This, g_allDayField, JNI_TRUE);
         env->SetIntField(This, g_hourField, 0);
         env->SetIntField(This, g_minField, 0);
         env->SetIntField(This, g_secField, 0);
@@ -633,8 +628,7 @@
     env->SetIntField(This, g_ydayField, 0);
     env->SetIntField(This, g_isdstField, -1);
     env->SetLongField(This, g_gmtoffField, 0);
-    
-    env->ReleaseStringChars(strObj, s);
+
     return inUtc;
 }
 
diff --git a/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png b/core/res/res/drawable-en-hdpi/sym_keyboard_delete.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_disable.png b/core/res/res/drawable-hdpi/btn_circle_disable.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_disable_focused.png b/core/res/res/drawable-hdpi/btn_circle_disable_focused.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_normal.png b/core/res/res/drawable-hdpi/btn_circle_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_pressed.png b/core/res/res/drawable-hdpi/btn_circle_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_circle_selected.png b/core/res/res/drawable-hdpi/btn_circle_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_normal.png b/core/res/res/drawable-hdpi/btn_close_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_pressed.png b/core/res/res/drawable-hdpi/btn_close_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_close_selected.png b/core/res/res/drawable-hdpi/btn_close_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal.9.png b/core/res/res/drawable-hdpi/btn_default_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_normal_disable_focused.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_selected.9.png b/core/res/res/drawable-hdpi/btn_default_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png b/core/res/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png b/core/res/res/drawable-hdpi/btn_default_small_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_small_selected.9.png b/core/res/res/drawable-hdpi/btn_default_small_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_disable.png b/core/res/res/drawable-hdpi/btn_dialog_disable.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_normal.png b/core/res/res/drawable-hdpi/btn_dialog_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_pressed.png b/core/res/res/drawable-hdpi/btn_dialog_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dialog_selected.png b/core/res/res/drawable-hdpi/btn_dialog_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png b/core/res/res/drawable-hdpi/btn_dropdown_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png b/core/res/res/drawable-hdpi/btn_dropdown_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png b/core/res/res/drawable-hdpi/btn_dropdown_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off.png b/core/res/res/drawable-hdpi/btn_radio_off.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_selected.png b/core/res/res/drawable-hdpi/btn_radio_off_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on.png b/core/res/res/drawable-hdpi/btn_radio_on.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_selected.png b/core/res/res/drawable-hdpi/btn_radio_on_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/contact_header_bg.9.png b/core/res/res/drawable-hdpi/contact_header_bg.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png b/core/res/res/drawable-hdpi/ic_btn_round_more_disabled.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png b/core/res/res/drawable-hdpi/ic_btn_round_more_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_2.png b/core/res/res/drawable-hdpi/ic_contact_picture_2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_contact_picture_3.png b/core/res/res/drawable-hdpi/ic_contact_picture_3.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_off.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png b/core/res/res/drawable-hdpi/ic_jog_dial_sound_on.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-hdpi/ic_jog_dial_unlock.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_settings_language.png b/core/res/res/drawable-hdpi/ic_settings_language.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_left_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_middle_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_red.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-hdpi/jog_dial_arrow_long_right_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_left_and_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-hdpi/jog_dial_arrow_short_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_bg.png b/core/res/res/drawable-hdpi/jog_dial_bg.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_dial_dimple.png b/core/res/res/drawable-hdpi/jog_dial_dimple.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_gray.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_red.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_left_confirm_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_left_pressed.png b/core/res/res/drawable-hdpi/jog_tab_left_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_gray.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_red.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-hdpi/jog_tab_right_confirm_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/jog_tab_right_pressed.png b/core/res/res/drawable-hdpi/jog_tab_right_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate1.png b/core/res/res/drawable-hdpi/progressbar_indeterminate1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate2.png b/core/res/res/drawable-hdpi/progressbar_indeterminate2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/progressbar_indeterminate3.png b/core/res/res/drawable-hdpi/progressbar_indeterminate3.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_notify_more.png b/core/res/res/drawable-hdpi/stat_notify_more.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_10.png b/core/res/res/drawable-hdpi/stat_sys_battery_10.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_20.png b/core/res/res/drawable-hdpi/stat_sys_battery_20.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_40.png b/core/res/res/drawable-hdpi/stat_sys_battery_40.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_60.png b/core/res/res/drawable-hdpi/stat_sys_battery_60.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_80.png b/core/res/res/drawable-hdpi/stat_sys_battery_80.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim3.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim4.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png b/core/res/res/drawable-hdpi/stat_sys_battery_charge_anim5.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_phone_call.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_forward.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_phone_call_on_hold.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_r_signal_3_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_0_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_1_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_2_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_ra_signal_4_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_0_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_1_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_2_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_3_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png b/core/res/res/drawable-hdpi/stat_sys_signal_4_cdma.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_0.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_3.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png b/core/res/res/drawable-hdpi/stat_sys_signal_evdo_4.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png b/core/res/res/drawable-hdpi/stat_sys_vp_phone_call_on_hold.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_delete.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_return.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_shift_locked.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png b/core/res/res/drawable-hdpi/sym_keyboard_feedback_space.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_return.png b/core/res/res/drawable-hdpi/sym_keyboard_return.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift.png b/core/res/res/drawable-hdpi/sym_keyboard_shift.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png b/core/res/res/drawable-hdpi/sym_keyboard_shift_locked.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/sym_keyboard_space.png b/core/res/res/drawable-hdpi/sym_keyboard_space.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_default.9.png b/core/res/res/drawable-hdpi/textfield_default.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_disabled.9.png b/core/res/res/drawable-hdpi/textfield_disabled.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png b/core/res/res/drawable-hdpi/textfield_disabled_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-hdpi/textfield_selected.9.png b/core/res/res/drawable-hdpi/textfield_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png b/core/res/res/drawable-ldpi/tab_focus_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_press_bar_left.9.png b/core/res/res/drawable-ldpi/tab_press_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_press_bar_right.9.png b/core/res/res/drawable-ldpi/tab_press_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png b/core/res/res/drawable-ldpi/tab_selected_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_off.png b/core/res/res/drawable-mdpi/btn_check_buttonless_off.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_buttonless_on.png b/core/res/res/drawable-mdpi/btn_check_buttonless_on.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_disable.png b/core/res/res/drawable-mdpi/btn_dialog_disable.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_normal.png b/core/res/res/drawable-mdpi/btn_dialog_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_pressed.png b/core/res/res/drawable-mdpi/btn_dialog_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_dialog_selected.png b/core/res/res/drawable-mdpi/btn_dialog_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_default.9.png b/core/res/res/drawable-mdpi/btn_erase_default.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_pressed.9.png b/core/res/res/drawable-mdpi/btn_erase_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_erase_selected.9.png b/core/res/res/drawable-mdpi/btn_erase_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png b/core/res/res/drawable-mdpi/btn_keyboard_key_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player.9.png b/core/res/res/drawable-mdpi/btn_media_player.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_disabled_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png b/core/res/res/drawable-mdpi/btn_media_player_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_media_player_selected.9.png b/core/res/res/drawable-mdpi/btn_media_player_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off.png b/core/res/res/drawable-mdpi/btn_star_big_off.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_off_disable_focused.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_off_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_off_selected.png b/core/res/res/drawable-mdpi/btn_star_big_off_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on.png b/core/res/res/drawable-mdpi/btn_star_big_on.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png b/core/res/res/drawable-mdpi/btn_star_big_on_disable_focused.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png b/core/res/res/drawable-mdpi/btn_star_big_on_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_big_on_selected.png b/core/res/res/drawable-mdpi/btn_star_big_on_selected.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png b/core/res/res/drawable-mdpi/dialog_divider_horizontal_light.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png b/core/res/res/drawable-mdpi/frame_gallery_thumb_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_default.9.png b/core/res/res/drawable-mdpi/gallery_selected_default.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_focused.9.png b/core/res/res/drawable-mdpi/gallery_selected_focused.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png b/core/res/res/drawable-mdpi/gallery_selected_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/gallery_unselected_default.9.png b/core/res/res/drawable-mdpi/gallery_unselected_default.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_dialog_info.png b/core/res/res/drawable-mdpi/ic_dialog_info.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_dialog_time.png b/core/res/res/drawable-mdpi/ic_dialog_time.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png b/core/res/res/drawable-mdpi/ic_jog_dial_unlock.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_video_poster.png b/core/res/res/drawable-mdpi/ic_media_video_poster.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_add.png b/core/res/res/drawable-mdpi/ic_menu_add.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_agenda.png b/core/res/res/drawable-mdpi/ic_menu_agenda.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_allfriends.png b/core/res/res/drawable-mdpi/ic_menu_allfriends.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_camera.png b/core/res/res/drawable-mdpi/ic_menu_camera.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_crop.png b/core/res/res/drawable-mdpi/ic_menu_crop.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_day.png b/core/res/res/drawable-mdpi/ic_menu_day.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_delete.png b/core/res/res/drawable-mdpi/ic_menu_delete.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_directions.png b/core/res/res/drawable-mdpi/ic_menu_directions.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_edit.png b/core/res/res/drawable-mdpi/ic_menu_edit.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_gallery.png b/core/res/res/drawable-mdpi/ic_menu_gallery.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_info_details.png b/core/res/res/drawable-mdpi/ic_menu_info_details.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_manage.png b/core/res/res/drawable-mdpi/ic_menu_manage.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_month.png b/core/res/res/drawable-mdpi/ic_menu_month.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_my_calendar.png b/core/res/res/drawable-mdpi/ic_menu_my_calendar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_mylocation.png b/core/res/res/drawable-mdpi/ic_menu_mylocation.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_rotate.png b/core/res/res/drawable-mdpi/ic_menu_rotate.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_search.png b/core/res/res/drawable-mdpi/ic_menu_search.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png b/core/res/res/drawable-mdpi/ic_menu_search_holo_dark.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_send.png b/core/res/res/drawable-mdpi/ic_menu_send.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_set_as.png b/core/res/res/drawable-mdpi/ic_menu_set_as.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_share.png b/core/res/res/drawable-mdpi/ic_menu_share.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png b/core/res/res/drawable-mdpi/ic_menu_sort_by_size.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_star.png b/core/res/res/drawable-mdpi/ic_menu_star.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_today.png b/core/res/res/drawable-mdpi/ic_menu_today.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_upload.png b/core/res/res/drawable-mdpi/ic_menu_upload.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png b/core/res/res/drawable-mdpi/ic_menu_upload_you_tube.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_view.png b/core/res/res/drawable-mdpi/ic_menu_view.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_menu_week.png b/core/res/res/drawable-mdpi/ic_menu_week.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_popup_reminder.png b/core/res/res/drawable-mdpi/ic_popup_reminder.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_search_category_default.png b/core/res/res/drawable-mdpi/ic_search_category_default.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/indicator_input_error.png b/core/res/res/drawable-mdpi/indicator_input_error.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_left_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_middle_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_red.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png b/core/res/res/drawable-mdpi/jog_dial_arrow_long_right_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_left_and_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png b/core/res/res/drawable-mdpi/jog_dial_arrow_short_right.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_bg.png b/core/res/res/drawable-mdpi/jog_dial_bg.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_dial_dimple.png b/core/res/res/drawable-mdpi/jog_dial_dimple.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_gray.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_left_confirm_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_normal.png b/core/res/res/drawable-mdpi/jog_tab_left_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_left_pressed.png b/core/res/res/drawable-mdpi/jog_tab_left_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_gray.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_green.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png b/core/res/res/drawable-mdpi/jog_tab_right_confirm_yellow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_normal.png b/core/res/res/drawable-mdpi/jog_tab_right_normal.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/jog_tab_right_pressed.png b/core/res/res/drawable-mdpi/jog_tab_right_pressed.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png b/core/res/res/drawable-mdpi/keyboard_key_feedback_more_background.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_down_disabled_focused.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_down_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_down_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_down_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_input_disabled.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_input_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_input_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_input_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png b/core/res/res/drawable-mdpi/numberpicker_up_disabled_focused.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png b/core/res/res/drawable-mdpi/numberpicker_up_normal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png b/core/res/res/drawable-mdpi/numberpicker_up_pressed.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png b/core/res/res/drawable-mdpi/numberpicker_up_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_horizontal.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_vertical.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/search_plate.9.png b/core/res/res/drawable-mdpi/search_plate.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_black_20.png b/core/res/res/drawable-mdpi/spinner_black_20.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png b/core/res/res/drawable-mdpi/sym_keyboard_feedback_shift_locked.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus.9.png b/core/res/res/drawable-mdpi/tab_focus.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png b/core/res/res/drawable-mdpi/tab_focus_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press.9.png b/core/res/res/drawable-mdpi/tab_press.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press_bar_left.9.png b/core/res/res/drawable-mdpi/tab_press_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_press_bar_right.9.png b/core/res/res/drawable-mdpi/tab_press_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_left.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png b/core/res/res/drawable-mdpi/tab_selected_bar_right.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_default.9.png b/core/res/res/drawable-mdpi/textfield_search_default.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/textfield_search_selected.9.png b/core/res/res/drawable-mdpi/textfield_search_selected.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/drawable-mdpi/toast_frame.9.png b/core/res/res/drawable-mdpi/toast_frame.9.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/layout/app_perms_summary.xml b/core/res/res/layout/app_perms_summary.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/raw/fallbackring.ogg b/core/res/res/raw/fallbackring.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/core/res/res/values-mcc208-mnc01/config.xml b/core/res/res/values-mcc208-mnc01/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc208-mnc10/config.xml b/core/res/res/values-mcc208-mnc10/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc214-mnc03/config.xml b/core/res/res/values-mcc214-mnc03/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc214-mnc07/config.xml b/core/res/res/values-mcc214-mnc07/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc222-mnc01/config.xml b/core/res/res/values-mcc222-mnc01/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc222-mnc10/config.xml b/core/res/res/values-mcc222-mnc10/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc234-mnc33/config.xml b/core/res/res/values-mcc234-mnc33/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc302-mnc370/config.xml b/core/res/res/values-mcc302-mnc370/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc302-mnc660/config.xml b/core/res/res/values-mcc302-mnc660/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc302-mnc720/config.xml b/core/res/res/values-mcc302-mnc720/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values-mcc340-mnc01/config.xml b/core/res/res/values-mcc340-mnc01/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
old mode 100755
new mode 100644
index 80c2a13..d1a7703
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -2272,6 +2272,8 @@
     <!-- Accessibility description sent when user completes drawing a pattern. [CHAR LIMIT=NONE] -->
     <string name="lockscreen_access_pattern_detected">Pattern completed</string>
 
+    <!-- Accessibility description sent when user changes the current lock screen widget. [CHAR_LIMIT=none] -->
+    <string name="keyguard_accessibility_widget_changed">%1$s. Widget %2$d of %3$d.</string>
     <!-- Accessibility description of the add widget button. [CHAR_LIMIT=none] -->
     <string name="keyguard_accessibility_add_widget">Add widget.</string>
     <!-- Accessibility description of the empty sidget slot (place holder for a new widget). [CHAR_LIMIT=none] -->
diff --git a/core/res/res/xml-land/password_kbd_qwerty.xml b/core/res/res/xml-land/password_kbd_qwerty.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-land/password_kbd_qwerty_shifted.xml b/core/res/res/xml-land/password_kbd_qwerty_shifted.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty.xml b/core/res/res/xml-mdpi/password_kbd_qwerty.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml b/core/res/res/xml-mdpi/password_kbd_qwerty_shifted.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-xlarge/password_kbd_numeric.xml b/core/res/res/xml-xlarge/password_kbd_numeric.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty.xml b/core/res/res/xml-xlarge/password_kbd_qwerty.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml b/core/res/res/xml-xlarge/password_kbd_qwerty_shifted.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols.xml b/core/res/res/xml-xlarge/password_kbd_symbols.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml b/core/res/res/xml-xlarge/password_kbd_symbols_shift.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_extension.xml b/core/res/res/xml/password_kbd_extension.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_numeric.xml b/core/res/res/xml/password_kbd_numeric.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_qwerty.xml b/core/res/res/xml/password_kbd_qwerty.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_qwerty_shifted.xml b/core/res/res/xml/password_kbd_qwerty_shifted.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_symbols.xml b/core/res/res/xml/password_kbd_symbols.xml
old mode 100755
new mode 100644
diff --git a/core/res/res/xml/password_kbd_symbols_shift.xml b/core/res/res/xml/password_kbd_symbols_shift.xml
old mode 100755
new mode 100644
diff --git a/core/tests/ConnectivityManagerTest/assets/accesspoints.xml b/core/tests/ConnectivityManagerTest/assets/accesspoints.xml
old mode 100755
new mode 100644
diff --git a/core/tests/coretests/src/android/content/pm/AppCacheTest.java b/core/tests/coretests/src/android/content/pm/AppCacheTest.java
old mode 100755
new mode 100644
diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java
old mode 100755
new mode 100644
diff --git a/core/tests/coretests/src/android/os/storage/AsecTests.java b/core/tests/coretests/src/android/os/storage/AsecTests.java
old mode 100755
new mode 100644
diff --git a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
index b9051e9..532b9d1 100644
--- a/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
+++ b/core/tests/coretests/src/android/widget/listview/focus/ListWithEditTextHeaderTest.java
@@ -22,6 +22,7 @@
 import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.view.KeyEvent;
+import android.view.View;
 import android.widget.AbsListView;
 import android.widget.ListView;
 import android.widget.listview.ListWithEditTextHeader;
@@ -63,4 +64,22 @@
         assertTrue("header does not have focus", mListView.getChildAt(0).isFocused());
         assertEquals("something is selected", AbsListView.INVALID_POSITION, mListView.getSelectedItemPosition());
     }
+
+    @LargeTest
+    public void testScrollingDoesNotDetachHeaderViewFromWindow() {
+        View header = mListView.getChildAt(0);
+        assertNotNull("header is not attached to a window (?!)", header.getWindowToken());
+
+        // Scroll header off the screen and back onto the screen
+        int numItemsOnScreen = mListView.getChildCount();
+        for (int i = 0; i < numItemsOnScreen; i++) {
+            sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
+        }
+        for (int i = 0; i < numItemsOnScreen; i++) {
+            sendKeys(KeyEvent.KEYCODE_DPAD_UP);
+        }
+
+        // Make sure the header was not accidentally left detached from its window
+        assertNotNull("header has lost its window", header.getWindowToken());
+    }
 }
diff --git a/data/fonts/DroidSansJapanese.ttf b/data/fonts/DroidSansJapanese.ttf
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/AudioPackage5.mk b/data/sounds/AudioPackage5.mk
old mode 100755
new mode 100644
diff --git a/data/sounds/AudioPackage6.mk b/data/sounds/AudioPackage6.mk
old mode 100755
new mode 100644
diff --git a/data/sounds/AudioPackage7.mk b/data/sounds/AudioPackage7.mk
old mode 100755
new mode 100644
diff --git a/data/sounds/AudioPackage7alt.mk b/data/sounds/AudioPackage7alt.mk
old mode 100755
new mode 100644
diff --git a/data/sounds/alarms/ogg-jp/Argon.ogg b/data/sounds/alarms/ogg-jp/Argon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Carbon.ogg b/data/sounds/alarms/ogg-jp/Carbon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Helium.ogg b/data/sounds/alarms/ogg-jp/Helium.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Krypton.ogg b/data/sounds/alarms/ogg-jp/Krypton.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Neon.ogg b/data/sounds/alarms/ogg-jp/Neon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/alarms/ogg-jp/Oxygen.ogg b/data/sounds/alarms/ogg-jp/Oxygen.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressDelete.ogg b/data/sounds/effects/ogg/KeypressDelete.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressReturn.ogg b/data/sounds/effects/ogg/KeypressReturn.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressSpacebar.ogg b/data/sounds/effects/ogg/KeypressSpacebar.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/effects/ogg/KeypressStandard.ogg b/data/sounds/effects/ogg/KeypressStandard.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/aidos.ogg b/data/sounds/notifications/aidos.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/circios.ogg b/data/sounds/notifications/circios.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/horkos.ogg b/data/sounds/notifications/horkos.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/hypnos1.ogg b/data/sounds/notifications/hypnos1.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/kratos1.ogg b/data/sounds/notifications/kratos1.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/kratos2.ogg b/data/sounds/notifications/kratos2.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/nomos1.ogg b/data/sounds/notifications/nomos1.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/nomos2.ogg b/data/sounds/notifications/nomos2.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Adara.ogg b/data/sounds/notifications/ogg/Adara.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Argon.ogg b/data/sounds/notifications/ogg/Argon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Beryllium.ogg b/data/sounds/notifications/ogg/Beryllium.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Capella.ogg b/data/sounds/notifications/ogg/Capella.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Cobalt.ogg b/data/sounds/notifications/ogg/Cobalt.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Fluorine.ogg b/data/sounds/notifications/ogg/Fluorine.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Gallium.ogg b/data/sounds/notifications/ogg/Gallium.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Polaris.ogg b/data/sounds/notifications/ogg/Polaris.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Procyon.ogg b/data/sounds/notifications/ogg/Procyon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Radon.ogg b/data/sounds/notifications/ogg/Radon.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Selenium.ogg b/data/sounds/notifications/ogg/Selenium.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Shaula.ogg b/data/sounds/notifications/ogg/Shaula.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Spica.ogg b/data/sounds/notifications/ogg/Spica.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ogg/Zirconium.ogg b/data/sounds/notifications/ogg/Zirconium.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/ouranos.ogg b/data/sounds/notifications/ouranos.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/phantasos.ogg b/data/sounds/notifications/phantasos.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/poros.ogg b/data/sounds/notifications/poros.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/notifications/thrasos1.ogg b/data/sounds/notifications/thrasos1.ogg
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/ringtones/Carina.wav b/data/sounds/ringtones/Carina.wav
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/sounds/testfiles/test.mid b/data/sounds/testfiles/test.mid
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/videos/AndroidInSpace.480p.lq.mp4 b/data/videos/AndroidInSpace.480p.lq.mp4
old mode 100755
new mode 100644
Binary files differ
diff --git a/data/videos/AndroidInSpace.480p.mq.mp4 b/data/videos/AndroidInSpace.480p.mq.mp4
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Downloads_20120814.zip b/docs/downloads/design/Android_Design_Downloads_20120814.zip
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png b/docs/downloads/design/Android_Design_Fireworks_Stencil_20120814.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip b/docs/downloads/design/Android_Design_Holo_Widgets_20120814.zip
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/downloads/design/Android_Design_Icons_20120814.zip b/docs/downloads/design/Android_Design_Icons_20120814.zip
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle b/docs/downloads/design/Android_Design_OmniGraffle_Stencil_20120814.graffle
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_back.png b/docs/html/design/media/navigation_between_apps_back.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_inward.png b/docs/html/design/media/navigation_between_apps_inward.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/design/media/navigation_between_apps_up.png b/docs/html/design/media/navigation_between_apps_up.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/design/media/navigation_between_siblings_market1.png b/docs/html/design/media/navigation_between_siblings_market1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/design/media/navigation_between_siblings_market2.png b/docs/html/design/media/navigation_between_siblings_market2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_best_practices.jd b/docs/html/google/play/billing/billing_best_practices.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_subscriptions.jd b/docs/html/google/play/billing/billing_subscriptions.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd
old mode 100755
new mode 100644
diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd
old mode 100755
new mode 100644
diff --git a/docs/html/guide/appendix/faq/troubleshooting.jd b/docs/html/guide/appendix/faq/troubleshooting.jd
old mode 100755
new mode 100644
diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd
old mode 100755
new mode 100644
diff --git a/docs/html/guide/topics/resources/localization.jd b/docs/html/guide/topics/resources/localization.jd
old mode 100755
new mode 100644
diff --git a/docs/html/guide/topics/resources/resources-i18n.jd b/docs/html/guide/topics/resources/resources-i18n.jd
old mode 100755
new mode 100644
diff --git a/docs/html/guide/topics/ui/images/hello-gallery.png b/docs/html/guide/topics/ui/images/hello-gallery.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-gridview.png b/docs/html/guide/topics/ui/images/hello-gridview.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-linearlayout.png b/docs/html/guide/topics/ui/images/hello-linearlayout.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-relativelayout.png b/docs/html/guide/topics/ui/images/hello-relativelayout.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/guide/topics/ui/images/hello-tablelayout.png b/docs/html/guide/topics/ui/images/hello-tablelayout.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_arch.png b/docs/html/images/billing_arch.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_check_supported.png b/docs/html/images/billing_check_supported.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_checkout_flow.png b/docs/html/images/billing_checkout_flow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_list_form.png b/docs/html/images/billing_list_form.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_list_form_2.png b/docs/html/images/billing_list_form_2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_product_list.png b/docs/html/images/billing_product_list.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_product_list_entry.png b/docs/html/images/billing_product_list_entry.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_public_key.png b/docs/html/images/billing_public_key.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_refund.png b/docs/html/images/billing_refund.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_request_purchase.png b/docs/html/images/billing_request_purchase.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_restore_transactions.png b/docs/html/images/billing_restore_transactions.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/billing_test_flow.png b/docs/html/images/billing_test_flow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/custom_message.png b/docs/html/images/custom_message.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/custom_toast.png b/docs/html/images/custom_toast.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/developing/developing_overview.png b/docs/html/images/developing/developing_overview.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/drm_arch.png b/docs/html/images/drm_arch.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/fundamentals/fragments.graffle b/docs/html/images/fundamentals/fragments.graffle
old mode 100755
new mode 100644
diff --git a/docs/html/images/hello_l10n/copy_res_files.png b/docs/html/images/hello_l10n/copy_res_files.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/custom_locale_app.png b/docs/html/images/hello_l10n/custom_locale_app.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-de-rDE/flag.png b/docs/html/images/hello_l10n/drawable-de-rDE/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rCA/flag.png b/docs/html/images/hello_l10n/drawable-en-rCA/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-en-rUS/flag.png b/docs/html/images/hello_l10n/drawable-en-rUS/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png b/docs/html/images/hello_l10n/drawable-fr-rCA/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png b/docs/html/images/hello_l10n/drawable-fr-rFR/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png b/docs/html/images/hello_l10n/drawable-ja-rJP/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/flag.png b/docs/html/images/hello_l10n/flag.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/frenchCA_screenshot.png b/docs/html/images/hello_l10n/frenchCA_screenshot.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/germanCH_screenshot.png b/docs/html/images/hello_l10n/germanCH_screenshot.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/german_screenshot.png b/docs/html/images/hello_l10n/german_screenshot.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/japanese_screenshot.png b/docs/html/images/hello_l10n/japanese_screenshot.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_project.png b/docs/html/images/hello_l10n/nonlocalized_project.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot1.png b/docs/html/images/hello_l10n/nonlocalized_screenshot1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/nonlocalized_screenshot2.png b/docs/html/images/hello_l10n/nonlocalized_screenshot2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/plain_project.png b/docs/html/images/hello_l10n/plain_project.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/romanshCH_screenshot.png b/docs/html/images/hello_l10n/romanshCH_screenshot.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/using_custom_locale.png b/docs/html/images/hello_l10n/using_custom_locale.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png b/docs/html/images/hello_l10n/xml_file_wizard_shortcut.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_wizard1.png b/docs/html/images/hello_l10n/xml_wizard1.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/hello_l10n/xml_wizard2.png b/docs/html/images/hello_l10n/xml_wizard2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_audition_wnd.png b/docs/html/images/jet/jc_audition_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_event_wnd.png b/docs/html/images/jet/jc_event_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_main_wnd.png b/docs/html/images/jet/jc_main_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_moveseg_wnd.png b/docs/html/images/jet/jc_moveseg_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_open_dlg.png b/docs/html/images/jet/jc_open_dlg.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_rep_wnd.png b/docs/html/images/jet/jc_rep_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_repseg_wnd.png b/docs/html/images/jet/jc_repseg_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/jet/jc_seg_wnd.png b/docs/html/images/jet/jc_seg_wnd.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/notifications_window.png b/docs/html/images/notifications_window.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/options_menu.png b/docs/html/images/options_menu.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/publishing/publishing_android_market.png b/docs/html/images/publishing/publishing_android_market.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/publishing/publishing_overview.png b/docs/html/images/publishing/publishing_overview.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/publishing/publishing_overview_prep.png b/docs/html/images/publishing/publishing_overview_prep.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/publishing/publishing_preparing.png b/docs/html/images/publishing/publishing_preparing.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/publishing/publishing_via_email.png b/docs/html/images/publishing/publishing_via_email.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/radio_buttons.png b/docs/html/images/radio_buttons.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/resources/arrow.png b/docs/html/images/resources/arrow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/resources/right-arrow.png b/docs/html/images/resources/right-arrow.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/status_bar.png b/docs/html/images/status_bar.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/testing/android_test_framework.png b/docs/html/images/testing/android_test_framework.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/ads-close-to-button.png b/docs/html/images/training/ads-close-to-button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/ads-cover-content.png b/docs/html/images/training/ads-cover-content.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/ads-eclipse-build-path.png b/docs/html/images/training/ads-eclipse-build-path.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/ads-top-banner.png b/docs/html/images/training/ads-top-banner.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/button.png b/docs/html/images/training/button.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/button_with_marks.png b/docs/html/images/training/button_with_marks.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/buttons_stretched.png b/docs/html/images/training/buttons_stretched.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/cool-places.png b/docs/html/images/training/cool-places.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/device-mgmt-activate-device-admin.png b/docs/html/images/training/device-mgmt-activate-device-admin.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/training/panoramio-grid.png b/docs/html/images/training/panoramio-grid.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/images/ui/clipboard/copy_paste_framework.png b/docs/html/images/ui/clipboard/copy_paste_framework.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo2.png b/docs/html/resources/images/KeyChainDemo2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo3.png b/docs/html/resources/images/KeyChainDemo3.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/resources/images/KeyChainDemo4.png b/docs/html/resources/images/KeyChainDemo4.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/resources/images/SipDemo.png b/docs/html/resources/images/SipDemo.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/resources/images/vpn-confirmation.png b/docs/html/resources/images/vpn-confirmation.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/docs/html/tools/publishing/publishing_overview.jd b/docs/html/tools/publishing/publishing_overview.jd
old mode 100755
new mode 100644
diff --git a/docs/html/tools/testing/testing_android.jd b/docs/html/tools/testing/testing_android.jd
old mode 100755
new mode 100644
diff --git a/docs/html/tools/workflow/publishing/publishing_overview.jd b/docs/html/tools/workflow/publishing/publishing_overview.jd
old mode 100755
new mode 100644
diff --git a/docs/html/tools/workflow/publishing_overview.jd b/docs/html/tools/workflow/publishing_overview.jd
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmConvertedStatus.java b/drm/java/android/drm/DrmConvertedStatus.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmErrorEvent.java b/drm/java/android/drm/DrmErrorEvent.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmEvent.java b/drm/java/android/drm/DrmEvent.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmInfo.java b/drm/java/android/drm/DrmInfo.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmInfoEvent.java b/drm/java/android/drm/DrmInfoEvent.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmInfoRequest.java b/drm/java/android/drm/DrmInfoRequest.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmInfoStatus.java b/drm/java/android/drm/DrmInfoStatus.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmManagerClient.java b/drm/java/android/drm/DrmManagerClient.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmRights.java b/drm/java/android/drm/DrmRights.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmStore.java b/drm/java/android/drm/DrmStore.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmSupportInfo.java b/drm/java/android/drm/DrmSupportInfo.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/DrmUtils.java b/drm/java/android/drm/DrmUtils.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/ProcessedData.java b/drm/java/android/drm/ProcessedData.java
old mode 100755
new mode 100644
diff --git a/drm/java/android/drm/package.html b/drm/java/android/drm/package.html
old mode 100755
new mode 100644
diff --git a/graphics/java/android/graphics/Bitmap.aidl b/graphics/java/android/graphics/Bitmap.aidl
old mode 100755
new mode 100644
diff --git a/include/androidfw/KeycodeLabels.h b/include/androidfw/KeycodeLabels.h
old mode 100755
new mode 100644
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index 4637991..44be804 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -16,17 +16,9 @@
 
 package android.security;
 
-import android.net.LocalSocketAddress;
-import android.net.LocalSocket;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UTFDataFormatException;
-import java.nio.charset.Charsets;
-import java.nio.charset.ModifiedUtf8;
-import java.util.ArrayList;
-import java.util.Date;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.util.Log;
 
 /**
  * @hide This should not be made public in its present form because it
@@ -34,6 +26,7 @@
  * preclude the use of hardware crypto.
  */
 public class KeyStore {
+    private static final String TAG = "KeyStore";
 
     // ResponseCodes
     public static final int NO_ERROR = 1;
@@ -50,20 +43,30 @@
     // States
     public enum State { UNLOCKED, LOCKED, UNINITIALIZED };
 
-    private static final LocalSocketAddress sAddress = new LocalSocketAddress(
-            "keystore", LocalSocketAddress.Namespace.RESERVED);
-
     private int mError = NO_ERROR;
 
-    private KeyStore() {}
+    private final IKeystoreService mBinder;
+
+    private KeyStore(IKeystoreService binder) {
+        mBinder = binder;
+    }
 
     public static KeyStore getInstance() {
-        return new KeyStore();
+        IKeystoreService keystore = IKeystoreService.Stub.asInterface(ServiceManager
+                .getService("android.security.keystore"));
+        return new KeyStore(keystore);
     }
 
     public State state() {
-        execute('t');
-        switch (mError) {
+        final int ret;
+        try {
+            ret = mBinder.test();
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            throw new AssertionError(e);
+        }
+
+        switch (ret) {
             case NO_ERROR: return State.UNLOCKED;
             case LOCKED: return State.LOCKED;
             case UNINITIALIZED: return State.UNINITIALIZED;
@@ -71,171 +74,167 @@
         }
     }
 
-    private byte[] get(byte[] key) {
-        ArrayList<byte[]> values = execute('g', key);
-        return (values == null || values.isEmpty()) ? null : values.get(0);
-    }
-
     public byte[] get(String key) {
-        return get(getKeyBytes(key));
-    }
-
-    private boolean put(byte[] key, byte[] value) {
-        execute('i', key, value);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.get(key);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return null;
+        }
     }
 
     public boolean put(String key, byte[] value) {
-        return put(getKeyBytes(key), value);
-    }
-
-    private boolean delete(byte[] key) {
-        execute('d', key);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.insert(key, value) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean delete(String key) {
-        return delete(getKeyBytes(key));
-    }
-
-    private boolean contains(byte[] key) {
-        execute('e', key);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.del(key) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean contains(String key) {
-        return contains(getKeyBytes(key));
-    }
-
-    public byte[][] saw(byte[] prefix) {
-        ArrayList<byte[]> values = execute('s', prefix);
-        return (values == null) ? null : values.toArray(new byte[values.size()][]);
+        try {
+            return mBinder.exist(key) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public String[] saw(String prefix) {
-        byte[][] values = saw(getKeyBytes(prefix));
-        if (values == null) {
+        try {
+            return mBinder.saw(prefix);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
             return null;
         }
-        String[] strings = new String[values.length];
-        for (int i = 0; i < values.length; ++i) {
-            strings[i] = toKeyString(values[i]);
-        }
-        return strings;
     }
 
     public boolean reset() {
-        execute('r');
-        return mError == NO_ERROR;
-    }
-
-    private boolean password(byte[] password) {
-        execute('p', password);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.reset() == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean password(String password) {
-        return password(getPasswordBytes(password));
+        try {
+            return mBinder.password(password) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean lock() {
-        execute('l');
-        return mError == NO_ERROR;
-    }
-
-    private boolean unlock(byte[] password) {
-        execute('u', password);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.lock() == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean unlock(String password) {
-        return unlock(getPasswordBytes(password));
+        try {
+            mError = mBinder.unlock(password);
+            return mError == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean isEmpty() {
-        execute('z');
-        return mError == KEY_NOT_FOUND;
-    }
-
-    private boolean generate(byte[] key) {
-        execute('a', key);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.zero() == KEY_NOT_FOUND;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean generate(String key) {
-        return generate(getKeyBytes(key));
-    }
-
-    private boolean importKey(byte[] keyName, byte[] key) {
-        execute('m', keyName, key);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.generate(key) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean importKey(String keyName, byte[] key) {
-        return importKey(getKeyBytes(keyName), key);
-    }
-
-    private byte[] getPubkey(byte[] key) {
-        ArrayList<byte[]> values = execute('b', key);
-        return (values == null || values.isEmpty()) ? null : values.get(0);
+        try {
+            return mBinder.import_key(keyName, key) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public byte[] getPubkey(String key) {
-        return getPubkey(getKeyBytes(key));
-    }
-
-    private boolean delKey(byte[] key) {
-        execute('k', key);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.get_pubkey(key);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return null;
+        }
     }
 
     public boolean delKey(String key) {
-        return delKey(getKeyBytes(key));
-    }
-
-    private byte[] sign(byte[] keyName, byte[] data) {
-        final ArrayList<byte[]> values = execute('n', keyName, data);
-        return (values == null || values.isEmpty()) ? null : values.get(0);
+        try {
+            return mBinder.del_key(key) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public byte[] sign(String key, byte[] data) {
-        return sign(getKeyBytes(key), data);
-    }
-
-    private boolean verify(byte[] keyName, byte[] data, byte[] signature) {
-        execute('v', keyName, data, signature);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.sign(key, data);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return null;
+        }
     }
 
     public boolean verify(String key, byte[] data, byte[] signature) {
-        return verify(getKeyBytes(key), data, signature);
-    }
-
-    private boolean grant(byte[] key, byte[] uid) {
-        execute('x', key, uid);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.verify(key, data, signature) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean grant(String key, int uid) {
-         return grant(getKeyBytes(key), getUidBytes(uid));
-    }
-
-    private boolean ungrant(byte[] key, byte[] uid) {
-        execute('y', key, uid);
-        return mError == NO_ERROR;
+        try {
+            return mBinder.grant(key, uid) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
+        }
     }
 
     public boolean ungrant(String key, int uid) {
-        return ungrant(getKeyBytes(key), getUidBytes(uid));
-    }
-
-    private long getmtime(byte[] key) {
-        final ArrayList<byte[]> values = execute('c', key);
-        if (values == null || values.isEmpty()) {
-            return -1L;
+        try {
+            return mBinder.ungrant(key, uid) == NO_ERROR;
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return false;
         }
-
-        return Long.parseLong(new String(values.get(0))) * 1000L;
     }
 
     /**
@@ -243,101 +242,15 @@
      * epoch. Will return -1L if the key could not be found or other error.
      */
     public long getmtime(String key) {
-        return getmtime(getKeyBytes(key));
+        try {
+            return mBinder.getmtime(key);
+        } catch (RemoteException e) {
+            Log.w(TAG, "Cannot connect to keystore", e);
+            return -1L;
+        }
     }
 
     public int getLastError() {
         return mError;
     }
-
-    private ArrayList<byte[]> execute(int code, byte[]... parameters) {
-        mError = PROTOCOL_ERROR;
-
-        for (byte[] parameter : parameters) {
-            if (parameter == null || parameter.length > 65535) {
-                return null;
-            }
-        }
-
-        LocalSocket socket = new LocalSocket();
-        try {
-            socket.connect(sAddress);
-
-            OutputStream out = socket.getOutputStream();
-            out.write(code);
-            for (byte[] parameter : parameters) {
-                out.write(parameter.length >> 8);
-                out.write(parameter.length);
-                out.write(parameter);
-            }
-            out.flush();
-            socket.shutdownOutput();
-
-            InputStream in = socket.getInputStream();
-            if ((code = in.read()) != NO_ERROR) {
-                if (code != -1) {
-                    mError = code;
-                }
-                return null;
-            }
-
-            ArrayList<byte[]> values = new ArrayList<byte[]>();
-            while (true) {
-                int i, j;
-                if ((i = in.read()) == -1) {
-                    break;
-                }
-                if ((j = in.read()) == -1) {
-                    return null;
-                }
-                byte[] value = new byte[i << 8 | j];
-                for (i = 0; i < value.length; i += j) {
-                    if ((j = in.read(value, i, value.length - i)) == -1) {
-                        return null;
-                    }
-                }
-                values.add(value);
-            }
-            mError = NO_ERROR;
-            return values;
-        } catch (IOException e) {
-            // ignore
-        } finally {
-            try {
-                socket.close();
-            } catch (IOException e) {}
-        }
-        return null;
-    }
-
-    /**
-     * ModifiedUtf8 is used for key encoding to match the
-     * implementation of NativeCrypto.ENGINE_load_private_key.
-     */
-    private static byte[] getKeyBytes(String string) {
-        try {
-            int utfCount = (int) ModifiedUtf8.countBytes(string, false);
-            byte[] result = new byte[utfCount];
-            ModifiedUtf8.encode(result, 0, string);
-            return result;
-        } catch (UTFDataFormatException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private static String toKeyString(byte[] bytes) {
-        try {
-            return ModifiedUtf8.decode(bytes, new char[bytes.length], 0, bytes.length);
-        } catch (UTFDataFormatException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private static byte[] getPasswordBytes(String password) {
-        return password.getBytes(Charsets.UTF_8);
-    }
-
-    private static byte[] getUidBytes(int uid) {
-        return Integer.toString(uid).getBytes(Charsets.UTF_8);
-    }
 }
diff --git a/keystore/tests/src/android/security/KeyStoreTest.java b/keystore/tests/src/android/security/KeyStoreTest.java
old mode 100755
new mode 100644
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 0107da4..fc2cd9e 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -506,10 +506,6 @@
 void ResStringPool::uninit()
 {
     mError = NO_INIT;
-    if (mOwnedData) {
-        free(mOwnedData);
-        mOwnedData = NULL;
-    }
     if (mHeader != NULL && mCache != NULL) {
         for (size_t x = 0; x < mHeader->stringCount; x++) {
             if (mCache[x] != NULL) {
@@ -520,6 +516,10 @@
         free(mCache);
         mCache = NULL;
     }
+    if (mOwnedData) {
+        free(mOwnedData);
+        mOwnedData = NULL;
+    }
 }
 
 /**
@@ -1209,6 +1209,10 @@
     uninit();
     mEventCode = START_DOCUMENT;
 
+    if (!data || !size) {
+        return (mError=BAD_TYPE);
+    }
+
     if (copyData) {
         mOwnedData = malloc(size);
         if (mOwnedData == NULL) {
diff --git a/libs/androidfw/tests/Android.mk b/libs/androidfw/tests/Android.mk
index 39009b8..4ae23ec 100644
--- a/libs/androidfw/tests/Android.mk
+++ b/libs/androidfw/tests/Android.mk
@@ -10,36 +10,25 @@
     ObbFile_test.cpp
 
 shared_libraries := \
-	libandroidfw \
-	libcutils \
-	libutils \
-	libbinder \
-	libui \
-	libstlport \
-	libskia
+    libandroidfw \
+    libcutils \
+    libutils \
+    libbinder \
+    libui \
+    libstlport \
+    libskia
 
 static_libraries := \
-	libgtest \
-	libgtest_main
-
-c_includes := \
-    bionic \
-    bionic/libstdc++/include \
-    external/gtest/include \
-    external/stlport/stlport \
-    external/skia/include/core
-
-module_tags := eng tests
+    libgtest \
+    libgtest_main
 
 $(foreach file,$(test_src_files), \
     $(eval include $(CLEAR_VARS)) \
     $(eval LOCAL_SHARED_LIBRARIES := $(shared_libraries)) \
     $(eval LOCAL_STATIC_LIBRARIES := $(static_libraries)) \
-    $(eval LOCAL_C_INCLUDES := $(c_includes)) \
     $(eval LOCAL_SRC_FILES := $(file)) \
     $(eval LOCAL_MODULE := $(notdir $(file:%.cpp=%))) \
-    $(eval LOCAL_MODULE_TAGS := $(module_tags)) \
-    $(eval include $(BUILD_EXECUTABLE)) \
+    $(eval include $(BUILD_NATIVE_TEST)) \
 )
 
 # Build the manual test programs.
diff --git a/libs/androidfw/tests/InputEvent_test.cpp b/libs/androidfw/tests/InputEvent_test.cpp
index ac5549c..e9164d1 100644
--- a/libs/androidfw/tests/InputEvent_test.cpp
+++ b/libs/androidfw/tests/InputEvent_test.cpp
@@ -19,7 +19,7 @@
 #include <binder/Parcel.h>
 
 #include <math.h>
-#include <SkMatrix.h>
+#include <core/SkMatrix.h>
 
 namespace android {
 
diff --git a/location/java/android/location/Country.java b/location/java/android/location/Country.java
old mode 100755
new mode 100644
diff --git a/location/java/android/location/INetInitiatedListener.aidl b/location/java/android/location/INetInitiatedListener.aidl
old mode 100755
new mode 100644
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/IAudioFocusDispatcher.aidl b/media/java/android/media/IAudioFocusDispatcher.aidl
old mode 100755
new mode 100644
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 88cf4ac..0117d73 100644
--- a/media/java/android/media/MediaScanner.java
+++ b/media/java/android/media/MediaScanner.java
@@ -283,7 +283,7 @@
         "Terror",
         "Indie",
         "Britpop",
-        "Negerpunk",
+        null,
         "Polsk Punk",
         "Beat",
         "Christian Gangsta",
@@ -700,7 +700,7 @@
                     try {
                         short genreIndex = Short.parseShort(number.toString());
                         if (genreIndex >= 0) {
-                            if (genreIndex < ID3_GENRES.length) {
+                            if (genreIndex < ID3_GENRES.length && ID3_GENRES[genreIndex] != null) {
                                 return ID3_GENRES[genreIndex];
                             } else if (genreIndex == 0xFF) {
                                 return null;
diff --git a/media/java/android/media/Ringtone.java b/media/java/android/media/Ringtone.java
index f190eb9..ebbfad9 100644
--- a/media/java/android/media/Ringtone.java
+++ b/media/java/android/media/Ringtone.java
@@ -18,6 +18,8 @@
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.res.AssetFileDescriptor;
+import android.content.res.Resources.NotFoundException;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Binder;
@@ -229,10 +231,14 @@
             try {
                 mRemotePlayer.play(mRemoteToken, canonicalUri, mStreamType);
             } catch (RemoteException e) {
-                Log.w(TAG, "Problem playing ringtone: " + e);
+                if (!playFallbackRingtone()) {
+                    Log.w(TAG, "Problem playing ringtone: " + e);
+                }
             }
         } else {
-            Log.w(TAG, "Neither local nor remote playback available");
+            if (!playFallbackRingtone()) {
+                Log.w(TAG, "Neither local nor remote playback available");
+            }
         }
     }
 
@@ -280,6 +286,43 @@
         }
     }
 
+    private boolean playFallbackRingtone() {
+        if (mAudioManager.getStreamVolume(mStreamType) != 0) {
+            int ringtoneType = RingtoneManager.getDefaultType(mUri);
+            if (ringtoneType != -1 &&
+                    RingtoneManager.getActualDefaultRingtoneUri(mContext, ringtoneType) != null) {
+                // Default ringtone, try fallback ringtone.
+                try {
+                    AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(
+                            com.android.internal.R.raw.fallbackring);
+                    if (afd != null) {
+                        mLocalPlayer = new MediaPlayer();
+                        if (afd.getDeclaredLength() < 0) {
+                            mLocalPlayer.setDataSource(afd.getFileDescriptor());
+                        } else {
+                            mLocalPlayer.setDataSource(afd.getFileDescriptor(),
+                                    afd.getStartOffset(),
+                                    afd.getDeclaredLength());
+                        }
+                        mLocalPlayer.setAudioStreamType(mStreamType);
+                        mLocalPlayer.prepare();
+                        mLocalPlayer.start();
+                        afd.close();
+                        return true;
+                    } else {
+                        Log.e(TAG, "Could not load fallback ringtone");
+                    }
+                } catch (IOException ioe) {
+                    destroyLocalPlayer();
+                    Log.e(TAG, "Failed to open fallback ringtone");
+                } catch (NotFoundException nfe) {
+                    Log.e(TAG, "Fallback ringtone does not exist");
+                }
+            }
+        }
+        return false;
+    }
+
     void setTitle(String title) {
         mTitle = title;
     }
diff --git a/media/java/android/media/audiofx/Visualizer.java b/media/java/android/media/audiofx/Visualizer.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/EffectColor.java b/media/java/android/media/videoeditor/EffectColor.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/EffectKenBurns.java b/media/java/android/media/videoeditor/EffectKenBurns.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java b/media/java/android/media/videoeditor/ExtractAudioWaveformProgressListener.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/MediaProperties.java b/media/java/android/media/videoeditor/MediaProperties.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/Transition.java b/media/java/android/media/videoeditor/Transition.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/TransitionAlpha.java b/media/java/android/media/videoeditor/TransitionAlpha.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/TransitionCrossfade.java b/media/java/android/media/videoeditor/TransitionCrossfade.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/TransitionFadeBlack.java b/media/java/android/media/videoeditor/TransitionFadeBlack.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/TransitionSliding.java b/media/java/android/media/videoeditor/TransitionSliding.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/VideoEditorFactory.java b/media/java/android/media/videoeditor/VideoEditorFactory.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/VideoEditorProfile.java b/media/java/android/media/videoeditor/VideoEditorProfile.java
old mode 100755
new mode 100644
diff --git a/media/java/android/media/videoeditor/WaveformData.java b/media/java/android/media/videoeditor/WaveformData.java
old mode 100755
new mode 100644
diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/Android.mk b/media/jni/mediaeditor/Android.mk
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoBrowserInternal.h b/media/jni/mediaeditor/VideoBrowserInternal.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoBrowserMain.h b/media/jni/mediaeditor/VideoBrowserMain.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorClasses.cpp b/media/jni/mediaeditor/VideoEditorClasses.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorClasses.h b/media/jni/mediaeditor/VideoEditorClasses.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorJava.cpp b/media/jni/mediaeditor/VideoEditorJava.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorJava.h b/media/jni/mediaeditor/VideoEditorJava.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorLogging.h b/media/jni/mediaeditor/VideoEditorLogging.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorMain.cpp b/media/jni/mediaeditor/VideoEditorMain.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorOsal.cpp b/media/jni/mediaeditor/VideoEditorOsal.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorOsal.h b/media/jni/mediaeditor/VideoEditorOsal.h
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp b/media/jni/mediaeditor/VideoEditorPropertiesMain.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp b/media/jni/mediaeditor/VideoEditorThumbnailMain.cpp
old mode 100755
new mode 100644
diff --git a/media/jni/mediaeditor/VideoEditorThumbnailMain.h b/media/jni/mediaeditor/VideoEditorThumbnailMain.h
old mode 100755
new mode 100644
diff --git a/media/mca/structgen.py b/media/mca/structgen.py
old mode 100644
new mode 100755
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPerfTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkPowerTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaFrameworkUnitTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaPlayerStressTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaRecorderStressTestRunner.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaTestUtil.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaItemThumbnailTest.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/MediaPropertiesTest.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/videoeditor/VideoEditorExportTest.java
old mode 100755
new mode 100644
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/VideoEditorStressTest.java
old mode 100755
new mode 100644
diff --git a/media/tests/ScoAudioTest/Android.mk b/media/tests/ScoAudioTest/Android.mk
old mode 100755
new mode 100644
diff --git a/media/tests/ScoAudioTest/AndroidManifest.xml b/media/tests/ScoAudioTest/AndroidManifest.xml
old mode 100755
new mode 100644
diff --git a/media/tests/ScoAudioTest/res/drawable/icon.png b/media/tests/ScoAudioTest/res/drawable/icon.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/drawable/record.png b/media/tests/ScoAudioTest/res/drawable/record.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/drawable/stop.png b/media/tests/ScoAudioTest/res/drawable/stop.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml b/media/tests/ScoAudioTest/res/layout/scoaudiotest.xml
old mode 100755
new mode 100644
diff --git a/media/tests/ScoAudioTest/res/values/strings.xml b/media/tests/ScoAudioTest/res/values/strings.xml
old mode 100755
new mode 100644
diff --git a/media/tests/contents/media_api/goldenThumbnail.png b/media/tests/contents/media_api/goldenThumbnail.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3 b/media/tests/contents/media_api/music/MP3_48KHz_128kbps_s_1_17.mp3
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/music/SHORTMP3.mp3 b/media/tests/contents/media_api/music/SHORTMP3.mp3
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/music/ants.mid b/media/tests/contents/media_api/music/ants.mid
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/music/bzk_chic.wav b/media/tests/contents/media_api/music/bzk_chic.wav
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/music/test_amr_ietf.amr b/media/tests/contents/media_api/music/test_amr_ietf.amr
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp b/media/tests/contents/media_api/video/H263_500_AMRNB_12.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_56_AAC_24.3gp b/media/tests/contents/media_api/video/H263_56_AAC_24.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp b/media/tests/contents/media_api/video/H263_56_AMRNB_6.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_320_AAC_64.3gp b/media/tests/contents/media_api/video/H264_320_AAC_64.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp b/media/tests/contents/media_api/video/H264_320_AMRNB_6.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_500_AAC_128.3gp b/media/tests/contents/media_api/video/H264_500_AAC_128.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_HVGA_500_NO_AUDIO.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp b/media/tests/contents/media_api/video/H264_QVGA_500_NO_AUDIO.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4 b/media/tests/contents/media_api/video/MPEG4_320_AAC_64.mp4
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm b/media/tests/contents/media_api/video/big-buck-bunny_trailer.webm
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/video/border_large.3gp b/media/tests/contents/media_api/video/border_large.3gp
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4 b/media/tests/contents/media_api/videoeditor/H264_BP_960x720_25fps_800kbps_AACLC_48Khz_192Kbps_s_1_17.mp4
old mode 100755
new mode 100644
Binary files differ
diff --git a/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png b/media/tests/contents/media_api/videoeditor/IMG_640x480_Overlay2.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/native/copy-to-ndk.sh b/native/copy-to-ndk.sh
old mode 100644
new mode 100755
diff --git a/packages/DefaultContainerService/Android.mk b/packages/DefaultContainerService/Android.mk
old mode 100755
new mode 100644
diff --git a/packages/DefaultContainerService/AndroidManifest.xml b/packages/DefaultContainerService/AndroidManifest.xml
old mode 100755
new mode 100644
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/VibratorService.java b/services/java/com/android/server/VibratorService.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/am/package.html b/services/java/com/android/server/am/package.html
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/location/ComprehensiveCountryDetector.java b/services/java/com/android/server/location/ComprehensiveCountryDetector.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/java/com/android/server/location/GpsLocationProvider.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/location/LocationBasedCountryDetector.java b/services/java/com/android/server/location/LocationBasedCountryDetector.java
old mode 100755
new mode 100644
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index 7101520..67eaad3 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -940,14 +940,14 @@
     }
 
     private void performPoll(int flags) {
+        // try refreshing time source when stale
+        if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) {
+            mTime.forceRefresh();
+        }
+
         synchronized (mStatsLock) {
             mWakeLock.acquire();
 
-            // try refreshing time source when stale
-            if (mTime.getCacheAge() > mSettings.getTimeCacheMaxAge()) {
-                mTime.forceRefresh();
-            }
-
             try {
                 performPollLocked(flags);
             } finally {
diff --git a/services/java/com/android/server/updates/CertPinInstallReceiver.java b/services/java/com/android/server/updates/CertPinInstallReceiver.java
new file mode 100644
index 0000000..c03fbc3
--- /dev/null
+++ b/services/java/com/android/server/updates/CertPinInstallReceiver.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.updates;
+
+public class CertPinInstallReceiver extends ConfigUpdateInstallReceiver {
+
+    public CertPinInstallReceiver() {
+        super("/data/misc/keychain/", "pins", "metadata/", "version");
+    }
+}
diff --git a/services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java b/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updatable/ConfigUpdateInstallReceiver.java
rename to services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
old mode 100755
new mode 100644
diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/jni/com_android_server_location_GpsLocationProvider.cpp
old mode 100755
new mode 100644
diff --git a/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java b/services/tests/servicestests/src/com/android/server/location/LocationBasedCountryDetectorTest.java
old mode 100755
new mode 100644
diff --git a/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java
new file mode 100644
index 0000000..b6742a1
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/updates/CertPinInstallReceiverTest.java
@@ -0,0 +1,243 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.updates;
+
+import android.content.Context;
+import android.content.Intent;
+import android.test.AndroidTestCase;
+import android.provider.Settings;
+import android.util.Base64;
+import android.util.Log;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.cert.CertificateFactory;
+import java.security.cert.Certificate;
+import java.security.cert.X509Certificate;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.Signature;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.KeyFactory;
+import java.util.HashSet;
+import java.io.*;
+import libcore.io.IoUtils;
+
+/**
+ * Tests for {@link com.android.server.CertPinInstallReceiver}
+ */
+public class CertPinInstallReceiverTest extends AndroidTestCase {
+
+    private static final String TAG = "CertPinInstallReceiverTest";
+
+    private static final String PINLIST_ROOT = System.getenv("ANDROID_DATA") + "/misc/keychain/";
+
+    public static final String PINLIST_CONTENT_PATH = PINLIST_ROOT + "pins";
+    public static final String PINLIST_METADATA_PATH = PINLIST_CONTENT_PATH + "metadata";
+
+    public static final String PINLIST_CONTENT_URL_KEY = "pinlist_content_url";
+    public static final String PINLIST_METADATA_URL_KEY = "pinlist_metadata_url";
+    public static final String PINLIST_CERTIFICATE_KEY = "config_update_certificate";
+    public static final String PINLIST_VERSION_KEY = "pinlist_version";
+
+    private static final String EXTRA_CONTENT_PATH = "CONTENT_PATH";
+    private static final String EXTRA_REQUIRED_HASH = "REQUIRED_HASH";
+    private static final String EXTRA_SIGNATURE = "SIGNATURE";
+    private static final String EXTRA_VERSION_NUMBER = "VERSION";
+
+    public static final String TEST_CERT = "" +
+                    "MIIDsjCCAxugAwIBAgIJAPLf2gS0zYGUMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYDVQQGEwJVUzET" +
+                    "MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEPMA0GA1UEChMGR29v" +
+                    "Z2xlMRAwDgYDVQQLEwd0ZXN0aW5nMRYwFAYDVQQDEw1HZXJlbXkgQ29uZHJhMSEwHwYJKoZIhvcN" +
+                    "AQkBFhJnY29uZHJhQGdvb2dsZS5jb20wHhcNMTIwNzE0MTc1MjIxWhcNMTIwODEzMTc1MjIxWjCB" +
+                    "mDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZp" +
+                    "ZXcxDzANBgNVBAoTBkdvb2dsZTEQMA4GA1UECxMHdGVzdGluZzEWMBQGA1UEAxMNR2VyZW15IENv" +
+                    "bmRyYTEhMB8GCSqGSIb3DQEJARYSZ2NvbmRyYUBnb29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUA" +
+                    "A4GNADCBiQKBgQCjGGHATBYlmas+0sEECkno8LZ1KPglb/mfe6VpCT3GhSr+7br7NG/ZwGZnEhLq" +
+                    "E7YIH4fxltHmQC3Tz+jM1YN+kMaQgRRjo/LBCJdOKaMwUbkVynAH6OYsKevjrOPk8lfM5SFQzJMG" +
+                    "sA9+Tfopr5xg0BwZ1vA/+E3mE7Tr3M2UvwIDAQABo4IBADCB/TAdBgNVHQ4EFgQUhzkS9E6G+x8W" +
+                    "L4EsmRjDxu28tHUwgc0GA1UdIwSBxTCBwoAUhzkS9E6G+x8WL4EsmRjDxu28tHWhgZ6kgZswgZgx" +
+                    "CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3" +
+                    "MQ8wDQYDVQQKEwZHb29nbGUxEDAOBgNVBAsTB3Rlc3RpbmcxFjAUBgNVBAMTDUdlcmVteSBDb25k" +
+                    "cmExITAfBgkqhkiG9w0BCQEWEmdjb25kcmFAZ29vZ2xlLmNvbYIJAPLf2gS0zYGUMAwGA1UdEwQF" +
+                    "MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAYiugFDmbDOQ2U/+mqNt7o8ftlEo9SJrns6O8uTtK6AvR" +
+                    "orDrR1AXTXkuxwLSbmVfedMGOZy7Awh7iZa8hw5x9XmUudfNxvmrKVEwGQY2DZ9PXbrnta/dwbhK" +
+                    "mWfoepESVbo7CKIhJp8gRW0h1Z55ETXD57aGJRvQS4pxkP8ANhM=";
+
+
+    public static final String TEST_KEY = "" +
+                    "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKMYYcBMFiWZqz7SwQQKSejwtnUo" +
+                    "+CVv+Z97pWkJPcaFKv7tuvs0b9nAZmcSEuoTtggfh/GW0eZALdPP6MzVg36QxpCBFGOj8sEIl04p" +
+                    "ozBRuRXKcAfo5iwp6+Os4+TyV8zlIVDMkwawD35N+imvnGDQHBnW8D/4TeYTtOvczZS/AgMBAAEC" +
+                    "gYBxwFalNSwZK3WJipq+g6KLCiBn1JxGGDQlLKrweFaSuFyFky9fd3IvkIabirqQchD612sMb+GT" +
+                    "0t1jptW6z4w2w6++IW0A3apDOCwoD+uvDBXrbFqI0VbyAWUNqHVdaFFIRk2IHGEE6463mGRdmILX" +
+                    "IlCd/85RTHReg4rl/GFqWQJBANgLAIR4pWbl5Gm+DtY18wp6Q3pJAAMkmP/lISCBIidu1zcqYIKt" +
+                    "PoDW4Knq9xnhxPbXrXKv4YzZWHBK8GkKhQ0CQQDBQnXufQcMew+PwiS0oJvS+eQ6YJwynuqG2ejg" +
+                    "WE+T7489jKtscRATpUXpZUYmDLGg9bLt7L62hFvFSj2LO2X7AkBcdrD9AWnBFWlh/G77LVHczSEu" +
+                    "KCoyLiqxcs5vy/TjLaQ8vw1ZQG580/qJnr+tOxyCjSJ18GK3VppsTRaBznfNAkB3nuCKNp9HTWCL" +
+                    "dfrsRsFMrFpk++mSt6SoxXaMbn0LL2u1CD4PCEiQMGt+lK3/3TmRTKNs+23sYS7Ahjxj0udDAkEA" +
+                    "p57Nj65WNaWeYiOfTwKXkLj8l29H5NbaGWxPT0XkWr4PvBOFZVH/wj0/qc3CMVGnv11+DyO+QUCN" +
+                    "SqBB5aRe8g==";
+
+    private void overrideSettings(String key, String value) throws Exception {
+        assertTrue(Settings.Secure.putString(mContext.getContentResolver(), key, value));
+        Thread.sleep(1000);
+    }
+
+    private void overrideCert(String value) throws Exception {
+        overrideSettings(PINLIST_CERTIFICATE_KEY, value);
+    }
+
+    private String readPins() throws Exception {
+        return IoUtils.readFileAsString(PINLIST_CONTENT_PATH);
+    }
+
+    private String readCurrentVersion() throws Exception {
+        return IoUtils.readFileAsString("/data/misc/keychain/metadata/version");
+    }
+
+    private String getNextVersion() throws Exception {
+        int currentVersion = Integer.parseInt(readCurrentVersion());
+        return Integer.toString(currentVersion + 1);
+    }
+
+    private static String getCurrentHash(String content) throws Exception {
+        if (content == null) {
+            return "0";
+        }
+        MessageDigest dgst = MessageDigest.getInstance("SHA512");
+        byte[] encoded = content.getBytes();
+        byte[] fingerprint = dgst.digest(encoded);
+        return IntegralToString.bytesToHexString(fingerprint, false);
+    }
+
+    private static String getHashOfCurrentContent() throws Exception {
+        String content = IoUtils.readFileAsString("/data/misc/keychain/pins");
+        return getCurrentHash(content);
+    }
+
+    private PrivateKey createKey() throws Exception {
+        byte[] derKey = Base64.decode(TEST_KEY.getBytes(), Base64.DEFAULT);
+        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(derKey);
+        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+        return (PrivateKey) keyFactory.generatePrivate(keySpec);
+    }
+
+    private X509Certificate createCertificate() throws Exception {
+        byte[] derCert = Base64.decode(TEST_CERT.getBytes(), Base64.DEFAULT);
+        InputStream istream = new ByteArrayInputStream(derCert);
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+        return (X509Certificate) cf.generateCertificate(istream);
+    }
+
+    private String makeTemporaryContentFile(String content) throws Exception {
+        FileOutputStream fw = mContext.openFileOutput("content.txt", mContext.MODE_WORLD_READABLE);
+        fw.write(content.getBytes(), 0, content.length());
+        fw.close();
+        return mContext.getFilesDir() + "/content.txt";
+    }
+
+    private String createSignature(String content, String version, String requiredHash)
+                                   throws Exception {
+        Signature signer = Signature.getInstance("SHA512withRSA");
+        signer.initSign(createKey());
+        signer.update(content.trim().getBytes());
+        signer.update(version.trim().getBytes());
+        signer.update(requiredHash.getBytes());
+        String sig = new String(Base64.encode(signer.sign(), Base64.DEFAULT));
+        assertEquals(true,
+                     verifySignature(content, version, requiredHash, sig, createCertificate()));
+        return sig;
+    }
+
+    public boolean verifySignature(String content, String version, String requiredPrevious,
+                                   String signature, X509Certificate cert) throws Exception {
+        Signature signer = Signature.getInstance("SHA512withRSA");
+        signer.initVerify(cert);
+        signer.update(content.trim().getBytes());
+        signer.update(version.trim().getBytes());
+        signer.update(requiredPrevious.trim().getBytes());
+        return signer.verify(Base64.decode(signature.getBytes(), Base64.DEFAULT));
+    }
+
+    private void sendIntent(String contentPath, String version, String required, String sig) {
+        Intent i = new Intent();
+        i.setAction("android.intent.action.UPDATE_PINS");
+        i.putExtra(EXTRA_CONTENT_PATH, contentPath);
+        i.putExtra(EXTRA_VERSION_NUMBER, version);
+        i.putExtra(EXTRA_REQUIRED_HASH, required);
+        i.putExtra(EXTRA_SIGNATURE, sig);
+        mContext.sendBroadcast(i);
+    }
+
+    private String runTest(String cert, String content, String version, String required, String sig)
+                           throws Exception {
+        Log.e(TAG, "started test");
+        overrideCert(cert);
+        String contentPath = makeTemporaryContentFile(content);
+        sendIntent(contentPath, version, required, sig);
+        Thread.sleep(1000);
+        return readPins();
+    }
+
+    private String runTestWithoutSig(String cert, String content, String version, String required)
+                                     throws Exception {
+        String sig = createSignature(content, version, required);
+        return runTest(cert, content, version, required, sig);
+    }
+
+    public void testOverwritePinlist() throws Exception {
+        Log.e(TAG, "started testOverwritePinList");
+        assertEquals("abcde", runTestWithoutSig(TEST_CERT, "abcde", getNextVersion(), getHashOfCurrentContent()));
+        Log.e(TAG, "started testOverwritePinList");
+    }
+
+   public void testBadSignatureFails() throws Exception {
+        Log.e(TAG, "started testOverwritePinList");
+        String text = "blahblah";
+        runTestWithoutSig(TEST_CERT, text, getNextVersion(), getHashOfCurrentContent());
+        assertEquals(text, runTest(TEST_CERT, "bcdef", getNextVersion(), getCurrentHash(text), ""));
+        Log.e(TAG, "started testOverwritePinList");
+    }
+
+    public void testBadRequiredHashFails() throws Exception {
+        runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent());
+        assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", getNextVersion(), "0"));
+        Log.e(TAG, "started testOverwritePinList");
+    }
+
+    public void testBadVersionFails() throws Exception {
+        String text = "blahblahblahblah";
+        String version = getNextVersion();
+        runTestWithoutSig(TEST_CERT, text, version, getHashOfCurrentContent());
+        assertEquals(text, runTestWithoutSig(TEST_CERT, "defgh", version, getCurrentHash(text)));
+        Log.e(TAG, "started testOverwritePinList");
+    }
+
+    public void testOverrideRequiredHash() throws Exception {
+        runTestWithoutSig(TEST_CERT, "blahblahblah", getNextVersion(), getHashOfCurrentContent());
+        assertEquals("blahblahblah", runTestWithoutSig(TEST_CERT, "cdefg", "NONE", "0"));
+        Log.e(TAG, "started testOverwritePinList");
+    }
+
+}
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
old mode 100755
new mode 100644
diff --git a/test-runner/src/android/test/NoExecTestResult.java b/test-runner/src/android/test/NoExecTestResult.java
old mode 100755
new mode 100644
diff --git a/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png b/tests/BrowserTestPlugin/res/drawable/browser_test_plugin.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
old mode 100755
new mode 100644
diff --git a/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png b/tests/FrameworkPerf/res/drawable-161dpi/stat_sample_scale.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png b/tests/FrameworkPerf/res/drawable-hdpi/stat_happy.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png b/tests/FrameworkPerf/res/drawable-nodpi/stat_sample.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java b/tests/GridLayoutTest/src/com/android/test/layout/AlignmentTest.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/Android.mk b/tests/ImfTest/Android.mk
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/AndroidManifest.xml b/tests/ImfTest/AndroidManifest.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/res/layout/full_screen_edit_text.xml b/tests/ImfTest/res/layout/full_screen_edit_text.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/res/layout/one_edit_text_activity.xml b/tests/ImfTest/res/layout/one_edit_text_activity.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/res/layout/sample_edit_text.xml b/tests/ImfTest/res/layout/sample_edit_text.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/res/values/strings.xml b/tests/ImfTest/res/values/strings.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java b/tests/ImfTest/src/com/android/imftest/samples/InputTypeActivity.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/Android.mk b/tests/ImfTest/tests/Android.mk
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/AndroidManifest.xml b/tests/ImfTest/tests/AndroidManifest.xml
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollablePanScanTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityNonScrollableResizeTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollablePanScanTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BigEditTextActivityScrollableResizeTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityPanScanTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/BottomEditTextActivityResizeTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ButtonActivityTest.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ImfBaseTestCase.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityBaseTestCase.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityNoScrollPanScanTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollPanScanTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/ManyEditTextActivityScrollResizeTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivityNotSelectedTests.java
old mode 100755
new mode 100644
diff --git a/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java b/tests/ImfTest/tests/src/com/android/imftest/samples/OneEditTextActivitySelectedTests.java
old mode 100755
new mode 100644
diff --git a/tests/LocationTracker/res/xml/preferences.xml b/tests/LocationTracker/res/xml/preferences.xml
old mode 100755
new mode 100644
diff --git a/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java b/tests/LocationTracker/src/com/android/locationtracker/SettingsActivity.java
old mode 100755
new mode 100644
diff --git a/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png b/tests/RenderScriptTests/PerfTest/res/drawable-nodpi/globe.png
old mode 100755
new mode 100644
Binary files differ
diff --git a/tools/aapt/Resource.cpp b/tools/aapt/Resource.cpp
index 9c2e1b9..77168f9 100644
--- a/tools/aapt/Resource.cpp
+++ b/tools/aapt/Resource.cpp
@@ -1946,7 +1946,7 @@
                 const bool pub = (typeSpecFlags&ResTable_typeSpec::SPEC_PUBLIC) != 0;
 
                 fprintf(fp,
-                        "int styleable.%s_%s %d\n",
+                        "int styleable %s_%s %d\n",
                         nclassName.string(),
                         String8(name).string(), (int)pos);
             }
diff --git a/tools/aidl/AST.cpp b/tools/aidl/AST.cpp
old mode 100755
new mode 100644
diff --git a/tools/aidl/AST.h b/tools/aidl/AST.h
old mode 100755
new mode 100644
diff --git a/tools/aidl/Type.cpp b/tools/aidl/Type.cpp
old mode 100755
new mode 100644
diff --git a/tools/aidl/Type.h b/tools/aidl/Type.h
old mode 100755
new mode 100644
diff --git a/tools/layoutlib/bridge/src/android/util/Log_Delegate.java b/tools/layoutlib/bridge/src/android/util/Log_Delegate.java
old mode 100755
new mode 100644
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/Nullable.java
old mode 100755
new mode 100644
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/annotations/VisibleForTesting.java
old mode 100755
new mode 100644
diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/DependencyFinder.java
old mode 100755
new mode 100644
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index dafa8e8..9898b53 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -127,7 +127,7 @@
     private final boolean mBackgroundScanSupported;
 
     private String mInterfaceName;
-    /* Tethering interface could be seperate from wlan interface */
+    /* Tethering interface could be separate from wlan interface */
     private String mTetherInterfaceName;
 
     private int mLastSignalLevel = -1;
@@ -248,7 +248,7 @@
     static final int CMD_START_DRIVER                     = BASE + 13;
     /* Stop the driver */
     static final int CMD_STOP_DRIVER                      = BASE + 14;
-    /* Indicates Static IP succeded */
+    /* Indicates Static IP succeeded */
     static final int CMD_STATIC_IP_SUCCESS                = BASE + 15;
     /* Indicates Static IP failed */
     static final int CMD_STATIC_IP_FAILURE                = BASE + 16;
@@ -263,7 +263,7 @@
 
     /* Start the soft access point */
     static final int CMD_START_AP                         = BASE + 21;
-    /* Indicates soft ap start succeded */
+    /* Indicates soft ap start succeeded */
     static final int CMD_START_AP_SUCCESS                 = BASE + 22;
     /* Indicates soft ap start failed */
     static final int CMD_START_AP_FAILURE                 = BASE + 23;
@@ -883,22 +883,22 @@
      * TODO: doc
      */
     public void setScanOnlyMode(boolean enable) {
-      if (enable) {
-          sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0));
-      } else {
-          sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0));
-      }
+        if (enable) {
+            sendMessage(obtainMessage(CMD_SET_SCAN_MODE, SCAN_ONLY_MODE, 0));
+        } else {
+            sendMessage(obtainMessage(CMD_SET_SCAN_MODE, CONNECT_MODE, 0));
+        }
     }
 
     /**
      * TODO: doc
      */
     public void setScanType(boolean active) {
-      if (active) {
-          sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0));
-      } else {
-          sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0));
-      }
+        if (active) {
+            sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_ACTIVE, 0));
+        } else {
+            sendMessage(obtainMessage(CMD_SET_SCAN_TYPE, SCAN_PASSIVE, 0));
+        }
     }
 
     /**
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java
index 4a4320c..d95d624 100644
--- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java
+++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java
@@ -165,11 +165,11 @@
     /* Commands to the WifiStateMachine */
     public static final int P2P_CONNECTION_CHANGED          =   BASE + 11;
 
-    /* These commands are used to tempoarily disconnect wifi when we detect
+    /* These commands are used to temporarily disconnect wifi when we detect
      * a frequency conflict which would make it impossible to have with p2p
      * and wifi active at the same time.
      *
-     * If the user chooses to disable wifi tempoarily, we keep wifi disconnected
+     * If the user chooses to disable wifi temporarily, we keep wifi disconnected
      * until the p2p connection is done and terminated at which point we will
      * bring back wifi up
      *
@@ -389,7 +389,7 @@
          * not get latest updates about the device without being in discovery state.
          *
          * From the framework perspective, the device is still there since we are connecting or
-         * connected to it. so we keep these devices in a seperate list, so that they are removed
+         * connected to it. so we keep these devices in a separate list, so that they are removed
          * when connection is cancelled or lost
          */
         private final WifiP2pDeviceList mPeersLostDuringConnection = new WifiP2pDeviceList();
@@ -1055,48 +1055,48 @@
                     //and wait instead for the GO_NEGOTIATION_REQUEST_EVENT.
                     //Handling provision discovery and issuing a p2p_connect before
                     //group negotiation comes through causes issues
-                   break;
+                    break;
                 case WifiP2pManager.CREATE_GROUP:
-                   mAutonomousGroup = true;
-                   int netId = message.arg1;
-                   boolean ret = false;
-                   if (netId == WifiP2pGroup.PERSISTENT_NET_ID) {
-                       // check if the go persistent group is present.
-                       netId = mGroups.getNetworkId(mThisDevice.deviceAddress);
-                       if (netId != -1) {
-                           ret = mWifiNative.p2pGroupAdd(netId);
-                       } else {
-                           ret = mWifiNative.p2pGroupAdd(true);
-                       }
-                   } else {
-                       ret = mWifiNative.p2pGroupAdd(false);
-                   }
+                    mAutonomousGroup = true;
+                    int netId = message.arg1;
+                    boolean ret = false;
+                    if (netId == WifiP2pGroup.PERSISTENT_NET_ID) {
+                        // check if the go persistent group is present.
+                        netId = mGroups.getNetworkId(mThisDevice.deviceAddress);
+                        if (netId != -1) {
+                            ret = mWifiNative.p2pGroupAdd(netId);
+                        } else {
+                            ret = mWifiNative.p2pGroupAdd(true);
+                        }
+                    } else {
+                        ret = mWifiNative.p2pGroupAdd(false);
+                    }
 
-                   if (ret) {
-                       replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED);
-                       transitionTo(mGroupNegotiationState);
-                   } else {
-                       replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED,
-                               WifiP2pManager.ERROR);
-                       // remain at this state.
-                   }
-                   break;
+                    if (ret) {
+                        replyToMessage(message, WifiP2pManager.CREATE_GROUP_SUCCEEDED);
+                        transitionTo(mGroupNegotiationState);
+                    } else {
+                        replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED,
+                                WifiP2pManager.ERROR);
+                        // remain at this state.
+                    }
+                    break;
                 case WifiMonitor.P2P_GROUP_STARTED_EVENT:
-                   mGroup = (WifiP2pGroup) message.obj;
-                   if (DBG) logd(getName() + " group started");
+                    mGroup = (WifiP2pGroup) message.obj;
+                    if (DBG) logd(getName() + " group started");
 
                     // We hit this scenario when a persistent group is reinvoked
-                   if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) {
-                       mAutonomousGroup = false;
-                       deferMessage(message);
-                       transitionTo(mGroupNegotiationState);
-                   } else {
-                       loge("Unexpected group creation, remove " + mGroup);
-                       mWifiNative.p2pGroupRemove(mGroup.getInterface());
-                   }
-                   break;
+                    if (mGroup.getNetworkId() == WifiP2pGroup.PERSISTENT_NET_ID) {
+                        mAutonomousGroup = false;
+                        deferMessage(message);
+                        transitionTo(mGroupNegotiationState);
+                    } else {
+                        loge("Unexpected group creation, remove " + mGroup);
+                        mWifiNative.p2pGroupRemove(mGroup.getInterface());
+                    }
+                    break;
                 default:
-                   return NOT_HANDLED;
+                    return NOT_HANDLED;
             }
             return HANDLED;
         }