RK3326 android10.0(Q) 横屏方案修改

简介: RK3326 android10.0(Q) 横屏方案修改

开机logo横屏


U-boot logo 显示的两张图片是 kernel 根目录下的 logo.bmp 和 logo_kernel.bmp,如果

需要更换,用同名的**横屏 bmp **替换掉,重新编译 kernel

附:不一定要两张图片,可以只要一张,如果只有一张就保留 logo.bmp 这一张即可。


注:Android10.0的kernel.img和resource.img包含在boot.img中,更新编译kernel后需要在android根目

录下执行./mkimage.sh重新打包boot.img。打包后烧写rockdev下面的boot.img,即可查看效果。若烧录 kernel 文件夹下

的 boot.img,则设备无法正常开机。


开机动画横屏


修改 device/rockchip/common/BoardConfig.mk 中配置 BOOT_SHUTDOWN_ANIMATION_RINGING ?= true


制作资源图片均为横屏的开机动画,将开机动画.zip 复制到 device/rockchip/common/bootshutdown/bootanimation.zip (源码路径),


编译结束后会拷贝到 out 目录下 odm/media 中,烧写即可


Android 应用层显示横屏


device\rockchip\rk3326\BoardConfig.mk 中增加修改 SF_PRIMARY_DISPLAY_ORIENTATION := 90

搜索 SF_PRIMARY_DISPLAY_ORIENTATION 对应的文件,根据项目名称修改对应位置


./rockchip/common/device.mk:ifneq ($(filter 90 180 270, $(strip $(SF_PRIMARY_DISPLAY_ORIENTATION))), )
./rockchip/common/device.mk:  ro.surface_flinger.primary_display_orientation=ORIENTATION_$(SF_PRIMARY_DISPLAY_ORIENTATION)
./rockchip/common/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION ?= 0
./rockchip/rk3368/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION := 0
./rockchip/rk3326/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION := 0
./rockchip/rk3126c/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION := 0
./rockchip/rk3399/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION := 0
./rockchip/rk3368a/BoardConfig.mk:SF_PRIMARY_DISPLAY_ORIENTATION := 0

TP坐标,交换 x y 坐标实现旋转


gtp_change_x2y:x、y交换方向

gtp_x_reverse:x 方向坐标镜像

gtp_y_reverse:y 方向不镜像

kernel\drivers\input\touchscreen\gt9xx\gt9xx.c

@@ -2656,9 +2656,13 @@ static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id
     m89or101 = FALSE;
                bgt911 = TRUE;
-               gtp_change_x2y = FALSE;
-               gtp_x_reverse = TRUE;
-               gtp_y_reverse = TRUE;
+               //gtp_change_x2y = FALSE;
+               //gtp_x_reverse = TRUE;
+               //gtp_y_reverse = TRUE;
+
+        gtp_change_x2y = TRUE;
+        gtp_x_reverse = TRUE;
+        gtp_y_reverse = FALSE;
        /*if (val == 89) {
                m89or101 = TRUE;


RecoveryUI 横屏


rotation = GRRotation::LEFT; 270


rotation = GRRotation::DOWN; 180


rotation = GRRotation::RIGHT; 90


bootable\recovery\minui\graphics.cpp

int gr_init() {
  .....
  gr_backend = backend.release();
  int overscan_percent = android::base::GetIntProperty("ro.minui.overscan_percent", 0);
  overscan_offset_x = gr_draw->width * overscan_percent / 100;
  overscan_offset_y = gr_draw->height * overscan_percent / 100;
  gr_flip();
  gr_flip();
  if (!gr_draw) {
    printf("gr_init: gr_draw becomes nullptr after gr_flip\n");
    return -1;
  }
  std::string rotation_str =
      android::base::GetProperty("ro.minui.default_rotation", "ROTATION_NONE");
  if (rotation_str == "ROTATION_RIGHT") {
    gr_rotate(GRRotation::RIGHT);
  } else if (rotation_str == "ROTATION_DOWN") {
    gr_rotate(GRRotation::DOWN);
  } else if (rotation_str == "ROTATION_LEFT") {
    gr_rotate(GRRotation::LEFT);
  } else {  // "ROTATION_NONE" or unknown string
    gr_rotate(GRRotation::NONE);
  }
  rotation = GRRotation::RIGHT;
  //cczheng add rotation = 1 for recoveryUI landscape


参考文章


[RK3399 Android9.0]强制旋转主屏幕方向](https://blog.csdn.net/weixin_39966398/article/details/105595184)

RK3399汇顶gt9xx触摸屏在RK原始代码调试

目录
相关文章
|
4月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
441 8
|
4月前
|
Web App开发 网络协议 Android开发
Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【9月更文挑战第4天】本文详细对比了在Android平台上实现一对一音视频通话时常用的WebRTC、RTMP及RTSP三种技术方案。从技术原理、性能表现与开发难度等方面进行了深入分析,并提供了示例代码。WebRTC适合追求低延迟和高质量的场景,但开发成本较高;RTMP和RTSP则在简化开发流程的同时仍能保持较好的传输效果,适用于不同需求的应用场景。
207 1
|
5月前
|
存储 安全 API
Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
本文介绍了 Android 开发中常用的键值对存储方案,包括 SharedPreferences、MMKV 和 DataStore,并对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例,帮助开发者根据项目需求选择最适合的存储方案,提升应用性能和用户体验。
154 1
|
5月前
|
Android开发 C++ 开发者
Android经典实战之跨平台开发方案:Kotlin Multiplatform vs Flutter
本文对比了Kotlin Multiplatform与Flutter两大跨平台开发框架,从技术特性、性能、开发效率、UI体验、可扩展性及适用场景等维度进行了详尽分析,帮助开发者根据项目需求和技术背景选择最优方案。
196 2
|
5月前
|
Web App开发 网络协议 Android开发
### 惊天对决!Android平台一对一音视频通话方案大比拼:WebRTC VS RTMP VS RTSP,谁才是王者?
【8月更文挑战第14天】随着移动互联网的发展,实时音视频通信已成为移动应用的关键部分。本文对比分析了Android平台上WebRTC、RTMP与RTSP三种主流技术方案。WebRTC提供端到端加密与直接数据传输,适于高质量低延迟通信;RTMP适用于直播场景,但需服务器中转;RTSP支持实时流播放,但在复杂网络下稳定性不及WebRTC。三种方案各有优劣,WebRTC功能强大但集成复杂,RTMP和RTSP实现较简单但需额外编码支持。本文还提供了示例代码以帮助开发者更好地理解和应用这些技术。
166 0
|
8月前
|
Android开发
Android 新建一个lunch项(全志方案)
Android 新建一个lunch项(全志方案)
165 0
|
存储 缓存 前端开发
Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题
Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题
|
Web App开发 编解码 网络协议
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
382 0
|
存储 Java Android开发
Android11.0(R) MTK 预置可卸载app恢复出厂不恢复(仿RK方案)
Android11.0(R) MTK 预置可卸载app恢复出厂不恢复(仿RK方案)
913 0