Supl20services что это за программа на андроид
Будем честны: большинство интересных возможностей по настройке Droid-девайсов спрятаны и требуют рутования устройства. Тем не менее получать root предпочитают не все — кто-то из боязни потерять гарантию, другие из-за банальной лени. Мы решили рассмотреть альтернативные способы ускорения устройств на платформе от Google, для которых не нужно прав суперпользователя.
Введение
Google непрестанно повышает быстродействие своей системы. Но «чистый» Android сейчас встречается достаточно редко — производители, как правило, модифицируют прошивки, что не всегда положительно сказывается на производительности. К тому же помимо нее хорошо бы позаботиться об энергосбережении, а это зачастую вещи взаимоисключающие. Тем не менее такие возможности есть даже в нерутованном Android, хоть их и не очень много.
Удаление/отключение встроенных и ненужных приложений
До выхода четвертой версии Android отключать встроенные приложения, не имея прав root, было нельзя. Это приносило покупателям брендовых гаджетов неудобства, ибо каждый производитель норовит запихнуть в прошивку как можно больше программ, которые конечному пользователю попросту не нужны и в сумме кушают приличное количество ресурсов. В четвертой же версии гуглооси такая возможность появилась. Для отключения какого-либо встроенного приложения нужно зайти в «Настройки -> Общие -> Приложения -> Все», выбрать нужную софтину и в «Сведениях о приложении» нажать кнопку «Отключить» (либо «Удалить обновления», а затем уже «Отключить»). Для включения необходимо перейти на вкладку «Отключенные» и выполнить похожую процедуру.
Однако не все так радужно, как кажется на первый взгляд. Во-первых, отключение не влияет на постоянную память — приложение как было установлено, так и остается. Во-вторых, можно отключить отнюдь не все. Лишь некоторые приложения позволяют проделать с собой такой фокус. Я не буду давать много конкретных советов по отключению приложений, поскольку на каждом устройстве их список отличается. Вот краткий список того, что большинству пользователей не нужно, но постоянно висит в системе и отнимает память:
- «Браузер» — зачем, если есть более удобные и легкие альтернативы?
- «Календарь» и «Память календаря» — не замечал, чтобы кто-то активно ими пользовался.
- «Email» и «Службы Exchange» — вроде все уже сидят на Gmail.
- «Поиск Google» — достаточно бесполезная функция при наличии браузера (осторожно, отключает также и Google Now).
- «Google Keep», «Google+» и другие не всегда нужные приложения от Google.
Помимо этого, рекомендую выключить (удалить) виджеты и живые обои. Кроме того, что эта функциональность требует памяти и процессорного времени, она еще и жрет батарею. Так что для увеличения скорости лучше подобные вещи вырубать. Можно выключить и эффекты на экране блокировки. В моем случае (Samsung со стандартной прошивкой) они находятся в «Настройки -> Устройство -> Экран блокировки -> Эффект при разблокировке».
К слову, о Home Screen — рекомендуется использовать как можно меньше главных экранов. В самом деле, зачем тебе 100500 экранов, если редко используемые приложения можно вызвать и из меню?
Выноски: INFO
Как работает отключение приложений. После нажатия на кнопку «Отключить» вызывается метод setApplicationEnabledSetting() класса PackageManager, который изменяет состояние приложения на COMPONENT_ENABLED_STATE_DISABLED_USER (кстати говоря, он появился еще в первом Android).
Настройка энергосбережения и использование параметров разработчика
Для ускорения работы гаджета можно также подкорректировать параметры энергосбережения. Конечно, это уменьшит время работы от аккумулятора, но ускорить может достаточно существенно. Для этого (в моем случае) нужно перейти в «Настройки -> Общие -> Энергосбережение» и либо сдвинуть переключатель, который находится в правом верхнем углу, либо поснимать нужные чекбоксы.
Работает это на разных платформах по-разному, и публичного API не существует — есть, конечно, PowerManager API, но к энергосбережению это имеет лишь очень косвенное отношение. Однако на Samsung Galaxy Note 10.1 (впрочем, как и для остальных Droid-девайсов южнокорейского гиганта) энергосбережением управляют через DVFS — Dynamic Voltage and Frequency Scaling, того самого, с помощью которого Samsung «фальсифицировал» результаты бенчмарков (замечу в скобках, что это была не настоящая фальсификация — просто для некоторых бенчмарков и приложений устройство работало на пределе своих возможностей).
Для отключения системной анимации (анимация в приложениях останется) нужно зайти в меню параметров разработчика, которое по умолчанию скрыто. Чтобы получить к нему доступ, семь раз тапни на пункте «Номер сборки», который находится в меню «Об устройстве / О телефоне». Затем перейди в появившееся меню и повыключай всю анимацию: параметры «Масштаб анимации окна», «Масштаб анимации перехода» и «Шкала длительности перехода» установи в «Анимация отключена» (в прошивках других производителей данные опции могут иметь несколько другое название).
В этом же меню можно ограничить количество фоновых процессов. Последнее, впрочем, следует делать с осторожностью — вместо ускорения возможно замедление работы из-за того, что часто используемые процессы будут прибиваться и вновь запускаться. Потому же, кстати, не рекомендуются всяческие таск-киллеры.
Ускорение приложений
Для ускорения отдельно взятых приложений можно почистить их кеш. Делается это в том же месте, где их можно отключать/удалять, то есть «Настройки -> Общие -> Диспетчер приложений -> Все», выбрать нужное тебе приложение и нажать кнопку «Очистить кеш».
Имеет также смысл ставить менее ресурсоемкие приложения — например, в моем случае Smart Launcher забирает меньше памяти, чем это делает родной самсунговский TouchWiz. Во врезке будут приведены конкретные советы, но особо следовать им я не рекомендую, поскольку все зависит от твоих потребностей. Главное в этом случае — подобрать нужное соотношение размер/функциональность.
Для определения потребления памяти можно использовать такой метод: устанавливаем какой-нибудь терминал с Busybox, определяем PID нужного процесса (с помощью 'ps w') и смотрим файл /proc//status. При этом, правда, нужно учитывать архитектуру Android — приложение может быть разнесено по нескольким процессам.
Если для тебя этот метод слишком трудный и ты не хочешь заморачиваться с каждым приложением — в маркете есть несколько графических аналогов утилиты top. Мне понравился один из них, под названием Process Explorer, реализация которого, правда, показалась непонятной — зачем для просмотра списка процессов использовать браузер?
Кстати, у сервиса Google Play есть привычка внезапно обновлять кучу приложений, что, понятно, съедает ресурсы. Отключить данный сервис не представляется возможным, но можно отключить само обновление. Для этого заходим в Play Маркет, вызываем меню (хинт: если не выходит вызвать с помощью софт-клавиш, «потяни» с левого края), выбираем «Настройки» и ставим в «Автообновление приложений» «Никогда».
Точно так же имеет смысл отключить и синхронизацию учетных записей (что, в дополнение к возможному увеличению быстродействия, потешит твою паранойю). Для этого заходим в «Настройки» и ищем, где находится пункт «Учетные записи», затем выбираем учетную запись и отключаем синхронизацию (как вариант, можно отключить только отдельно взятые и ненужные типы синхронизации, такие как, например, контакты Google+ или календарь. — Прим. ред.).
Отключение сканирования мультимедиа
По умолчанию Android сканирует все внешние накопители (SD-карты) на предмет мультимедиафайлов. Данная функция, хотя и полезна, достаточно сильно тормозит систему. Отключить ее можно. Для новых накопителей создаем пустой файл .nomedia в корне. Но чтобы отключить отображение уже имеющихся файлов в Android 4.0 и позднее, нужно, помимо создания данного файла в нужной тебе папке, произвести очистку данных и кеша для приложений «Галерея» и «Хранилище мультимедиа» и принудительно их остановить. После следующего запуска все мультимедиафайлы проиндексируются уже с учетом созданных файлов .nomedia.
Ускорение отдельных устройств — советы и секреты
Приведу несколько советов по самым известным брендам. Стоит отметить, что советы эти годятся только для официальных прошивок, поэтому если у тебя модифицированная прошивка — можешь смело пропускать раздел.
Samsung
Если ты владелец какого-либо из устройств данного бренда, то наверняка обратил внимание, что переход на основной экран по нажатию кнопки Home немного тормозит. Связано это с тем, что по двойному нажатию запускается S Voice — система распознавания речи. Если ты ею не пользуешься, можно отключить эту функцию, сняв чекбокс «Откр. клавишей „Домой“». Кроме того, если ты случайно включил команду пробуждения, лучше ее отключить — использование этой опции влияет на заряд батареи довольно сильно.
Кроме того, на некоторых устройствах Samsung имеется возможность отключения эффектов лаунчера. Для этого сделай долгий тап по пустому месту на домашнем экране, выбери «Настройки домашнего экрана» (Home screen settings) и в подменю «Эффект перехода» (Transition effect) выбери «Нет» (None).
Greenify
Приложение Greenify позволяет принудительно усыпить ненужные процессы (которые ты можешь выбрать) в то время, когда устройство спит, и запретить их вызов из сторонних процессов. Этим оно отличается от таск-киллеров, которые никак не препятствуют перезапуску фоновых приложений от внешних событий (по таймеру, требованию другого приложения или системному событию). К сожалению, часть функциональности доступна только на рутованных телефонах — в частности, самая важная функция засыпания приложений спустя несколько минут после засыпания устройства.
Причина в том, что метод forceStopPackage(), который позволяет Greenify перевести приложения в неактивное состояние, внутренний и доступен только системным приложениям или тем, что работают с правами root. В не-root-режиме остается использовать только метод killBackgroundProcesses(), который не выгружает процесс из памяти полностью, так что тому продолжают приходить системные события и «будить» его, что совсем не соответствует идеологии Greenify.
Поэтому для реализации функциональности в не-root-режиме разработчик Greenify пошел по совершенно другому и весьма изобретательному пути. При установке приложение регистрируется как Accessibility Service, получая таким образом доступ к интерфейсу системы, а затем просто вызывает диспетчер приложений и нажимает на нужные кнопки для убийства приложения через стандартное меню настроек Android. Во время спящего режима эта операция, к сожалению, невозможна, поэтому на нерутованных смартфонах Greenify может усыплять приложения только после того, как пользователь нажмет соответствующую кнопку.
В Android 4.4 появилась замена Dalvik — ART, Android Runtime. Она обеспечивает AOT-компиляцию. Для того чтобы разобраться, что это такое и в чем состоит преимущество ART, придется сделать краткий экскурс в историю.
Во времена, когда закладывался фундамент под Android, в качестве языка программирования был выбран Java — в наибольшей степени из-за того, что предполагалось использовать ОС на самых разных платформах. И всем-то он был хорош, кроме одного — скорость работы Java-приложений была достаточно низкой. Происходило это потому, что код фактически интерпретировался.
Шло время. В Android 2.2 в виртуальную машину Dalvik добавили JIT-компиляцию. Это позволило добиться довольно значительного прироста скорости, но всех проблем не решило. И вот в версии KitKat появилась ART, позволяющая компилировать приложения даже не во время исполнения — во время установки. Включить ее можно в том же самом меню разработчика, где мы отключали эффекты. Это, с одной стороны, увеличивает время установки и размер, а также при первом включении требуется значительное время для преобразования всех уже установленных приложений в нативный код. С другой же стороны, увеличение скорости после ее включения в среднем составляет 50%, а для отдельных приложений и того больше (в частности, прокрутка стала гораздо более плавной).
Но есть у ART и недостатки. Некоторые из них очевидны — например, несовместимость с отдельными обфускаторами и приложениями. На отдельных же просто не концентрируют внимание, хотя стоило бы. К таковым я отнесу возможные проблемы с безопасностью. Проведенные относительно недавно (на майской конференции HITB) эксперименты показывают, что в случае подсовывания специально сформированного DEX-файла транслятор (dex2oat) вылетает. Кроме того, если найти уязвимости в самой ART, появится возможность создавать user-mode-руткиты. Помимо этого, образ boot.oat, генерируемый транслятором, имеет фиксированный базовый адрес (0x700000), что позволяет при некоторых условиях обойти ASLR.
В то же время с точки зрения реверс-инжиниринга статический анализ OAT-файлов пока что затруднен — по той причине, что привычных нам имен методов в коде попросту нет. Оно и понятно. Зато, поскольку формат OAT-файлов фактически представляет собой ELF, можно использовать инструменты, предназначенные для последнего, такие как GDB. Что же до динамического. Инструментарий для него как таковой отсутствует.
ART будет включена по умолчанию в пятой версии ОС от Google (а Dalvik, соответственно, будет удалена). На мой взгляд, с учетом потенциальных проблем с безопасностью полностью отказываться от Dalvik рановато, так что тут я с политикой Google не согласен. Однако (с учетом этого) тем более стоит включить ART на KitKat, чтобы протестировать нужные приложения.
Заключение
Несмотря на гибкость платформы Android, без использования кастомных и/или рутованных прошивок ускорить работу твоего девайса трудно. Но не невозможно, доказательством чего служит данная статья. Напоследок дам тебе универсальный совет: устанавливай только те приложения, которые ты реально будешь использовать, всем же остальным говори твердое «Нет».
Легковесные программы для Android
Приведу краткий список легковесных аналогов нужных программ для Android. Список этот минимальный, включающий только самое, на мой взгляд, необходимое:
- Вместо Google Maps можно использовать RMaps. Мало того что это приложение легковеснее, так еще и гораздо более функционально.
- Громоздкий Adobe Reader можно заменить Mupdf.
- Читалок достаточно много. Из легковесных могу посоветовать AlReader и FBReader.
- Из браузеров можно поставить Lighthing Browser, де-факто представляющий собой облегченный стандартный.
- Чрезвычайно тяжелый клиент RSS-ридера Feedly лучше заменить на легкий FeedMe (осторожно, только для смартов).
Что дает root? (слово редактора)
Примерно год назад я написал статью об ускорении работы новых версий Android на устаревших аппаратах. В ней я рассказал о нескольких требующих прав root приемах, с помощью которых можно поднять производительность смартфона путем выгрузки из оперативной памяти всех некритичных для работы компонентов системы. Если кратко, то в статье было приведено пять основных методов:
According to our researches, SUPL20Services is an application made by the Huawei company and it is used on some of their lines of smartphones like the P8lite and many others. There is not much online information about it, this is why some users can get a little worry about this app, but in this post, we are going to clear up some of your doubts.
What is SUPL20Services?
Basically, the SUPL20Services will help speed up the GPS positioning on your device, so when it is required by any app of it, the process will be much smoother and you will access to it in a faster way.
Can I uninstall SUPL20Services from my device?
Since the app comes factory installed in the system, it is not possible to be uninstalled using the conventional ways. Besides the fact that you can root your phone which is something that we do not recommend because of the risks involved. If you really are convinced that you need to get rid of this app, there is another alternative that can help you, specifically with Huawei applications if, in the end, you feel that you did not get the desired results you can always factory reset your phone.
What permissions does SUPL20Services require?
There are no specific permissions required from the SUPL20Services.
SUPL20Services is a safe application or a virus?
Many users have been reporting that SUPL20Services is malicious because after running antiviruses on the app, the malware warning was displayed, but it turns out that it was misinterpreted by some antiviruses. So it is safe to say that this app is not going to harm your system.
SUPL20Services battery consumption?
As a user, it is frustrating to see the process of an app that runs in the background using your CPU and as a result, draining your battery. Applications such as 3C Toolbox have been used to check SUPL20Services and looks like it can drain up to 4% per hour of your battery life. Let us be honest, it is not much but if you feel worried about it, there is something that you can do. For example, the use of specializing apps like Greenify basically allows putting to sleep any application that you do not use very often. Of course, there are some apps that are not ok to hibernate them but you can give it a try on SUPL20Services.
So far, we explained the main functions of the SUPL20Services and what is it for. Feel free to let us know by any of the channels available if you still have doubts about it.
Компания Google быстро прошла путь от небольшой поисковой системы до гигантской инфраструктуры, компоненты которой работают на наших ПК, смартфонах, планшетах и даже телевизорах. Google неустанно собирает о нас информацию, поисковые запросы тщательно логируются, перемещения отслеживаются, а пароли, письма и контактная информация сохраняются на годы вперед. Все это неотъемлемая часть современности, но мы вполне можем ее изменить.
Ни для кого не секрет, что любое устройство под управлением Android (по крайней мере то, что сертифицировано Google) содержит в себе не только компоненты, собранные из AOSP, но и внушительное количество проприетарных программ Google. Это те самые Google Play, Gmail, Hangouts, Maps и еще куча приложений, включая диалер и камеру (начиная с KitKat).
Для всех этих компонентов нет не только исходного кода, но и вообще каких-либо пояснений по поводу принципов их работы. Многие из них изначально созданы с целью собирать определенные виды информации и отправлять их на серверы Google. Так, например, ведут себя GoogleBackupTransport, отвечающий за синхронизацию списка установленных приложений, паролей и других данных, GoogleContactsSyncAdapter, который синхронизирует список контактов, или ChromeBookmarksSyncAdapter, работа которого — синхронизировать закладки браузера. Плюс сбор информации обо всех запросах в поисковике.
В самом факте синхронизации, конечно, ничего плохого нет, и это великолепный механизм, который позволяет настроить новый телефон за считаные минуты, а Google Now даже умудряется дать нам полезную информацию на основе наших данных (иногда). Проблема только в том, что все это рушит нашу конфиденциальность, ибо, как показал Сноуден, под колпаком у АНБ (и, вероятнее всего, у кучи других служб) находится не только какая-нибудь империя зла под названием Microsoft, но и Google, а также множество других компаний из тусовки «мы не зло, а пушистые меценаты».
Говоря другими словами: Гугл сольет нас всех без всяких проблем, и не факт, что его сотрудники, сидя в своих офисах с массажистками и собачками, не ржут над именами из твоей контактной книги (там все зашифровано, да), попивая 15-летний пуэр из провинции Юньнань. А может быть, к черту этот Гугл? Возьмем их Android, а сами они пусть идут лесом?
Последняя версия кастомной прошивки на основе KitKat для моего смартфона весит 200 Мб, однако, чтобы получить настоящий экспириенс от смартфона, я должен прошить поверх нее еще и архив gapps, размер которого составляет 170 Мб. Только после этого я получу систему, аналогичную предустановленной на Nexus-устройства, со всеми плюшками в виде интегрированного с Google Now рабочего стола, блокировку экрана на основе снимка лица, камеру с поддержкой сферической съемки и килограмм гугловского софта, начиная от Google Play и заканчивая Google Books.
Так Google Apps попадают на смартфон. Из пользователей 99% либо юзают предустановленные приложения, либо устанавливают их самостоятельно на абсолютно чистую и полностью анонимную прошивку. А дальше с момента ввода имени пользователя и пароля начинается синхронизация и слив информации.
Чтобы разобраться, как это происходит, распакуем тот самый архив с gapps и взглянем внутрь. Нас интересуют каталоги /system/app и /system/priv-app , при установке их содержимое копируется в одноименные каталоги внутри смартфона. Второй каталог — это новшество KitKat, в нем размещаются приложения, использующие системные API, помеченные как "private" и не доступные обычным приложениям.
В каталоге /system/app мы найдем большое количество разных гугловских приложений, легко узнаваемых по названию пакета: Books.apk, Chrome.apk, Gmail2.apk и так далее. Каждое из них по-своему будет делиться информацией, но это абсолютно нормально (да, Google будет знать, что ты читаешь Пауло Коэльо через их приложение!). Наибольшую опасность здесь представляет GoogleContactsSyncAdapter.apk, который отвечает только за то, чтобы отправлять на удаленный сервер список контактов. Записываем название в блокнот и идем дальше.
Большинство файлов из каталога /system/priv-app — это сервисы и фреймворки, необходимые для запуска всей этой махины синхронизации и слежки:
- GoogleBackupTransport.apk — занимается синхронизацией данных установленных приложений, паролей Wi-Fi и некоторых настроек;
- GoogleLoginService.apk — связывает устройство с Google-аккаунтом;
- GooglePartnerSetup.apk — позволяет сторонним приложениям получить доступ к сервисам Google;
- GoogleServicesFramwork.apk — фреймворк с различной подсобной функциональностью;
- Phonesky.apk — Play Store (как ни странно);
- PrebuiltGmsCore.apk — Google Services, как видно из названия, это ядро всего комплекта gapps;
- Velvet.apk — поиск от Google, включающий в себя строку поиска на рабочем столе и Google Now.
В сущности, это и есть та часть Google Apps, которая ответственна за слив нашей частной информации. Попробуем от всего этого избавиться.
Самый простой способ отвязать смартфон от Google — это воспользоваться стандартными настройками системы. Метод хорош тем, что не требует ни прав root, ни установки кастомных прошивок, ни кастомного рекавери. Все можно сделать в любой стоковой прошивке без потери доступа к аккаунту и приложениям типа Gmail (если это необходимо). Однако за эффективность никто ручаться не будет, так как вполне возможно, что некоторые компоненты gapps продолжат отправку данных.
За множество настроек синхронизации отвечает также приложение «Настройки Google», которое является частью Google Services. С его помощью, в частности, можно отключить доступ Google к местоположению («Доступ к геоданным -> Доступ к моим геоданным / Отправка геоданных / История местоположений»), отключить отправку личных данных поисковику («Поиск -> Личные данные»), отключить Google Now («Поиск -> Google Now») и отключить удаленное управление («Удаленное управление -> Удаленный поиск устройства / Удаленная блокировка и сброс настроек»).
В тех же «Настройках Google», кстати, можно отключить любое приложение, использующее аккаунт Google для авторизации. Речь при этом идет не только о софте, установленном на девайс, но и вообще обо всех когда-либо использованных приложениях, включая веб-сайты. Я, например, обнаружил в этом списке множество сайтов, на которые не заходил уже как минимум пару лет.
Большинство приложений Google можно безболезненно отключить через настройки: «Приложения -> ВСЕ -> нужное приложение -> Отключить».
Настройки аккаунта Google
Другие статьи в выпуске:
Настройки Google
В том случае, если на стоковой прошивке есть права root, от Google Apps можно избавиться, просто удалив их со смартфона. Как я уже говорил, все они хранятся в каталогах /system/app и /system/priv-app . Например, в случае с KitKat список Google-приложений в первом каталоге будет таким:
- Books.apk — Google Книги;
- CalendarGoogle.apk — Google Календарь;
- Chrome.apk — Google Chrome;
- CloudPrint.apk — система облачной печати;
- Drive.apk — Google Drive;
- GenieWidget.apk — виджет новостей и погоды;
- Gmail2.apk — Gmail;
- GoogleContactsSyncAdapter.apk — синхронизация контактов;
- GoogleEars.apk — Google Ears (аналог Shazam);
- GoogleEarth.apk — Google Земля;
- GoogleHome.apk — домашний экран с интегрированным Google Now;
- GoogleTTS.apk — система синтеза речи;
- Hangouts.apk — Google Hangouts;
- Keep.apk — Google Keep;
- LatinImeGoogle.apk — клавиатура с поддержкой жестов;
- Magazines.apk — Google Журналы;
- Maps.apk — Google Карты;
- Music2.apk — Google Музыка;
- PlayGames.apk — Google PlayGames;
- PlusOne.apk — Google+;
- QuickOffice.apk — QuickOffice;
- Street.apk — Google Street;
- SunBeam.apk — живые обои SunBeam;
- Videos.apk — Google Фильмы;
- YouTube.apk — YouTube.
В каталоге /system/priv-app , кроме перечисленных ранее, также хранятся такие файлы:
- CalendarProvider.apk — хранит данные календаря;
- GoogleFeedback.apk — отправляет отчет об использовании Google Play;
- GoogleOneTimeInitilalizer.apk — мастер установки дополнительных Google-приложений;
- SetupWizard.apk — мастер настройки при первом запуске;
- Wallet.apk — Google Кошелек;
- talkback.apk — оповещение голосом о событиях на устройстве.
Комплект Gapps для KitKat, кроме всего прочего, включает в себя также проприетарную камеру с поддержкой сферической съемки и проприетарный же рабочий стол с интегрированным Google Now.
Но это еще не все. Google Apps зависят от нескольких фреймворков, которые находятся в каталоге /system/framework . Это файлы com.google.android.maps.jar, com.google.android.media.effects.jar и com.google.widevine.software.drm.jar. Еще есть множество библиотек в каталоге /system/lib , которые используются исключительно Google-приложениями. Удалять их совсем не обязательно, но можно. Просто чтобы очистить мусор. Их список ты найдешь на сайте ][.
В прошлых (да и в будущих) версиях системы содержимое Google Apps отличается, поэтому перед удалением рекомендую скачать gapps нужной версии с сайта goo.im/gapps, распаковать с помощью WinRar и просмотреть содержимое. Также следует учитывать зависимость некоторых приложений из маркета от приложений Google, подробнее об этом я расскажу позже.
Это только часть библиотек, входящих в комплект gapps
Предыдущий способ можно существенно упростить, если просто установить на смартфон кастомную прошивку без Google Apps. В этом случае смартфон/планшет будет кристально чист без всякой привязки к Google. Недостаток этого способа — отсутствие Google Play, но можно либо заменить его сторонним магазином приложений (об этом ниже), либо использовать следующий способ, который включает в себя установку урезанной версии Google Apps.
Этот способ частичной отвязки от Google — своего рода компромисс. Он не решает проблему слежки — по крайней мере без настроек из первого способа, — но позволяет не захламлять систему кучей бесполезного софта, который будет висеть в фоне и жрать память. Суть проста — ставим кастомную прошивку и заливаем поверх нее минималистичную версию gapps, которая включает в себя только Google Play.
Таких минимальных сборок gapps в Сети множество, но я бы рекомендовал использовать проверенные временем BaNkS Gapps, а именно файл «месяц-числоGAppsCore4.4.2signed.zip». Они работают на любом смартфоне, совместимы с ART и включают в себя только основные файлы gapps, список которых приведен в разделе «Что такое Gapps», файлы фреймворка, а также несколько библиотек. По сути, это Google Play, инструменты синхронизации и ничего больше.
Меняем поисковик на DuckDuckGo
Даже после полного отключения синхронизации на домашнем экране останется «встроенная» строка поиска Google. В стоковых прошивках некоторых производителей (Samsung, например) это всего лишь виджет, который можно легко удалить с экрана. В чистом Android и девайсах от многих других производителей она «вшита» в домашний экран, но ее можно убрать, отключив весь поиск от Google (вместе с Google Now) с помощью меню «Настройки -> Приложения -> Все -> Google поиск -> Отключить» или установив сторонний лаунчер. Далее достаточно скачать из маркета или другого магазина приложений DuckDuckGo и добавить одноименный виджет на домашний экран.
Второй и третий способ предполагают полное избавление от Google Apps, включая Google Play и возможность логина с помощью Google-аккаунта, поэтому мы должны найти способ простой и удобной установки приложений, который не заставлял бы нас выкачивать их самостоятельно, а затем скидывать на карту памяти и устанавливать вручную. Один из таких способов — установить сторонний маркет.
На данный момент существует три более или менее жизнеспособные альтернативы Google Play. Это Amazon Appstore, Yandex.Store и 1Mobile Market. У каждого из них есть свои преимущества и недостатки, которые в основном сводятся к количеству приложений и способам оплаты:
- Amazon Appstore — самый известный магазин приложений после Google Play. Содержит более 75 тысяч приложений (в сравнении с 800 тысячами в Google Play), качество каждого из которых проверяется вручную, так же как в iTunes для iOS. Расплачиваться можно с помощью кредитной карты или амазоновскими монетами (Amazon Coins), которые дают в качестве подарка за покупку планшета Kindle Fire либо в подарок от другого юзера. Одна из самых интересных черт магазина — ежедневная бесплатная раздача одного из платных приложений.
- Yandex.Store — магазин от компании «Яндекс». Содержит более 85 тысяч приложений, каждое из которых проверяется антивирусом Касперского. Особо ничем не выделяется, но зато имеет киллер-фичу в виде возможности оплачивать покупки с помощью сервиса Яндекс.Деньги или счета мобильного телефона.
- 1Mobile Market — крупнейший сторонний репозиторий Android-приложений, включающий в себя более 500 тысяч софтин. Отличается от других наличием исключительно бесплатных приложений (не путать с пиратскими), из-за чего позволяет не проходить стадию регистрации аккаунта и сохранить анонимность.
Приложения во всех трех маркетах имеют оригинальные цифровые подписи разработчиков приложений, что позволяет использовать их одновременно. Приложение, установленное из одного маркета, может быть без проблем обновлено из другого, а при удалении пропадет из списка установленных сразу во всех. Покупать, правда, придется раздельно.
Amazon Appstore Yandex.Market 1Mobile Market
Open Source Маркет
Кроме описанных в статье, а также множества других менее известных магазинов приложений, в Сети можно найти отличающийся от остальных репозиторий F-Droid. Он полностью анонимен и содержит только свободный софт, распространяемый под лицензиями, одобренными фондом FSF. Приложений в F-Droid всего тысяча, зато все они гарантированно не содержат бэкдоров и других систем разглашения личных данных. Именно F-Droid используется в качестве дефолтового маркета в свободной Android-прошивке Replicant.
Несмотря на то что компоненты gapps не являются частью официального API Android, некоторые приложения все-таки ожидают увидеть их в системе, из-за чего может возникнуть ряд проблем — от полной неработоспособности приложения до потери части его функций. Некоторые приложения откажутся устанавливаться из-за отсутствия Google Maps API, другие падают сразу после запуска, не обнаружив его, третьи включают в себя прямые ссылки на Google Play, что может привести к падениям и некорректной работе.
Чтобы решить эти проблемы, пользователь MaR-V-iN с XDA начал проект NOGAPPS, в рамках которого ведется разработка набора открытых компонентов, заменяющих оригинальную функциональность Google Apps. В данный момент доступно три компонента-замены:
- Network Location — сервис геолокации на основе Wi-Fi и базовых станций GSM. Основан на базе данных IP-адресов от Apple и открытой базе базовых станций;
- Maps API — замена интерфейса к Google Maps на основе OpenStreetMap;
- BlankStore — открытая альтернатива клиенту Play Store. Позволяет устанавливать бесплатные приложения из магазина Google, но не рекомендуется к использованию из-за возможных санкций со стороны поисковика (это запрещено их правилами).
Установка компонентов производится отдельно и разными способами. Network Location достаточно вручную скопировать в каталог /system/app/ в Android 2.3–4.3 или в каталог /system/priv-app/ в KitKat (в этом случае следует использовать файл NetworkLocation-gms.apk). Maps API устанавливается с помощью прошивки файла nogapps-maps.zip через консоль восстановления. Для установки маркета придется не только копировать файл, но и генерировать Android ID на большой машине, но, так как делать это не рекомендуется, я не буду об этом рассказывать и ограничусь ссылкой на инструкцию.
После всех манипуляций софт должен корректно заработать.
Для компании Google Android без ее собственных приложений бесполезен, поэтому нет ничего удивительного в том, что компания выносит в них самые вкусные части системы и оставляет код закрытым. Однако в этой статье я показал, что жизнь без gapps есть и она может быть даже проще и удобнее, чем с Google.
[authors]
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
В продолжении темы прошлого номера мы узнаем, каким образом в Android можно генерировать дополнительные потоки и зачем это может понадобиться. Сегодня поговорим о таком компоненте приложения, как сервисы, и опишем их роли в мобильном мире Android. Сервисы и потоки тесно переплетены между собой, поэтому, если ты еще не читал прошлый номер «Хакера», начни с моей статьи, будет полезно!
Сервисы
Большинство мобильных устройств обладают достаточно скромными ресурсами, а значит, ОС приходится постоянно перераспределять их между работающими приложениями. Если в системе нет свободной памяти для нового запущенного приложения, то ОС принудительно завершает Activity, которые находятся в состояниях onStop и onPause, а вместе с ними и их дополнительные потоки.
Такое положение дел существенно урезает возможности дополнительных потоков внутри UI — Activity на экране постоянно меняются, а значит, созданные ими потоки не могут жить вечно. Поэтому генерировать дополнительные потоки в Activity целесообразно только в случае, если вычисления завершатся не позже, чем пользователь переключится на другое окно, — в противном случае велик риск потерять результаты или не закончить вычисления.
И тут на помощь приходят сервисы! По сути дела, это те же самые Activity, но без графических элементов. Ввиду отсутствия UI они предназначены для длительных операций, которые могут долгое время выполняться без участия пользователя. Проигрывание музыки, запись данных для фитнес-трекера, продолжительный сетевой обмен — все это задачи для сервисов.
У сервисов в Android существует даже собственный жизненный цикл (lifecycle), который схож с жизненным циклом Activity, и, не привязанные к конкретному Activity, они работают максимально возможное время. ОС начнет убивать сервисы только в экстренных ситуациях, если пользователь параллельно с нашим приложением запустит игру, которая съест вообще все ресурсы и все равно будет тормозить.
Рис. 1. Жизненный цикл сервисов (c) Google
Другие статьи в выпуске:
В Android сервисы создаются с помощью класса Service или его наследника IntentService. Несмотря на схожие названия, их функциональные возможности и предназначение серьезно отличаются.
IntentService
Наиболее простой способ создать свой сервис — это воспользоваться классом IntentService. Созданный с его помощью сервис запустится в новом потоке, выполнит все необходимые действия, после чего будет остановлен системой.
Полезная нагрузка размещается в методе onHandleIntent() , который будет выполнен системой сразу после старта сервиса. После завершения работы этого метода сервис будет остановлен системой, а ресурсы освобождены.
Передача данных, как и запуск самого сервиса, происходит через уже известный механизм намерений (Intent).
Любой сервис, как и Activity, необходимо зарегистрировать в манифест-файле, иначе ОС о нем не узнает и он просто не будет запущен.
Все готово! После выполнения метода startService в работающем приложении появится новый поток, который выполнит необходимые действия, не загружая UI. Но простота реализации приносит и свои минусы:
Service
А теперь настало время познакомиться с родителями :). Я сознательно начал разговор с наследника — IntentService, поскольку он предельно прост в эксплуатации: просит мало, работает долго и уходит незаметно. С «оригинальным» же Service все сложнее, чем кажется поначалу.
Рис. 2. Более 60 тысяч вопросов по сервисам в Android
Оказывается, изначально объект класса Service не создает для себя новый поток, а выполняется там, где его инициализировали! Поэтому, создав в MainActivity новый сервис, разработчик довольно быстро подвесит UI. Чтобы этого избежать, необходимо внутри сервиса самостоятельно генерировать потоки (AsyncTask, Loader и так далее — выбирай любой) и помещать ресурсозатратные вычисления в них.
Сервис, созданный с помощью одноименного класса, открывает нам дверь в мир настоящей многопоточности. Это инструмент, позволяющий быстро распараллеливать однотипные задачи, создавая отдельный поток под каждую из них.
Недавно «Хакер» рассказывал, что в Android достаточно легко написать зловред, который бы шифровал пользовательские данные стойким ключом. Тогда мы не акцентировали свое внимание на производительности — файлы шифровались последовательно, один за другим. Сейчас посмотрим, как с помощью сервиса можно сократить время выполнения операций шифрования.
Поскольку объекты этого класса могут самостоятельно создавать новые потоки, мы можем запустить сервис, который будет обрабатывать одновременно максимально возможное число файлов.
Количество доступных нам потоков заранее неизвестно — это во многом зависит от ресурса устройства. Но бояться ошибок переполнения не стоит, за генерацией новых потоков следит класс ThreadPoolExecutor. Он самостоятельно выставляет лимиты по операциям, и в случае необходимости новые задачи просто встанут в очередь.
Создавать новые потоки будем с помощью классов Handler и Looper, которые нам уже знакомы по первой части статьи.
По умолчанию сервис живет в потоке породившего его Activity. Нас это не очень устраивает, поэтому в методе OnCreate нужно породить новый поток.
Теперь сервис отвязан от Activity и будет жить своей жизнью. Основная логика создаваемого сервиса содержится в методе onStartCommand , который будет выполняться каждый раз при вызове метода startService .
Каждый сервис существует в единственном экземпляре, поэтому многократный вызов метода startService не размножает экземпляры сервиса, а только создает очередь из заданий для него. И если IntentService просто выполнит все задания последовательно, одно за другим, то благодаря классу Service у нас появляется возможность запустить все задачи одновременно в независимых потоках. Достаточно в методе onStartCommand создавать новые потоки для каждой задачи.
Остановка сервиса
Сервис, созданный с помощью одноименного класса, будет жить, пока его принудительно не остановят. Сделать это можно либо откуда-то снаружи методом stopService , с указанием интента, которым он был запущен, либо внутри самого сервиса методом stopSelf .
Как узнать, что сервис уже все сделал, особенно если мы поставили перед ним сразу несколько задач? В этом нам поможет параметр startId у метода onstartcommand — это порядковый номер каждого вызова сервиса, который увеличивается на единицу при каждом запуске.
Создав новый поток, разумно завершать его методом stopSelf , указывая startId в качестве параметра.
С таким параметром ОС не будет сразу завершать сервис, а сравнит переданный идентификатор с тем, который был выдан при последнем запуске onStartCommand . Если они не равны, значит, в очередь была добавлена новая задача и сервис остановлен не будет.
Параметры перезапуска
Сервис — важный компонент приложения, и от стабильности его работы может зависеть стабильность всего приложения. Именно поэтому, даже если ОС и внештатно выгрузит сервис из памяти, есть возможность его запустить заново, как только появятся свободные ресурсы.
Метод onStartCommand возвращает переменную, указывающую ОС, как следует поступить с сервисом, если он был принудительно остановлен. К счастью, разработчикам не нужно запоминать сами числа, в классе Service есть их мнемонические обозначения.
Существует три варианта того, как ОС может поступить с сервисом, если он был принудительно завершен.
START_NOT_STICKY — не будет перезапущен системой, и все останется так, как есть. Подходит для случая, когда он выполняет не самые важные задачи, и приложение может позже при необходимости самостоятельно его перезапустить.
START_STICKY — будет запущен заново, но в Intent, который ОС создаст для его запуска, не будет никаких параметров. Такой вариант работает с аудиоплеерами — он должен быть активным в фоне, но не обязательно при этом автоматически начинать проигрывать песни.
START_REDELIVER_INTENT — сервис будет запущен с теми же параметрами, которые были при его последнем старте. Это удобно, когда в фоне загружается большой файл и его загрузка была прервана.
Bound Service
Иногда бывает необходимо выполнить большой объем черновой работы, а потом несколько раз использовать полученные результаты. К примеру, это может быть загрузка из сети большого XML-файла с последующим парсингом данных. Конечно, можно как-то кешировать результаты, а затем при необходимости их заново подгружать. Но есть вариант получше — создать сервис, который выполнит необходимые расчеты, раздаст данные всем желающим и завершит свою работу.
Описанный алгоритм мы можем организовать уже имеющимися средствами, но за одним исключением — непонятно, когда услуги сервиса уже больше не понадобятся и его можно остановить. Эту проблему возможно решить, создав привязанный (bound) service — это сервис, который будет работать до тех пор, пока к нему привязан хотя бы один Activity или другой сервис. В случае если «клиентов» у такого сервиса нет, он автоматически останавливается, но при необходимости может быть снова запущен.
Привязанный сервис создается с помощью того же класса Service, но теперь необходимо инициализировать метод OnBound .
IBinder — это интерфейс, позволяющий организовать связь между двумя различными потоками, функционирующими внутри одного процесса. Для его использования не нужно самостоятельно реализовать этот интерфейс, достаточно создать объект класса Binder. Сейчас его основной задачей будет предоставление ссылки на работающий сервис в Activity.
Чтобы Activity могли подключаться к сервису, разработчики Google создали класс ServiceConnection, основная задача которого — организовывать взаимодействие Activity и сервиса, а также следить, чтобы созданное подключение работало корректно.
Для работы этого механизма необходимо переопределить методы, отвечающие за подключение к сервису и отключение от него.
При успешном подключении к сервису в потоке Activity появляется экземпляр сервиса, к которому произошло подключение. Индикатором состояния подключения к сервису будет булева переменная.
Процедуры подключения к сервису и отключения от него рекомендуется выполнять в методах onStart и onStop . Это разумно, поскольку процедуры запуска/остановки сервиса и подключения к нему достаточно ресурсозатратны и не должны выполняться слишком часто.
Для получения данных с сервиса достаточно обратиться к нему через его экземпляр, полученный благодаря ServiceConnection.
Вообще говоря, использование сервисов предполагает какие-то длительные операции. Вполне нормально, что метод getData будет выполняться длительное время и результат вычислений не вернется мгновенно.
В этом случае стоит вызывать методы сервиса в дополнительных потоках, например с помощью уже знакомого нам AsyncTask и слабых ссылок.
До тех пор пока сервис привязан к какому-либо Activity, его данные будут сохраняться, а значит, ими смогут воспользоваться и другие компоненты приложения. В этом и есть плюс привязанных сервисов — достаточно один раз загрузить и обработать данные, а затем готовые результаты смогут легко получить остальные участники приложения.
Foreground Service
В некоторых случаях необходимо сделать критически важный сервис, который будет выгружен из системы только вместе с выключением устройства. Именно такими сервисами являются аудиоплеер или GPS-трекер. Они будут работать всегда, даже когда создавшее их приложение будет завершено, и ни одно другое приложение не сможет вытеснить их из памяти. Если пользователь решил послушать новый альбом Taylor Swift, то песни в наушниках перестанут играть только в двух случаях — кто-то нажмет кнопку «Стоп» или в устройстве сядет аккумулятор.
Это так называемый сервис переднего плана (foreground service), и его можно создать как из класса Service, так и из класса IntentService. Но есть небольшое условие: в панели уведомлений на протяжении всей работы сервиса должна быть соответствующая информация.
Создадим сейчас свой сервис, проигрывающий музыку. В этом нам поможет стандартный Android-класс MediaPlayer, который вполне справится с тем, чтобы открыть файл и бесконечно проигрывать его по кругу. К сожалению, для более сложных задач лучше поискать другие библиотеки — реализация MediaPlayer может отличаться в зависимости от вендора устройства, поэтому приложение может работать нестабильно.
Создаем наследующий Service класс, который реализует интерфейс MediaPlayer.onPreparedListener .
Старт сервиса, как всегда, организуем через Intent, имя проигрываемого файла можно передать через его параметры.
Когда песня будет готова к проигрыванию, в сервисе сработает метод onPrepared из реализуемого интерфейса.
В методе OnStartCommand будет инициализирован музыкальный плеер и, самое главное, сконструирован объект, который будет демонстрироваться на панели уведомлений в течение всей работы сервиса. Это будет совершенно обычное уведомление, созданное с помощью класса Notification.
Рис. 3. Неубиваемое уведомление от привязанного сервиса
Скорее всего, пользовать захочет нажать на выводимое уведомление и попасть в Activity приложения, где можно будет поменять музыку. С этим справится PendingIntent, способный создать новый стек.
Теперь нужно связать сформированный стек и уведомление. А вывод информации о работающем сервисе выполняется методом startForeground с указанием уникального идентификатора.
Что же выбрать?
Итак, за два месяца мы с тобой довольно подробно поговорили о том, где же можно обработать данные для UI. Давай теперь кратко просуммируем то, что у нас есть для создания многопоточности в Android.
Потоки, созданные в Activity, подходят для сравнительно недлительных действий, результат которых важен только в момент жизни конкретного Activity. Их можно создать с помощью AsyncTask, AsyncTaskLoader или их аналогов — все зависит от того, как тебе будет удобней.
Сервисы существуют в приложении на равных правах с Activity, но не всегда в отдельном потоке. Они могут распараллелить задачи и выполнять громоздкие вычисления долгое время, пока на экране будут меняться Activity. IntentService завершит себя сам, когда выполнит все задачи, а Service будет висеть в фоне. Применяя сервисы, нужно быть внимательным, он может случайно оказаться в потоке UI или долго и без дела висеть в памяти, забирая ресурсы.
Заключение
Надеюсь, про многопоточность было сказано достаточно, чтобы ты понял ее необходимость и полезность. Вся ли это информация? Конечно, нет, Android — очень сложная ОС, которая постоянно развивается, и нельзя в двух статьях разобрать абсолютно все нюансы такой важной темы. В конце концов, главное — как приложение работает, а не то, как оно написано. Если будут вопросы, обязательно мне пиши. Удачи!
Huawei внес изменения в процесс установки прошивок. Теперь прошивка перед установкой проходит процедуру онлайн-проверки. Если при установки прошивки Вы получаете "сбой аутентификации" , значит на данный момент установка этой прошивки на данный аппарат невозможна, нужно подождать . Способ обойти эту проверку нами пока не найден. Нужно подождать пока Ваш imei внесут в список на получение этой прошивки, или сделают ее "доступной для всех"
Так как в целом аппараты схожи по характеристикам, то тут будут находится FAQ от соседей:
Honor 8 - Прошивки
Huawei Mate 8 - Прошивки
Указанные посты подходят к нашему аппарату на 95%. Перед написанием поста с вопросом прочтите их обязательно
И еще, много будет отсылов на инструкции в другие темы. Просто считаю нецелесообразным оформлять в этой теме посты. Их надо было раньше создавать при зарождении темы
-
-==Драйвера==-
- фирменная утилита для синхронизации, резервного копирования и многого другого от компании Huawei (содержит в себе драйверы ADB и MTP)
-==Инструментарий==-
- Комплект утилит для работы с Android.
- Китайский маркет
- Утилита для распаковки оригинального пакета обновления UPDATE.APP - Инструкция по применению
- еще одна утилита для установки TWRP, Root и т.д
- разблокировка загрузчика, раскирпичивание,прошивка кастомного/стокового рекавери
- Позволяет выполнять последовательность команд fastboot, adb и adb shell, помогая Вам прозводить множество известных операций без лишних телодвижений. Утилита поможет не продвинутым владельцам выполнить ряд сложных для них операций играючи, а продвинутым, помочь в ежедневном использовании. Возможности утилиты растут с каждым днем.
Rollback - это мини прошивка, которая открывает возможность вернуть предыдущую версию ОС. С EMUI 5.0 на EMUI 4.1, например. После прошивки роллбэк, необходимо прошить нужную версию ОС через 3КН.
Не применяйте его находясь на андроид 6 EMUI 4.х.х
-
-=На базе Android 7.0 EMUI 5.0 Ставить на свой страх и риск=-
-=На базе Android 6.0 EMUI 4.1.х=-
(поможет сменить локацию, вернуть пропавшие темы и многое другое)
Попался мне в руки китаец EVO-DL00 (он же подопечный p9).
Информации в интернете крайне мало и пока не существует раздела Прошивки решил написать сюда небольшую инструкцию, вдруг пригодится людям :rolleyes:
Разблокировка загрузчика / установка TWRP / Root телефона / Установка GAPPS (Play market и т.д.)
Разблокировка загрузчика
Сразу оговорюсь что всю информацию собирал по темам на 4pda и xda-developers
Разблокировка происходит как у старшего брата Mate 8 (который так же был подопечным до p9).
Я не заморачивался бесплатным способом получения кода разблокировки и пользовался dc-unlocker.
II) Разблокировка загрузчика
Разблокировка загрузчика возможна при наличии Кода разблокировки.
Возможна потеря всех данных, ОБЯЗАТЕЛЬНО делаем бэкап!
1. Драйвера для телефона должны быть установлены ( если стоит hisuite то они есть).
2. Распаковать архив ADB.
3. Выключить телефон
4. Подключить телефон к USB
5. Удерживая кнопку Громкость (-) включить телефон
Телефон загрузится в режиме fastboot
6. Удерживая кнопку Shift правой кнопкой мыши по папке с ADB и выбрать Открыть окно команд
7. Выполнить fastboot oem unlock XXX (XXX - код разблокировки)
8. На экране устройства появится меню с выбором разблокировать или нет устройство
9. Кнопками громкости выбираем пункт Разблокировать и подтверждаем кнопкой Включения (внимание данные на телефоне будут стерты!)
Устройство сообщит о разблокировке загрузчика.
7. Выполнить fastboot reboot для перезапуска устройства.
Устанавливаем TWRP
1. Проверить наличие фаила twrp-3.0.2-0-eva-modaco-test1.img в папке с ADB
2. Перевести телефон в режим fastboot (выключенный телефон подсоединить к компьютеру с зажатой кнопкой Громкость (-))
Выполнить:
fastboot flash recovery twrp-3.0.2-0-eva-modaco-test1.img
fastboot reboot
Получение Root
1.Скопировать на SD карту фаил BETA-SuperSU-v2.65.zip
2.Воткнуть SD в выключенный телефон.
3. Загрузится в TWRP: зажать Громкость (+) и Power после вибрации Power можно отпустить.
4. При первом запуске TWRP он может попросить пароль, выбираем язык (selet language) и затем нажимаем cancel.
5. Выбираем Install и устанавливаем SuperSU с SD карты, все галки должны быть сняты перед свайпом.
6. Вайпим Dalvik/Cashe
7. Перезагружаемся
Профит .
Установка GAPPS
Запускаем HiSuite (установлен ранее)
Подключаем телефон к компьютеру, при запросе подключения HiSuite соглашаемся.
Заходим в закладку My Device > App Manager
Нажимаем Install и скармливаем ему NewGoogleInstaller2.0MS.apk (так же фаил в облаке)
Запускаем Gapps на телефоне и нажимаем кнопку Установить (мне пришлось ждать около часа но все сервисы и Google Play в итоге были установлены).
P.S> Не претендую на роль разработчика или советника по установке, просто описал свой опыт общения с аппаратом.
Все устанавливал на Windows 7 x64. Прошивку до всех манипуляций обновил по воздуху до EVA-DL00C17B162
Читайте также: