Open stepik opened 1 month ago
Hi stepik, are you using the heymelody from Google Play store? Heymelody has different channels/CDNs for mainland China and international, which has different update url.
To begin with, you should decompile and edit the classes.dex
file in heymelody, modify the update url from https
to http
, to avoid certificate check.
For the China version of heymelody, the update url is https://iot-earbuds-cn.heytapmobi.com/v1/earphone/firmwareInfo
.
The international one is https://iot-earbuds-XX.allawnos.com/v1/earphone/firmwareInfo
. (Please note the XX
varies depending on CDNs)
I had updated the codes to adapt to the latest version of heymelody, please test if it works.
Thank you for your support! Already see your new files and I use Chinese version, but in new version of heymelody I can't find https://iot-earbuds-cn.heytapmobi.com in classes.dex with mt manager app. Can you adapt app for me?23 июл. 2024 г. 00:07 пользователь icyray @.***> написал: Hi stepik, are you using the heymelody from Google Play store? Heymelody has different channels/CDNs for mainland China and international, which has different update url. To begin with, you should decompile and edit the classes.dex file in heymelody, modify the update url from https to http, to avoid certificate check. For the China version of heymelody, the update url is https://iot-earbuds-cn.heytapmobi.com/v1/earphone/firmwareInfo. The international one is https://iot-earbuds-XX.allawnos.com/v1/earphone/firmwareInfo. (Please note the XX varies depending on CDNs) I had updated the codes to adapt to the latest version of heymelody, please test if it works.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>
The latest heymelody seems to block plain http request, and I am still trying to reverse it.
There are some things you can have a try.
Hi, I found old version of heymelody 1.0.80 and add to whitelist.xml config for my earbuds, then I modify the link to http, but it won't work, I found that the program just translate http to https automatically from dns, then I decided to change the address simply changing 'earbuds' to 'earbud' in the address link and it works. But the old version must include all new earbuds in the whitelist.By the way in new version of heymelody they add sh-256 information for firmware request, and in downgrade_server.py in string 119 PID=0X is wrong, must be PID=0x. PS: can we download old firmware, like 165 version for 1+ buds pro 2? I found that all firmware files are on oppo servers, but you can download them if you request the correct link with the file name. Can we scan the server for files or get a list with links to the firmware files?
I am glad to hear that you have found a solution to downgrade your buds. The latest heymelody now read its config from cloud, get the rule and compare to build-in update URL, those illegal domain will be discard, so it become more difficult to mod the app.
in downgrade_server.py in string 119 PID=0X is wrong, must be PID=0x.
This is because it was literally in firmware of OPPO Enco X. Now I add 0x
support to script.
in new version of heymelody they add sh-256 information for firmware request
This is also a feature for new devices. Codes were updated, but I don't have a device to test it, so please test if it works.
can we download old firmware, like 165 version for 1+ buds pro 2?
Fortunately, the form of download URL for Oneplus buds pro 2 is regular. However version 165 was not deployed on the server.
Thank you for your answer and help. I found that on the different servers (en, cn,in, sg) there are different firmwares, I can download 169, 173 version also. Maybe they changed naming of firmwares and I can't load it, very need 165 firmware. Can we send request for checking all firmwares on the server by product id?
Hi i Found these blog https://blog.csdn.net/qq_34922743/article/details/124686612 There is another program to downgrade, and it can scan server for all firmwares, can we make same functionality? I can't download it.
No, there are not any known API that we can get all available firmwares on the server. The API for firmware update check only point to the lastest one (It was implemented in update_checker
folder). The only possible two way, are: a) analyse the form of download URL, then try to get it; b) run a script daily, and collect each firmware once it get a update.
The blog you mentioned might use the second way. I can't download it either, maybe you can have a direct talk with the author.
I don't have csdn account, because I live outside China. Can you Ask him?
Sorry, but I can only solve the problem with this repo.
Hi, can you help to modify downgrade script? The links was changed, and it is not working for new version heymelody.