<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=Landscape_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0</id>
	<title>Landscape режим экрана - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=Landscape_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=Landscape_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0&amp;action=history"/>
	<updated>2026-05-04T01:36:46Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://paz00.ru/index.php?title=Landscape_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0&amp;diff=22&amp;oldid=prev</id>
		<title>Unknown user в 08:13, 15 октября 2014</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=Landscape_%D1%80%D0%B5%D0%B6%D0%B8%D0%BC_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0&amp;diff=22&amp;oldid=prev"/>
		<updated>2014-10-15T08:13:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Портирование ОС Андроид 4.x (CyanogenMod 9) на Toshiba AC100= &lt;br /&gt;
[[File:ac100.jpg]]&lt;br /&gt;
В наш динамичный век развития информационных технологий и новинок рынка связанного с ними,&lt;br /&gt;
многие могут не заметить по настоящему интересные вещи которые появляются благодаря творческим&lt;br /&gt;
отступлениям некторых производителей, они сгорают как искры в пучине пламени ширпотреба, остаются&lt;br /&gt;
игрушками энтузиастов и некторых счастливчиков которые не знают, что держат в руках.&lt;br /&gt;
По нашему мнению смартбук Toshiba AC100/Dynabook AZ яркий тому пример. Наша цель дать&lt;br /&gt;
вторую молодость этому интересному своей конвергенцией и оригинальными находками устройству, брошенному&lt;br /&gt;
на произвол производителем и вендорами.&lt;br /&gt;
&lt;br /&gt;
Для тех кто первый раз слышит о таком будут интересны обзоры этого устройсва (линки на обзоры), но&lt;br /&gt;
сей труд о другом, о том какой тернистый путь ожидает того кто захочет сделать для нашего героя работающий Андроид&lt;br /&gt;
последней версии.&lt;br /&gt;
&lt;br /&gt;
Ниже идет одна из серии статей посвященных проблемам портирования операционной системы Андроид версии 4.x&lt;br /&gt;
в варианте от всем известного CyanogenMod (линк)&lt;br /&gt;
&lt;br /&gt;
==Часть 1. Изменение режима экрана по умолчанию на ландшафтный== &lt;br /&gt;
===Суть проблемы=== &lt;br /&gt;
При старте ос экран находится в ландшафтном состоянии, но через секунду поворачивается в портретный режим&lt;br /&gt;
и не выходит из него. Только приложения которые настаивают на ландшафте вроде Camera могут его на время заставить вернутся&lt;br /&gt;
в ландшафтный режим.&lt;br /&gt;
&lt;br /&gt;
===Что мы имеем=== &lt;br /&gt;
* Разрешение экрана Toshiba AC100 '''1024 на 600'''&lt;br /&gt;
* Используем ядро 3.1 вот код драйвера экрана https://gitorious.org/~zombah/ac100/zombahs-marvin24s-kernel/blobs/linux-tegra-nv-ac100-3.1-exp/arch/arm/mach-tegra/board-paz00-panel.c&lt;br /&gt;
* В устройстве нет сенсоров, в частности акселерометра. Нету режимов в машине (car) или подключения к док станции.&lt;br /&gt;
&lt;br /&gt;
===Чего нам хочется=== &lt;br /&gt;
* Чтобы экран был всегда в ландшафтном состоянии и не переключался из него.&lt;br /&gt;
* В крайнем случае если приложение перевернуло его или оно только портретное иметь возможность перевернуть обратно в&lt;br /&gt;
ландшафт.&lt;br /&gt;
* Иметь выше описанные возможности прям из коробки при сборке дистрибутива ос, а не используя сторонние приложения.&lt;br /&gt;
* Только опенсоурс варианты, того требует лицензия Cyanogenmod.&lt;br /&gt;
&lt;br /&gt;
===Что мы пробовали=== &lt;br /&gt;
* Вывод логката http://pastebin.com/avkywrcK&lt;br /&gt;
* Поиск нужной переменной для файла ''BoadrConfig.mk'' который используется для сборки ос Андроид под определенное&lt;br /&gt;
устройство:&lt;br /&gt;
** Не понятно что искать&lt;br /&gt;
** Поиск по ключевым словам в мейк файлах андроида ничего не дал&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
find . -name &amp;quot;Android.mk&amp;quot; -exec egrep 'ROTATE|ORIENT' {} \;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Пробовали разные переменные конфигурации в xml файлах ''overlay'ев''- не помогают&lt;br /&gt;
** frameworks/base/core/res/res/values/config.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;bool name=&amp;quot;config_allowAllRotations&amp;quot;&amp;gt;false&amp;lt;/bool&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''' frameworks/base/packages/SettingsProvider/res/values/defaults.xml&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;bool name=&amp;quot;def_accelerometer_rotation&amp;quot;&amp;gt;false&amp;lt;/bool&amp;gt;&lt;br /&gt;
&amp;lt;integer name=&amp;quot;def_user_rotation&amp;quot;&amp;gt;0&amp;lt;/integer&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''' Поиск с помощью ''resgrep'' по всем переменным конфигурации не дал еще вариантов.&lt;br /&gt;
&lt;br /&gt;
* Использовать properties найденные в сети&lt;br /&gt;
** ''ro.sf.hwrotation = 0''никакого эффекта не дает, видимо от кастом сборки или старое.&lt;br /&gt;
*** Как оказалось работает со значением переменной 270&lt;br /&gt;
&lt;br /&gt;
* Использовать libsensors&lt;br /&gt;
** Использовать ''kbdsensors''из android-x86 сорцы тут http://android-x86.git.sourceforge.net/git/gitweb.cgi?p=android-x86/x86_hardware_libsensors.git;a=blob;f=kbdsensor.cpp;h=bdbc463d2e3913581fa3b063ad80571daeb42dd7;hb=refs/heads/ics-x86&lt;br /&gt;
*** &amp;lt;span style=&amp;quot;position: static; z-index: auto;&amp;quot;&amp;gt;&amp;lt;range type=&amp;quot;comment&amp;quot; id=&amp;quot;514639&amp;quot;&amp;gt;Работать отказывается у нас.&amp;lt;/range id=&amp;quot;514639&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
D/SensorService(  170): nuSensorService starting...&lt;br /&gt;
E/SensorService(  170): couldn't load sensors module (No such file or directory)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''* Нужен програмист разобраться в нем, что ему не нравится или дописать&lt;br /&gt;
** Написать свой dummy libsensors который будет эмулировать акселерометр, например постоянно сообщая что нужно перевернуться&lt;br /&gt;
в ладшафтный режим&lt;br /&gt;
&lt;br /&gt;
* Крайнее средство: Можно поправить исходники ос Андроид.&lt;br /&gt;
** Насколько я понял по описаню хаков поворота от старых андройдов (2.х) рыть надо здесь&lt;br /&gt;
** https://github.com/CyanogenMod/android_frameworks_base/blob/304af0cfe13649d7078d4c72455f7f58a63bbc12/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java&lt;br /&gt;
** В этом пути есть минусы. Сложно поддерживать при переходах на новую версию ос, можно больше поломать чем сделать и нет&lt;br /&gt;
программиста кто бы мог понять как это работает.&lt;br /&gt;
&lt;br /&gt;
===Результат=== &lt;br /&gt;
На текущий момент единственное рабочее решение которое было найдено установка ''ro.sf.hwrotation=270'', имеет массу недостатков:&lt;br /&gt;
* bootanimation перевернут&lt;br /&gt;
* приложения которые переворачивают экран, теперь дают вообще адские перевороты, например кверх ногами&lt;br /&gt;
&lt;br /&gt;
===Заключение=== &lt;br /&gt;
Вот бы узнать почему у нас экран запускает в портретном режиме и найти правильное и красивое решение чтобы он работал в ландшафте.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Решение===&lt;br /&gt;
Решение найдено в оверлеях ''frameworks/base/core/res/res/values/config.xml''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     &amp;lt;!-- The number of degrees to rotate the display when the keyboard is open. --&amp;gt;&lt;br /&gt;
     &amp;lt;integer name=&amp;quot;config_lidOpenRotation&amp;quot;&amp;gt;0&amp;lt;/integer&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Нерабочее [http://android.stackexchange.com/questions/10808/how-is-the-default-screen-orientation-in-android-specified средство]:&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;It's possible to override the default screen orientation by disabling accelerometer rotation and setting user rotation in the system settings database. The phone/tablet needs to be rooted to do this. The change is applied after the phone/tablet is rebooted.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;On the console:&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su sqlite3 /data/data/com.android.providers.settings/databases/settings.db&lt;br /&gt;
insert into system (name,value) values('accelerometer_rotation',0);&lt;br /&gt;
insert into system (name,value) values('user_rotation',3);&lt;br /&gt;
.exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;user_rotation 0 -&amp;gt; ROTATION_0&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;user_rotation 1 -&amp;gt; ROTATION_180&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;user_rotation 2 -&amp;gt; ROTATION_270&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;user_rotation 3 -&amp;gt; ROTATION_90&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial,Helvetica,sans-serif;&amp;quot;&amp;gt;See [http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION] for more details&amp;lt;/span&amp;gt;&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>