Люди подскожите прошивку с китайской версии на русскую на mi band 7 купил на ozon а там китайская прошивка
помогите купил mi band 7 а там оказалась китайская прошивка можно русскую в коменты скинуть ктонибуть NFC не ма
помогите купил mi band 7 а там оказалась китайская прошивка можно русскую в коменты скинуть ктонибуть NFC не ма
Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные приложения. Но все эти приложения работают только локально на самом MiBand 7, не имея возможности взаимодействовать ни с телефоном, ни с интернетом. Я углубился в байткод приложения и документацию по Zepp OS чтобы найти способ создавать приложения, взаимодействующие с интернетом, в этой статье я опишу свой путь. В итоге у меня получилось сделать запрос в интернет с часов и даже запустить мост для отладки приложений.
Сразу скажу, что я уже публиковал эту статью на Хабр. Но хочу теперь попробовать начать писать статьи на Пикабу, так что я буду очень рад любым комментариям и отзывам. Надеюсь пользователям Пикабу эта статья тоже зайдет)
Эта статья написана чисто в ознакомительных целях. Я не призываю никого к переработке кода для добавления новых функций с целью использования и распространения переделанного ПО.
Мне интересен этот вопрос, но к сожалению я не знаю причин. Похоже что Xiaomi Band 7 сделала для xiaomi компания zepp. И им было проще не поддерживать другую операционную систему, а использовать уже имеющиеся наработки для часов zepp. Поэтому на этих часах стоит система ZeppOS. Вероятно Xiaomi решила не платить за все фишки системы и поэтому функционал часов программно ограничен.
Для начала, чтобы разобраться как работает система, я попробовал поставить пару приложений от MelianMiko. Ставил самым простым способом, через приложение для установки циферблатов, подробности можете почитать на 4PDA. Я немного поразбирался в структуре приложений и вот что я понял: приложение это bin файл, который является простым zip архивом с, как минимум, несколькими файлами: app.json(Manifest), app.js(Код инициализации и деинициализации приложения при запуске), index.js(Код страницы),icon.png. Далее я пошел на сайт официальной документации по ZeppOS, там описано как включать режим отладки через приложение ZeppApp. Но попробовав подключить часы через это приложения я получил ошибку:
Я решил на этом не останавливаться, скачал это приложение версии 7.0.1, декомпилировал через apktool в байткод и через jadx в java код:
apktool d com.huami.watch.hmwatchmanager_7.0.1-play_100802.apk jadx com.huami.watch.hmwatchmanager_7.0.1-play_100802.apk -d com.huami.watch.hmwatchmanager_7.0.1-play_100802_JADX
Далее для исследование кода проще использовать результат jadx, но скомпилировать обратно получится только результат apktool, поэтому изменения придется делать в байткоде.
Для начала я убедился что это приложение поддерживает ну или когда-то поддерживало MiBand. Для этого я нашел несколько упоминаний MiBand 7 (Официально он называется Xiaomi Smart Band 7). Его кодовое название в приложении “MILI_L66”.
Далее я решил обмануть приложение(пока без его изменения) и попробовал подключить свои часы к приложению, притворившись другими часами. Для этого я отсканировал qr для сетапа на своих часах я получил такую ссылку:
В ней указан мак адресс, pnpNumber, pnpVersion - это похоже какие-то идентификаторы устройства. Я пробовал их заменить, но это не помогло, поэтому я решил посмотреть, какие qr коды у других устройств zepp при сетапе. В гугл я нашел видео в привязкой Amazfit Band 7, отсканировал код, получил такую ссылку:
Эта ссылка ссылается совсем на другое доменное имя. Далее я решил попробовать просто подставить в этот URL macAddress из своего qr кода и сделать с этого url qr код. И это помогло, мои часы подключились, приложение засетапило их как Amazfit Band 7.
Я обнаружил что весь функционал из приложения Xiaomi здесь есть и я могу полноценно настраивать свои часы. Но после сетапа приложения понимало что у меня не Amazfit а Mi Band и не давало возможности ставить никакие приложения и циферблаты для Amazfit. Поэтому дальше я решил переделать приложение.
Чтобы приложение дало мне возможность ставить mini apps на часы, я решил заставить его думать что у меня не Xiaomi Smart Band 7, а Amazfit Band 7. Для этого таже как и для Mi Band 7, нашел кодовое название для Amazfit Band 7 - “MiliBari”:
Далее нашел все упоминания MILI_L66 и MILI_BARI. Самым интересным показался класс HMDeviceSource:
Вы можете в нем увидеть коды соответствующие разным типам устройств - их идентификаторы.
Далее необходимо переключиться на байткод, который нам выдал apktools.
Здесь я тоже нашел байткод класса HMDeviceSource$a.smali и изменил в нем 3 строки как на скриншотах:
Теперь можно собрать его обратно, подписать, установить. Оригинальное приложение придется сначала удалить, так как подпись теперь не оригинальная.
apktool b com.huami.watch.hmwatchmanager_7.0.1-play_100802 --use-aapt2 apksigner sign --ks-key-alias alias_name --ks-pass pass:123456 --ks release-key.keystore com.huami.watch.hmwatchmanager_7.0.1-play_100802/dist/com.huami.watch.hmwatchmanager_7.0.1-play_100802.apk adb install com.huami.watch.hmwatchmanager_7.0.1-play_100802/dist/com.huami.watch.hmwatchmanager_7.0.1-play_100802.apk
Теперь можно снова логиниться в приложении и подключать Mi Band как я описывал выше, изменяя qr код.
После этих манипуляций приложение начало отображать функционал как для amazfit band 7! Ура! На изображении сначала будет Mi Band 7, но если поменять циферблат, то оно сменится на amazfit band 7. У меня циферблат от Аmazfit встал как родной.
Также теперь появилась кнопка App Store, там можно поставить приложения из магазина для amazfit band 7. Не все заработали идеально, но большинство. Их почему-то в магазине пока только 5. Видимо пока весьма маленькое сообщество разработчиков)
Далее я уже пытался поставить свое приложение, с сервисной частью, сначала я пошел по сложному пути, подменяя файлы приложения. Позже понял, что можно воспользоваться мостом в режиме разработчика на приложении, что гораздо проще и позволяет выводить логи. Вероятно разработчики могут прекратить поддерживать отладку через мост, когда эта версия приложения устареет. Но в этой статье я опишу только путь попроще, через мост. Если вам будет интересно, могу потом описать второй путь.
На 4PDA я нашел проекты пользователя MelianMiko. Он сделал и симулятор mi band, и множество приложений, и утилиту для сборки проектов - zmake. Можете ими воспользоваться для создания простых приложений, но как я понял zmake создает проекты только без сервисной части, выполняемой на телефоне. Еще в отличии от официального сборщика он, не сжимает код в bin файл, а оставляет в формате js(Тут может ошибаюсь, поправьте если не так). Симулятор к сожалению не работает под Linux и MacOS, поэтому я им не пользовался, вместо него использовал официальный симулятор Amazfit band 7.
Для создания проекта я использовал официальную утилиту zeus для ZeppOS. Новый проект можно создать командой zeus create project-name. Необходимо выбрать “1.0 API”, апи второй версии MiBand 7 не поддерживает.
Далее опишу содержимое собранного приложения, это не очень нужная информация, просто для общего ознакомления.
Когда проект будет готов, его можно собрать командой zeus build. В папке dist появится архив в формате zab, его можно открыть как простой zip архив. В нем манифест с описанием приложения и архив common.zpk, который тоже открывается как zip архив. В нем уже можно увидите основные составляющие приложения:
Файл device.zip содержит код выполняемый на часах, ему можно сменить формат на bin и поставить даже через приложение для установки циферблатов.
Файл app-side.zip сожержит код выполняемый на стороне телефона.
Вроде еще может быть файл, описывающий настройку mini app с помощью приложения телефона.
Отличный набор примеров приложений, в том числе с сервисной частью, есть на github. Я, как основу, взял пример “fetch-api”.
Тут нет ничего особенного, все из документации ZeppOS. Необходимо залогиниться в один аккаунт в приложении на телефоне и в приложении симуляторе. Включить режим разработчика в приложении и потом выбрать часы в списке устройств, открыть внизу настройки разработчика и в выпадающем списка нажать кнопку включения моста. После подключиться к мосту надо и в приложении симуляторе, нажав кнопку Bridge.
Теперь можно пользоваться консольной утилитой zeus для отладки проекта:
zeus bridge
сonnect
install
Как я уже писал выше, я взял за основу пример проекта с официального гитхаб аккаунта zepp os, “fetch-api”. Изменив код в app-side, я сделал запрос с телефона на домен ident.me, чтобы получить мой текущий внешний ip, ради примера.
В итоге я получил небольшое приложение на часах, которое может когда угодно выводить мне мой внешний ip. Это конечно не та цель, к которой я стремился. Моей целью было продемонстрировать, то что на самом деле у часов Mi Band 7 есть скрытый, программно ограниченный функционал. Эти часы могут не просто менять циферблаты, но и работать с приложениями. И даже отправлять данные через телефон в интернет и получать ответ. Такие приложения можно использовать например для управления умным домом) Вероятно в будущих версиях часов об этом официально заявят, но пока такого нет. Даже на Band 7 Pro официально не стоит zepp os.
P.S. Это была моя первая статья. Надеюсь вам было интересно, пишите комментарии, буду рад любой критике!
Недавно я создал телеграм канал. Там я планирую регулярно делиться интересными мыслями по темам информационной безопасности, программирования и нейросетей. Если вам интересны такие темы, присоединяйтесь) буду делиться там подобным контентом.
Прошлый мой пост Циферблат PipBoy для Xiaomi Smart Band 7, который получил продолжение с крупным обновлением Продолжение поста «Циферблат PipBoy для Xiaomi Smart Band 7», оказался популярным, у меня даже появились подписчики. Решил я опубликовать ещё один свой популярный циферблат.
Циферблат мультиязычный, я добавил почти все языки, которые поддерживает браслет. Так же он имеет гибкую настройку, все 4 виджета редактируемые:
Заряд аккумулятора (если этот виджет убрать в экрана, то заряд будет отображаться в строке статусов, справа от иконки будильника)
Количество шагов
Пройденное расстояние в километрах
Сожжённые калории
Пульс
Уровень кислорода в крови
Стресс
PAI за день (индекс личной активности)
Сон
Пустой блок (может вам не нужно столько виджетов на экране)
Текущая температура воздуха на улице
На всех виджетах есть тап-зоны, активируются по двойному нажатию. Тап-зоны виджетов открывают соответствующее приложение. Тап-зоны на плашке даты меняют яркость экрана с шагом в 20%.
Циферблат так же имеет AOD экран, с минимумом информации - время и дата
Android:
- При использовании Zepp Life версии 6.2.1 и ниже положить содержимое архива по пути Android/data/com.xiaomi.hm.health/files/watch_skin_local/Новая папка/
После чего циферблат появится в магазине, во вкладке "Администратор"
- При использовании Zepp Life любой версии или Mi Fitness установка через приложение Mi band 7 Циферблаты (не реклама, к автору не имею никакого отношения)
Распаковать архив в удобное место и зайти в приложение
Далее МЕНЮ > УСТАНОВИТЕ ЦИФЕРБЛАТ > ДОБАВИТЬ ЦИФЕРБЛАТ > СИНХРОНИЗАЦИЯ НАПРЯМУЮ С ЧАСАМИ.
После чего циферблат появится на браслете.
В приложении так же есть каталог циферблатов, но автор не следит за обновлениями и там многие циферблаты устаревших версий.
iOS:
- Через приложение AmazTools
Не могу дать точную инструкцию. Но примерно:
Коннектимся к ZeppLife и оставляем в фоне, коннектимся через AmazTools и в самом низу выбираем ЕЩЁ > УСТАНОВИТЬ ИЗ ФАЙЛА > выбираем .bin файл из архива.
Приятного пользования!
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Раз уж многие узнали об этом циферблате именно на Pikabu, я посчитал нужным сообщить об обновлении и здесь
Было проделано много работы:
Полностью перерисованная графика, более плавная, местами улучшенная
Русская и Английская версии в 1 циферблате
Добавлены тап зоны изменения яркости
Отключаемые тап зоны (В настройках самого циферблата)
Тап зоны работают по двойному тапу, больше не будет ложных срабатываний
Больше цветов (с возможностью добавления в дальнейшем)
Переработанный AOD
Статичная версия циферблата для тех, кто хочет сэкономить заряд батареи (В настройках самого циферблата)
Ещё более значительно снизился вес (на 74%) по отношению к версии 2.0.
Способы установки для mi band 7:
Android
Скачиваем и устанавливаем приложение с Play Market
Скачиваем архив с .bin файлом циферблата и распаковываем в удобное место
В приложении МЕНЮ > Установите свой циферблат > Выбираем .bin файл > Добавить циферблат > Синхронизация напрямую с часами
iOS
Через приложение AmazTools
Скачиваем архив с .bin файлом циферблата и распаковываем в удобное место
Коннектимся к ZeppLife и оставляем в фоне
Коннектимся через AmazTools и в самом низу выбираем ЕЩЁ > УСТАНОВИТЬ ИЗ ФАЙЛА > выбираем .bin файл из архива.
Циферблат идентичен версии для Mi band 7 по своему функционалу
Тап зоны немного отличаются, чем-то пришлось пожертвовать
Способ установки для Amazfit band 7:
Android
Скачиваем и устанавливаем приложение с Play Market
Скачиваем файл циферблата (архив не распаковываем)
В приложении МЕНЮ > Установите свой циферблат > Выбираем .zip архив > Добавить циферблат > Синхронизация напрямую с часами
iOS
Не могу подсказать способа установки, никакой информации по этому поводу беглый поиск не дал.
Делал для себя после покупки часов для WearOS. Видел тут давно (4-5 лет назад) под самые первые смарт часы, и сразу вспомнил.
Была та же идея что и у @AngelFD со сменой состояния ваулт боя, только использовал именно гифки. Ваулт бои меняются циклов ночь/утро - день - вечер - ночь/утро. При пульсе выше 140 анимация меняется, но на 4пда узнал что API сердцебиения в реальном времени доступна узкому кругу разработчиков одобренных самсунгом, то есть задержка между показаниями будет как минимум в 30 секунд (galaxy watch 4). Есть анимация зарядки, низкого заряда, сердцебиения (правда мигает всегда и стабильно). Несколько кастомных ярлыков для запуска приложения по вкусу.
Заливал в теме в 4пда, там же ссылка на облако.
https://4pda.to/forum/index.php?showtopic=1030608&view=f...
Там же подкинули мысль для переделки ярлыка проигрывателя сверху, но займусь эти позже. Так что если есть пожелания и мысли по доработке, пишите смело. В пределах разумного (десятки гифок пихать - утяжелять циферблат) и допустимого (Samsung WFS имеет ограничения) добавлю и переделаю.
Иногда в свободное время занимаюсь циферблатами для Mi band. Из-за ситуации в мире, многие приложения и сайты, где обычно публиковались мои работы стали не доступны для РФ и скачиваний стало очень мало. Просто хочу поделиться на широкую публику. Всё абсолютно бесплатно, для вашего и моего удовольствия. Если что, я не дизайнер, не художник и не программист :D
Циферблат кастомизируемый, если нажать на иконку шестеренки в меню выбора циферблата, можно сменить цвет. (Однократное нажатие - переключение, длительное удерживание - подтвердить выбор)
Так же присутствуют так называемые тап зоны, при нажатии на которые, можно перейти в определенный пункт меню.
Сам Vault boy анимированный и будет шагать при зажигании экрана. Так же на циферблате присутствует AOD с минимумом информации.
Установить можно несколькими способами
Android:
- При использовании Zepp Life версии 6.2.1 и ниже положить содержимое архива (папку с тремя файлами) по пути Android/data/com.xiaomi.hm.health/files/watch_skin_local/
После чего циферблат появится в магазине, во вкладке "Администратор"
- При использовании Zepp Life любой версии или Mi Fitness установка через приложение Mi band 7 Циферблаты (не реклама, к автору не имею никакого отношения)
Распаковать архив в удобное место и зайти в приложение
Далее МЕНЮ > УСТАНОВИТЕ ЦИФЕРБЛАТ > ДОБАВИТЬ ЦИФЕРБЛАТ > СИНХРОНИЗАЦИЯ НАПРЯМУЮ С ЧАСАМИ.
После чего циферблат появится на браслете.
В приложении так же есть каталог циферблатов, но автор не следит за обновлениями и там многие циферблаты устаревших версий.
iOS:
- Через приложение AmazTools
Не могу дать точную инструкцию. Но примерно:
Коннектимся к ZeppLife и оставляем в фоне, коннектимся через AmazTools и в самом низу выбираем ЕЩЁ > УСТАНОВИТЬ ИЗ ФАЙЛА > выбираем .bin файл из архива.
Скачать циферблат с Google диск
Дисклеймер: я не несу ответственности, если вследствие вышеперечисленных операций что-то пойдет не так, хоть никаких последствий ни у кого и никогда не возникало, но я обязан это написать.
Проблема в том что когда у меня с телеги приходят уведомления, все окей, но если оно одно, как только приходит ещё одно предыдущее дублируется и вместо 2 на моих часах показывает 3,при чём ц из них одинаковых,я их удаляю и если я их не читаю с телефона и приходит ещё одно они все также дублируются и появляются в уведомлениях, ответов в интернете не нашел