20231201将RK3399的挖掘机开发板在Andorid12系统下的强制横屏

news2024/11/19 15:34:25

20231201将RK3399的挖掘机开发板在Andorid12系统下的强制横屏
2023/12/1 22:54


【不完美的地方:修改之后不满屏】
百度:rk3399 android12 横屏 不满屏
Android 显示不满屏 build.prop


https://blog.csdn.net/weixin_39966398/article/details/105595184?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-105595184-blog-85927833.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-105595184-blog-85927833.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=4
https://blog.csdn.net/weixin_39966398/article/details/105595184
[RK3399][Android9.0]强制旋转主屏幕方向

风之空响  于 2020-04-18 11:16:39 发布

测试平台
Platform: RK3399pro
OS: Android 9.0

需求
强制旋转主屏幕方向

解决方案
7.1.1之前旋转方向我们可以通过修改build.prop里的ro.sf.hwrotation=0属性实现,但是当9.0时此属性设置无效.
查看device/rockchip/common/device.mk下的代码发现

# ConfigStoreHAL, for HWRotation, set SF_PRIMARY_DISPLAY_ORIENTATION to change it.
PRODUCT_PACKAGES += \
    android.hardware.configstore@1.1-service

按照说明使用SF_PRIMARY_DISPLAY_ORIENTATION可以设置HWRotation方向,那么在device/rockchip/common/BoardConfig.mk添加代码

SF_PRIMARY_DISPLAY_ORIENTATION := 270
编译后实现旋转效果

接着我们看一下这个宏定义的生效流程

hardware/interfaces/configstore/1.1/default/surfaceflinger.mk
ifneq ($(SF_PRIMARY_DISPLAY_ORIENTATION),)
    LOCAL_CFLAGS += -DPRIMARY_DISPLAY_ORIENTATION=$(SF_PRIMARY_DISPLAY_ORIENTATION)
endif

----------->
hardware/interfaces/configstore/1.1/default/SurfaceFlingerConfigs.cpp


