Разборка прошивки электросамоката Xiaomi M365

Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
#прошивка
Форум / Электротранспорт / Электросамокаты / Xiaomi Mijia Electric Scooter / Разборка прошивки электросамоката Xiaomi M365
Open header post
Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 13:16
Posted: 15 august 2018, 13:16
Ответ пользователю
Conejo : 15 august 2018, 12:57
на это сообщение (развернуть)
Не нахожу 1.4.1/1.4.2 нигде что-то, не поделитесь? Посмотрел бы тоже что к чему.kracher, IDA Pro. Для ST8 (BMS) собрал сторонний...

Не нахожу 1.4.1/1.4.2 нигде что-то, не поделитесь? Посмотрел бы тоже что к чему.


kracher, IDA Pro. Для ST8 (BMS) собрал сторонний плагин https://github.com/CodeKill3r/Stm8Ida

Немного запутался в битовых сдвигах. Там работа со значениями в адресах.

Но главное, алгоритм теперь известен)

Спойлер

 2   
Conejo
Продвинутый форумчанин
МадридRating: 703
Conejo
15 august 2018, 15:30
Posted: 15 august 2018, 15:30

Готово, рас-/зашифровщик на Питоне. Требования - Python 2.7.x. В принципе могу собрать в exe, но потом где-нибудь антивирусы начнут жаловаться )


Алексей в целом был прав, в основе там TEA с теми ключами, но нужны были некоторые доработки - режим CBC (когда следующий блок зависит от предыдущего, это типовой подход) и изменение ключа после каждого килобайта данных (это уже изобретение наших китайцев).


Ред.: никаких проверок, кроме попадания MSP в RAM, не заметил. Если зашифровать любую старую версию, она должна корректно залиться.

Правильные шифровщики см. ниже.

 3   
Conejo
Продвинутый форумчанин
МадридRating: 703
Conejo
15 august 2018, 15:55
Posted: 15 august 2018, 15:55

Выкладываю на проверку прошивку для понижения с 1.4.1+ до 1.4.0 (обычная 1.4.0 зашифрована).

Людям без ST-Link пробовать не рекомендую, мало ли что, дождитесь подтверждения.


Ред.: образ неверный, удалил.

Answers: 1
 2   
Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 17:03
Posted: 15 august 2018, 17:03
Ответ пользователю
Conejo : 15 august 2018, 15:55
на это сообщение (развернуть)
Выкладываю на проверку прошивку для понижения с 1.4.1+ до 1.4.0 (обычная 1.4.0 зашифрована).Людям без ST-Link пробовать...

Выкладываю на проверку прошивку для понижения с 1.4.1+ до 1.4.0 (обычная 1.4.0 зашифрована).

Людям без ST-Link пробовать не рекомендую, мало ли что, дождитесь подтверждения.


Ред.: образ неверный, удалил.

Невероятная скорость!


Потестил на макете: Распаковка в буфер идет очень точно. Байт в байт (в сравнении с оригиналом 1.4.0).

Но не попадает из буфера в рабочую область (флаг для бутлоадера).

Видимо какая-то проверка есть. Или у меня глючит.

---

Замена шапки не дала результата. Файл пассивный, общая контрольная сумма следующей прошивки заранее не может быть известна. Вероятно, маркер или контрольная сумма области (что хуже). Попробую прямым монтажом файла.  Методом последовательного приближения, пока не проскочит)

 1   
nickkee
Участник
МоскваRating: 69
nickkee
15 august 2018, 17:49
Posted: 15 august 2018, 17:49

Может кто-то проверить возможность прошивки нешифрованного образа 1.4.1 на, например, 1.3.8?

Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 17:58
Posted: 15 august 2018, 17:58

1.4.1 официально всегда не шифрованна. Но когда она встанет, будет принимать только шифр. прошивки.

Но это идея, проверить откат с шифрованной 1.4.2 на искусственно шифрованную 1.4.1

Позволит узнать влияние номера версии на откат.

 1   
nickkee
Участник
МоскваRating: 69
nickkee
15 august 2018, 18:07
Posted: 15 august 2018, 18:07

Я предлагаю расшифровать 1.4.2 и прошить ее поверх 1.3.8

Answers: 1
Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 18:16
Posted: 15 august 2018, 18:16
Ответ пользователю
nickkee : 15 august 2018, 18:07
на это сообщение (развернуть)
Я предлагаю расшифровать 1.4.2 и прошить ее поверх 1.3.8

Я предлагаю расшифровать 1.4.2 и прошить ее поверх 1.3.8

1.3.8 у меня сейчас нет. Проверил, 1.3.4 -->1.4.2 (не шифр.) прошилась без проблем.

Но с нее отката, естественно нет.

Conejo
Продвинутый форумчанин
МадридRating: 703
Conejo
15 august 2018, 19:00
Posted: 15 august 2018, 19:00

Нашел, в конце контрольную сумму добавили.

