首页
社区
课程
招聘
re文件管理器列出/data目录下文件的原理是什么?
发表于: 2016-12-6 01:38 4476

re文件管理器列出/data目录下文件的原理是什么?

2016-12-6 01:38
4476
re文件管理器列出/data目录下文件的原理是什么?
不要说ls -l /data,解析它输出的字符非常麻烦,文件名中有空格就完了;
不要说ls -a,不能获取权限信息、修改时间信息;
不要说file.listfiles(),就算获取了root也不能列出;
目前我想到的是,编译一个类似ls二进制文件,su -c xx执行,这样格式比较好控制,但要考虑不同平台,也就导致apk体积增加,而且还要判断运行平台,再解包到文件,也是非常麻烦。
我就想知道,目前市面上的root文件管理器是怎么实现的?
看了re源码发现也是用ls,好吧
发现一个更好的命令,stat,居然支持自定义格式输出
stat -c %Z*%A*%s*%n*%N /data/*

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 5
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图片之类的都是保存在数据库,通过内容共享者中查询到的,如果有root权限或者系统权限就直接遍历SD卡也是一样的,File f[]=new File("/sd卡根路径/").listFiles(); foreach(File file:f){写个递归就好了}
2016-12-6 08:50
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2016-12-6 11:56
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
要列出/data,需要机器被root先,即存在/system/*bin/su
Runtime.getRuntime.exec("su -c 'ls -l /data'")
2016-12-6 16:00
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
ls -l /data命令的输出用正则解析起来有些麻烦,
d :目录   
- :文件   
l :链接   
s :socket   
p :named pipe   
b :block device   
c  :character device  
这些输出的列数都不一样,很不好解析,难道我要自己写一个类似ls的二进制命令?
2016-12-6 17:01
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
只是举个例子,root之后的所有操作,都必须通过su -c 'xxx' 或者 su获得roo tshell,通过输出输入流交互

具体你要获取什么信息自己在这个root shell里运行就是了,获取文件详情的命令很多
也可以反编译或者调试rootexplorer,看看都运行了哪些shell命令
2016-12-7 10:14
0
游客
登录 | 注册 方可回帖
返回
//