1.修改屏幕方向
如果显示屏支持横竖屏,直接修改MTK_LCM_PHYSICAL_ROTATION的值
① 修改device/testdd/testdd6735_35g_m0/ProjectConfig.mk
-MTK_LCM_PHYSICAL_ROTATION = 0
+MTK_LCM_PHYSICAL_ROTATION = 270
②修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_debug_defconfig
-CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"
+CONFIG_MTK_LCM_PHYSICAL_ROTATION="270"
③修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_defconfig
-CONFIG_MTK_LCM_PHYSICAL_ROTATION="0"
+CONFIG_MTK_LCM_PHYSICAL_ROTATION="270"
④修改vendor/mediatek/proprietary/bootable/bootloader/lk/project/testdd6735_35g_m0.mk
-MTK_LCM_PHYSICAL_ROTATION = 0
+MTK_LCM_PHYSICAL_ROTATION = 270
平板平台,这种修改整个系统都变竖屏显示了,包括logo、动画,tp等
2.屏幕180翻转,通过硬件OVL来实现
① 修改device/testdd/testdd6735_35g_m0/ProjectConfig.mk
+MTK_LCM_PHYSICAL_ROTATION_HW = yes
②修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_debug_defconfig
+CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y
③修改kernel-3.18/arch/arm/configs/testdd6735_35g_m0_defconfig
+CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW=y
④修改vendor/mediatek/proprietary/bootable/bootloader/lk/project/testdd6735_35g_m0.mk
+MTK_LCM_PHYSICAL_ROTATION_HW=yes
+DEFINES += MTK_LCM_PHYSICAL_ROTATION_HW
⑤修改vendor/mediatek/proprietary/hardware/hwcomposer/Android.mk
+ifeq ($(MTK_LCM_PHYSICAL_ROTATION_HW), yes)
+ LOCAL_CFLAGS += -DMTK_LCM_PHYSICAL_ROTATION_HW
+endif
3.模拟sensor旋转屏幕显示
- 源码位置:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@Override
public int rotationForOrientationLw(int orientation, int lastRotation) {
+ if (true) {
+ return Surface.ROTATION_90;
+ }
...
模拟sensor旋转屏幕,根据需要返回角度(顺时针旋转),但是在刚开完机时会看到转屏动作
4.修改动画方向
对动画资源本身不作处理,直接修改其显示方向
- 源码位置:framework/base/cmds/bootanimation/BootAnimation.cpp
status_t BootAnimation::readyToRun(){
...
// M: The tablet rotation maybe 90/270 degrees, so set the lcm config for tablet
- SurfaceComposerClient::setDisplayProjection(dtoken, DisplayState::eOrientationDefault, Rect(dinfo.w, dinfo.h), Rect(dinfo.w, dinfo.h));
+ // 旋转180
+ SurfaceComposerClient::setDisplayProjection(dtoken, DisplayState::eOrientation180, Rect(dinfo.w, dinfo.h), Rect(dinfo.w, dinfo.h));
5.修改ro.sf.hwrotation值
在config目录中对应工程下system.prop文件中加入 ro.sf.hwrotation=90(或270)可以实现90度和270度的旋转,不过此设定只是改变android部分 的旋转,logo部分不会旋转,动画会旋转,同时android本身在横向显示的时候,有些资源横向显示会有问题, 所以不推荐使用~