R0rt1z2 / realme-ota

Request and download OTA packages from BBK server(s)
GNU General Public License v3.0
150 stars 49 forks source link

OTA for RMX3393 EU region (NV44) #45

Closed amigaser closed 1 year ago

amigaser commented 1 year ago

How to get OTA for EU region (NV44)? Last OTA C.08 version. JSON for OTA for RU region (NV37) comes.

f:\Realme\Update\realme-ota-master\realme_ota>main.py RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100
[2023-02-27 22:23:26.423728] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-27 22:23:26.423728] I: Wait for the endpoint to reply

f:\Realme\Update\realme-ota-master\realme_ota>[2023-02-27 22:23:27.517018] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-27 22:23:27.517018] I: Wait for the endpoint to reply
[2023-02-27 22:23:28.417206] F: Response status mismatch, expected '200' got '304' (artifactV1Result is empty)!
rapperskull commented 1 year ago

First of all, if you want to get the update for a European region, you have to set the region accordingly. This is the correct command: main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100

Second. the rollout of an update can vary by country. I know that in some countries the 9 Pro+ is not receiving any update since months. Can you tell me what country you're in?

Anyway, you can circumvent this problem by using a proxy in another European country: HTTPS_PROXY="XXX.XXX.XXX.XXX:YYYY" main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100

Just replace XXX.XXX.XXX.XXX:YYYY with the IP address and port of an HTTPS proxy. You can find proxy lists online, just Google it.

amigaser commented 1 year ago
f:\Realme\Update\realme-ota-master\realme_ota>set HTTPS_PROXY="195.201.39.119:8080"

