Ещё немного про телефоны Xiaomi и борьбу с ними. Updated

image

Честно признаться, у меня не было планов писать и публиковать эту статью, но, после того, как за два месяца увидел в ближнем кругу коллег 5 штук свежеприобретённых телефонов от Xiaomi, и недавнюю статью на Geektimes, рекламирующую управление умным домом от Xiaomi, ко мне пришла совесть и, сцуко, потребовала поделиться знанием с остальными.

Для начала небольшая вводная часть для тех кто не в теме. Есть такая компания Xiaomi, которая делает неплохие по начинке телефоны и заливает в них кастомизированный Android. Бизнес модель, как недавно официально было заявлено — «По сути мы раздаём наши смартфоны, не зарабатывая на этом денег. Нас больше заботят долгосрочные источники дохода. Мы могли бы продать 10 миллиардов смартфонов и не заработать на них ни цента». Источник раз и два.

Заглянув в сентябрьскую статью на Security lab и ещё вот в эту жалобу, у меня лично возникло ощущение, что телефон Xiaomi это что-то типа поводка на котором владельца водит Большой брат (утрирую, конечно же).

Это и стало основным мотивом проведения исследования поведения телефона Xiaomi redmi 3S
с прошивкой MIUI Global 8.1 Стабильная 8.1.1.0 (MALMIDI)

Исследование подопытного кролика и обнаружение проблемы
Беру новенький телефон из коробки. Включаю его и прохожу через мастера начальной настройки, предварительно включив запись трафика на Wi-Fi роутере. Ровно через две секунды, после того как телефон подключился к точке доступа, началось скачивание файла размером около 8Мбайт с одного из серверов Xiaomi. Это был обычный zip архив, внутри которого лежала куча всего и, в том числе, файл AnalyticsCore.apk, упомянутый в статье на SecurityLab.

Дальше — больше. В общей сложности, за всё время наблюдения, я насчитал чуть меньше восьми десятков имён серверов в разных доменах. Сразу оговорюсь, что в этом числе нет серверов Google и Facebook, приложения которых также предустановлены. Просто потому что я их считал отдельно. С ними тоже всё «весело».

Большая часть коннектов к серверам Xiaomi шла через HTTPS, поэтому разобраться в деталях ЧТО именно передаётся напрямую возможности не было. Отключение всевозможных логинов, синхронизаций и т.п. к исчезновению этого трафика не привело.

Дополнительно смущало то, что большей частью запросы были небольшими (объём принятого переданного трафика TCP сессий не превышал 1-2Кб), но, т.к. наши сотовые операторы округляют объём трафика вверх (Например, Tele2 до 150Кб), то, при неудачном совпадении, можно «накачать» таким образом существенные объёмы трафика, а в роуминге неожиданно попасть на деньги.

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

Предварительные условия


Первое что необходимо — это рутовать телефон. Как это делается в случае Xiaomi я здесь описывать не буду, отсылаю желающих пройти этот путь к полной версии этой статьи (ссылка в конце).
Второе — это влить в телефон прошивку через кабель и стереть ВСЕ пользовательские данные.
Третье — телефон НЕ ДОЛЖЕН иметь доступа в интернет после залива свежей прошивки.
Update. До момента установки нижеописываемых ограничений, разумеется.

Disclamier. Все дальнейшие манипуляции над телефоном Вы делаете на свой страх и риск.
Ответственность за любой результат лежит на том, кто именно делал описываемые ниже действия.


Небольшая техническая вводная часть


Серверы, к которым обращается телефон, в большинстве своём расположены в облаке Amazon, поэтому обращения к ним происходит по именам, которые ресолвятся через round-robin DNS в разные IP адреса из разных подсетей /16. Блокировать их все по подсетям смысла особого нет — так можно половину интернета отфильтровать, что не есть хорошо. Блокировать по именам — хорошо, но не факт, что имена хостов из L3 доменов не генерируются динамически. Идеально было бы прибить все приложения, которые обращаются к серверам Xiaomi, но, как показала практика, глубина их интеграции в Android такова, что после удаления некоторых из них телефон может просто отказаться загружаться.

Далее. К внешним серверам обращается не один процесс, а многие, при этом задачу усложняет наличие в Android UID sharing, когда под одним UID могут генерировать сетевой трафик разные процессы (приложения). Более того, один из полезных процессов (отвечающий за GPS) надо выпускать во внешний мир, чтобы скачивать небольшие обновления, но при этом он сидел под тем же UID, что и восемь штук процессов, рвущихся к серверам Xiaomi.

Также надо упомянуть про ограниченность инструментария, доступного для решения вышеописанных задач, т.к. большая часть приложений имеющих в названии firewall доступных на Play Market работают через т.н. VPN, т.е. от сливов информации до запуска приложения они не защищают.

Большая часть того, что будет рассказано дальше для профессиональных разработчиков Android есть банальная истина, но всем остальным это позволит понять почему фильтрация построена именно таким образом.

В отличие от обычного Linux, где есть файлы конфигурации и стартовые скрипты, лежащие в /etc, в Android всё сделано несколько иначе. Общее управление сетью осуществляет Connection Manager, который дёргает системный демон netd, который, в свою очередь, вызывает iptables с определёнными параметрами командной строки. Соответственно, вызывать IPtables из скрипта начальной загрузки (init и прочих) особого смысла нет — netd при старте всё равно вызовет iptables, очистит правила и зальёт свои.

Единственный выход оставленный Google — писать необходимые команды конфигурации iptables в скрипте /system/bin/oem-iptables-init.sh. Путь к этому скрипту и его имя жёстко прописаны внутри исходного кода демона netd.

Для фильтрации статических имён хостов можно редактировать файл /etc/hosts, но при этом надо помнить про их количество и возможность их динамической генерации.
Дальше будет рассказ как это всё делалось.

Удаление и заморозка (если нет уверенности) ненужных программ


При помощи бесплатной версии Titanium Backup можно посмотреть соответствие между именем программы, показываемое в системе (Play Market), её кодовым именем (com.google.vending) и, при необходимости, удалить то, что явно не нужно.

Недостаток бесплатной версии — не умеет делать заморозку программ, посему заморозку делаем через ADB shell при помощи package manager. Пример:

root@land:/ # pm disable com.miui.analytics
pm disable com.miui.analytics
Package com.miui.analytics new state: disabled
root@land:/ # pm disable com.miui.systemAdSolution
pm disable com.miui.systemAdSolution
Package com.miui.systemAdSolution new state: disabled
root@land:/ # reboot
reboot

Фильтрация сетевых запросов


Disclamier 2.В данной статье описано КАК можно фильтровать «левую» сетевую активность телефона. Что конкретно фильтровать — каждый волен решать сам.

Как это можно делать.

1. Cамое простое — заполнение файла /etc/hosts записями имён серверов c IP адресом 127.0.0.1. Мой набор серверов лежит на Google Drive в папке Files.
Недостаток варианта — невозможность блокировки неизвестных и динамически генерируемых имён хостов и доменов L3/L4.

Update. Несколько раз обнаруживал странное поведение Netfilter/IPtables. После загрузки телефона в таблице действующих правил оказывались не все правила, перечисленные в скрипте. Если перезагрузить телефон ещё раз — все правила оказывались на месте. Прям шайтан-машина, а не телефон.
В документации нашёл описание параметра --wait, который вроде бы должен решать эту проблему. Но, для гарантированного решения проблемы, сделал ещё вызов IPtables из скрипта не напрямую, а через несложную функцию, которая проверяет код завершения и, при необходимости, повторно выполняет команду с небольшой задержкой, опять же проверяя результат.

2. пишем команды фильтрация отправки пакетов на подсети /16 и /24 стандартными правилами Netfilter/IPtables в файл oem-iptables-init.sh. Здесь их не описываю, желающие напишут их сами, либо найдут в полной версии статьи.
Update. Недостаток варианта — большая часть серверов расположена в облаке Amazon и имеет переменные (round-robin DNS) IP адреса. Для гарантированной их фильтрации придётся закрыть не один десяток подсетей /16, что не есть хорошо. Можно ненароком забанить и полезные сайты. Но для статичных хостов (если их немного) это решение вполне подходит.

3. Фильтруем DNS запросы к ненужным нам доменам. Это несколько сложнее, поэтому опишу подробнее.

Updated.В составе IPtables, штатно идущем в Android есть модули расширения функционала, которыми мы дальше и воспользуемся. Помня, что DNS запросы отправляет система (UID 0) пишем правило:

$IPTABLES -A oem_out --protocol udp --dport 53 -m owner --uid-owner 0 -m string --algo bm --hex-string '|04|miui|03|com|00|' -m comment --comment "Deny UID 0 DNS queries for miui.com domain" -j DROP
#
$IPTABLES -A oem_out --protocol udp --dport 53 -m owner --uid-owner 0 -j ACCEPT

Updated. Первая строчка отфильтрует все UDP пакеты, отправленные системой (UID 0) на 53 UDP порт любого IP адреса и содержащие в себе байты 046d69756903636f6d00 (запросы к DNS серверу содержащие в себе .miui.com). IPtables самостоятельно преобразуют строчку |04|miui|03|com|00| в чисто шестнадцатиричый вид 046d69756903636f6d00.
Наличие шестнадцатиричной цифры на первой позиции для параметра --hex-string — обязательно, иначе IPtables не примет команду. Точки-разделители в доменном имени при формировании DNS запроса преобразуются в шестнадцатиричные цифры, означающие количество байт до следующего разделителя. Поэтому последний байт равен нулю (00h).

Вторая строчка пропустит все остальные DNS запросы. Комментарии я указал для удобства, чтобы команда iptables -L -v показывала результаты блокировок нагляднее.

4. Для работы Assited GPS необходимо дать возможность доступа к серверам QualComm процессу с UID 1000. Здесь всё сложнее, т.к. простая фильтрация пакетов по содержимому, как в случае DNS серверов, не сработает — начальные пакеты установления TCP соединения c флагами SYN, ACK ещё НЕ содержат в себе имя хоста, которое обязательно присутствует в HTTP запросе, а пакеты идущие после заголовка HTTP запроса уже могут не содержать в себе имя хоста. В результате фильтр пропустит из всей TCP сессии только часть пакетов, что равносильно её запрету или обрыву.
Поэтому рисуем вот такой костыль для фильтрации запросов седьмого уровня средствами 3-4 уровня:

# разрешаем инициировать установление TCP соединений на 80 порт всем процессам работающим под UID 1000.
$IPTABLES -A oem_out -m owner --uid-owner 1000 --protocol tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
#проверяем наличие слова xtrapath в пакетах TCP соединений установленных  на 80 порт процессами с UID 1000  и помечаем эти соединения шестнадцатиричным числом 5555.
$IPTABLES -A oem_out -m owner --uid-owner 1000 --protocol tcp --dport 80 -m conntrack --ctstate ESTABLISHED -m string --algo bm --string 'xtrapath' -j CONNMARK --set-xmark 0x5555
# убиваем пакеты всех установленных процессами с UID 1000 TCP соединений не имеющих нашей пометки число 5555
$IPTABLES -A oem_out -m owner --uid-owner 1000 --protocol tcp --dport 80 -m conntrack --ctstate ESTABLISHED -m connmark ! --mark 0x5555 -j DROP

5. Фильтруем доступ в интернет по приложениям (у меня Google Chrome имел UID 10060). Разрешаем выход в интернет Google Chrome и запрещаем всем остальным приложениям.

$IPTABLES -A oem_out -m owner --uid-owner 10060 -m comment --comment "Permit Google Chrome internet access" -j ACCEPT
#
# Block all other processes
#
$IPTABLES -A oem_out -m owner --uid-owner 0-9999 -m comment --comment "Block all other system processes internet access" -j DROP
$IPTABLES -A oem_out -m owner --uid-owner 10000-99999 -m comment --comment "Block all other user processes internet access" -j DROP

Слабым местом этого способа фильтрации является его опора на наличие отметки UID на каждом конкретном пакете при прохождении его через Netfilter/IPtables. Обнаружилось это по непонятным TCP соединениям к серверам Google, пакеты которых не содержали UID. Исследование показало, что эти пакеты инициированы процессом Google Captive portal login. Я решил эту проблему обходным путём — просто выключив эти запросы командами в ADB shell:

root@land:/ # settings put global captive_portal_detection_enabled 0
root@land:/ # reboot

Радует, что (судя по накопленной статистике за несколько суток перехвата Wi-Fi трафика), никаких иных системных процессов отсылающих пакеты без UID в исследовавшемся телефоне нет.

