V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zinwalin
V2EX  ›  Android

非系统 App 如何默认授权某些权限?

  •  
  •   zinwalin · Sep 8, 2022 · 12513 views
    This topic created in 1340 days ago, the information mentioned may be changed or developed.

    某个 App ,不想让它成为系统 App ,通过修改安卓 10 的源码,如何让 App 在请求权限时不弹出确认窗口?

    网上查到有类似白名单的方式,有人用过吗? 或者直接 hard-code 到安卓 10 源码里也可以。

    多谢大佬

    11 replies    2022-09-17 14:44:08 +08:00
    aerzha
        1
    aerzha  
       Sep 8, 2022
    修改源码的话,我记得有个 xml 配置,可以配置对应的包名及默认给予的权限,PMS 源码查下看看?
    zinwalin
        2
    zinwalin  
    OP
       Sep 8, 2022
    @aerzha 多谢回复,有 xml 的关键字吗? 不一定准确,我可以更容易搜索。
    zinwalin
        3
    zinwalin  
    OP
       Sep 8, 2022
    @aerzha 网上查到 def_permission.xml
    Darkatse
        4
    Darkatse  
       Sep 8, 2022
    app ops 设置模板
    xingda920813
        5
    xingda920813  
       Sep 8, 2022
    通过 adb install -g 安装即可为应用程序授予所有运行时的权限.
    SupperMary
        6
    SupperMary  
       Sep 9, 2022
    有源码就很简单了,app 授权是发给一个叫 permissionmanager ,改这个 app ,识别到是你想开放权限的这个 app 的时候,就默认通过授权就可以了。
    aerzha
        7
    aerzha  
       Sep 9, 2022
    @zinwalin 好久没搞系统开发了,简单查了下,你试试可不可行:
    1. DefaultPermissionGrantPolicy.java 中的 getDefaultPermissionFiles() 方法,会读取各目录下的 xml 配置, 一般我修改 vendor 下的
    aerzha
        8
    aerzha  
       Sep 9, 2022
    @aerzha 手滑发出去了,你参考看下 getDefaultPermissionFiles() 源码,去 android 源码中的各目录下看看,参考其他 app 的写法,再把你的 app 加进去就可以了。
    zinwalin
        9
    zinwalin  
    OP
       Sep 11, 2022 via iPhone
    @aerzha 感谢。下周试试
    zinwalin
        10
    zinwalin  
    OP
       Sep 11, 2022 via iPhone
    @SupperMary 感谢。
    deng81416754
        11
    deng81416754  
       Sep 17, 2022
    如果有系统的签名,也可以实现
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   841 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 21:15 · PVG 05:15 · LAX 14:15 · JFK 17:15
    ♥ Do have faith in what you're doing.