我正在开发自定义 AOSP 项目 (AOSP 13)。
我已在 AOSP 中添加自定义 Android 应用程序作为特权应用程序。这个应用程序在它的私人空间中生成日志文件
/data/data/com.myapp/files/
由于它是用户构建用户无法访问此日志文件。
有什么方法可以添加此日志文件
adb 错误报告
?,如果需要,我可以对 AOSP 代码进行必要的更改。
将来自 Android 应用程序的数据包含在 Android 错误报告中的一种简单方法是公开实现
dump
方法的公共 ContentProvider,例如:
public class MyBugReportDataProvider extends ContentProvider {
@Override
public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
if (!DumpUtils.checkDumpPermission(getContext(), TAG, writer)) {
return;
}
writer.println("Stuff to include in bug reports");
}
}
确保提供程序已导出,例如:
<provider
android:name=".MyBugReportDataProvider"
android:authorities="com.myapp.mybugreportdataprovider"
android:multiprocess="false"
android:singleUser="true"
android:exported="true"/>
您现在将在错误报告中看到以下内容:
PROVIDER ContentProviderRecord{x u0 com.myapp/.MyBugReportDataProvider} pid=99
Client:
Stuff to include in bug reports
请注意,显然它可能仅在进程当时正在运行时调用转储,因此如果您想保证始终调用
dump
,则您的应用程序需要持久化。