Update. Дальнейшее наблюдение показало как я ошибался. Такие «тихие» процессы есть, но часть из них невинно общается друг с другом через адрес 127.0.0.1, что ненаказуемо.
Всё остальное надо банить.
Поэтому, для их правильной фильтрации, надо добавить в самое начало скрипта ещё две строчки:
$IPTABLES -A oem_out --protocol all --source 127.0.0.0/8 --destination 127.0.0.0/8 -m comment --comment "Accept internal traffic" --jump ACCEPT
$IPTABLES -A oem_out --protocol all -m owner ! --uid-owner 0-99999 -m comment --comment "Drop any traffic which does not have UID." --jump DROP

Update. Уже после опубликования статьи для меня окончательно стало ясно, что UID приложений, задаваемый системой при установке приложения, при обновлении и/или переустановке приложений может непредсказуемым образомменяться. Следовательно, доступ в интернет для приложения тоже отвалится и надо будет переписывать правило Netfilter/IPtables заново.
Для решения этой проблемы набросал небольшой кусок скрипта, который читает из хвоста файла наименования приложений, проверяет их наличие в системной базе приложений, и, при наличии, берёт оттуда же UID приложения и динамически (в процессе работы скрипта) формирует правило Netfilter/IPtables.
Строго говоря — чтение параметров из тела скрипта — это тоже костыль. Но меня оправдывает то, что на момент работы скрипта, подмонтировать файловую систему доступную снаружи при обычной работе телефона — невозможно. В папке /dev нет соответствующих файлов устройств. Допускаю, что это может быть особенность прошивки конкретного телефона.
Текст специально сделал максимально подробным, для лучшего понимания.

# Permit intenet access for the packages listed at the end of this file. White list mode. 
#
SU=`/system/bin/which su`
# changing reading file behavior (read whole file with \r\n into variable)
IFS=""
# reading first and second fields of every line of the system packages database into variable PACKAGESDB. 
# Escalating privileges via su because of filesystem packages database file access limitations.
PACKAGESDB=`$SU -c "/system/bin/cut -d' ' -f 1,2 /data/system/packages.list"`
#
# Reading last lines of current script form the end till "exit 0" line
# Filtering empty lines, lines started with # and all symbols after # (comments) in every line.
# 
# 's/#.*//' - remove all in every line after #
# '/^#/d' - remove lines staring with #
# '/./!d' - remove empty lines
# '/exit 0/,$ d' - remove all lines starting line with "exit 0"
# 's/ //g' - remove spaces from line
#
/system/bin/tac $0 | /system/bin/sed -e '/^#/d' -e 's/#.*//' -e '/exit 0/,$ d' -e '/./!d' -e 's/ //g'| while read line;
do
# Just in case 8-)
OUR_PACKAGE_NAME=$line
# Strict checking for existence of our package name in the system packages database. Checking first field.
PACKAGE_NAME_IN_DB=`echo $PACKAGESDB | /system/bin/cut -f 1 -d' ' | /system/bin/grep -Fx "$line"`
if
# Checking grep utility exit code. "0" means pattern found
test "$?" == "0"
then
#
# Looking for package UID in database. Checking second field. VERY important space after $line!!!
#
PACKAGE_UID=`echo $PACKAGESDB |  /system/bin/grep "$line " | /system/bin/cut -f 2 -d' '`
else
# All other exit codes return us to the beginning of the cycle.
# echo "Package $OUR_PACKAGE_NAME not found"
$IPTABLES -A $CHAIN -m comment --comment "Package name $OUR_PACKAGE_NAME not found. Check package name." --jump LOG
continue
fi
#
# Set the package right for Internet access
# 
$IPTABLES -A $CHAIN -m owner --uid-owner $PACKAGE_UID -m comment --comment "Permit $OUR_PACKAGE_NAME Internet access" -j ACCEPT
#
done
######
... skipped...
####
exit 0
#### 
####### Do NOT edit before this line #########
# Please add package names and comments after this line for granting them internet access.
#####
# Google Play Store and its companion processes
# 
com.google.android.gms # Google Services Framework Internet access
com.android.vending # Google Play Market internet access
com.android.providers.downloads # Download manager service internet access
#
# Other Google apps
com.google.android.youtube # Youtube application internet access
com.google.android.apps.maps # Google Maps application internet access
com.google.android.googlequicksearchbox # Google Assistant internet access
#
#
com.android.chrome # Google Chrome browser internet access


После переустановки/обновления приложения нужно всего лишь перезагрузить телефон.

6. Для целей мониторинга работы правил Netfilter/IPtables можно добавить ещё вот такую строчку:

$IPTABLES -A oem_out --source 10.1.30.42 --protocol tcp --jump LOG --log-prefix "IPtables log:" --log-uid

Параметр IP адрес отправителя (--source 10.1.30.42) можно опустить, но в этом случае лог будет завален записями сетевой активности процессов, завёрнутых на адрес 127.0.0.1 файлом hosts. Лог можно читать через команду dmesg (dmesg | grep IPtables) в ADB Shell.

Версию статьи, которая писалась как полная инструкция по решению этой проблемы с Xioami Redmi 3S я выложил на Google Drive. Сюда её выкладывать не рискнул именно из-за объёма.

P.S. Я не разработчик Android-приложений, просто жизнь заставила два месяца поразбираться с сабжевым телефоном. Посему, господа профи, если я где ошибаюсь — поправляйте. Буду признателен.

