天天看点

Android自动化笔记-部分提权方案所需命令行

最近使用Main类来进行Android提权的情况比较多,这里稍作汇总一下;

比较常用提权运行的分为代码在.jar包里面,以及代码在Apk应用里面,都简单记录一下;

这里的例子packageName为:jt.com.posion,测试类名字为TestMain,整体路径名为:jt.com.posion.TestMain;

第一种:Main类可执行代码在jar包里

一般情况下先将已build好的apk后缀改成jar,然后push或者手动放到某个目录下,然后执行类似如下的命令

adb shell CLASSPATH=/sdcard/SRecord/Test.jar app_process /jt.com.posion.TestMain jt.com.posion.TestMain

格式:adb shell CLASSPATH=jar包路径/jar包名称 app_process /Main类的包路径 Main类的包路径 参数

这里的参数是同命令行运行java代码后面给args[]赋值的效果一样;

第二种:Main类可执行代码在App应用里

当可执行Main类在Apk里的话,这里的CLASSPATH就会发生一些改变,因为代码在Apk里面,每个apk在每次的安装过后,都会在data/app/下生成一个随机字串的文件夹,其中存放着base.apk,主要代码还是在base.apk里面,或者如果Instant Run的话,还有另外的0-9个slide-lib.apk,我也都试过一些;

不过经过测试,如果要这种运行App里的Main类代码的方式,最好还是把AS里的Instant Run关闭,不然不一定会生效;

查看包的详细路径:adb shell pm path /jt.com.posion

包路径返回结果格式:

package:/data/app/jt.com.posion-W9Qos9Gkdq4qitky-4NAWQ==/base.apk

随后获取冒号后面的字段,然后组装成下面的语句

运行包中的Main类:

adb shell

export CLASSPATH=/data/app/jt.com.posion-W9Qos9Gkdq4qitky-4NAWQ==/base.apk

exec app_process /system/bin jt.com.posion.TestMain

继续阅读