是什么让SSMS中的CyanogenMod允许堆转储,无论它们的调试标志如何?

时间:2014-07-21 21:27:41

标签: java android debugging ddms heap-dump

我一直在寻找几个小时但找不到答案。 CyanogenMOD ROM允许您转储任何进程的堆,DDMS在您插入设备时显示每个进程。如何让一个rom保持相同的权力?我在设备上有root权限,我必须以特殊方式将其隐藏在应用程序中,否则我会刷一个自定义ROM。是什么让设备在加载自定义ROM时将其内容泄漏到DDMS?我可以在应用程序上设置调试标志并重建,但我不想破坏篡改检测,并减轻该保护措施。

实施例: 我插入我的库存设备(Galaxy Tab 2 7")并且没有一个进程显示在DDMS中。插入cyanogen(Galaxy S3)设备,它显示所有内容并允许堆转储。

2 个答案:

答案 0 :(得分:0)

我不是ROM开发人员所以我的猜测和你的一样好,但这听起来好像他们可能在他们的自定义内核中实现它,而不是在应用程序级别。所以,除非有人将该功能移植到ROM的内核中,否则不能自己做。

答案 1 :(得分:0)

在Android系统上花费更多时间后,当每个app_process启动时,如果清单中的调试标志为true,那么zygote将打开一个到JDWP的套接字(您可以使用应用程序的PID通过adb转发)或者当build.prop中的ro.debuggable为true时。因此,如果您有开发人员操作系统,它会将每个新应用视为调试应用。打字" adb jdwp"进入你的shell应该向你展示所有准备好JDWP套接字的PIDS。有趣的是,当你在CM中键入该命令时,它永远不会给你一个shell,所以自动化这需要你把它计时。