当前位置: 首页 > news >正文

旅游网站分析广告喷绘制作公司介绍

旅游网站分析,广告喷绘制作公司介绍,做问卷不花钱的网站,百赞小程序制作平台在Android开发过程中,应用安装功能是很常见的,但随着sdk版本变高,限制也越来越严格。除了用户可见的【未知来源】安装限制,还是开发中对文件Uri读取的限制,需要权限INSTALL_GRANT_RUNTIME_PERMISSIONS。仅仅开发APP的话&#xff0…

在Android开发过程中,应用安装功能是很常见的,但随着sdk版本变高,限制也越来越严格。除了用户可见的【未知来源】安装限制,还是开发中对文件Uri读取的限制,需要权限INSTALL_GRANT_RUNTIME_PERMISSIONS。

仅仅开发APP的话,按照官方文档说明进行开发即可。但在定制方案系统开发中,限制太多,用户体验不佳,一般都会去掉这些限制。以下是从系统源码层面进行修改,去掉这两个限制。

结论先行(给忙人看的)

  1. 只在 自己编译的 Android 固件 里改源码,才能把 grantUriPermission 这一步“省掉”。

  2. 改法就是 UriGrantsManagerService.checkGrantUriPermissionUnlocked() 直接 return GRANT_ALLOW,或者把 INSTALL_GRANT_RUNTIME_PERMISSIONS 强制恒为 true

  3. 改完后重新 make -j$(nproc) 并烧录整机;普通 App 想用“免授权”手段安装,没有 root/系统签名根本做不到

下面给出完整思路与关键源码位置,按需取用。


一、先弄清楚流程(为什么必须 grant)

App → startActivity(Intent) → AMS → UriGrantsManagerService
checkGrantUriPermissionUnlocked()
→ 没权限就抛 SecurityException → 安装器直接崩。

所以“取消限制”= 让这段检查永远通过


二、AOSP 具体改动点

  1. 路径
    frameworks/base/services/core/java/com/android/server/uri/UriGrantsManagerService.java

  2. 关键函数
    private @GrantUriPermissionResult int checkGrantUriPermissionUnlocked(...)

  3. 最小改动(暴力版,开发调试可用)

// 大约在 1280 行附近
private @GrantUriPermissionResult int checkGrantUriPermissionUnlocked(int callingUid, int targetUid, Uri uri, final int intentFlags,int targetUserId) {// 直接放行return GRANT_ALLOW;
}
  1. 稍微“温柔”一点(只让安装流程放行)

// 只针对系统安装器包名
if ("com.android.packageinstaller".equals(getPackageManagerInternal().getNameForUID(targetUid))) {return GRANT_ALLOW;
}

      三、把“未知来源”弹窗也干掉

      frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java

      j

      // 搜索 INSTALL_GRANT_RUNTIME_PERMISSIONS
      final boolean grantPermissions =(args.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;
      // 改成
      final boolean grantPermissions = true;

      这样 任何 APK 安装都不会再弹权限确认框,包括危险权限。


      四、必须知道的副作用

      • 任何应用都可把 任意文件 URI 丢给系统安装器,安全风险极大

      • 通过 CTS/GTS 测试会失败,不适合商用出货

      • OTA 升级会覆盖掉你的 patch,需要重新打补丁。


      五、如果只想“自己 App 静默装”而不改系统

      没有 平台签名 + 系统权限 就做不到;
      有平台签名可参考 PackageInstaller.Session 反射方案,但仍需 INSTALL_PACKAGES 权限,普通 App 无法持有。

      http://www.dtcms.com/a/546773.html

      相关文章:

    1. 解决 IsaacSim 5.0 与 ROS2 Python 版本冲突的完整指南
    2. 万网空间存放两个网站湖州网站建设哪家公司好
    3. 酒店 企业网站建设的思路jsp ajax网站开发典型实例 pdf
    4. 关于命理的一些猜想
    5. 西安有那些做网站的公司好商城的网站统计如何做
    6. 复古风格网站建筑网站大全免费
    7. 网站改版建设,有哪些内容唐山公司网站建设 中企动力唐山
    8. 柏乡企业做网站h5网站制作费用
    9. 专业企业网站建设报价潍坊专业技术人员继续教育
    10. Quartus II下载安装教程Quartus II 18保姆级安装步骤(附安装包)
    11. 查询网站开发的端口建站优化
    12. 外贸公司网站怎么做网站运营推广该如何做
    13. h5开源网站模板学校网站建设规划
    14. 浙江网站推广运营网络的基本概念
    15. 建设一个公司的网站需要多少钱公司做网站找谁公司做网站找谁
    16. 凡科网站免费版百度是不是只有在自己的网站发布才会被收录
    17. Array数组的底层实现深度解析
    18. 网站高端网站开发流程有哪几个阶段
    19. 有趣的网站 知乎怎么做网页公证
    20. 网站开发必备技能手机小游戏网站大全
    21. 贷款公司通过做网站来给予平台贷款微信公众号如何做微网站
    22. 自己做的网站外国人能访问吗网站开发国内外现状研究
    23. AI 智能健康手环进阶设计:新增体温监测与 TinyML 睡眠分析
    24. 东莞网站建设白帽seo三只松鼠网站谁做的
    25. 公司网站建设需要提供什么材料网站备案政策
    26. RevMan安装详细教程(附安装包)RevMan 5.4.1超详细安装教程
    27. 汕头网站制作找哪家商城网站建设 优帮云
    28. 商务网站建设珠海做公司网站
    29. 付网站建设费分录开通一个微信小程序
    30. Pycatia二次开发基础代码解析:非实体清理、数据导出与产品转换自动化技术解析