Android 5.1部分apk的升级或缓存功能无效

google在external storage的权限限制导致的原因
要解决问题,需要给external storage 一个media rw权限就可以

diff --git a/base/services/core/java/com/android/server/SystemConfig.java b/base/services/core/java/com/android/server/SystemConfig.java
index cf2a49f..88dd54d 100644
--- a/base/services/core/java/com/android/server/SystemConfig.java
+++ b/base/services/core/java/com/android/server/SystemConfig.java
@@ -352,6 +352,17 @@ public class SystemConfig {
                 if (gidStr != null) {
                     int gid = Process.getGidForName(gidStr);
                     perm.gids = appendInt(perm.gids, gid);
+/* Tue, 09 Jun 2015 15:30:14 +0800
+ * add media_rw permission to external sdcard if BUILD_CTS=no
+ */
+                    if (!FeatureOption.BUILD_CTS) {
+                        if ("android.permission.WRITE_EXTERNAL_STORAGE".equals(name) && "sdcard_rw".equals(gidStr)
+                                || "android.permission.ACCESS_ALL_EXTERNAL_STORAGE".equals(name) && "sdcard_all".equals(gidStr)) {
+                            perm.gids = appendInt(perm.gids, Process.getGidForName("media_rw"));
+                            Slog.d(TAG, "add permission -> " + name + ", to group -> media_rw");
+                        }
+                    }
+// End
                 } else {
                     Slog.w(TAG, "<group> without gid at "
                             + parser.getPositionDescription());

猜你喜欢

转载自hanshengpeng.iteye.com/blog/2218358
今日推荐