该篇文章讲解文件监控原理,虽然题目为魅族手机,其实监控原理与aosp源码一致,所以我先用了root的pixel 4a进行分析
写了一个app-demo,进行简单的文件删除操作:
File oldPath = new File("/storage/emulated/0/libs/3.txt");
try {
oldPath.delete();
} catch (Exception e) {
e.printStackTrace();
}
AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true"
....
...
>
</application>
运行app,抓adb log
04-03 15:44:07.737 6571 18760 D MediaProvider: /storage/emulated/0/libs/.trashed-1619855047-2 5456 true
04-03 15:44:07.741 6571 18760 I MediaProvider: Deleted 1 items on external_primary due to com.example.demo
logcat中会有MediaProvider的log,我们看看该进程找一下是哪个包,然后将其apk拿出来
sunfish:/ $ ps -A |grep 3238
u0_a190 3238 706 13989172 135984 0 0 S com.android.providers.media.module
sunfish:/ $
sunfish:/ $
sunfish:/ $
sunfish:/ $ pm path com.android.providers.media.mo