P.P.S. В качестве средства перехвата использовался Zyxel Keenetic Extra. У него есть возможность перехватывать Wi-Fi трафик и сливать его на флэшку для последующего анализа.
Поделиться публикацией
Комментарии 308
    +3
    Статья интересная, как раз собираюсь брать Xiaomi, но в чем проблема поставить чистый андроид? Никогда не любил сборки с ПО производителя, там вечно всплывает нечто подобное.
      +4
      Xiaomi скорее покупают как раз ради ПО. Мне нравится MIUI, и менять на что-то другое совсем не хочется.
        +3
        Я буду брать ради железа.
          0
          Miu действительно удобная ось. Мало лишнего в интерфейсе. Позаимствованы некоторые юзабилити айфона. Работает довольно стабильно, внешне не хамит никак. Родной браузер miui меня уже 4 года не подводит.
          Имею привычку не позволять автообновления, проблем в стабильности работы из года в год не наблюдаю.
          P.s. старые версии Miui были более теплыми, ламповыми)
            0
            Очевидно, Вы пользуетесь только самыми основными функциями, не влезая глубоко. Как только начинаешь погружаться в функции системы, так сразу вылезает столько косяков, что оторопь берет.
              0
              Всегда настраиваю телефон максимально под себя, влезая в самые клюбокие настроки и делая рут-доступ. Можете конкретно перечислить, что не так в MIUI? У меня Mi5 128
                0
                Можете конкретно перечислить, что не так в MIUI?

                Посмотрите здесь и здесь.
                  0
                  Локальнй бекап глючный, правда я очень давно не обновлялся и по привычке пользуюсь Титаниумом — не зря же покупал. Что касается изменения разрешения — это уже не штатная работа
                    0
                    пользуюсь Титаниумом

                    Я тоже, но и он глючный. И автор тоже не отвечает на багрепорты и не исправляет глюков.

                    это уже не штатная работа

                    Это почему же?
                      0
                      У меня Титаниум используется довольно просто и глюков не замечал.
                      Разве штатными средствами в MIUI меняется разрешение экрана?
                      Вы пользуетесь этой прошивкой на оригинальном девайсе, или поставили на смарт не поддерживающийся официально?
                        0
                        Titanium бэкапит не все «внешние» данные приложений. Еще у него какие-то косяки с восстановлением данных из базы TWRP, но за давностью не упомню точно.

                        Для смены разрешения имеются штатные команды Android — wm (в относительно новых) и am (в старых).

                        У меня телефон Xiaomi Redmi Note 3 Pro, и прошивка официальная — Global Stable.
                          0
                          Если изменение разрешение делается не штатным софтом прошивки — значит она на это не рассчитана и никто не обещает безглючной работы. С Титаниумом проблем не помню, но и бэкапы из рекавери тоже не делаю на Ми5
                            0
                            Еще раз: утилиты wm/am — это штатные утилиты Android. Если MIUI не умеет корректно брать разрешение, установленное средствами Android — значит, она не полностью совместима с Android, а следовательно — крива по определению.
                              0
                              Под «штатным утилитами» я имею в виду — функции реализованные в системных предустановленных программах или в настройках системы и телефона. Это если мы понимаем под словом «утилита» — одно и то же. Можно что угодно накостылять на коленке и потом удивляться, почему оно не работает. Был у меня один спор с человеком, который наставил в свой браузер тонну плагинов и потом жаловался6 что сайт, который я сверстал — у него ломается и выглядит криво.
                                +1
                                Почему Вы не сужаете круг «штатных средств» до, например, значков на главной странице рабочего стола, или не спрятанных в папки, или пунктов меню настроек не ниже второго уровня? А настройки в меню разработчика — они «штатные», или уже нет? :)

                                Вообще, под словом «штатная утилита» традиционно понимаются все утилиты, входящие в стандартную поставку системы, независимо от способа их запуска. Например, в Windows утилиты format.com, regsvr32.exe или sc.exe — стопроцентно штатные, правила их использования описаны в соответствующих разделах документации. В Android утилиты am и wm — столь же штатные, и тоже описаны в документации. Каких-либо ограничений на их применение в конкретных прошивках не предусмотрено.
                                  0
                                  «Штатный»: внутренний, свойственный, принадлежащий чему-либо, встроенный во что-либо. В моей коробочке Mi5 128 не было флешки с дистрибутивом Android studio и программ для работы с ADB, в настройках и в приложениях на телефоне — тоже ничего такого не было.

                                  Если команды вводимые с персоналки через интерфейс ADB — вызывают на телефоне глюки — я не удивлен, что им не придается никакого значения. Если пользователь установил себе Xpose, а телефон при этом заглючил — виноват пользователь, а не производитель телефона.
                                    +1
                                    Эк Вы вертитесь, как уж на сковороде. Еще раз повторю: утилиты am и wm — именно «внутренние, свойственные, принадлежащие, встроенные». Они столь же штатны, сколь и Android API, и могут быть вызваны любым приложением — хоть встроенным, хоть сторонним.

                                    Давайте зайдем с другой стороны. Предположите, что Вы — разработчик приложения для Android. В своем приложении Вы вызываете функцию из Android API или запускаете встроенную документированную утилиту (например, pm). После выпуска приложения некоторые пользователи, купившие лицензию, жалуются на то, что в их устройствах эти функции не работают. Кто будет виноват в этой ситуации — пользователь, производитель устройства, Вы или Google? И почему.
                                      0
                                      Никто, кроме вас, тут не вертится. Надо различать штатные инструмента пользователя и разработчика — вы не различаете.

                                      Штатно для разработчика еще и загрузчик раблокирован, и пользователь с привилегиями root есть, но для этого часто надо запрашивать разрешение у производителя и телефон может быть снят с гарантийного обслуживания. Потому, у пользователя телефона нет штатных возможностей работы с телефоном по ADB, ибо он не разработчик.

                                      А ваши претензии по работе с изменением ppi — это обычная проблема фрагментации Андроид, когда производитель затачивает систему под свое устройство и они перестают работать как сферический смартфон в вакууме. Грамотный разработчик будет заниматься оптимизацией программы для того, что бы она работала или на как можно большем количестве смартов, или только на определенных моделях. Потому Xpose выпускают для каждой модели отдельно, а видеоплееры — достаточно универсальны.
                                        +1
                                        Что значит «штатно для разработчика»? Если для разработчика выпускаются специальные прошивки с разблокированным загрузчиком и рут-доступом — для чего существует меню разработчика в любой пользовательской прошивке? Что мешает пользователю открыть это меню, поставить на компьютер ADB, и управлять телефоном через него? Помните анекдот про крестик и трусы? Вот и у Вас не сходится.

                                        Скажите, Windows, Linux, MacOs сделаны грамотными разработчиками? Если да — почему они не «занимаются оптимизацией», и их ОС работают на экранах практически любых размеров и разрешений? Вы, кстати, насколько представляете себе объем требуемой оптимизации? Я вот достаточно хорошо представляю, ибо сам разработчик.
                                          0
                                          Меню для разработчика — это меню для разработчика, это инструмент программиста, а не пользователя. Потому оно так и называется. Если пользователь может его включить и крутить — он выходит за рамки обычного пользования телефоном и все проблемы — лично его головная боль. Так что — вы или разработчик, который пытается заставить работать свою программу на конкретном устройстве — или пользователь, который полез своими кривыми руками куда не надо. Крестик или трусы — пользуясь вашими выражениями.

                                          В макос — нет оптимизации под олимпиард устройств, эта система гарантирует работу только на совершенно конкретном железе, винда оптимизируется по огромный зоопарк с помощью драйверов, как и линукс. Попытка сравнить телефонные и десктопные системы — не удалась.
                                            0
                                            Хорошо, давайте простоты ради уберем проблемы с разрешением из длинного списка багов. По остальным какие-нибудь возражения будут? :)

                                            Какая еще «оптимизация при помощи драйверов» в отношении экранов, Вы о чем?
                                              0
                                              Драйвера нужны для видеокарты, неожиданно — но, в последнее время, и для мониторов тоже. Без драйвера иногда нельзя выставить аппаратное разрешение и тп. Остальные — это какие еще? Такие же «я взял инструмент для разработчика и у меня не все заработало»? Про бекапы я вроде и не отрицал, но я не в курсе — может его уже исправили, давно не пользуюсь.
                                                0
                                                Покажите мне хоть один драйвер для монитора. Реально интересно. На каком мониторе без «драйвера монитора» нельзя выставить разрешение, поддерживаемое видеоадаптером и его драйвером?

                                                Остальные — это откройте форму поиска, в поле «Author» введите «emuzychenko», в списке форумов отметьте «Bugs» (их движок настолько крив, что не позволяет оформить это одной ссылкой).
                                                  0
                                                  Драйвера монитора нужны для всяких нестандартных и редких фич, на разрешение влияют драйвера видеокарты. Я много всякой винды переустановил за свою жизнь — без дров к видео, часто было настолько низкое разрешение, что кнопки приходилось нажимать по памяти — они не помещались в экран.

                                                  Вы уже перечисляли свои багрепорты, баги, которые можно увидеть только с помощью средств разработки — не интересны ни пользователям, ни программистам в Сяоми.
                                                    +1
                                                    Видите ли, в Windows отсутствует понятие «драйвер монитора». Совсем. То, что Вы считаете «драйвером», на самом деле является банальным INF-скриптом для прописывания в реестр различных параметров (частоты развертки, коррекция цветов, физические размеры и т.п.). И требовалось это лишь в незапамятные времена, в 90-е годы, пока не появился человеческий протокол связи с монитором, по которому монитор отдает все эти параметры сам. Если не кривой, конечно.

                                                    Вы таки поленились почитать список багрепортов. Ибо там лишь часть касается проблем с разрешением, остальные — в других областях.
                                                      0
                                                      Драйвер монитора может понадобиться для работы с калибраторами, от этого будет зависит то, где будут храниться LUT-таблицы, потому что калибровка может зависеть от видеокарты, или не зависеть от нее. Это не 90-е, это довольно свежая технология — хранить значения в мониторе. Как я уже говорил — это один из примеров редкой и нестандартной фичи, вроде встроенного в монитор калибратора, который тоже не будет работать без специализированных драйверов.

                                                      Да, я не стал пересматривать багрепорты, потому что по второму разу начинать спор о том, что штатные инструмента разработчика не имеют никакого отношения к доступным возможностям пользователя — мне не хочется.
                                                        0
                                                        Класс «драйвер монитора» в Windows предусмотрен чисто косметически, для изящества реализации иерархии устройств. Поскольку к видеоадаптеру ничего, кроме монитора, не подключается, то нет и особого смысла направлять запросы именно монитору, а не адаптеру. Но для красоты мониторы вынесли в отдельный уровень иерархии, так что теоретически можно установить и драйвер. А практически все известные мне мониторы обслуживаются стандартным драйвером (monitor.sys), который просто организует взаимодействие с EDID через драйвер видеоадаптера. То, что предлагается для скачивания под видом «драйверов монитора», на деле является просто установочным скриптом (INF), в котором объявляется идентификатор монитора, дабы система могла его опознать, в комплекте с которым идет калибровочный файл (ICM). Если Вы знаете пример реального драйвера — дайте ссылку, интересно было бы посмотреть на такое чудо.

                                                        Если бы Вы пересмотрели список багрепортов, то обнаружили бы, что далеко не все перечисленные ошибки связаны с изменением разрешения.

                                                        Кстати, как Вы считаете, система на основе Android должна иметь хоть какую-то совместимость с приложениями, использующими рут-привилегии? То есть, если известен способ получения рут-привилегий на конкретной прошивке, но после этого не работает ни одно из привилегированных приложений — может ли это быть поводом для недовольства разработчиком прошивки? :)
                                                          0
                                                          Вы совсем не прочитали первый абзац моего комментария, или совсем его не поняли?

                                                          Система Андроид не должна иметь совместимости с приложениями, которые используют нештатные для пользователя функции, использование инструментов разработчика — только на совести самого пользователя, со всеми его преимуществами и рисками.
                                                            0
                                                            А сможете перечислить критерии отличия «штатных» функций от «нештатных»? Так, чтобы я Вас не смог поймать на противоречиях, и не пришлось потом эти критерии корректировать? :)
                                                              0
                                                              Вся ветка комментариев об этом, «поймать» меня вам так и не удалось.
                                                              Про драйвера к мониторам вы вообще решили «забыть». Сначала было весело наблюдать ваши попытки вывернуться — но уже начинает поднаедать.
                                                                +1
                                                                «поймать» меня вам так и не удалось

                                                                «Ловить» я Вас начну после того, как Вы приведете набор критериев «штатности», который считаете исчерпывающим, чтобы затем не корректировать его итеративно.

                                                                Про драйвера к мониторам вы вообще решили «забыть»

                                                                Вы ничего не путате? Об этом я Вам ответил выше, и попросил пример для ознакомления.
                                                                  0
                                                                  Я вам раз пять повторял, что считаю инструментами пользователя и разработчика, другие вам это повторяли, если вас априори не устроит любое определение — зачем переспрашиваете?

                                                                  Пример приведен давно — любой монитор со встроенным калибатором.
                                                                    +1
                                                                    Я вам раз пять повторял, что считаю инструментами пользователя и разработчика

                                                                    Отлично. Из Ваших формулировок следует, что пользователь имеет право предъявить производителю претензию только в отношении функций, реализованных исключительно в предустановленных производителем приложениях.

                                                                    Отсюда следует, что Вы не вправе предъявить производителю претензию в том случае, если приобретенный Вами телефон заявлен производителем, как «совместимый с Android», но при этом на нем не работает ни одно из приложений, установленных из Play Market. Или, как вариант — если первые десять приложений (которые Вы установили для проверки перед покупкой), работали, а все остальные (установленные уже после покупки) — нет. Я правильно понял Вашу позицию?

                                                                    любой монитор со встроенным калибатором

                                                                    Eizo ColorEdge (CG277, CG276 и т.п.) под это определение подпадают? Если да — укажите, пожалуйста, который из пакетов, приведенных в разделе «Drivers», следует считает «драйвером», и почему.
                                                                      0
                                                                      Опять бессмысленное обобщение. Телефоны Сяоми относятся к тем, на которых не работает ни одно приложение из ГП? Нет. Значит будем считать — что вы остались неправы.

                                                                      //пожимает плечами
                                                                      Драйвером там будет считаться любой пакет, который требуется для работы специфичного аппаратного обеспечения и не работающий без него.
                                                                        0
                                                                        Опять бессмысленное обобщение

                                                                        Напротив, вполне осмысленное. Вы заняли конкретную, жесткую позицию, не допускающую оговорок и подвижек. Вот я и попросил Вас смоделировать свои действия в ситуации, которая подпадает под Ваше определение. А Вы уходите от прямого ответа.

                                                                        Драйвером там будет считаться любой пакет, который требуется для работы специфичного аппаратного обеспечения и не работающий без него

                                                                        То есть, если для работы некоторого оборудования под Windows потребуется установка определенных обновлений, то все эти обновления придется называть «драйверами»? А если потребуется доустановить шрифт или сертификат — драйверами придется называть и их тоже?
                                                                          0
                                                                          Вы не смоделировали ситуацию, а выдумали абсолютную крайность, сферическую в вакууме, как и другие ваши аргументы.

                                                                          Шрифт не отвечает за взаимодействие системы с нестандартным устройством, а драйвер отвечает. Снова мимо.
                                                                            0
                                                                            выдумали абсолютную крайность, сферическую в вакууме

                                                                            Разумеется — и сделал это целенаправленно. Так делается всегда, когда оппонент выступает с безусловными утверждениями вроде «всех преступников нужно казнить», и ему предлагается представить себя в ситуации, когда он сам волей случая стал преступником, не заметив этого. А Вы снова под удобным предлогом ушли от ответа.

                                                                            Шрифт не отвечает за взаимодействие системы с нестандартным устройством, а драйвер отвечает

                                                                            Какой смысл Вы вкладываете в понятие «отвечает»? Если в принтер встроены некие шрифты (скажем, изображения иероглифов или рожиц), но в системе эти шрифты не установлены — система и приложения не смогут воспользоваться встроенными возможностями принтера для печати соответствующих знаков, и использование аппаратных возможностей будет неполным. Если некое устройство использует шифрование, но в системе не установлены сертификаты, с помощью которого шифруются данные, то аппаратные возможности устройства также не будут использованы.

                                                                            В соответствии с Вашим «определением», шрифты и сертификаты придется признать «драйверами».
                                                                              0
                                                                              Вы действительно ждете ответа на сферическую крайность в вакууме?
                                                                              К инструментам разработчика вам докопаться не удалось, теперь вы в каждом комментарии тщательно выискиваете до чего можно придраться, просто что бы хоть до чего нибудь придраться. С темы драйверов к калибратору — соскочили на шрифты к принтерам, которые уже лет 10 таким образом не работают. Будто это каким-то неведомым образом отменяет необходимость установки драйверов для калибратора, а МИУИ превращается в тыкву одним только этим «аргументом».

                                                                              давайте я вам дам простой повод в качестве нескольких предложений без большой буквы в начале и знаков препинания вы удовлетворитесь расстановкой запятых и точек и спокойно почувствуете собственную правоту если другого способа спорить у вас нет в следующем комментарии перейдете к обсуждениям черных дыр путь они как и многое другое не имеют совершенно никакого отношения к изначально обсуждаемым вопросам и так далее

                                                                              На самом деле все проще. Если с вами перестали спорить только потому, что надоело — это не делает вас правым, это значит что оппоненту вы ничего доказать не смогли и ему просто надоело. Всего лишь.
                                                                                0
                                                                                К инструментам разработчика вам докопаться не удалось

                                                                                Я просто утомился растолковывать Вам очевидное (в профессиональной среде) понятие о совместимости, которое определяется не субъективными факторами (степенью удовлетворенности пользователей или их представлениями о «штатности» функций), а сугубо объективными (соотношением множеств реализованных функций, соответствием фактического поведения описанному в документации и т.п.).

                                                                                Будто это каким-то неведомым образом отменяет необходимость установки драйверов для калибратора

                                                                                Если калибратору требуется именно драйвер (управляющая программа, работающая в соответствии с определенным протоколом) — значит, необходима установка именно драйвера. В остальных случаях необходима установка набора параметров, или цветового профиля, или чего-то еще, но никак не драйвера.

                                                                                Прежде, чем выражать недовольство моим «соскакиванием с темы» и «выискиванием, до чего можно придраться», Вам бы следовало вспомнить, с чего вообще началось обсуждение драйверов. А началось оно, напомню, с моего утверждения о том, что графика в Windows, Linux, MacOS и других графических ОС работает независимо от разрешения, установленного на экране. То есть, при любом разрешении корректно определяются границы экрана, корректно отображаются значки, корректно работают окна и т.п. А Вы стали упирать на то, что без «драйверов» не всегда возможно установить любое из разрешений, аппаратно поддерживаемых экраном. Так кто увел тему в сторону?
                                0
                                В MIUI очень много Legacy внутри, так как свои костыли уже давно начали конфликтовать с актуальным кодом Android, реализующим некоторые фичи нативно. Достаточно поставить сторонний лончер на MIUI чтоб вылезли куски интерфейса и иконки из Android 4.4, например.
                              0
                              Titanium бэкапит не все «внешние» данные приложений. Еще у него какие-то косяки с восстановлением данных из базы TWRP, но за давностью не упомню точно.

                              Проблему с внешними данными сложно решить. Некоторые приложения создают на карте папки с названиями которые сложно отнести к приложению. Вот если бы были жестко ограничены места, если бы приложения могли писать только в /data и Android/data на карте, тогда такой проблемы бы не было.
                                0
                                Некоторые приложения создают на карте папки с названиями которые сложно отнести к приложению

                                Тут и пытаться не нужно — я исключительно про стандартные каталоги (Android/data и Android/obb). Насколько я помню, Titanium берет их только с основного хранилища, а могут быть и другие.

                                Кстати, мне неизвестно о существовании нормального, «взрослого» бэкапера под Android, который давал бы возможность указать набор данных как включением, так и исключением. Приложений под названием «backup» полно, но все какие-то детсадовские.
                    0
                    Да, пользуюсь как типичный юзер. Ничего под ось не кодю, (за исключения скриптов поверх установленных программ) в меню для разработчика не роюсь. Был период, рутовал телефон, чтобы проверить как легко покемонов сломать можно. Ставил кучу нестандартных программ, все хорошо было, аппарат не подводил, не заикался…
                    Хотелось бы услышать самые животрепещущие косяки на Ваш взгляд?
                      0
                      Почитал типичные проблемы с 4pda. чего то серьезного там не увидел, по сравнению с тем как у меня глючили и выпендривались другие версии ПО ( стандартная ось андроид или цианоген мод), MIUI просто ангел. Нам следует не забывать, что сама по себе ось android не самое удачное решение, и добиться от нее идеальной стабильной работы всех реализованных функций в комплексе — задача сомнительно исполнимая.
                      Кстати, не все заявленные проблемы у меня проявляются… некоторые не доводилось тестить, типа архивирования, потому что банально нет нужды, все и так работает стабильно, некоторые некоторые уже исправлены. Как давно у Вас был опыт взаимодействия с оболочкой?
                        +1
                        С MIUI я взаимодействую с апреля 2016-го по сей день.

                        Что там уже исправлено из перечисленного?
                          0
                          Как минимум, яркость экрана по глазам не бьет в темноте, часто перед сном читаю)
                          Никаких проблем с изменением разрешения не было, я даже не знаю, где его менять. Разве что размер шрифта можно стандартными настройками покрутить.
                          Кстати у моего соседа Redmi 3s у меня Mi4… может дейтсивтельно по разному себя ведут оси на разном железе. Если укажете последовательность действий, могу сравнить какие то особенности поведения апаратов в одинаковых условиях…
                            0
                            Из всех косяков, что я обнаружил в MIUI, на RN3P и Max отличалась только яркость — это явно платформозависимо. Все остальное в точности повторялось.

                            Подайте через ADB Shell команду «wm density N», где N существенно меньше стандартного DPI (например, для 5.5 можно попробовать 350), и посмотрите, как будут выглядеть значки экрана и област сканирования штрих-кодов.

                            С размером шрифта у них тоже была веселуха — в одном из выпусков 2015-го года они удумали вообще убрать размер «XS». Народ поднял шум, что не фиг считать всех слепыми, и в следующих выпусках размер вернули. А по мне, так надо бы еще на пару пунктов минимальный шрифт уменьшить.

                            Последовательности действий по воспроизведению косяков описаны в багрепортах.
                              0

                              Типичный юзер на знает что такое ADB Shell. Тем более зачем это надо? В самой MIUI такой функции нет, она под нее не заточена, в чем проблема-то?

                                +1
                                Типичный юзер Windows не знает, что в системе есть множество командно-строковых утилит. Во многих корпоративных инсталляциях запуск консоли и прямой ввод командной строки запрещены. Можно ли в таком случае сказать, что в Windows «нет такой функции», или «она под нее не заточена»? Если какое-либо приложение захочет вызвать стандартную системную утилиту, и при этом возникнет ошибка — сможет ли Microsoft спокойно игнорировать сообщения о ней?
                                  0
                                  Если утилита есть в документации конкретной версии винды — не может. Если нет — может и игнорирует зачастую. В документации к MIUI есть описание работы через ADB Shell или там заявлено наличие утилиты wm? Если они не заявляют что в своей прошивке поддерживают эти инструменты, то претензии могут быть только к этим заявлениям, а не к работоспособности утилит.
                                    +1
                                    Документация к MIUI? Она существует? :) Я бы с удовольствием с ней ознакомился, если бы она была.

                                    А утилиты am/pm/wm описаны в документации к Android. То есть, они обязаны работать во всех прошивках, основанных на Android — как и функции соответствующего уровня API.
                                      0
                                      А лицензия андроида обязывает реализовывать все утилиты, в точно том варианте, в котором они есть в чистом андроиде? Если нет и нет документации по MIUI, то на каком основании вы ждали что эти функции будут работать? Технически это вообще не баг.
                                        +1
                                        Если производитель позиционирует свое устройство, как Android-совместимое — он должен поддерживать все функции и утилиты, документированные для Android. В крайнем случае — честно и открыто заявить «ну не шмогла я», перечислив возможности базовой системы, не поддерживаемые в его прошивке. Это, как бы, стандарт де-факто, любой профессиональный разработчик это понимает.

                                        Утилиты не нужно реализовывать — они уже реализованы в Android. И прекрасно работают на его уровне — любое приложение, которое берет параметры экрана из системных свойств, получает именно те, что установлены на данный момент, а не забиты в прошивку в виде констант. И только приложения MIUI слишком горды для того, чтобы это делать. :) В принципе, и черт бы с ними, если бы они хоть делали это последовательно. А то ведь окно они рисуют на весь экран — по количеству пикселов, а элементы управления внутри окна рисуют как попало — то по реальному масштабу, то по стандартному.
                                          0
                                          Назовите модель, которая поддерживает из коробки абсолютно все функции присущие Андроид и по этой причине — не имеет глюков. Да, ответ про эмулятор в IDE — не принимается.

                                          И еще — назовите устройство, которое не поддерживает все-все-все функции Андроид и имеет публичный и доступный чеклист с перечислением несовместимых функций.
                                            +1
                                            Я таких не знаю. Если такие устройства существует — их следует объявить «полностью совместимыми». Все остальные следует называть «ограниченно совместимыми». По-моему, это элементарно.

                                            Подозреваю, что Вы пытаетесь подменить предмет обсуждения. Я ничего не утверждал о существовании или несуществовании устройств, примеры которых Вы просите привести.

                                            Я утверждаю, что устройство, объявленное «совместимым» с каким-либо стандартом (хоть де-юре, хоть де-факто), должно признаваться нарушающим эту совместимость, если на нем невозможно правильно выполнить какие-либо операции, документированные для эталона.
                                            0
                                            Извините, но что, по вашему, такое прошивка? Набор нескучных обоев? Это изменение базовой системы под конкретное железо или конкретные хотелки. То, что при этом что-то начнет работать не так как работало в базовой системе — это не просто вероятность, это факт, ради этого все и затевается. Вы можете сколько угодно апеллировать к абстрактному «любому профессиональному разработчику», но вернее от этого ваши слова не станут. Ну а про «де-факто» вам уже ответили.
                                              +1
                                              Вы когда-нибудь слышали о понятии обратной совместимости?

                                              Я правильно понимаю, что Вы не станете удивляться или расстраиваться, если в очередном приобретенном устройстве не будет работать половина (а еще лучше 95%) Ваших любимых приложений, которые до этого работали на всех устройствах с достаточным уровнем API (и продолжают работать на устройствах других производителей)? :)

                                              Зато ведь появится множество новых приложений, которые смогут использовать новые заставки, значки, звуки и остальное из того, «ради чего и затевалось». :)
                                                0
                                                Вы серьезно говорите про обратную совместимость в андроиде? Да, я не стану удивляться что на устройстве с собственной прошивкой не будет работать мое любимое приложение. Если это достаточно редкое устройство или приложение использует 3,5 человека, то я даже не очень расстроюсь, это будет вполне ожидаемо. Если приложение популярное и устройство распространенное — то это тоже повод не расстраиваться а зайти на сайт разработчика и попросить его поддержать еще и эту модель/прошивку. Вот это — де факто стандарт. Плохой, не всегда приятный, но де факто именно так все и работает и уже много лет. Андроид здесь не уникален, это работает даже для разных версий винды или для разного железа на которое винда ставилась. А уж если линуксы вспоминать…
                                                Вы, право слово, как вчера родились, что такие очевидные и привычные вещи вам надо рассказывать. Более того, вы же сами признаете что то, что вы назвали
                                                Это, как бы, стандарт де-факто, любой профессиональный разработчик это понимает.

                                                на самом деле
                                                Я таких не знаю.

                                                Как может быть что-то «де факто» стандартом и при этом не существовать?
                                                  +1
                                                  Вы серьезно говорите про обратную совместимость в андроиде?

                                                  Абсолютно. Я вполне себе наблюдаю ее на примере большинства протестированных устройств.

                                                  это тоже повод не расстраиваться а зайти на сайт разработчика и попросить его поддержать еще и эту модель/прошивку

                                                  А зайти на сайт разработчика модели/прошивки, которому за это заплачены вполне конкретные деньги, и попросить его ликвидировать отклонения от поведения, предусмотренного разработчиком базовой системы (Android) — это очень предосудительное поведение? :)

                                                  Как может быть что-то «де факто» стандартом и при этом не существовать?

                                                  Вы невнимательны. Стандартом де-факто я назвал отношение разработчика к разработанным им продуктам. А вовсе не идеальный продукт, у которого полностью отсутствуют недостатки.
                                                    0
                                                    А зайти на сайт разработчика модели/прошивки, которому за это заплачены вполне конкретные деньги, и попросить его ликвидировать отклонения от поведения, предусмотренного разработчиком базовой системы (Android) — это очень предосудительное поведение? :)


                                                    Попросить — это несомненно нормальное поведение. Но требовать, утверждая что за это заплачены деньги — нет, потому что заплачены они не за это. Никто не гарантировал полную совместимость с базовой системой.

                                                    Вы невнимательны. Стандартом де-факто я назвал отношение разработчика к разработанным им продуктам. А вовсе не идеальный продукт, у которого полностью отсутствуют недостатки.

                                                    Из этого:
                                                    Если производитель позиционирует свое устройство, как Android-совместимое — он должен поддерживать все функции и утилиты, документированные для Android. В крайнем случае — честно и открыто заявить «ну не шмогла я», перечислив возможности базовой системы, не поддерживаемые в его прошивке. Это, как бы, стандарт де-факто, любой профессиональный разработчик это понимает.

                                                    Вроде бы следует что стандарт де-факто, это поддержка системой всех утилит базового проекта, либо полное описание отличий. А разработчик понимает что это стандарт. То есть это не понимание разработчика стандарт, а описание и поддержка. Так что это не я невнимателен, а вам стоит точнее выражать свои мысли. Извините за буквоедство, но обвинять меня в вашей неточности все-таки некрасиво.

                                                    Не говоря уже о том, что даже в новой формулировке ваше утверждение о де-факто стандарте спорно, но гораздо сложнее доказуемо или оспариваемо. То есть, я согласен, что любой грамотный разработчик согласится с тем, что правильно было бы точно описать всю функциональность. Но так мало кто делает. Можно подискутировать о причинах отсутствия и важности такого описания, но называть его стандартом я не могу.

                                                    Собственно к вам то претензия ровно одна: вы по какой-то причине взъелись на xiaomi за то, что делают кроме них, в общем-то, все. Баги висящие в багтрекере годами есть практически у любого более-менее крупного проекта, кто-то на них отвечает дежурными фразами, кто-то просто игнорирует пока руки не дойдут. Я уверен, что и у эпла такие баги есть.
                                                    Я не говорю что xiaomi хорошие, я согласен что было бы круто, если бы они правили свои баги. Но когда кто-то как вы кричит какие они плохие, то он выглядит как стандартный хэйтер, которые появляются у чего-либо ставшего хотя бы сколько-то популярным.

                                                    На всякий случай: я не обвиняю вас в бессмысленной ненависти или ненависти из-за моды, я только описываю как вы выглядите для меня сейчас. Возможно не только для меня, но тут судить не берусь. Если вас это устраивает — замечательно. Если нет, то вы можете попробовать скорректировать свои действия в будущем. Но это уже полностью ваше дело, я не пытаюсь вам ничего навязать.
                                                      0
                                                      заплачены они не за это

                                                      А за что, кстати, заплачены деньги, потраченные на телефон? Чего, по-Вашему, имеет право требовать покупатель телефона?

                                                      Вроде бы следует что стандарт де-факто, это поддержка системой всех утилит базового проекта, либо полное описание отличий

                                                      Именно так. Но не обязательно сразу полная поддержка, или, опять же сразу, полное описание отличий.

                                                      Если планируется (и заявляется) полная совместимость — значит, при каждом указании на случай несовместимости разработчик должен принимать меры к ее исправлению. Если планируется ограниченная совместимость — разработчику следует заранее заявить, что определенные функции поддерживаться не будут никогда. Не обязательно все это досконально прописывать — достаточно хотя бы обозначить, чтобы заинтересованные могли запросить уточнения.

                                                      вы по какой-то причине взъелись на xiaomi за то, что делают кроме них, в общем-то, все. Баги висящие в багтрекере годами есть практически у любого более-менее крупного проекта, кто-то на них отвечает дежурными фразами, кто-то просто игнорирует пока руки не дойдут

                                                      Я уже объяснял, почему я так взъелся именно на Xiaomi — мне еще не встречалось столь выраженного сочетания амбиций по окучиванию покупателей с полнейшим наплевательством на тех, кого уже успели окучить. Остальные хоть как-то шевелятся, а это означает, что информация, пусть медленно, но движется от пользователей к разработчикам. В случае с Xiaomi я наблюдаю полную, абсолютную изоляцию разработчиков от пользователей — по крайней мере, на официальных порталах, которые построены по принципу «пусть юзеры помогают друг другу сами». Поддержка, исходящая от производителя, там отсутствует чуть более, чем полностью.
                                                        0
                                                        Так отношение или поддержка все-таки? Это не одно и тоже.
                                                        Стандартом де-факто я назвал отношение разработчика к разработанным им продуктам.

                                                        Вроде бы следует что стандарт де-факто, это поддержка системой всех утилит базового проекта, либо полное описание отличий
                                                        Именно так.

                                                        Так вот, если все-таки поддержка, то приведите, пожалуйста, как вас уже просили пример. Если же:
                                                        Я таких не знаю.

                                                        То прекращайте называть понравившиеся вам мысли стандартом де-факто.

                                                        А за что, кстати, заплачены деньги, потраченные на телефон?

                                                        За то, что описано в договоре. Возможно даже что телефон вам вообще не принадлежит а просто был выдан в аренду. Если в договоре есть пункт с описанием приложений, для которых гарантируется работоспособность, то приведите его и я соглашусь что был неправ. Я изначально именно это и просил у вас. Но я сомневаюсь что там есть такое описание. А значит претензии хоть и могут быть понятны, но при этом очевидно необоснованны.
                                                          0
                                                          Так отношение или поддержка все-таки?

                                                          Отношение, которое определяет политику поддержки.

                                                          значит претензии хоть и могут быть понятны, но при этом очевидно необоснованны

                                                          То есть, если Вы приобретете в магазине телефон без «штучного» договора, на основании общих положений ГК о договоре купли-продажи, то на любые Ваши претензии к его работоспособности продавец или производитель могут с полным правом отвечать «но он же включается», признавая претензии «понятными, но очевидно необоснованными»?
                                                            0
                                                            Отношение, которое определяет политику поддержки.

                                                            Из вашего утверждения следует что продукты с такой поддержкой — де-факто стандарт или нет?

                                                            То есть, если Вы приобретете в магазине телефон без «штучного» договора, на основании общих положений ГК о договоре купли-продажи, то на любые Ваши претензии к его работоспособности продавец или производитель могут с полным правом отвечать «но он же включается», признавая претензии «понятными, но очевидно необоснованными»?

                                                            Вы, похоже не совсем со мной все-таки беседуете. Во-первых, что должен производитель лично вам в ваших конкретных условиях я понятия не имею и несколько раз вас напрямую спросил про конкретные моменты. Вы ни разу не написали здесь никаких цитат из чего можно сделать вывод, что те конкретные моменты, о которых я говорил, вам действительно никто не гарантирует и вы это знаете. Во-вторых, я не говорил что вам не гарантировано вообще ничего, откуда взялись «любые Ваши претензии»?
                                                              0
                                                              Из вашего утверждения следует что продукты с такой поддержкой — де-факто стандарт или нет?

                                                              Следует. Основная часть легальных продуктов все-таки делается так, чтобы не нарушать стандарты, протоколы и устоявшиеся соглашения, а поддержка худо-бедно взаимодействует с пользователем, оказывая влияние на техзадания разработчикам.

                                                              я не говорил что вам не гарантировано вообще ничего, откуда взялись «любые Ваши претензии»?

                                                              Вот мне и интересно, до какого уровня Вы согласны считать претензии «обоснованными», а сверх него — «необоснованными». Ибо на любую претензию всегда найдется достаточное количество пользователей, считающих проблему малозначительной, а то и вовсе не подозревающих о ее существовании.
                                                                0
                                                                Основная часть легальных продуктов все-таки делается так, чтобы не нарушать стандарты, протоколы и устоявшиеся соглашения, а поддержка худо-бедно взаимодействует с пользователем, оказывая влияние на техзадания разработчикам.

                                                                Но ведь вы не это говорили. Вы говорили что нужно перечислить все фичи своего продукта и все нестыковки с продуктом на основе которого строится ваш. И раз вы утверждаете что это стандарт де-факто, то я уже в третий раз (или в четвертый?) прошу вас привести список продуктов с таким описанием.
                                                                Вот:
                                                                Если производитель позиционирует свое устройство, как Android-совместимое — он должен поддерживать все функции и утилиты, документированные для Android. В крайнем случае — честно и открыто заявить «ну не шмогла я», перечислив возможности базовой системы, не поддерживаемые в его прошивке. Это, как бы, стандарт де-факто, любой профессиональный разработчик это понимает.

                                                                Вы же в каждом своем ответе придумываете новые условия. Я бы понял если бы вы сказали что были неправы или не точны, но ведь нет, вы обвиняете меня в том, что я невнимательно прочитал вас. Из вашего поведения в нашей беседе я достаточно обоснованно заключаю что и претензии к xiaomi у вас скорее всего примерно такие же.

                                                                Вот мне и интересно, до какого уровня Вы согласны считать претензии «обоснованными», а сверх него — «необоснованными».

                                                                Обоснованные претензии — это претензии, которые обоснованы юридически. Остальное — хотелки пользователя и сколько внимания им уделять решает производитель. Очевидно, что производитель не может удовлетворить сразу все хотелки пользователей, если этих пользователей достаточно много — в этих хотелках будут противоречия. На мой взгляд, также, ситуация когда производитель не отвечает на несущественные для него баги абсолютно идентичная ситуации, когда на каждый баг вообще пишется «спасибо, нам очень важно ваше мнение», но фиксятся только актуальные для производителя баги. Я бы даже сказал что ситуация с отсутствием ответа более честная — так по крайней мере видно что именно чинится, а что нет.
                                                                  0
                                                                  Вы говорили что нужно перечислить все фичи своего продукта и все нестыковки

                                                                  Я говорил, что нужно «перечислить несовместимости», а квантор «все» добавили Вы. Обычно перечисляются наиболее важные несовместимости, причем не всегда это делается одновременно с выпуском продукта. Это может делаться и по запросу/багрепорту, когда производитель либо признает несовместимость ошибкой/недоработкой, и берется за ее исправление, либо заявляет, что совместимость обеспечиваться не будет.

                                                                  прошу вас привести список продуктов с таким описанием

                                                                  С перечислением всех несовместимостей придется искать долго, но это уже не моя забота, ибо я такого ограничения не вводил. А с перечислением основных — пожалуйста: POSIX в Windows, C++ в VC 2015, JAVA 8 в Android, Win 3.x в NT, XP в ReactOS. Еще нужно?

                                                                  Вы же в каждом своем ответе придумываете новые условия

                                                                  Это я всего лишь разным словами объясняю, как принято делать у уважающих себя производителей.

                                                                  Обоснованные претензии — это претензии, которые обоснованы юридически

                                                                  Каким образом Вы сумеете юридически обосновать претензии, если купленный Вами телефон будет включаться, отображать рабочий стол, но больше ничего делать не будет? Или на нем будет работать в среднем лишь одно из десяти выбранных наугад приложений из Play Store?

                                                                  ситуация с отсутствием ответа более честная — так по крайней мере видно что именно чинится, а что нет

                                                                  Ну попробуйте поискать ответы разработчиков в «багтрекере» MIUI. Такое впечатление, что этот раздел сайта был создан просто для общения пользователей между собой.
                                                                    0
                                                                    Я говорил, что нужно «перечислить несовместимости», а квантор «все» добавили Вы.

                                                                    Но ведь неправда же, вот ваши слова (жирный шрифт добавил я):
                                                                    Если производитель позиционирует свое устройство, как Android-совместимое — он должен поддерживать все функции и утилиты, документированные для Android.

                                                                    Хватит сваливать вину за свои неосторожные слова на меня. Меня честно говоря утомило цитировать одно и то же предложение в качестве доказательства того что вы неправы в ответ на новые ваши увертки. И так как это именно вы говорили про «все», то и доказывать вам. Будьте добры либо признайте что неправы, либо все-таки приведите доказательства правоты вместо того чтобы приписывать свои слова мне.
                                                                      0
                                                                      Такое впечатление, что Вы слишком торопитесь возражать, и не успеваете внимательно прочитать мои слова. Сравните тщательно две моих фразы, одна из которых действительно содержит слово «все», а в другую это слово попытались добавить Вы, и поймите, что их смысл совершенно различен.
                                                  0
                                                  в очередном приобретенном устройстве не будет работать половина (а еще лучше 95%) Ваших любимых приложений, которые до этого работали на всех устройствах с достаточным уровнем API
                                                  Это опять сферическо-вакуумное обобщение, или вы приведете пример такого телефона? Если что, напоминаю — обсуждаются телефоны Сяоми.
                                                  0
                                                  Получается, что абсолютно все телефоны нарушают совместимость в Андроид и нет ни одного, для которого описывается полный чек-лист нарушений. Хорошо, что вы это признали, теперь у вас нет причин не любить конкретно Сяоми, потому что в этом их телефоны ничем не отличаются от остальных.
                                                    +1
                                                    Где-то на developer.android.com есть набор утилит и приложений, тестирующих конкретную систему на совместимость. Очевидно, какая-то часть устройств эти тесты проходит, и они считаются «полностью совместимыми». Столь же очевидно, что никакие тесты не покрывают полностью всех функций, поэтому даже эти устройства вполне могут иметь несовместимости по функциям, не покрываемых тестами.

                                                    Я слышал, что у разработчиков, активно работающих с этими тестами, телефоны с MIUI вовсе не в почете.

                                                    Я уже объяснил, за что я не люблю Xiaomi вообще и ее софт в частности — за настойчивое стремление выдавать лихорадочный выпуск кривых недоделок за налаженный и стабильный процесс производства. То есть, за внешне высокотехнологичное производство, за которым скрывается вполне себе сарайно-подвальная организация.
                                                      0
                                                      Всегда можно найти некоторое количество пользователей разработчиков, которым не нравятся телефоны Сяоми. Утверждение справедливое для любой марки и продукта.
                                                        0
                                                        Речь не о телефонах Xiaomi, а конкретно о системе MIUI. К аппаратной части телефонов Xiaomi, которые тестировал, у меня не возникло ни единой претензии. А вот то, что делают их программисты, выходит запредельно кривым. Хотя, если смотреть только поверхностно, то выглядит симпатично.
                                                          0
                                                          //пожимает плечами
                                                          А меня: как пользователя — MIUI устраивает намного больше, чем другие сборки Андроид. Возможности системы с каждой версией все лучше, стабильность на уровне «безупречно», программ не работающих на ней — не могу вспомнить.
                                                          И кто из нас не прав?
                                                            0
                                                            Пока Вы ограничиваете свое мнение субъективными впечатлениями («устраивает намного больше», «не могут вспомнить программ» и т.п.) — Вы полностью правы, оспаривать это невозможно.

                                                            На объективном уровне правота/неправота определяются объективными же факторами — наличием несовместимостей, наличием у производителя информации о возможных проблемах, наличием/отсутствием реакции производителя на сообщения о проблемах, и так далее.
                              0
                        +1
                        Их как раз обычно берут ради железа. Я даже не знаю другого производителя, для которого это утверждение было бы настолько актуально.
                          0
                          OnePlus?
                            0
                            намного дороже выйдет, чем аналог от Xiaomi
                            0
                            Кроме Xiaomi, ради железа берут ZUK, LeEco. И как уже сказали OnePlus.
                          +7

                          Не автор, но отвечу. Как правило — поддержка железа. Xiaomi Mi 3. На вендорской прошивке датчик "приближения к уху" работает нормально, на цианогене — глючит безбожно. Решения найти не смог.

                            0
                            У меня было такое пару лет назад (samsung i9300), что интересно, проблема решилась заменой прошивки модуля связи
                              0
                              У меня не Mi3 а 4с, но похожая проблема решилась калибровкой датчика через сервисное меню.
                                0

                                А подкиньте ссылочку пожалуйста

                                0
                                Перед грустными новостями о cuanogemod, об отказе о поддержке дженкинсов, обновилась ночная сборка, в версии 14.1-20161213-NIGHTLY-ido на kudo просто отлично работатет, да фотоэлемент тупил, в 7.0, в 7.1 всё ок
                              +6
                              В «чистых» сборках как правило что то да не работает полноситью или частично… приходится ждать когда пофиксят конкретно под данное железо.
                                0
                                Возможно я некорректно выразился, я имел ввиду чистый андроид как MIUI со сносом ненужного ПО. С самим MIUI лично, я мало сталкивался, видел у некоторых коллег, система мне очень понравилась.
                                  +1
                                  После «сноса ненужного ПО» мява отказывается нормально функционировать
                                    0
                                    Какой знакомый ник.
                                    Однако, здравствуйте!
                                      0
                                      Да и Ваш мне что то навеял :D
                                      Вы ли это?
                                      Однако, здравствуйте!
                                0
                                Тоже раздумываю над покупкой Xiaomi аппарата, но одной из причиной не брать становится как раз отсутствие стабильных чистых (голый андроид) прошивок. Судя по всему, приходится адаптировать под каждый аппарат отдельно и не всегда получается.
                                  0
                                  На XDA прошивок выше крыши, если есть желание разбираться, можно найти то, что душе угодно. На Redmi 2 выбрал Resurrection Remix. OTA и проч. фарш есть, что еще нужно, не знаю. Ни один из датчиков не барахлит, как работало на MIUI, также работает и на этой проше, только батареи еще дольше хватать стало.
                                  0
                                  Загрузчик заблокирован.
                                    +4
                                    Загрузчик можно разблокировать, это не проблема.
                                      0
                                      Так разблокировать можно и на будущее сделать бэкап aboot-а с помощью TWRP. Какие сложности с блокировкой?
                                        +1
                                        Не знаю как сегодня, год назад нужно было просить китайцев о разблокировке. Без гарантированного одобрения.
                                          0

                                          на 4pda.ru есть 2 инструкции по разблокировке. одна через портал, вторая через европейскую поддержку. многие говорят, что приходит в течении суток.

                                            0
                                            Там тонкость есть с СМСками при регистрации. Мне на перенесённый номер (MNP) не прилетали совсем. А так в течение трёх суток одобрили, если память не изменяет.
                                              0

                                              Оффтопик: такие проблемы часто бывают с перенесенными номерами?

                                                0
                                                Затрудняюсь ответить. Возможно это связано с тем, что оператор-донор (Скайлинк) сейчас прекратил сущестование.
                                                  0
                                                  Ну у нас Кодотел полностью закрыли. Все его номера ушли к Теле2.
                                                  У меня городской номер был — перенесся нормально, проблем ни со звонками ни с SMS не замечал…
                                                  Хотя незадолго перед закрытием они (Кодотел) перевели всех абонентов с CDMA 900 на GSM.

                                                  PS Попробуйте связаться со своим оператором, возможно где-то что-то не штатно отработало при авто конвертации.

                                                  У меня например на одном номере Теле2 не работала услуга «я в сети».
                                                  Пока оператор вручную ее не выключил и не включил снова.
                                                  Сейчас все нормально уже.
                                                  0
                                                  Да, подтверждаю. У многих знакомых начались проблемы с получением СМС банков, сервисов авторизации и т.д.
                                                  0
                                                  Проблема могла быть в языке, при регистрации рекомендуется ставить в настройках англ. язык. У меня, правда, и на русском прошло безболезненно
                                                0
                                                Сейчас тоже нужно. Благо, теперь это можно сделать на английском, а не на китайском, как раньше.
                                                  0
                                                  Позавчера одобрили за 10 минут.
                                                  0
                                                  Какой смысл делать бэкап aboot, когда он есть в каждом прошивочном пакете? Бэкапить нужно разделы, которые не прошиваются при обновлении.
                                                    0
                                                    aboot после разблокировки и тот что в прошивочном могут отличаться. Были случаи. Поэтому лучше сделать. Благо эта операция не такая сложная.
                                                      0
                                                      Если разблокировка штатная — они не будут отличаться. А если самопальная — наоборот, не «могут», а гарантированно будут, ибо для разблокировки как раз используется патченый aboot. Но он опять-таки общий для всех, а не индивидуальный для каждого аппарата, поэтому никакого смысла его бэкапить нет.
                                                0
                                                Соглашусь с коллегами — свободные прошивки для новых устройств достаточно сырые.
                                                Поэтому статья писалась как раз с прицелом на минимальную модификацию родного ПО телефона.
                                                Можно вообще ничего не удалять и не замораживать из приложений. Главное — не дать всем «левым» процессам ходить в интернет, если хозяин телефона этого не хочет.

                                                  0
                                                  Сегодня как раз перепрошил свой Xiaomi Mi 5s на Lineage OS. Работает как минимум не хуже родной прошивки, но при этом удобней, лучше выглядит и не конфликтует со сторонним ПО.
                                                  А это свежий флагман, продаётся с октября. Думаю, на более старых моделях со Snapdragon ситуация должна быть не хуже как минимум.
                                                    0
                                                    Рад за Вас. А я заглянул в раздел прошивок для Redmi 3s на 4PDA и практически против каждого из вариантов висела пометка про известные баги, либо (против относительно недавних по дате) комментарий — «Баги пока не обнаружены. Если найдёте — пишите.».
                                                    Это лотерея, согласитесь. Просто (ИМХО) Вам повезло и вы вытащили счастливый билетик.

                                                      +1
                                                      Ну так-то вообще любая прошивка либо уже содержит известные баги, либо «Баги пока не обнаружены.» Прошивок, как и вообще программ хоть сколько-то сложных гарантировано без багов не бывает.
                                                        0
                                                        Это да. Но если дата прошивки недавняя, то такая пометка а коммьюнити прошивке означает, что её, скорее всего, толком не тестировали. Вывод — использование этой прошивки = её бета тестирование. Я честно говоря, не готов этим заниматься.
                                                        Хотя я понимаю, что в официальных продакшешен версиях тоже ляпы есть, но там хотя бы есть надежда, что их тестировали и ошибки выловили. В случае коммьюнити прошивок — этой надежды нет, либо она минимальна. Просто потому, что её делает не профессиональная команда, а энтузиаст. Скорее всего один.
                                                        Всё ИМХО, конечно же.

                                                        P.S. Под термином «прошивка» я подразумеваю законченный образ. Cyanogenomod и его аналоги изначально, согласитесь, это всё-таки некое полено, из которого надо вытачивать Буратино (допиливать под конкретную конфигурацию железа).
                                                        0
                                                        Если кто-то не смог обнаружить багов в MIUI — это означает, что он их не искал совсем, а стиль использования телефона у него «хомячковый». :) Она ж одинаковая для всех устройств — значит, и баги практически везде одни и те же.
                                                          0

                                                          ви так загадочно постоянно выражаетесь, — все хомячки, а вы — д'Артаньян! Но ни об одном баге так и не рассказали. Ну, не томите уже, ознакомьте хомячков и посрамите их невероятными багами! Я слово волшебное знаю — пожалуйста!

                                                            0
                                                            ни об одном баге так и не рассказали

                                                            Это ви просто нетщательно читаете. Читайте сюда.

                                                            Еще можете почитать мои багрепорты, и попытаться найти в них комментарии от разработчиков.
                                                              0

                                                              Ах, это. Я думал там правда ужос-ужос. Могу навскидку сказать, что "баг" с минимальной подсветкой отсутствует. А баг с невозможностью уменьшить громкость до нуля, таки да, присутствуют. Остальные проверять лень, слишком много нетривиальных действий надо совершать, причём таких, которые кроме как для проверки этого бага мне в голову не придёт совершить. Ну, тут дело хозяйское, если ваш способ использования подразумевает такие действия, значит, видимо, это не ваш вариант.
                                                              Я, впрочем, тоже один баг нашёл. Если выставить коррекцию часов по телефонной сети, а пояс сети не совпадает с фактическим, то можно насильно установить свой часовой пояс и всё хорошо, но эта настройка не сохраняется после перезагрузки. Баг раздражал, но сейчас сменил место пребывания и лично мне он стал неактуален.

                                                                0
                                                                «Ужос-ужос», чтоб прямо нельзя было пользоваться, там действительно нет. Но позиция производителя, который озабочен лишь продвижением своих продуктов, откровенно кладя на поддержку уже окученных пользователей, выглядит очень некрасиво. Никакой Microsoft и рядом не стоял.

                                                                Еще, кстати, в копилку системных глюков: у меня магнитный чехол, при закрывании которого система уходит в спячку. Но при закрытом чехле она продолжает обрабатывать какие-то сигналы от тачскрина, потому как при открывании створки я регулярно вижу экран не в том состоянии, в котором створка закрывалась. Если, например, оставить экран на странице истории звонков — он при закрытой створке может позвонить на один из отображенных там номеров. Это совершенно точно глюк не тачскрина или его драйвера, поскольку система в спячке обязана блокировать сообщения от тачскрина, и в целом она это делает.

                                                                Еще она не сразу добавляет звонки (в том числе пропущенные) в историю. Не успел ответить на звонок, открываешь историю — а там ничего нового. Я поначалу думал, что это какие-то фантомные звонки, пока не догадался через несколько минут посмотреть еще раз.

                                                                При указании для звонка или будильника мелодии из файла список мелодий сортируется как попало. Видно, что какая-то сортировка есть, но она кусочная — за последними буквами снова идут первые, и так несколько раз.
                                                                  0
                                                                  Но позиция производителя, который озабочен лишь продвижением своих продуктов, откровенно кладя на поддержку уже окученных пользователей, выглядит очень некрасиво.


                                                                  Мне кажется вы сильно преувеличиваете важность ваших багов. У производителя ограничены ресурсы — это однозначно, неограниченных ресурсов не бывает. Так насколько важно править что-то, что используется меньше чем 1% пользователей? А то, что не ответили в баг репорте: ну вот вам стало бы легче, если бы они написали стандартное «спасибо за ваш отзыв, нам очень важно ваше мнение» и точно так же забили бы исправлять?
                                                                  Я не копал все багрепорты по MIUI, давайте возьмем те два, что здесь обсуждались: бэкапы и разрешение. Вам даже на техническом ресурсе говорят что этим никто не пользуется — следовательно процент общих пользователей наверняка крайне мал. Точных данных у меня нет, но признак достаточно сильный на мой взгляд. Бэкапы — да, проблема. Но, по вашим же словам, нормального приложения для этого так и нет — значит сложность решения этой проблемы почему-то велика. А значит ресурсов требует много и тут мы опять приходим к количеству пользователей, которым оно надо. Их наверно побольше, чем в проблеме с разрешением, но сильно ли больше?
                                                                  Я не пытаюсь защищать xiaomi, это китайцы со своим менталитетом и мне они тоже не всегда нравятся, но ваши претензии тоже достаточно хлипкие же.
                                                                    +1
                                                                    Разумеется, ресурсы ограничены. Но сравните, например, ресурсы той же Apple и ассортимент их продукции, с ресурсами и ассортиментом Xiaomi. С ходу видно, что соотношение будет многократно в пользу первой. Я не поклонник айгаджетов, но большинство из них реально вылизано, в то время как большинство гаджетов Xiaomi никто гарантированно не будет вылизывать — напротив, они будут клепать все новые и новые сырые модели, лишь бы склонить как можно большее количество людей к покупке под влиянием массовых восторгов.

                                                                    Если нечто используется очень малым процентом пользователей и не предполагается к правке — значит, нечего предусматривать эти функции вообще. Но в рекламных-то материалах (в том числе пользовательских обзорах) они фигурируют — а значит, вносят свой вклад в продвижение продукта. То есть, налицо этакая рекламная курортная открытка с красивым белым пароходом, на котором вроде бы можно покататься, при ближайшем рассмотрении пароход оказывается фанерной декорацией.

                                                                    Реакция разработчиков/тестеров на багрепорты показывает, занимается ли ими вообще хоть кто-нибудь. В разделе багрепортов MIUI я такой активности не заметил, а вот на соответствующих сайтах вменяемых компаний она есть.

                                                                    Даже если некий баг замечен исчезающе малым количеством пользователей, он должен быть зарегистрирован и поставлен в очередь. Малое количество недовольных — не повод игнорировать наличие бага вообще.

                                                                    Сложность решения «проблемы бэкапа» на уровне разработчиков ничтожна — там достаточно поправить от силы пару десятков строк кода. Такого же порядка, кстати, и сложность организации реально полного бэкапа в TWRP/CWM, но их разработчики слишком горды для того, чтобы корректировать свою концепцию в сторону адекватности.

                                                                    И с разрешением экрана, по сути, никакой проблемы нет — нужно лишь изначально правильно вычислять все координаты, а не вбивать удобные константы. В системах вроде андроида, изначально ориентированных на экраны самых разных размеров и разрешений, это обязано было устояться еще много лет назад. Однако, судя по поведению прошивок, большинство разработчиков до сих пор предпочитает каждый раз отдельно натягивать очередную копию совы на каждый из новых глобусов.

                                                                    Вообще, кстати, знакомство с Android очень помогает пореже ругать Microsoft. :)
                                                                      0
                                                                      Но ведь если это так просто, то почему никто этого, по вашим же словам, не сделал до сих пор? Есть ровно три варианта:
                                                                      1. это никому не нужно
                                                                      2. вы не видите каких-либо подводных камней на которые наткнулись разработчики этих приложений
                                                                      3. вы придумали уникальный офигительный и простой способ это сделать до которого пока что просто никто кроме вас не додумался

                                                                      Вы пытаетесь сравнивать ассортимент apple и xiaomi? И ресурсы этих компаний? Вы правда считаете что ресурсы одной из самых богатых компаний мира сравнимы с очень молодой компанией, которая официально в половине мира даже не продает свою продукцию? В частности они практически, если не совсем, не присутствуют на рынке США, одном из самых богатых рынков планеты. И на основании этого сравнения делаете вывод что xiaomi может делать также как apple? Я понимаю, что такие люди могут быть, но все равно не очень верю что вы всерьез делаете это сравнение.
                                                                        +1
                                                                        Давайте рассмотрим самый показательный пример — низкий битрейт записи разговоров. Почти двести человек подтвердило эту проблему только в моем багрепорте (в том числе и для других моделей), а если возьмете за труд поискать на форуме MIUI и в глобальной сети — найдете еще несколько сотен.

                                                                        Проблема решается заменой одной константы, явным образом задающей битрейт в коде встроенного приложения InCallUI. Я лично это проделывал на своей прошивке, но пересобирать встроенное приложение после каждого апдейта гораздо менее удобно, нежели поставить стороннее. Кроме этого, функциональность встроенной записи никакущая — там нет даже автоудаления.

                                                                        Багрепорт размещен в апреле 2016-го, по состоянию на конец января 2017-го проблема не исправлена. Ни один из разработчиков не удосужился хотя бы прокомментировать официальную позицию по этому вопросу. Однако один из «супермодераторов» сразу же потребовал приложить запись, как будто речь идет о каком-то редком и трудновоспроизводимом глюке.

                                                                        К какому из трех перечисленных Вами пунктов Вы отнесете эту ситуацию? :)

                                                                        Да, я действительно сравниваю ассортимент и ресурсы Apple и Xiaomi. И изо всех сил намекаю Вам на русскую поговорку «по одежке протягивай ножки». :) То есть, Xiaomi не может (и не должна) «делать, как Apple». Она должна соразмерять свои аппетиты в завоевании рынка за счет выпуска широкого модельного ряда со своими возможностями в его поддержке.

                                                                        Пока я вижу в политике Xiaomi отчетливую схему «главное — впарить побольше, а там хоть трава не расти».

                                                                        Сама по себе такая политика вполне имеет право на существование. Но к ней должно прилагаться информирование потенциального покупателя примерно в таком стиле: «Ребята, мы проверяем наши изделия лишь поверхностно, в пределах наиболее общих функций, и нам недосуг читать ваши жалобы на нашем форуме. Поэтому, если вы сколько-нибудь взыскательны к функциональности аппарата — поищите себе что-нибудь другое, дабы сохранить свое время и деньги». Такую позицию я мог бы уважать. :)
                                                                          0
                                                                          Ну конкретно мои пункты относились к конкретному багу с бэкапами, про который вы сами говорили, что адекватно это не сделано вообще нигде. Я не утверждал что у xiaomi все важные баги имеют нормальный приоритет и т.д. Но вы же в большинстве комментариев рассказываете про эти два. Ну и да, расскажите мне как у эппл не
                                                                          «главное — впарить побольше, а там хоть трава не расти»

                                                                          Я сходу могу вспомнить их эпопею с браузером и его поддержкой разных фич, развлечения с версиями xcode, раз уж вы разработчик и вас волнуют фичи для разработчиков, проблемы с батареей в последних макбуках, тормоза после обновления системы на старых айфонах. Конкретно показать баг с двумястами комментариев боюсь не смогу, да, у них вообще есть открытый багтрекер? Или это необязательное условие для нормальной поддержки продукта?
                                                                          Поймите, я не говорю что xiaomi такие замечательные, я говорю что вы сильно переоцениваете важность своей персоны и ваших багов. По-крайней мере так это выглядит в обсуждениях этой статьи. Баги, тянущиеся по несколько лет у практически любого крупного разработчика и очень многие при этом даже часть из своих багов не комментируют. Это плохо, об этом надо говорить, но кричать что вот эта конкретная компания — злейшее зло просто потому что работает также как практически все остальные, это немного неправильно все-таки.
                                                                            +1
                                                                            «В большинстве комментов» я рассказываю о том, о чем со мной пытаются спорить, придумывая для этих багов различные корявые оправдания. Всего я репортил около двух десятков багов, эти багрепорты нетрудно найти на сайте MIUI. И если бы я хоть по одному багрепорту увидел хоть малейшее шевеление поддержки (а прошел почти год) — я бы так не злился.

                                                                            Я не поклонник Apple, но они хотя бы не стремятся выпустить побольше разных гаджетов, впихнув в каждый внешне разнообразный набор функций, изрядная часть которых, при ближайшем рассмотрении, оказывается реализованной криво. Наоборот, они выделяют достаточно скромный набор, и последовательно занимаются его вылизыванием.

                                                                            Xiaomi же, создав для MIUI внешне очень броский и перегруженный ненужными красивостями сайт, фактически устранилась от общения с пользователями. Сайт построен по принципу «помоги друг другу», разработчиков я там за этот год не видел ни одного. С одними и теми же проблемами народ носится месяцами, снабжая друг друга советами разной степени бредовости, и очень редко находится, кому их поправить. По количеству дурацких идей и советов сайт давно и уверенно переплюнул 4PDA.

                                                                            Повторю: политика Xiaomi меня злит прежде всего потому, что они, не имея должного запаса ресурсов для разработки и поддержки, пытаются успеть везде, и в итоге толком не успевают нигде. Если бы они нашли в себе смелость открыто заявить «ребята, вот вам куча конструкторов, делайте с ними, что хотите, а нас не трогайте» — это было бы достойно. Но они этого не говорят, а пользователи, наслушавшись чужих восторгов, хватают гаджеты, напарываются на очевидные глюки, и не могут понять, в чем дело.
                                                                              0
                                                                              Да, я понял вашу позицию и она имеет право на существование. Я все еще считаю что это, к сожалению, обычная ситуация и с этим надо как-то жить. Тем более что компания китайская и ко всем не китайцам они достаточно ожидаемо относятся весьма пренебрежительно. Это неприятно, но от их менталитета тоже никуда не уйти на данный момент. Может быть вы знаете как обстоят дела с багами, заявленными самими китайцами на китайском? Хотя и тут надо учитывать количество их пользователей — с такими цифрами даже баг с несколькими сотнями комментариев волнующий даже несколько десятков тысяч людей, это все равно ничтожный процент от общего количества пользователей.
                                                                              С другой стороны если не возмущаться по таким поводам, то будет еще хуже, так что вы тоже во многом правы.
                                                                                +1
                                                                                Вот это правильный подход — «глюки налицо, но мы сами с ними поделать ничего не можем, поэтому нужно как-то приспосабливаться». Я и приспосабливаюсь. :) Но соглашаться с тем, что Xiaomi — прекрасная компания, поскольку она делает красивые хомячковые фичи в своих гаджетах, не готов. :)
                                                                            0
                                                                            низкий битрейт записи разговоров

                                                                            Разве божественный Apple позволяет записывать разговоры?
                                                                              +1
                                                                              Не позволяет. Ну так «божественный Apple» и не предлагает функции записи в своих телефонах, в отличие от.
                                                          0
                                                          Не вижу на сайте отдельной прошивки LineageOS для Mi 5s.
                                                          Прошивку gemini от обычного Mi5 поставили?
                                                            0
                                                            https://forum.xda-developers.com/mi-5s/help/cm-to-support-mi5s-t3498417/post70756061#post70756061
                                                            http://4pda.ru/forum/index.php?showtopic=791132
                                                        –1
                                                        Если брать Redmi с процессором mediatek, не найдете вы полностью рабочую прошивку с чистым андройдом, исходники ядра не выкладывали и не собираются. Под устройства с Qualcomm часто собирают нормальные версии.
                                                          0
                                                          Не невыкладывание исходников ядра, кхм, бывает. Это прямое нарушение GPL и, если Вы с ним столкнулись, надо обращаться в FSF.
                                                          0
                                                          Если на выбранную вами модель есть Cyanogen / Lineage — никаких. Правда, придётся сначала оббивать пороги форума и саппорта, получая код разблокировки загрузчика, ну и смириться с рядом косяков.

                                                          Во-первых, камера превратится в тыкву: стандартные API она и в MIUI не использует, там применён свой велосипед из легаси и костылей. Camera2API у 90% Xiaomi нет, а бэкпорт драйверов с моделей на аналогичных модулях (как правило, внутри Sony IMX, которые используются много где ещё) не даёт идеального результата, всё ж обвязка и микрокод модуля решают.

                                                          Во-вторых, показатели автономности несколько снизятся (потому что MIUI агрессивно давит любую активность приложений в фоне), но тут уже каждый сам себе голова на плечах, в «Цианогене» это легко настраивается.

                                                          В-третьих, у некоторых телефонов внезапно открываются «лишние» диапазоны и протоколы связи, иногда рабочие, иногда нет. Так что надо будет лезть в конфиг и оставлять привычные LTE/HSPA/3G/Edge.

                                                          А так, в общем, вас ничто не останавливает от установки чистого андроида, вопрос в качестве оного на каждую конкретную модель. Плюс у сяоми есть трубки для внутренннего рынка, незначительно отличающиеся от глобалок (у них другая буква / модель), и для них банально могут отсутствовать прошивки.
                                                          +3
                                                          Большая часть коннектов к серверам Xiaomi шла через HTTPS, поэтому разобраться в деталях ЧТО именно передаётся напрямую возможности не было.

                                                          А если не напрямую посмотреть?
                                                            +1
                                                            Спасибо за ссылку, Попробую.
                                                              0
                                                              Есть каке нибуть новости об етом? Как раз думаю, брать или не брать Xiaomi
                                                                0
                                                                Пока нет, к сожалению.
                                                                Очень много времени отняла возня с неадекватным поведением IPtables. Сейчас аппарат стоит на контрольной записи трафика. Если всё будет хорошо — можно будет поразбираться с HTTPS. Гарантировать сроки не буду, Вы уж извините.

                                                            +1
                                                            Интересно отличается ли в этом плане сборка от https://xiaomi.eu — неофициального сообщества MIUI?
                                                              +1
                                                              В прошивке от xiaomi_eu гугловскому софту разрешено всё, в отличие от китайких сборо. Вот и думайте что для вас более приемлимо.
                                                                0

                                                                Нет, как и большенства других. Xiaomi.eu только переводят. На их офф сайте это указано

                                                                +2
                                                                Замечательная инструкция. Я признаюсь честно, сначала ожидал статейку с разоблачением слежения со стороны термостата и увлажнителя воздуха, но так тоже хорошо).
                                                                Вопрос правда появился, описанная проблема встречается только у Xiaomi или другие тоже ей болеют (Meizu там, Samsung)?
                                                                  0
                                                                  Телефоны других вендоров не исследовал — просто не попадались в руки. Вы можете попробовать это сделать сами, если есть роутер с возможностью перехвата трафика. Я для просмотра использовал обычный Wireshark, он неплохо всё декодирует и вся активность телефона видна как на ладони.

                                                                    0
                                                                    Учитывая то, что некоторое время назад была статья по поводу того, что телевизоры Samsung или LG, если подключены к сети, сливают данные о просмотрах программ, то я совсем не удивлюсь.
                                                                      0
                                                                      Это у всех, странно ожидать обратного, учитывая что ось гуглу принадлежит — тут если не «вендор-»реселлер"", то сам дроид на сервера гугла льет все, что может. Я обычно на любой прошивке сразу сношу маркет с сервисами и вообще большинство предустановленного софта.
                                                                      0
                                                                      когда купил мобилу от сяоми — первым делом поставил цианоген — начитался статей типа этой
                                                                      но пришлось откатываться назад на официальную т.к. в левых прошивках нету mtk engineering программы, а без неё не откалибровать уезжающие параметры гироскопа
                                                                        0
                                                                        а что мешает его выдрать из офф пршивки?
                                                                        0
                                                                        На рутованном Mi5 программы com.miui.analytics не обнаружил. Всегда были странны такие статьи, когда «всех xiaomi взломало», а на деле оказывается, что не всех…
                                                                          0

                                                                          А такая: com.miui.analytics?

                                                                          0
                                                                          За статью плюс и в избранные.

                                                                          То, что xiaomi много куда и чего шлёт замечал не раз.

                                                                          Вопрос: а у меня (Redmi 2S, MIUI 8/7.1.20) нет сервисов из примера и, навскидку, ничего похожего в списке. Не может статься так, что у автора была «левая/китайце-переведённая» прошивка? Или это ребята из miui.su почистили рекламный мусор?
                                                                            +2
                                                                            В статье есть название прошивки. Самая что ни на есть официальная глобальная прошивка.
                                                                            «MIUI Global 8.1 Стабильная 8.1.1.0 (MALMIDI)» С левой я бы принципиально не стал возиться.
                                                                              0
                                                                              «Беру новенький телефон из коробки»
                                                                              оригинальная прошивка содержит только китайский и английский языки интерфейса. поэтому продавцы еще в китае заливают на них свою версию прошивки, которая та же «официальная» но с русским интерфейсом. Багов и глюков там немеряно, на 4пда даже отказываются помогать тем у кого такая прошивка, дескать «поставьте нормальную, вот и проблема решится»
                                                                                +1
                                                                                Будете в Москве — зайдите в Pleer.ru. Наверное Вас это удивит, но у них эти аппараты мало того, что с глобальной прошивкой, но ещё и с официальной российской гарантией.
                                                                              0
                                                                              Столкнулся с miui.su недели 3 назад(перешел на MIUI 8). В некоторых разделах меню несколько раз набрел на китайские иероглифы. Плюс проблемы с смс от Сбербанка. Пришлось отказаться и перейти на другую прошивку.
                                                                                0
                                                                                Там много, где остались иероглифы.

                                                                                Miuipro в это отношении была гораздо «чище». Но, после пары окирпичиваний при обновлении по воздуху (да и крайняя версия для моего телефона продолжает его кирпичить) пришлось отказаться. Пару месяцев, вроде, терпимо, хоть и не всё устраивает
                                                                                  0
                                                                                  Я по совету поставил от xiaomi.eu. В плане стабильности и перевода все отлично. Единственное что, не смог воспользоваться «Mi Remote».
                                                                                    0
                                                                                    От multirom еще хвалят сборки.
                                                                                      0
                                                                                      У multirom самые правильные шрифты кирилицей — тонкие и округлые, как в стоковых английских шрифтах. Все остальные ромоделы вообще шрифтами не заморачиваются и ставят те, которые всегда использовали.
                                                                                0
                                                                                А гугль чистый ничего не шлет?
                                                                                Ставишь голый андроид и начинаются загрузки всего подряд. Ставишь miui — загрузки по необходимости.
                                                                                да и интерфейс у китайцев реально удобнее.
                                                                                  +1
                                                                                  Чистого Google, как Вы говорите, у меня в руках не было, хотя, подозреваю, там тоже много любопытного может найтись.
                                                                                  В моём случае коннектов к сайтам Google тоже было более чем достаточно (просто я не стал об этом писать в статье), даже если телефон не зарегистрован в Google. Ну а после регистрации до смешного доходило, судя перехвату трафика. В одну из ночей телефеон многократно пытался выкачать с сайта https://redirector.gvt1.com библиотеку libAppDataSearchExt_arm64_v8a.v7.so, весом без малого 6Мб, внутри которой полным-полно строчек «Copyright © IBM Corp».

                                                                                  Телефон от Xiaomi, сайт от Google (судя по Whois), копирайт от IBM… Заговор? ;-)
                                                                                  0
                                                                                  Все популярные «переведённые» прошивки заодно и вычищают китайские сервисы. Так что польза от статьи сомнительна, первым делом все и так ставят прошивку от xiaomi.eu / miui.su / miuipro — вот их исследование было бы интересным
                                                                                  +1
                                                                                  Или это ребята из miui.su почистили рекламный мусор?

                                                                                  Скорее всего.
                                                                                    0

                                                                                    По умолчанию включена работа с аккаунтом xiaomi, он синхронизирует все что только можно — отсюда и трафик может быть в начале. Плюс сервис обнаружения телефона тоже включен обычно сразу.

                                                                                      0
                                                                                      Сервис обнаружения требует подтверждения через смс при любой смене симкарты, даже если не менять номер, но заменить симкарту.
                                                                                      0
                                                                                      А какие именно программы генерят этот трафик?
                                                                                      Потому что MIUI синхронизирует контакты, СМС и заметки, записи телефонных разговоров, настройки систему, пароли ВайФай и тд тп. Если это все не будет работать, это будет плохо.
                                                                                        0
                                                                                        Если Вы всеми перечисленными сервисами пользуетесь — пользуйтесь на здоровье. Согласитесь, что это вопрос доверия производителю телефона.
                                                                                        Моя статья адресована тем, кто сервисами Xiaomi не пользуется и не хочет делится с Xiaomi своими данными и оплачивать трафик на их передачу.

                                                                                        P.S. Программ(процессов) в списке предустановленных — больше 200. Имён серверов — чуть меньше восьмидесяти. Это отдельная и очень объёмная работа выяснение, кто из них куда ходит. Насколько это нужно?

                                                                                          +1
                                                                                          Ну наверняка не все программы ломятся в инет, для первоначального анализа вполне достаточно понять, какие именно туда лезут, при отключении всех синхронизаций — это и будет «пятая колонна».
                                                                                            0
                                                                                            В первом приближении это можно посмотреть и средствами MIUI, безопасность-трафик.
                                                                                            Там же подозрительным/нежелательным жрунам трафика вполне можно зарубить доступ к передаче данных через мобильную сеть и wi-fi, в т.ч. и в фоновом режиме.
                                                                                              0
                                                                                              Системные программы, особенно типа тех, что описываются в статье — там не отражаются. И если трафика у них очень мало, они тоже не входят в статистику.
                                                                                                0
                                                                                                В первом приближении это можно посмотреть

                                                                                                Кстати, Analytics (вышеупомянутый AnalyticsCore.apk) и прочие MSA, на которые жалуются-видны и чудно там душатся.
                                                                                                Вы, кстати, сами давно заглядывали в этот раздел в своём MI5?
                                                                                                Там на самом деле есть полезная информация.
                                                                                                  0
                                                                                                  Этого аналитика у меня никогда не было, а остальные прячутся за «службы сяоми» и «система андроид», точнее не пишут. Трафик от них копеечный, кстати
                                                                                                  0

                                                                                                  Ну можно сторонними утилитами заблокировать. 3С toolbox например, в брандмауре показывает все приложения, можно выборочно блокировать. Был бы рут.

                                                                                                +1
                                                                                                Простите, а зачем? Зачем тратить время на исследование поведения всех этих десятков и сотен процессов (которые совсем даже не одновременно все ломятся наружу. некоторые просыпались раз в сутки), когда можно составить «белый» список и выпускать в интернет программы/процессы только из него, а все остальные банить?
                                                                                                Если после этого бана перестанет работать что-то важное и нужное, то можно анализировать сетевое поведение именно этого процесса/приложения и открывать доступ именно для него. Описанная мной методика это вполне позволяет, IMHO.
                                                                                                0
                                                                                                Кстати проще наверно на самом телефоне сетевой трафик какое-то время пологировать, затем уже на десктопе анализировать.
                                                                                                  0
                                                                                                  имел ввиду: можно денек пологировть без фильтров, затем по именам процессов уже сортировать, не такая уж объемная задача и не думаю, что вся флешка забъется за день)
                                                                                                  +1

                                                                                                  Если вы не доверяете производителю телефона — может не надо его брать? Вы уверены, что заблокировали действительно всё?

                                                                                                    0
                                                                                                    А кому доверять, простите? Посудите сами. Юридически Xiaomi передо мной ответственности никакой ни за за утрату, ни за утечку этих данных не несёт. А если я не собираюсь пользоваться их сервисами — то почему мой телефон должен сливать непонятную информацию на их серверы?

                                                                                                    Касательно блокировки — Вы здесь правы, уверенность на 100% здесь может быть только если сам написал код.всей прошивки.
                                                                                                    Но давайте будем логичны. Если, на протяжении нескольких суток, ни на маршрутизаторе, через который телефон ходит в интернет, ни в логах самого телефона, не зарегистровано никакой подозрительной активности, то, зная механизм выхода процессов в интернет, можно предположить с достаточной долей вероятности, что все «левые» процессы заблокированы? Я полагаю что да.

                                                                                                    Если Вы думаете иначе — приводите свои доводы.
                                                                                                      +1

                                                                                                      Самое простое — слив раз в неделю. Вы обновления ставите? Там новые analyticCore могут добавить.


                                                                                                      Кому доверять — дело Ваше личное, есть Apple, Sony, Google и Paranoid Android. А юридически никто и за работоспособность фаервола не отвечает. Доверие первично.

                                                                                                        0
                                                                                                        Боюсь реальность такова, что
                                                                                                        1) де факто нет производителей, которым можно доверять
                                                                                                        2) даже если доверяешь производителю — нужно самим проверить, тк и производитель может не знать, что их китайский работник не изменил ром (например)
                                                                                                          0

                                                                                                          И? )


                                                                                                          Параноикам можно Нокию 105, в интернет они всё равно не ходят

                                                                                                          0
                                                                                                          Любое доверие всегда на чём-то основывается.

                                                                                                          В случае работающего набора «белого списка» на выход в интернет ни один посторонний процесс через нормально работающий Netfilter/Iptables не вылезет. Связка Linux/IPtables проверена годами эксплуатации.

                                                                                                          Касательно ответственности конкретного вендора — изложу свои соображения.
                                                                                                          У вас стоит Linux сервер. На нем настроен Netfilter/Iptables. Вы этому сочетанию ( Linux/Iptables) доверяете? Скорее всего, Вы скажете, «ну я же исходников не видел», но ничто не мешает Вам их посмотреть. правильно?
                                                                                                          Аналогично, исходники демона netd и Iptables из Android могут посмотреть все желающие.
                                                                                                          Да, конечно, конкретный производитель телефона может модифицировать исходники, и вложить программную закладку (сделать дыру в firewall), но зачем? рано или поздно это вылезет и репутационные издержки и последующее падение продаж могут оказать неприемлемыми, согласитесь. Вывод — скорее всего никто из серьёзных производителей специально делать дыру не будет.

                                                                                                            0
                                                                                                            рано или поздно это вылезет и репутационные издержки… никто из серьёзных производителей специально делать дыру не будет.

                                                                                                            Напомните, зачем вообще фильтры то настраивать на телефоне «серьезного производителя»?

                                                                                                              0
                                                                                                              Чтобы не отдавать ему свои данные, если это Вам не нужно, для получения от него каких-либо дополнительных услуг. Телефон куплен — все издержки и желаемый производителем доход должен быть заложен в продажную цену.
                                                                                                                +1
                                                                                                                «Чтобы не отдавать ему свои данные» — это не самоцель
                                                                                                  +3
                                                                                                  У нас дикие проблемы с устройствами Xiaomi. Используем вход через гугл и пуши в fcm. Везде все работает хорошо — на Xiaomi постоянно пуши не приходят или при нажатии на вход падает фатал гугл сервисов мол не видит какой то компонент. То есть там похоже вообще в ОС много чего сломано. И эти телефоны сейчас многие берут

                                                                                                  Мы даже в описании приложения описали что есть баги с китайскими устройствами в частности с Xiaomi и прошивкой MIUI и что мы не гарантируем на них работу.
                                                                                                  Если и дальше пойдут плохие отзывы в маркете то просто на сайте повесим для них APK, а в гугл плей забркируем всю марку Xiaomi на скачивание приложения.