Answers: 2
 6   
Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 19:20
Posted: 15 august 2018, 19:20
Ответ пользователю
Conejo : 15 august 2018, 19:00
на это сообщение (развернуть)
Нашел, в конце контрольную сумму добавили.

Нашел, в конце контрольную сумму добавили.

Работает!

1.4.1 и 1.4.2 через нее, откатил на кастом.

Это невероятно)

Answers: 1
 1   
nickkee
Участник
МоскваRating: 69
nickkee
15 august 2018, 19:42
Posted: 15 august 2018, 19:42
Ответ пользователю
Conejo : 15 august 2018, 19:00
на это сообщение (развернуть)
Нашел, в конце контрольную сумму добавили.

Нашел, в конце контрольную сумму добавили.

Автор конструктора кастомов скоро добавит твой код себе и генератор будет давать уже готовые прошивки.

 1   
Ed01
Продвинутый форумчанин
Rating: 583
Ed01
15 august 2018, 22:09
Posted: 15 august 2018, 22:09

У шифрованных прошивок (офиц. 1.4.2 ENC), есть одно неприятное свойство: Если их ставить принудительно на обычные, минуя 1.4.1, то самокат зависнет. 

Спойлер
Возникнет путаница, в каком порядке устанавливать. ИМХО, лучше наверное, сделать откат на обычные. И далее, рулить их в конструкторе)

 2   
Conejo
Продвинутый форумчанин
МадридRating: 703
Conejo
15 august 2018, 23:20
Posted: 15 august 2018, 23:20

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

 3   
smith00
Новичок
smith00
16 august 2018, 14:51
Posted: 16 august 2018, 14:51
Ответ пользователю
Ed01 : 15 august 2018, 19:20
на это сообщение (развернуть)
Работает!1.4.1 и 1.4.2 через нее, откатил на кастом.Это невероятно)

Работает!

1.4.1 и 1.4.2 через нее, откатил на кастом.

Это невероятно)

Подскажите, пожалуйста, как это сделать? Я далек от этого, пошерстил форум, и сделал такие действия: скачал приложение M365_DownG , скачал архив выше, распаковал выбрал в приложении нажал Flash bin. В результате ошибка invalid bin. Что то мне подсказывает что я что то делаю не так)

Please can we have a guide
Гость
Please can we have a guide
16 august 2018, 17:41
Posted: 16 august 2018, 17:41

Please, we have a guide on how to do this, we would really appreciate

Ed01
Продвинутый форумчанин
Rating: 583
Ed01
16 august 2018, 17:49
Posted: 16 august 2018, 17:49
[quote="smith00"]сделал такие действия[/quote]


Все верно, только прошивальщик нужен другой. M365_DownG представлен в 2-х вариантах:

  1. V8 - Заливает только известные ей прошивки (официальные и несколько кастомов).
  2. V7 - Инженерная версия. Заливает в контроллер любую прошивку без проверки.
Answers: 1

 2   
Please can we have a guide
Гость
Please can we have a guide
16 august 2018, 17:58
Posted: 16 august 2018, 17:58

If this does not work, whats the worse case... restart back to 1.3.4 with SW link? .. Just thinking worse case here ;)

Please can we have a guide
Гость
Please can we have a guide
16 august 2018, 18:06
Posted: 16 august 2018, 18:06

Also.. would such a hack work on the ES1 scooter... 

Please can we have a guide
Гость
Please can we have a guide
16 august 2018, 18:09
Posted: 16 august 2018, 18:09
Ответ пользователю
Ed01 : 16 august 2018, 17:49
на это сообщение (развернуть)
[цитата smith00] Все верно, только прошивальщик нужен другой. M365_DownG представлен в 2-х вариантах:V8 - Заливает...
[quote="smith00"]сделал такие действия[/quote]


Все верно, только прошивальщик нужен другой. M365_DownG представлен в 2-х вариантах:

  1. V8 - Заливает только известные ей прошивки (официальные и несколько кастомов).
  2. V7 - Инженерная версия. Заливает в контроллер любую прошивку без проверки.

Thank you so much for your help! really very helpful :) 

Ed01
Продвинутый форумчанин
Rating: 583
Ed01
16 august 2018, 18:20
Posted: 16 august 2018, 18:20
[quote="Please can we have a guide "]Please, we have a guide on how to do this, we would really appreciate[/quote]

The "DRV140ENC.BIN" firmware installation is standard. With the help of Android application "M365_PATCHED V7".

You can download it from the page of the Custom Firmware Toolkit.

Use the firmware for rollback follows if you installed 1.4.1 or 1.4.2 and you want to return to the older versions.

Attention! But, do not install it on top of earlier versions, including 1.4.0! At your own risk. All as is)

[quote="Please can we have a guide "]If this does not work, whats the worse case... restart back to 1.3.4 with SW link? .. Just thinking worse case here ;)[/quote]

Yes, but it works)

[quote="Please can we have a guide "]Also.. would such a hack work on the ES1 scooter... [/quote]

No, only for the M365.