想在apk中实现更改system/lib中的一个库名(如把A.so改成B.so,mv A.so B.so),想到在apk中点击按钮实现adb remount,然后再进行后续的 mv A.so B.so 操作,但是在Android中怎么调用adb的命令?
想在apk中实现更改system/lib中的一个库名(如把A.so改成B.so,mv A.so B.so),想到在apk中点击按钮实现adb remount,然后再进行后续的 mv A.so B.so 操作,但是在Android中怎么调用adb的命令?
实际上 dkmeteor 已经给出了详尽的答案了,我就额外罗嗦一下
apk 是编译打包生成的安装程序,运行在 android 系统里面。
adb 只是 android 的一个调试桥,用于跟其他平台通信,其中有一个功能就是执行 shell 命令
从题主的需求上看,需要移动一个系统文件,必要的话还需要重新挂载
这个需求得用到 android 的超级管理员权限,也就说没有 root 的手机无法达到要求。
题主可以尝试 dkmeteor 提供的方法先获取 root 权限,然后再执行两个 shell 就可以了
mount -o rw,remount /system
mv /system/libA.so /system/libB.so
祝好~
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
你要动system/lib下的文件.....非ROOT可能不行
Process localProcess = Runtime.getRuntime().exec("mv A.so B.so");
这样直接执行linux命令吧....
不行的话先执行个
Process localProcess = Runtime.getRuntime().exec("su");
apk里执行的linux命令和你adb进去执行的linux命令完全一致.
但是apk所在用户组权限很低.....可能很多命令没法执行..