Android 下 root 后自己的应用如何实现修改其他应用的权限 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Newass
V2EX    Android

Android 下 root 后自己的应用如何实现修改其他应用的权限

  •  
  •   Newass 2018-05-08 08:41:28 +08:00 14757 次点击
    这是一个创建于 2801 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,感觉所从下手

    之前试过修改 /data/system/packages.xml 但是只能用 adb 修改,应用好像无法修改(即使获取 root 权限) 也试过用 AppOpsManager,里面的 setMode 方法被隐藏,网上说自己导入 AppOpsManager.java 就行,但是导入后 import 的其他的包都不能找到==也不知道咋回事儿……

    求有知道的 dalao 给条明路 OTZ

    11 条回复    2018-05-12 09:37:15 +08:00
    Newass
        1
    Newass  
    OP
       2018-05-08 09:22:34 +08:00
    怎么都没人回答呀……是不是提问方式不大对啊……新人各位 dalao 多多包涵 OTZ
    zpxshl
        2
    zpxshl  
       2018-05-08 10:07:58 +08:00 via Android
    反射获得隐藏的方法?
    alvinbone88
        3
    alvinbone88  
       2018-05-08 11:32:21 +08:00
    既然已经 root 了,就直接改 /data/system/appops.xml 来改权限
    另外 /data/system/packages.xml 在我手机上是可以用 root 权限修改的,建议顺便检查一下 root 是否完整
    tempdban
        4
    tempdban  
       2018-05-08 11:41:56 +08:00 via Android
    selinux
    Newass
        5
    Newass  
    OP
       2018-05-08 23:13:56 +08:00
    @zpxshl 试了一下子,应该是编译.class 的时候会忽略 @hide 属性的方法等,所以反射找不到方法。
    Newass
        6
    Newass  
    OP
       2018-05-08 23:18:54 +08:00
    @alvinbone88 请问修改是把修改操作写到 APP 里面,然后运行 APP 么……我这会 permission denied,但是我的应用是可以把 package.xml 修改为可读可写的,但是修改文件就是不行……
    alvinbone88
        7
    alvinbone88  
       2018-05-09 00:49:36 +08:00
    @Newas #6 这种疑难杂症,没详细的日志就只能靠猜……

    > 请问修改是把修改操作写到 APP 里面,然后运行 APP 么

    你这句话让我一脸懵逼啊
    写到 APP 的哪里? APP 里用于声明权限的文件只有 AndroidManifest.xml ,这个文件还在 APK 中,修改还需要解包

    顺便提醒一下,通过改 packages.xml 来控制权限并不是一个好办法,因为只要 APP 覆盖安装一次,与这个 APP 相关的修改就会全部丢失
    如果只是想让 APP 获取不到权限,直接改 app ops 的配置文件就可以了
    zpxshl
        8
    zpxshl  
       2018-05-09 08:20:12 +08:00 via Android
    @Newass 反射可以获得 hide 方法的吧
    Newass
        9
    Newass  
    OP
       2018-05-09 08:43:35 +08:00
    @alvinbone88 感谢大佬的解答~
    我的意思,具体点,就是自己写个 APP 修改文件的函数写到一个 Button 的点击函数里面,然后运行点击按钮,Android studio 中报 permission denied,修改的方法是 Bufferedwriter 打开 packages.xml ,这样就会直接报错,我也试了一下 appops.xml 同样的也是不行……
    获取权限用的 Runtime.getRuntime().exec("su");可以修改 packages.xml 的权限可读可写(chmod 777 packages.xml)
    手机用的红米 note,他是自带 root 管理的
    alvinbone88
        10
    alvinbone88  
       2018-05-09 09:38:27 +08:00
    @Newass #9 建议先检查一下 system 分区是否能正常读写

    据我所知,红米自带的 root 不是完整 root,最后还需要解锁 system 分区
    Trumeet
        11
    Trumeet  
       2018-05-12 09:37:15 +08:00 via Android
    用 Root 命令行调用 app_process,加载自己的 dex 来实现越权。
    至于隐藏 API,https://blog.yuuta.moe/2017/09/12/new-way-access-hidden-api/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5691 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 06:27 PVG 14:27 LAX 22:27 JFK 01:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86