android8.1系统默认就是不让SYSTEM_UID和ROOT_UID用户获取grantUri权限,需要修改ActivityManagerService.java里面的checkGrantUriPermissionLocked方法,去掉SYSTEM_UID不能获取权限问题:

--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -9095,7 +9095,7 @@ public class ActivityManagerService extends IActivityManager.Stub
         // Bail early if system is trying to hand out permissions directly; it
         // must always grant permissions on behalf of someone explicit.
         final int callingAppId = UserHandle.getAppId(callingUid);
-        if ((callingAppId == SYSTEM_UID) || (callingAppId == ROOT_UID)) {
+               if(callingAppId == ROOT_UID){
              
          if ("com.android.settings.files".equals(grantUri.uri.getAuthority())) {
                 // Exempted authority for cropping user photos in Settings app
                    } else {
                               Slog.w(TAG, "For security reasons, the system cannot issue a Uri permission"
                                               + " grant to " + grantUri + "; use startActivityAsCaller() instead");
                 return -1;
                        }
              }
 
         final String authority = grantUri.uri.getAuthority();
         final ProviderInfo pi = getProviderInfoLocked(authority, grantUri.sourceUserId,

更多相关文章

  1. Android如何在广播接收器中启动活动和弹出对话框
  2. Android使用post方式上传图片到服务器的方法
  3. Android(安卓)7.0 以上安装Apk适配方案总结
  4. Android点击button触发Toast事件,弹出一个小小的消息框,几秒钟之
  5. INSTALL_FAILED_TEST_ONLY
  6. android phone application 通知missed call的过程
  7. Android(安卓)关于倒计时功能的实现
  8. Android:activity,fragment和service之我见(准备更新)
  9. Android用Webview播放视频问题

随机推荐

  1. Android中使用HttpClient访问https时,安全
  2. Android开发工具使用之adb
  3. Android手势传递一般过程及其规则研究
  4. Android存储-SharedPreferences存储数据(
  5. android 媒体数据库刷新
  6. Android studio 使用心得(六)---android
  7. android中 onResume()方法什么时候执行?
  8. Android 总结:打造Android中的流式布局和
  9. android 数据库技术 | 文件系统,SDCARD访
  10. Android(1.5及以上版本) 开机图片/文字/