Android 12 修改分辨率失败

主板为ROC-RK3588S-PC
1、问题1:修改以下代码,修改分辨率为1920*1200,重新烧录固件后,分辨率还是没有变动;请给出具体的解决方案,需要具体到修改代码的那一行,谢谢!

以下代码,是修改分辨率为19201200
diff --git a/kernel-5.10/drivers/gpu/drm/drm_edid.c b/kernel-5.10/drivers/gpu/drm/drm_edid.c
index 4a57b259e6c..3fa9b1db622 100644
— a/kernel-5.10/drivers/gpu/drm/drm_edid.c
+++ b/kernel-5.10/drivers/gpu/drm/drm_edid.c
@@ -1276,11 +1276,11 @@ static const struct drm_display_mode edid_cea_modes_1[] = {
4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
.picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, },
[b]- /
108 - 1280x720@48Hz 16:9 /[/b]
- { DRM_MODE(“1280x720”, DRM_MODE_TYPE_DRIVER, 90000, 1280, 2240,
- 2280, 2500, 0, 720, 725, 730, 750, 0,
- DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
- .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
[b]+ /
108 - 1920x1200@60Hz 16:10 RB /[/b]
+ { DRM_MODE(“1920x1200”, DRM_MODE_TYPE_DRIVER, 154000, 1920, 1968,
+ 2000, 2080, 0, 1200, 1203, 1209, 1235, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC),
+ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE, },
[b] /
109 - 1280x720@48Hz 64:27 */[/b]
{ DRM_MODE(“1280x720”, DRM_MODE_TYPE_DRIVER, 90000, 1280, 2240,
2280, 2500, 0, 720, 725, 730, 750, 0,

2、问题2:执行以下代码,隐藏状态栏
默认隐藏状态栏4.1.1. 代码修改的方式

  • 修改内容如下

diff --git a/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xmlindex ba87da7ec4..e32c9699f9 100644— a/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml+++ b/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml@@ -12,7 +12,7 @@ true - false+ true

重新烧录固件后,状态栏没有隐藏;请给出具体的解决方案,需要具体到修改代码的那一行,谢谢!

  1. 什么分辨率?HDMI的分辨率,还是系统的wm size ?
  2. 改错地方了,修改 frameworks/base/packages/SettingsProvider/res/values/firefly_defaults.xml:9: true

firefly_zhongw 发表于 2025-9-3 15:36

  1. 什么分辨率?HDMI的分辨率,还是系统的wm size ?
  2. 改错地方了,修改 frameworks/base/packages/Sett …

问题1,里面的代码,我在3399ProC上面修改后,分辨率是成功的
HDMI的分辨率,和系统的wm size,这2个怎么改的,你都回复我下,谢谢

  1. 1920x1200 HDMI 分辨率,我们没有调试过
  2. 参考 4K@25
    uboot
diff --git a/u-boot/drivers/video/drm/dw_hdmi_qp.c b/u-boot/drivers/video/drm/dw_hdmi_qp.c
index 7a8b54f03a7..90858501b93 100644
--- a/u-boot/drivers/video/drm/dw_hdmi_qp.c
+++ b/u-boot/drivers/video/drm/dw_hdmi_qp.c
@@ -1249,12 +1249,14 @@ int rockchip_dw_hdmi_qp_get_timing(struct rockchip_connector *conn, struct displ
        unsigned int bus_format;
        unsigned long enc_out_encoding;
        struct overscan *overscan = &conn_state->overscan;
-       const u8 def_modes_vic[6] = {4, 16, 2, 17, 31, 19};
+       //const u8 def_modes_vic[6] = {4, 16, 2, 17, 31, 19};
+       const u8 def_modes_vic[6] = {94};

        if (!hdmi)
                return -EFAULT;

        ret = drm_do_get_edid(&hdmi->adap, conn_state->edid);
+       ret = -1;
        if (!ret) {
                hdmi->sink_is_hdmi =
                        drm_detect_hdmi_monitor(edid);
@@ -1354,6 +1356,7 @@ int rockchip_dw_hdmi_qp_get_edid(struct rockchip_connector *conn, struct display
        struct dw_hdmi_qp *hdmi = conn->data;

        ret = drm_do_get_edid(&hdmi->adap, conn_state->edid);
+       ret = -1;

        return ret;
 }

kernel

diff --git a/kernel-5.10/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/kernel-5.10/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
index 26a5e28aab1..0347807fd93 100644
--- a/kernel-5.10/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
+++ b/kernel-5.10/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
@@ -124,41 +124,11 @@ static const struct dw_hdmi_audio_tmds_n common_tmds_n_table[] = {
 };

 static const struct drm_display_mode dw_hdmi_default_modes[] = {
-       /* 16 - 1920x1080@60Hz 16:9 */
-       { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
-                  2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+       /* 94 - 3840x2160[url=home.php?mod=space&uid=633400]@25Hz[/url] 16:9 */
+       { DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4896,
+                  4984, 5280, 0, 2160, 2168, 2178, 2250, 0,
                   DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
          .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
-       /* 2 - 720x480@60Hz 4:3 */
-       { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
-                  798, 858, 0, 480, 489, 495, 525, 0,
-                  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },
-       /* 4 - 1280x720@60Hz 16:9 */
-       { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
-                  1430, 1650, 0, 720, 725, 730, 750, 0,
-                  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
-       /* 31 - 1920x1080@50Hz 16:9 */
-       { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2448,
-                  2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
-                  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
-       /* 19 - 1280x720@50Hz 16:9 */
-       { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720,
-                  1760, 1980, 0, 720, 725, 730, 750, 0,
-                  DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, },
-       /* 17 - 720x576@50Hz 4:3 */
-       { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 27000, 720, 732,
-                  796, 864, 0, 576, 581, 586, 625, 0,
-                  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },
-       /* 2 - 720x480@60Hz 4:3 */
-       { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 27000, 720, 736,
-                  798, 858, 0, 480, 489, 495, 525, 0,
-                  DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
-         .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3, },
 };

 enum frl_mask {
@@ -2094,6 +2064,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)

        memset(metedata, 0, sizeof(*metedata));
        edid = drm_get_edid(connector, hdmi->ddc);
+       edid = NULL;
        if (edid) {
                dev_dbg(hdmi->dev, "got edid: width[%d] x height[%d]\n",
                        edid->width_cm, edid->height_cm);
@@ -2169,6 +2140,7 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
                info->color_formats = 0;

                dev_info(hdmi->dev, "failed to get edid\n");
+               dev_info(hdmi->dev, "No get edid, use def_modes resolution\n");
        }
        dw_hdmi_qp_check_output_type_changed(hdmi);

firefly_zhongw 发表于 2025-9-3 16:44

  1. 1920x1200 HDMI 分辨率,我们没有调试过
  2. 参考 4K@25
    uboot

这段代码修改后,重新烧录固件,我用你们FireflyApi2Demo软件里面的屏幕信息查看,分辨率还是1920*1080;
还有哪里可以修改分辨率的,修改分辨率后,用FireflyApi2Demo软件查看屏幕信息,如果成功,就是我想要的,请给出详细的修改方案,谢谢,拜托!

  1. HDMI分辨率和系统分辨率是不一样的概念
    2.系统分辨率,参考
device/rockchip/rk3588/roc_rk3588s_pc/roc_rk3588s_pc.mk:53:PRODUCT_PROPERTY_OVERRIDES += persist.vendor.framebuffer.main=1920x1080@60
device/rockchip/rk3588/roc_rk3588s_pc/roc_rk3588s_pc.mk:54:PRODUCT_PROPERTY_OVERRIDES += persist.vendor.framebuffer.aux=1920x1080@60

3.如果还不行,定制化需求,可以联系商务 sales@t-firefly.com