Return<void> SurfaceFlingerConfigs::primaryDisplayOrientation(
    primaryDisplayOrientation_cb _hidl_cb) {
    using ::android::hardware::configstore::V1_1::DisplayOrientation;

   .....
    int orientation = 0;
#ifdef PRIMARY_DISPLAY_ORIENTATION
    specified = true;
    orientation = PRIMARY_DISPLAY_ORIENTATION;
#endif


Z:\rk_android12_220722\device\rockchip\rk3399\BoardConfig.mk
SF_PRIMARY_DISPLAY_ORIENTATION := 0

#
# Copyright 2014 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Use the non-open-source parts, if they're present
-include vendor/rockchip/rk3399/BoardConfigVendor.mk

CURRENT_SDK_VERSION := RK3399_ANDROID10.0_MID_V1.0

TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := cortex-a53
TARGET_CPU_SMP := true

TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a15

PRODUCT_KERNEL_ARCH := arm64
PRODUCT_KERNEL_DTS ?= rk3399-sapphire-excavator-edp-avb
PRODUCT_KERNEL_CONFIG ?= rockchip_defconfig
PRODUCT_UBOOT_CONFIG ?= rk3399

SF_PRIMARY_DISPLAY_ORIENTATION := 0

修改为:
#SF_PRIMARY_DISPLAY_ORIENTATION := 0
SF_PRIMARY_DISPLAY_ORIENTATION := 90


修改这里无效:
Z:\rk_android12_220722\device\rockchip\common\BoardConfig.mk
# GPU configration
TARGET_BOARD_PLATFORM_GPU ?= mali-t760
GRAPHIC_MEMORY_PROVIDER ?= ump
USE_OPENGL_RENDERER ?= true
TARGET_DISABLE_TRIPLE_BUFFERING ?= false
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK ?= false

DEVICE_HAVE_LIBRKVPU ?= true

#rotate screen to 0, 90, 180, 270
#0:   ROTATION_NONE      ORIENTATION_0  : 0
#90:  ROTATION_RIGHT     ORIENTATION_90 : 90
#180: ROTATION_DOWN    ORIENTATION_180: 180
#270: ROTATION_LEFT    ORIENTATION_270: 270
# For Recovery Rotation
TARGET_RECOVERY_DEFAULT_ROTATION ?= ROTATION_NONE
# For Surface Flinger Rotation
SF_PRIMARY_DISPLAY_ORIENTATION ?= 0

修改为:
# For Surface Flinger Rotation
SF_PRIMARY_DISPLAY_ORIENTATION ?= 0
#SF_PRIMARY_DISPLAY_ORIENTATION ?= 90


参考资料:
https://it.cha138.com/php/show-53727.html
rk3288 android7副屏旋转显示异常与满屏修改


https://blog.csdn.net/u014674293/article/details/93171462?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-93171462-blog-85927833.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-93171462-blog-85927833.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=3
https://blog.csdn.net/u014674293/article/details/93171462
[AndroidO] [RK3399] -- 修改屏幕默认横屏

BestW2Y  于 2019-06-21 14:50:14 发布

修改屏幕默认横屏需要修改Android属性 build.prop 文件, 而build.prop文件可以通过buildinfo.sh文件生成, 所以这里我们修改buildinfo.sh 文件即可, 修改如下:

diff --git a/build/make/tools/buildinfo.sh b/build/make/tools/buildinfo.sh
index 4698c43..5210383 100755
--- a/build/make/tools/buildinfo.sh
+++ b/build/make/tools/buildinfo.sh
@@ -59,6 +59,5 @@ if [ -n "$BUILD_THUMBPRINT" ] ; then
   echo "ro.build.thumbprint=$BUILD_THUMBPRINT"
 fi
 echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"
-echo "ro.sf.hwrotation=270"
 
 echo "# end build properties"
总结:  

1. ro.sf.hwrotation 设置屏幕角度 可设置为0,90,180,279, 默认为竖屏;

2. Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后, 文件生成在out/target/product/<board>/system/目录下, 记录了系统的设置和改变;

3. 在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_get*()[Java域]读取这些属性值;

4. Android 的各种属性property都是在各种makefile文件中定义的;

5. buildinfo.sh 脚本就是专门用于生成build.prop文件,build.prop的生成是由make系统解析build/core/Makefile完成,并把系统默认的system.prop以及定制的system.prop中的设定追加到build.prop文件中;

6. Makefile中调用build/tools/buildinfo.sh执行脚本,并输出到build.prop中, 详细的build.prop生成分析请查看:

博客:  [Android基础] -- Android属性之build.prop生成过程分析 ! ! !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL之锁

MySQL之锁 锁是计算机在执行多线程或线程时用于并发访问同一共享资源时的同步机制&#xff0c;MySQL中的锁是在服务器层或者存储引擎层实现的&#xff0c;保证了数据访问的一致性与有效性 MySQL锁可以按模式分类为&#xff1a;乐观锁与悲观锁。 按粒度分可以分为全局锁、表级锁…

学习笔记7——数据库基础知识以及mysql的查询语句

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/199913.html 数据库 三个概念区分 DB&#xff1a;数据库&#xff0c;存储数据的仓库&#xff0c;有组织的数据容器DBMS:数据库管理系统SQL&#xff1a;几乎所有的DBMS都支持…

9.整数转换为布尔值【2023.12.1】

1.问题描述 整数转换为布尔值。 2.解决思路 输入一个整数。 输出布尔值并输出。 3.代码实现 numint(input("请输入一个数字")) boolnumbool(num) print(boolnum)4.运行结果

Linux破解用户密码【基于redhat9】

Linux破解用户密码【基于redhat9】 操作步骤&#xff1a; 重启虚拟机&#xff0c;选择第二行&#xff0c;按下e键在倒数第二行的末尾加入 rd.break,按下ctrlx键&#xff0c;进入终端界面重新挂载/sysroot为读写切换到bash修改用户密码创建 /.autorelabel 文件使SELinux安全策略…

Grammarly premium语法检测工具使用方法,及删除检测记录

科研写作神器&#xff1a;Grammarly—语法&#xff0c;标点&#xff0c;单词拼写错误修改。 一、背景 在写英文论文时&#xff0c;作为母语不是英语的我们&#xff0c;不可避免的存在语法错误或笔误&#xff0c;这时就需要Grammarly语法修改软件帮助我们进行修正&#xff0c…

计算机毕业设计 基于SpringBoot的敬老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

vscode中使用luaide-lite插件断点调试cocos2dx-lua

使用quick-cocos2dx-lua&#xff0c;用了众多插件&#xff0c;包括免费的BabeLua,VS调试太慢&#xff0c;vscode上的免费的EmmyLua, 还有收费的luaide&#xff0c;都没搞出来&#xff0c;唯独这个免费luaide-lite用成功了&#xff0c;步骤也简单&#xff0c;可以断点调试&#…

DLL(直接激光雷达定位)编译运行过程记录

文章&#xff1a;DLL: Direct LIDAR Localization. A map-based localization approach for aerial robots 代码&#xff1a;https://github.com/robotics-upo/dll GitHub - robotics-upo/dll: DLL: Direct Lidar Localization 下载安装DLL 在GitHub网站下载再手动解压、复…

云服务器哪家便宜靠谱?深入解析亚马逊云科技与技术评估

云服务器哪家便宜靠谱呢&#xff1f;换句话说&#xff0c;在选择云服务器时&#xff0c;我们需要选择性价比高便宜、安全性技术性顶尖的&#xff0c;那么&#xff0c;亚马逊云科技作为全球的云服务供应商&#xff0c;其高性价比、高可用性、弹性、安全性和灵活性等特点&#xf…

web前端之css变量的妙用、通过JavaScrip改变css文件中的属性值、querySelector、setProperty

MENU 效果图htmlJavaScripstylequerySelectorsetProperty 效果图 html <div id"idBox" class"p_r w_680 h_160 b_1s_red"><div id"idItem" class"p_a l_0 t_30 w_100 h_100 bc_rgba_255_00_05 radius_50_"></div> …

springboot+jsp+java房屋销售出租赁网站的ssm设计与实现7xcvq

三、研究方案&#xff08;主要研究内容、目标、研究方法等&#xff09; 主要研究内容 房屋租售网站采用的开发框架为springboot框架&#xff0c;也就是Spring mvc、Spring、MyBatis这三个框架&#xff0c;页面设计用的是jsp技术作为动态页面文件设计&#xff0c;jsp文件里可以对…

AH6922B-3V升压9V1A芯片

AH6922B芯片是一款3V升压9V1A芯片&#xff0c;具有可调限流和低功耗等特点。该芯片的工作电压范围为2.7V~12V&#xff0c;可调输出电压最高可达13V&#xff0c;固定工作频率为400kHz&#xff0c;VFB反馈电压为1.2V(2%)。 AH6922B芯片内置了一颗15mΩ、10A、14V的MOSFET&#x…

解决 MapBox addMapStyle 失败,主动刷新地图

应用场景&#xff1a; 底图加载后&#xff0c;边界的图层有时能加载&#xff0c;有时加载不上&#xff0c;在点击或者拖拽移动后可加载成功 最后解决方案&#xff1a; 在子组件中写一个延迟函数&#xff0c;模拟手动点击效果 created(){setTimeout(() > {if ( !this.isLoa…

conda 安装指定Version的指定Build

入下图&#xff0c;我想装cudnn的7.6.5的指定Build版本cuda10.0_0 应该使用如下命令&#xff1a; mamba install cudnn7.6.5cuda10.0_0 没有mamba用conda install也可以

DAPP开发【04】测试驱动开发

测试驱动开发(Test Driven Development)&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码&#xff0c…

每日一练2023.12.1——输出GPLT【PTA】

题目链接&#xff1a;L1-023 输出GPLT 题目要求&#xff1a; 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序&#xff0c;按GPLTGPLT....这样的顺序输出&#xff0c;并忽略其它字符。当然&#xff0c;四种字符&#xff08;不区分大小写&#x…

程序员职业发展之旅:从代码入门到身体管理的完美进化

导言&#xff1a; 在编程的世界中&#xff0c;程序员们经常面对着繁忙的工作、长时间的电脑操作和高度集中的注意力。这种职业特性使得许多程序员在追求代码的完美的同时&#xff0c;往往忽略了自身的健康。让我们通过一段幽默的编程时光&#xff0c;探讨程序员的职业发展与身体…

Apache HTTPD 2.448 mod_proxy SSRF漏洞(CVE-2021-40438)

任务一&#xff1a; 复现漏洞 任务二&#xff1a; 尝试利用SSRF漏洞&#xff0c;访问重庆邮电大学官网&#xff08;http://www.cqupt.edu.cn) 1.搭建环境 2.了解这个地方是httpd作为了一个反向代理服务器&#xff0c;也就是先是客户端发送请求给代理服务器&#xff0c;然后…

SSM项目实战-mapper实现

1、SysUserMapper.java package com.atguigu.schedule.mapper; import com.atguigu.schedule.pojo.SysUser; import org.springframework.stereotype.Repository; Repository public interface SysUserMapper {SysUser getSysUser(SysUser sysUser); }2、ScheduleMapper.java p…

Qt for Python 札记

文章目录 一、简介 一、简介 Qt for Python 官网