f:\Realme\Update\realme-ota-master\realme_ota>main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100
[2023-02-28 00:36:27.686273] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-28 00:36:27.686273] I: Wait for the endpoint to reply
[2023-02-28 00:36:27.688267] F: Something went wrong while requesting to the endpoint :( Failed to parse: "195.201.39.119:8080"!

What's wrong?

rapperskull commented 1 year ago

Try to set HTTPS_PROXY="https://195.201.39.119:8080". Unfortunately requests changed the format multiple times, so it depends on what version you have.

amigaser commented 1 year ago

Yes, now it works. Where can I find working proxies with European ip?

rapperskull commented 1 year ago

I usually just Google "proxy list" when I need one. They come and go and are not very reliable, so there's no point in saving them for later. Just find some website that looks good and grab one of the latest. One example of such website is this one.

amigaser commented 1 year ago

Thank you very much!

amigaser commented 1 year ago

I was never able to find working free proxies. But I think it don't help. The script finds the OTA for the A.XX update branch for NV44 region, truth is not the latest. Apparently the problem is something else. Perhaps these updates simply do not exist on the server.

f:\Realme\Update\realme-ota-master\realme_ota>main.py RMX3393 RMX3393_11.A.12_0120_202208171449 3 01000100
[2023-02-28 11:26:16.976803] I: Load payload for RMX3393 (RealmeUI V3)
[2023-02-28 11:26:16.976803] I: Wait for the endpoint to reply
[2023-02-28 11:26:18.122890] I: All good
[2023-02-28 11:26:18.122890] I: Let's rock
[2023-02-28 11:26:18.123914] I: Party time
{
    "aid": "RMX3393NV44_11.A",
    "androidVersion": "Android 12",
    "colorOSVersion": "ColorOS 12.1",
    "componentAssembleType": true,
    "components": [
        {
            "componentId": "my_manifest_RMX3393_11.A.13_0130_202206231543.44.595e76bb",
            "componentName": "my_manifest",
            "componentPackets": {
                "id": "foreign_my_manifest_RMX3393_11.A.13_0130_202206231543.44.595e76bb_1_5294e178e74fb2625d3addbea71d1e03",
                "manualUrl": "https://gauss-componentotacostmanual-sg.allawnofs.com/remove-9737c3cde7d16b0a9f47c9350b3f3cd3/component-ota/22/06/24/c4cc7daa49e34bdd85c3a20d4335660c.zip",
                "md5": "5294e178e74fb2625d3addbea71d1e03",
                "size": "4322024806",
                "type": "1",
                "url": "https://gauss-componentotacostmanual-sg.allawnofs.com/remove-9737c3cde7d16b0a9f47c9350b3f3cd3/component-ota/22/06/24/c4cc7daa49e34bdd85c3a20d4335660c.zip",
                "vabInfo": {
                    "data": {
                        "extra_params": "metadata_hash:dd0d6d1098a85950429ff3d737cde6663d197bdad2f53cb542fbc2f5e5e40858",
                        "header": [
                            "FILE_HASH=QaSe0fcMbgKnuFgXZSVOQWhrMTx2Hn6n2lS2xLFxEL0=",
                            "FILE_SIZE=4322019203",
                            "METADATA_HASH=vwdvaxGf2P+1WgIrHd1ek7ItJUZIVsHkAHEnTQ6yrhQ=",
                            "METADATA_SIZE=167962",
                            "oplus_rom_version=V12.1",
                            "security_patch_vendor=2022-06-05",
                            "security_patch=2022-06-05",
                            "ota_target_version=RMX3393_11.A.13_0130_202206231543",
                            "oplus_update_engine_verify_disable=0",
                            "oplus_separate_soft=2169F"
                        ],
                        "otaStreamingProperty": "payload_metadata.bin:2058:168229,payload.bin:2058:4322019203,payload_properties.txt:4322021319:355,metadata:69:926,metadata.pb:1063:928",
                        "vab_package_hash": "5294e178e74fb2625d3addbea71d1e03"
                    }
                }
            },
            "componentVersion": "RMX3393_11.A.13_0130_202206231543.44.595e76bb"
        }
    ],
    "decentralize": {
        "offset": 21464,
        "round": 28800,
        "strategyVersion": "default"
    },
    "description": {
        "firstTitle": "This update integrated a security patch, optimized the camera performance, and improved user experience.",
        "panelUrl": "https://gauss-componentotacostmanual-sg.allawnofs.com/remove-9737c3cde7d16b0a9f47c9350b3f3cd3/component-ota/22/06/28/5a6b23f24f164f1ca09f79a8b9ca158e.html",
        "share": ".",
        "url": "https://h5fsf.coloros.com/3adb669b49144103b5afb789182233ec/static/index.html#/about"
    },
    "descriptionType": 0,
    "googlePatchInfo": "0",
    "group": "RMX3393_11.A.13_0130_202206231543",
    "id": "62e3369e124eec010f37f551",
    "isNvDescription": false,
    "isRecruit": false,
    "isSecret": false,
    "noticeType": 0,
    "nvId16": "NV44",
    "osVersion": "ColorOS 12.1",
    "otaTemplateId": "62bff5a666c961010ea34859",
    "otaVersion": "RMX3393_11.A.13_0130_202206231543",
    "paramFlag": 1,
    "parent": "ota-template",
    "realAndroidVersion": "Android 12",
    "realOsVersion": "ColorOS 12.1",
    "reminderType": 0,
    "rid": "6f8acf98-3a0e-4098-b9f4-bd77ca46cadc",
    "securityPatch": "2022-06-05",
    "securityPatchVendor": "2022-06-05",
    "silenceUpdate": 0,
    "status": "published",
    "timestampH5": "2022.06.28",
    "versionCode": 130,
    "versionName": "RMX3393_11_A.13",
    "versionTypeH5": "Official version"
}
rapperskull commented 1 year ago

Just tested this one 5.189.184.6:80 from the website I sent you and it works. You can find version C.08. By the way you can set the OTA version to all zeroes to always get the last one available, like this: RMX3393_11.C.00_0000_000000000000

EDIT: As I said, free proxies found online are not very reliable. Try two or three times, then move to the next. Make sure you use an HTTPS proxy (it should say "Yes" on the HTTPS column on that website).

EDIT2: By the way, version A.13 is by no means the latest of the A branch. The last one is A.18 and you can find it with a proxy.

amigaser commented 1 year ago

Please give me links to the OTA C.08 and A.18 for NV44. I can't get json through a proxy.

rapperskull commented 1 year ago

C.08: https://gauss-componentotacostmanual-eu.allawnofs.com/remove-cb12881299621fd2d863218c7d48647d/component-ota/23/02/21/852a3884e8144876a364d7791eeda00d.zip A.18: https://gauss-componentotacostmanual-eu.allawnofs.com/remove-5c6b4a85cdb76b34b15d79e2adc63f98/component-ota/22/10/20/22e3fa9f80944c91941f8397edee2581.zip

You can install C.08 directly, it's a full OTA.

amigaser commented 1 year ago

Proxy verification passes, but I get this all the time. Maybe the problem is not a proxy?

f:\Realme\Update\realme-ota-master\realme_ota>set HTTPS_PROXY="https://80.154.30.163:80"

f:\Realme\Update\realme-ota-master\realme_ota>main.py RMX3393 RMX3393_11.C.00_0000_000000000000 4 01000100
[2023-02-28 12:42:32.236990] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-28 12:42:32.238010] I: Wait for the endpoint to reply
[2023-02-28 12:42:32.241311] F: Something went wrong while requesting to the endpoint :( HTTPSConnectionPool(host='component-ota-f.coloros.com', port=443): Max retries exceeded with url: /update/v2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001B698E974C0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')))!

I also noticed that the server address is yours https://gauss-componentotacostmanual-eu.allawnofs.com and mine https://gauss-componentotacostmanual-sg.allawnofs.com

rapperskull commented 1 year ago

Your server is different because you didn't set the EU region with -r 3. The proxy you used doesn't work for me too. EDIT: I searched your proxy online and it is a HTTP proxy, not HTTPS, of course it doesn't work.

amigaser commented 1 year ago

Many thanks for your help.

amigaser commented 1 year ago

Still, problems with the script. The proxy below check passes, and the script throws an error.

f:\Realme\Update\realme-ota-master\realme_ota>set HTTPS_PROXY="https://31.186.239.244:8080"

f:\Realme\Update\realme-ota-master\realme_ota>main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100
[2023-02-28 17:54:05.908684] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-28 17:54:05.908684] I: Wait for the endpoint to reply
[2023-02-28 17:54:05.912663] F: Something went wrong while requesting to the endpoint :( HTTPSConnectionPool(host='component-ota-eu.coloros.com', port=443): Max retries exceeded with url: /update/v2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002B201AC7550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')))!
rapperskull commented 1 year ago

That proxy works for me. Have you tried multiple times? What requests version are you running? Please run pip show requests and report back.

amigaser commented 1 year ago

I've tried many times.

f:\Realme\Update\realme-ota-master\realme_ota>pip show requests
Name: requests
Version: 2.27.1
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\amiga\appdata\local\programs\python\python310\lib\site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:
rapperskull commented 1 year ago

Run pip install --upgrade requests and try again, let me know if something changes.

amigaser commented 1 year ago
f:\Realme\Update\realme-ota-master\realme_ota>pip show requests
Name: requests
Version: 2.28.2
Summary: Python HTTP for Humans.
Home-page: https://requests.readthedocs.io
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\amiga\appdata\local\programs\python\python310\lib\site-packages
Requires: certifi, charset-normalizer, idna, urllib3
Required-by:

f:\Realme\Update\realme-ota-master\realme_ota>set HTTPS_PROXY="https://31.186.239.244:8080"

f:\Realme\Update\realme-ota-master\realme_ota>main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100
[2023-02-28 18:29:31.369317] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-28 18:29:31.370313] I: Wait for the endpoint to reply
[2023-02-28 18:29:31.373306] F: Something went wrong while requesting to the endpoint :( HTTPSConnectionPool(host='component-ota-eu.coloros.com', port=443): Max retries exceeded with url: /update/v2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001EFDA127550>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')))!

f:\Realme\Update\realme-ota-master\realme_ota>main.py -r 3 RMX3393 RMX3393_11.C.05_0000_000000000000 4 01000100
[2023-02-28 18:31:17.144633] I: Load payload for RMX3393 (RealmeUI V4)
[2023-02-28 18:31:17.145631] I: Wait for the endpoint to reply
[2023-02-28 18:31:17.147749] F: Something went wrong while requesting to the endpoint :( HTTPSConnectionPool(host='component-ota-eu.coloros.com', port=443): Max retries exceeded with url: /update/v2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x00000261E8B475E0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')))!
rapperskull commented 1 year ago

I was able to reproduce the problem Apparently it happens only on Windows. I will update you.

rapperskull commented 1 year ago

cmd /V /C "set "HTTPS_PROXY=31.186.239.244:8080" && main.py -r 3 RMX3393 RMX3393_11.C.06_1060_202301111732 4 01000100" I will find a way to make it easier for Windows users though.

amigaser commented 1 year ago

Thanks. I'll be waiting.

rapperskull commented 1 year ago

Actually, you can just do set ALL_PROXY=31.186.239.244:8080 and it will work (make sure HTTPS_PROXY is not set).

rapperskull commented 1 year ago

I updated the README so that future users will not have the same problem (hopefully).