3,302
社区成员




1, 什么是ramdump?
RAM转储是指将运行内存(RAM)的内容转储到持久存储介质的过程。在计算机系统或移动设备中,RAM用于临时存储操作系统、应用程序和数据等信息。当系统遇到故障、崩溃或其他问题时,RAM转储可以记录当时RAM中存在的数据,用于故障排除和分析目的。
系统崩溃后启用和禁用ramdump的区别:
启用:它将进入900E。
禁用:不会进入900E,但会自动重启。
2, 通过 /proc/config.gz.获取您正在使用的配置
不同的配置有不同的方法来检查、启用和禁用RAM转储模式。
要检查设备上的内核配置,请运行“adb pulproc/config. gz.”以拉取配置文件。
解压config. gz并检查后,发现CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE或CONFIG_QCOM_DLOAD_MODE存在。
如果CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE,参照第3章,否则参照第4章。
3, 对于使用CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE的目标。
内核-5.4及以后版本中的一些目标已经迁移到使用安全PMIC,如Atherton、Kodiak。对于这样的目标,请启用CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE=y。
检查ramdump模式
adb shell cat /sys/module/qcom_dload_mode/parameters/download_mode
(0 for disable, 1 for enable)
启用ramdump模式。
默认情况下,非安全设备上的userdebug构建将启用ramdump。
/drivers/power/reset/qcom-dload-mode.c
static bool enable_dump =
IS_ENABLED(CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_DEFAULT);
如果不确定,将enable_dump设置为true。
/drivers/power/reset/qcom-dload-mode.c
static bool enable_dump = true;
检查是否启用了ramdump模式。
输入以下命令,检查设备是否进入900E模式。
adb shell echo c > /proc/sysrq-trigger
禁用ramdump模式。
diff --git a/drivers/power/reset/qcom-dload-mode.c b/drivers/power/reset/qcom-dload-mode.c
index 113db59c2aab..d85e27cc5d9a 100644
--- a/drivers/power/reset/qcom-dload-mode.c
+++ b/drivers/power/reset/qcom-dload-mode.c
@@ -35,8 +35,9 @@ struct qcom_dload {
#define QCOM_DOWNLOAD_BOTHDUMP (QCOM_DOWNLOAD_FULLDUMP | QCOM_DOWNLOAD_MINIDUMP)
-static bool enable_dump =
- IS_ENABLED(CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_DEFAULT);
+static bool enable_dump = false;
检查ramdump模式是否被禁用。
输入以下命令,查看设备是否未进入900E模式但已正常重启。
adb shell echo c > /proc/sysrq-trigger
4, 对于使用CONFIG_QCOM_DLOAD_MODE的目标
请启用CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE=y。
检查ramdump模式。
adb shell cat /sys/module/msm_poweroff/parameters/download_mode_mode
(0 for disable, 1 for enable)
启用ramdump模式。
默认情况下,非安全设备上的userdebug构建将启用ramdump。
drivers/power/reset/msm-poweroff.c
static int download_mode = 1;
检查是否启用了ramdump模式。
输入以下命令,检查设备是否进入900E模式。
adb shell echo c > /proc/sysrq-trigger
禁用ramdump模式。
diff --git a/drivers/power/reset/msm-poweroff.c b/drivers/power/reset/msm-poweroff.c
index 8db5b7286ac3..f52636963cf7 100644
--- a/drivers/power/reset/msm-poweroff.c
+++ b/drivers/power/reset/msm-poweroff.c
@@ -57,7 +57,7 @@ static struct nvmem_cell *nvmem_cell;
* There is no API from TZ to re-enable the registers.
* So the SDI cannot be re-enabled when it already by-passed.
*/
-static int download_mode = 1;
+static int download_mode = 0;
static struct kobject dload_kobj;
static int in_panic;
检查ramdump模式是否被禁用。
输入以下命令,查看设备是否未进入900E模式但已正常重启。
adb shell echo c > /proc/sysrq-trigger