Как изменить естественную ориентацию ОС Android по умолчанию?

У меня есть устройство TI am335xevm под управлением Android Jellybean 4.2.2 с альбомной ориентацией по умолчанию / естественной ориентацией.

Как я могу изменить стандартную/естественную ориентацию устройства на портретную?

Вот что я пробовал до сих пор,

1) Добавил setprop ro.sf.hwrotation 90 в build.prop, и это ничего не дало.

2) изменил значение user_rotation в /data/data/com.android.providers.settings/databases/settings.db и изменил только ориентацию приложений. ориентация главного экрана и панели запуска по-прежнему альбомная.

3) Изменен PhoneWindowManager.java, аналогичный приведенному в ссылке: изменение диспетчера окон телефона для изменения естественной ориентации

Этот вариант работает. Но он по-прежнему показывает загрузочную анимацию в альбомной ориентации, и после завершения анимации дисплей поворачивается (с анимацией поворота) в портретную. Как я могу избежать этого поворота и изменить ориентацию по умолчанию/естественную ориентацию перед загрузочной анимацией?

Примечание: я уже переопределил бутанимацию собственными портретными изображениями, чтобы она выглядела как портретная. Тем не менее вращение происходит после выхода из бутанимации. Итак, каким будет универсальное решение?

Любые советы будут оценены.

Это как-то связано с SurfaceFlinger? Я также хотел бы указать на эту статью на веб-сайте Android. предварительная ротация в аппаратном компоновщике

(К вашему сведению, вопрос касается не ориентации приложения/активности, а естественной ориентации устройства при создании ОС Android для пользовательского устройства)


person Rockcollins    schedule 16.04.2014    source источник
comment
Измените android:screenOrientation=portrait в теге активности AndroidManifest.XML.   -  person Zohra Khan    schedule 16.04.2014
comment
@ZohraKhan Я думаю, что есть путаница. Я не говорил о приложении. Я говорю о естественной ориентации устройства, когда вы создаете ОС Android для пользовательского устройства.   -  person Rockcollins    schedule 16.04.2014
comment
Возможно, попробуйте su setprop ro.sf.hwrotation 90, а затем перезагрузите устройство - команда setprop сама по себе не работает без перезагрузки устройства.   -  person    schedule 16.04.2014
comment
@CKDPublishing Спасибо. Я думаю, что пытался установить его таким образом из консоли, и в результате getprop ro.sf.hwrotation дал мне 90. Это не сработало, когда я указал его в build.prop или init.‹имя устройства›.rc при сборке ОС. Я попробую еще раз, используя консоль Android, а затем перезагрузив устройство и подтвердив.   -  person Rockcollins    schedule 16.04.2014
comment
@CKDPublishing Это не сработало. Как вы думаете, поможет ли предварительное вращение, упомянутое в этой ссылке? source.android.com/devices/graphics.html   -  person Rockcollins    schedule 16.04.2014
comment
Устройства имеют естественную ориентацию, основанную на физической конструкции их дисплеев. SurfaceFlinger не выбирает ориентацию по умолчанию, он подчиняется ей. Предварительное вращение — это механизм для эффективной обработки поворота экрана; он не определяет политику. Диспетчер отображения отвечает за изменение ориентации, поэтому вам, вероятно, потребуется изменить его, чтобы избежать поворота анимации после загрузки. (Это также происходит при загрузке портретного устройства с подключенным HDMI.)   -  person fadden    schedule 16.04.2014
comment
@fadden Спасибо за комментарий. Значит, нам не нужно ничего менять ни на уровне HAL, ни на уровне драйвера, чтобы решить эту проблему? Используя Display Manager, можем ли мы установить начальную ориентацию? Я просто использую ЖК-экран устройства по умолчанию.   -  person Rockcollins    schedule 17.04.2014
comment
Я знаю, что это было давно, но вам когда-нибудь удавалось найти решение этой проблемы? Спасибо.   -  person thatbrainiac    schedule 18.12.2019