├── .github └── workflows │ ├── delete_old_workflow_runs.yml │ └── task.yml ├── .gitignore ├── LICENSE ├── data.json ├── download.py ├── fetch.py └── readme.md /.github/workflows/delete_old_workflow_runs.yml: -------------------------------------------------------------------------------- 1 | name: Delete Old Workflow Runs 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: '0 20 * * *' 6 | 7 | jobs: 8 | del_runs: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Delete Workflow Runs 12 | uses: Mattraks/delete-workflow-runs@v2 13 | with: 14 | token: ${{ github.token }} 15 | repository: ${{ github.repository }} 16 | retain_days: 1 17 | keep_minimum_runs: 0 18 | -------------------------------------------------------------------------------- /.github/workflows/task.yml: -------------------------------------------------------------------------------- 1 | name: Check Update and Upload Releases 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | workflow_dispatch: 8 | schedule: 9 | - cron: '0 */1 * * *' 10 | 11 | jobs: 12 | build: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | 19 | - name: Check Update 20 | run: python fetch.py 21 | 22 | - name: Download Latest Stable Releases 23 | run: python download.py 24 | 25 | - name: Check for EXE Files 26 | id: check_files 27 | run: | 28 | if find . -name "*.exe" -print -quit | grep -q .; then 29 | echo "exe_exists=true" >> $GITHUB_ENV 30 | else 31 | echo "exe_exists=false" >> $GITHUB_ENV 32 | fi 33 | 34 | - name: Check if Tag Exists 35 | id: check_tag 36 | run: | 37 | if git rev-parse "refs/tags/${{ env.latest_version }}" >/dev/null 2>&1; then 38 | echo "tag_exists=true" >> $GITHUB_ENV 39 | else 40 | echo "tag_exists=false" >> $GITHUB_ENV 41 | fi 42 | 43 | - name: Commit and Push Changes 44 | env: 45 | TZ: America/New_York 46 | run: | 47 | git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" 48 | git config --local user.name "github-actions[bot]" 49 | git add . 50 | git commit -m ":pencil: Auto update Edge at $(date +"%Y-%m-%d %H:%M")" -a || echo "No changes to commit" 51 | git push origin main 52 | 53 | - name: Upload Release 54 | if: env.exe_exists == 'true' && env.tag_exists == 'false' 55 | uses: softprops/action-gh-release@v2 56 | with: 57 | tag_name: ${{ env.latest_version }} 58 | files: '*.exe' 59 | 60 | - name: Reset Main Branch 61 | if: env.exe_exists == 'true' && env.tag_exists == 'false' 62 | run: | 63 | git checkout --orphan temp_branch 64 | git add -A 65 | git commit -m "Init" 66 | git push --force origin temp_branch:main 67 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # common 2 | .* 3 | !.*ignore 4 | !.*.yml 5 | !.*.yaml 6 | !.*rc 7 | !.*rc.* 8 | !.husky 9 | *.log* 10 | *.exe 11 | 12 | # dev 13 | 14 | node_modules/ 15 | 16 | # generated 17 | 18 | build/ 19 | coverage/ 20 | *.lock 21 | *-lock.json 22 | *-lock.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 shuax 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /data.json: -------------------------------------------------------------------------------- 1 | { 2 | "msedge-stable-win7and8-x86": { 3 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X86_109.0.1518.140.exe", 4 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/d87a3bbd-7fe5-4ec3-b806-293cca78b363?P1=1749078786&P2=404&P3=2&P4=OsXhEQX4xMw7tRZiKzAJdhNrWTPwPfvZYdJ8IQeHXpuOkEZMruKe5Xzx79G1fLjz5yV%2b8xhS5DLhUOyzAcTtbA%3d%3d", 5 | "\u5b57\u8282\u5927\u5c0f": 128512968, 6 | "Sha1": "TzGshrNvfT5B7bCaZaS/OYA8rro=", 7 | "Sha256": "2b48ce3b304b7b9a8f9377a42d8661ecdc53c5f2c6ee708da9d62127c7802c18", 8 | "version": "109.0.1518.140" 9 | }, 10 | "msedge-stable-win7and8-x64": { 11 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X64_109.0.1518.140.exe", 12 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/0c4084f3-1bed-4246-b8ed-206ccbe60e3c?P1=1749078787&P2=404&P3=2&P4=DHqhRn16dEDa%2bBYRjXqSU%2f8fnr2%2fLQriWd3Ew%2fI3f5a%2b60J%2fq7d4NfSf%2bRNkkk8lMVNrAZp5vSHAQs7hkECTZA%3d%3d", 13 | "\u5b57\u8282\u5927\u5c0f": 140696008, 14 | "Sha1": "ZAErwtGciZxGa0c/GYSACHDsL9o=", 15 | "Sha256": "70d496873a0a1ca14ae0a038d25856b2121b1b4b7bad9801ce639b144bac41f8", 16 | "version": "109.0.1518.140" 17 | }, 18 | "msedge-stable-win7and8-ARM64": { 19 | "\u6587\u4ef6\u540d": "MicrosoftEdge_ARM64_109.0.1518.140.exe", 20 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/630083c1-24b5-4545-9b0b-0f35a727bf89?P1=1749078788&P2=404&P3=2&P4=leJIU0en7ti6V4a6gpwNiyYw4Oj9rD2le1EwewUbYDn53xhvBat2aONG%2bN%2b5OjRgKa6Cf7WLehuBVTuO%2bzO5bQ%3d%3d", 21 | "\u5b57\u8282\u5927\u5c0f": 138498616, 22 | "Sha1": "7MODObKWCcJNgJHj75dHDyYxr7E=", 23 | "Sha256": "5de04fdc41cdbac64cecc86a3fd24ddba1520c6b7e04dbd1bfd9d3a6ec7bb971", 24 | "version": "109.0.1518.140" 25 | }, 26 | "msedge-stable-win-x86": { 27 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X86_137.0.3296.52.exe", 28 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749150606&P2=404&P3=2&P4=Uu1Avvx5N22J0%2bFw%2fh5jEAYedR7%2bsWXRDATKVTWeSYelN5iUc9DYAzFVpuDYbrnGJQ9YdbBGMRu6%2f3DToXkZtA%3d%3d", 29 | "\u5b57\u8282\u5927\u5c0f": 161584696, 30 | "Sha1": "pM8NWr7Z6b1S7N/+RWaguSOAPMU=", 31 | "Sha256": "1bff107b958c0f874a9a067539452f6c11db3562d4a9a656360dd87eaec52583", 32 | "version": "137.0.3296.52" 33 | }, 34 | "msedge-stable-win-x64": { 35 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X64_137.0.3296.52.exe", 36 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749150606&P2=404&P3=2&P4=IMW9XYeEAlcIUEPWyj%2b7KFJtX%2bY6HtiUrDSbhJmfpOyAOA6bO%2b%2fWwxccB6W5WXfRbgra0hdAkChEndZOKe4%2fcQ%3d%3d", 37 | "\u5b57\u8282\u5927\u5c0f": 179081312, 38 | "Sha1": "dmA4QCLFhCYimzn7o72S035/7bA=", 39 | "Sha256": "0dc95d11bdfcdf5fc22f6d78e880d9a7cbb71e3537841e2748d0917e2ee5717a", 40 | "version": "137.0.3296.52" 41 | }, 42 | "msedge-stable-win-ARM64": { 43 | "\u6587\u4ef6\u540d": "MicrosoftEdge_ARM64_137.0.3296.52.exe", 44 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749150607&P2=404&P3=2&P4=QeLBt0RMTYStrEdN7jotl3Yq3W36ibvHhdKJjUpT7II4BxoddrofV3EZVwd2D2dys%2fov163NgOt6O8lqUV0Btg%3d%3d", 45 | "\u5b57\u8282\u5927\u5c0f": 185230408, 46 | "Sha1": "xJq7hPtNLTMZTexvp902hhQA4+Q=", 47 | "Sha256": "5149678167046b032d55feb00143a4e288313ab132843ffa98d83ad6bb7b09b2", 48 | "version": "137.0.3296.52" 49 | }, 50 | "msedge-beta-win-x86": { 51 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X86_137.0.3296.52.exe", 52 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749147547&P2=404&P3=2&P4=TMPQMryHIWvnB5g%2fkGXMAhvQaeMLTlcSP7C26OJ8lAT1Lkjjatr4J1NbmlXcr97XzUjC0aCSG63jbhRE%2bzXRHA%3d%3d", 53 | "\u5b57\u8282\u5927\u5c0f": 161584696, 54 | "Sha1": "pM8NWr7Z6b1S7N/+RWaguSOAPMU=", 55 | "Sha256": "1bff107b958c0f874a9a067539452f6c11db3562d4a9a656360dd87eaec52583", 56 | "version": "137.0.3296.52" 57 | }, 58 | "msedge-beta-win-x64": { 59 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X64_137.0.3296.52.exe", 60 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749147548&P2=404&P3=2&P4=ZFV%2f7cDVwbMPV95T1%2bEecfmfvAYOKpUII5fci7%2bV4iJfrF2NorMraFvCX5FC7gkz4ptYRj%2fJG2oky98YWgyj0g%3d%3d", 61 | "\u5b57\u8282\u5927\u5c0f": 179081312, 62 | "Sha1": "dmA4QCLFhCYimzn7o72S035/7bA=", 63 | "Sha256": "0dc95d11bdfcdf5fc22f6d78e880d9a7cbb71e3537841e2748d0917e2ee5717a", 64 | "version": "137.0.3296.52" 65 | }, 66 | "msedge-beta-win-ARM64": { 67 | "\u6587\u4ef6\u540d": "MicrosoftEdge_ARM64_137.0.3296.52.exe", 68 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749147548&P2=404&P3=2&P4=AYLnTikJy9KRWU7SHrsmfl1ZNDJ2IYD9eqKxvZTMVDU1juWTZFK%2bwVb4LHxXGtCNcHwRpqWAYlU995MIJi33Hg%3d%3d", 69 | "\u5b57\u8282\u5927\u5c0f": 185230408, 70 | "Sha1": "xJq7hPtNLTMZTexvp902hhQA4+Q=", 71 | "Sha256": "5149678167046b032d55feb00143a4e288313ab132843ffa98d83ad6bb7b09b2", 72 | "version": "137.0.3296.52" 73 | }, 74 | "msedge-dev-win-x86": { 75 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X86_138.0.3338.1.exe", 76 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/476a32c8-fd81-4c1e-bf4c-fc7ede7258ba?P1=1749078791&P2=404&P3=2&P4=A87jA6DRJst%2fPGPN4F%2fTmdyCyyMrAMgfujdw6a163hjjqjmXxvtktEI5w7o1%2fk7OQYyrjMP1T2WAj7cdfCmBlg%3d%3d", 77 | "\u5b57\u8282\u5927\u5c0f": 162348624, 78 | "Sha1": "8Vw412VUWzvur44EQ+IhSCGIWqA=", 79 | "Sha256": "5fd493a7aacc19544eed4e870e0dd2f234ed0ec127a4b17fe36bfed59d27ca5b", 80 | "version": "138.0.3338.1" 81 | }, 82 | "msedge-dev-win-x64": { 83 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X64_138.0.3338.1.exe", 84 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/f433d3d4-fb45-403e-9c9c-1a2d2302604f?P1=1749078791&P2=404&P3=2&P4=iLDAxeWLqnhuBBGT7WNM3mBd%2fln3wsxBepAtAuIdX4LLcLtLk0OQGuC05J6dFimDCJnKsGNPNlwqbx3yiGvIig%3d%3d", 85 | "\u5b57\u8282\u5927\u5c0f": 179967056, 86 | "Sha1": "swmb6ipIHzrKshVfLXZkGNEgxas=", 87 | "Sha256": "958ece593dec5aaa2933b13eee4fd9b380bbfe45a9565e642dd973e57354b437", 88 | "version": "138.0.3338.1" 89 | }, 90 | "msedge-dev-win-ARM64": { 91 | "\u6587\u4ef6\u540d": "MicrosoftEdge_ARM64_138.0.3338.1.exe", 92 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/3127f720-0d4e-4970-901f-ddd1307bd1c4?P1=1749078792&P2=404&P3=2&P4=XlGCKCf45ufAH9qEqg2FgH8fsvXfUMkhYhb9Q3hzW5Suari7Jq%2bVCWG4Y%2bt%2fc5pFvHAjwbmdKjC%2b%2fqByiofGuA%3d%3d", 93 | "\u5b57\u8282\u5927\u5c0f": 186083392, 94 | "Sha1": "LIaxGX21vWaE5V50mxDeXsNakfM=", 95 | "Sha256": "105ea3944630e87ad8aa02b8d0cf518afd6b50012725b53a8872cf6d7af7faf5", 96 | "version": "138.0.3338.1" 97 | }, 98 | "msedge-canary-win-x86": { 99 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X86_138.0.3351.0.exe", 100 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/5aab84b7-c0bc-4c4f-b497-1818781d4e9e?P1=1749216331&P2=404&P3=2&P4=IogSboeeTzM44K20jJg%2bjT9zWqo5xycNsGx3yfTeU5bi375fCWxhf3BsGyCEFEDOclygp7BpjJJTAx1E6nc0aw%3d%3d", 101 | "\u5b57\u8282\u5927\u5c0f": 162557520, 102 | "Sha1": "lFkA3Rxp2inceC52C6Uq/aYGO4A=", 103 | "Sha256": "75873ca2a7f225ceb3cde5332cf362af76ead3d1830759fd1ca04bbe28e1f334", 104 | "version": "138.0.3351.0" 105 | }, 106 | "msedge-canary-win-x64": { 107 | "\u6587\u4ef6\u540d": "MicrosoftEdge_X64_138.0.3351.0.exe", 108 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/6acd8699-a4f0-4c76-9fb8-6f8b312c737f?P1=1749216332&P2=404&P3=2&P4=cda9E9SIYgdG7JT5f7zGWIWjfOITb%2bquDIybx0pQuBZzy9nBXilowh9HI%2bYnIzc5xG0cOOwQEgVDN2fAAQxPPg%3d%3d", 109 | "\u5b57\u8282\u5927\u5c0f": 182329920, 110 | "Sha1": "3+J8EvehtA7hKpkNIOd2iv0Sybk=", 111 | "Sha256": "41106b69c94023ca618dba0d6b3954074907e0cad87bf0e067a37c2f1e1a5840", 112 | "version": "138.0.3351.0" 113 | }, 114 | "msedge-canary-win-ARM64": { 115 | "\u6587\u4ef6\u540d": "MicrosoftEdge_ARM64_138.0.3351.0.exe", 116 | "\u4e0b\u8f7d\u94fe\u63a5": "https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/888ff64c-f5b4-4dfa-902a-9c470fcf948d?P1=1749216333&P2=404&P3=2&P4=dUa2m0NL0U2P2WwxVVlRsvNUEtwRwJT%2bZ9iCyVD2fxad95VX1xgHTGeCU7i4vIF3tebmPNwHfCyc18o3yo6%2brQ%3d%3d", 117 | "\u5b57\u8282\u5927\u5c0f": 186025040, 118 | "Sha1": "1N46H0xYW0m+G0BfUyxEtimXZzI=", 119 | "Sha256": "47d98b6c247b85d399da4dfc56f4a9857a5309be3ed5a3c245082be82bec73fe", 120 | "version": "138.0.3351.0" 121 | } 122 | } -------------------------------------------------------------------------------- /download.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import json 3 | import os 4 | import requests 5 | import shutil 6 | import subprocess 7 | 8 | 9 | def version_tuple(v): 10 | return tuple(map(int, (v.split(".")))) 11 | 12 | 13 | def get_last_version(): 14 | result = subprocess.run( 15 | ["git", "tag", "--sort=-creatordate"], capture_output=True, text=True 16 | ) 17 | version = result.stdout.split("\n")[0].strip() 18 | return version if version else "0.0.0.0" 19 | 20 | 21 | def check_update(): 22 | last_version = get_last_version() 23 | with open("data.json", "r") as f: 24 | data = json.load(f) 25 | latest_version = data["msedge-stable-win-x64"]["version"] 26 | github_env = os.getenv("GITHUB_ENV") 27 | if github_env and os.path.exists(github_env): 28 | with open(github_env, "a") as env_file: 29 | env_file.write(f"latest_version={latest_version}\n") 30 | return version_tuple(last_version) < version_tuple(latest_version) 31 | 32 | 33 | def get_download_url(version): 34 | with open("data.json", "r") as f: 35 | data = json.load(f) 36 | download_url = data[version]["下载链接"] 37 | return download_url 38 | 39 | 40 | def get_filename(version): 41 | with open("data.json", "r") as f: 42 | data = json.load(f) 43 | filename = data[version]["文件名"] 44 | return filename 45 | 46 | 47 | def download_file(url, name): 48 | if os.path.exists(name): 49 | print(f"The file {name} already exists, skip downloading") 50 | return 51 | r = requests.get(url, stream=True) 52 | with open(name, "wb") as f: 53 | for chunk in r.iter_content(chunk_size=1024): 54 | if chunk: 55 | f.write(chunk) 56 | print("Download complete") 57 | 58 | 59 | def download(): 60 | versions = [ 61 | "msedge-stable-win-x86", 62 | "msedge-stable-win-x64", 63 | "msedge-stable-win-ARM64", 64 | ] 65 | if check_update(): 66 | print("New version detected, start downloading...") 67 | for version in versions: 68 | download_file(get_download_url(version), get_filename(version)) 69 | if os.path.exists("__pycache__"): 70 | shutil.rmtree("__pycache__") 71 | else: 72 | print("No new version detected, skip downloading") 73 | return 74 | 75 | 76 | if __name__ == "__main__": 77 | download() 78 | -------------------------------------------------------------------------------- /fetch.py: -------------------------------------------------------------------------------- 1 | import base64 2 | import os 3 | import binascii 4 | import json 5 | from datetime import datetime, timezone, timedelta 6 | 7 | import requests 8 | 9 | requests.packages.urllib3.disable_warnings() 10 | 11 | channels = { 12 | "stable": "msedge-stable-win", 13 | "win7and8": "msedge-stable-win7and8", 14 | "beta": "msedge-beta-win", 15 | "dev": "msedge-dev-win", 16 | "canary": "msedge-canary-win", 17 | } 18 | 19 | check_version_url = ( 20 | "https://msedge.api.cdp.microsoft.com/api/v2/contents/Browser/namespaces/Default/names/{" 21 | "0}/versions/latest?action=select" 22 | ) 23 | get_download_link_url = ( 24 | "https://msedge.api.cdp.microsoft.com/api/v1.1/internal/contents/Browser/namespaces/Default" 25 | "/names/{0}/versions/{1}/files?action=GenerateDownloadInfo" 26 | ) 27 | 28 | results = {} 29 | 30 | 31 | def check_version(appid): 32 | # 必须包含 UA 头,否则报错 33 | headers = {"User-Agent": "Microsoft Edge Update/1.3.183.29;winhttp"} 34 | data = { 35 | "targetingAttributes": { 36 | "IsInternalUser": True, 37 | "Updater": "MicrosoftEdgeUpdate", 38 | "UpdaterVersion": "1.3.183.29", 39 | } 40 | } 41 | response = requests.post( 42 | check_version_url.format(appid), json=data, headers=headers, verify=False 43 | ) 44 | 45 | if response.status_code == 200: 46 | content_id = response.json().get("ContentId") 47 | if content_id: 48 | version = content_id.get("Version") 49 | return version 50 | else: 51 | print("ContentId not found in the response.") 52 | else: 53 | print( 54 | "Error: Unable to fetch version information. Status code:", 55 | response.status_code, 56 | ) 57 | 58 | return None 59 | 60 | 61 | def get_download_link(appid, version): 62 | headers = {"User-Agent": "Microsoft Edge Update/1.3.183.29;winhttp"} 63 | response = requests.post( 64 | get_download_link_url.format(appid, version), headers=headers, verify=False 65 | ) 66 | 67 | if response.status_code == 200: 68 | download_info = response.json() 69 | if download_info: 70 | # 首先按照字节大小从大到小排序 71 | download_info.sort(key=lambda x: x.get("SizeInBytes", 0), reverse=True) 72 | item = download_info[0] 73 | file_id = item.get("FileId", "") 74 | url = item.get("Url", "") 75 | size_in_bytes = item.get("SizeInBytes", 0) 76 | hashes = item.get("Hashes", {}) 77 | sha1 = hashes.get("Sha1", "") 78 | sha256 = hashes.get("Sha256", "") 79 | 80 | return { 81 | "文件名": file_id, 82 | "下载链接": url, 83 | "字节大小": size_in_bytes, 84 | "Sha1": sha1, 85 | "Sha256": sha256, 86 | } 87 | else: 88 | print("Download information not found in the response.") 89 | else: 90 | print( 91 | "Error: Unable to fetch download information. Status code:", 92 | response.status_code, 93 | ) 94 | 95 | return None 96 | 97 | 98 | def get_info(appid): 99 | version = check_version(appid) 100 | if version: 101 | name = appid 102 | info = get_download_link(appid, version) 103 | if info: 104 | info["version"] = version 105 | return name, info 106 | else: 107 | print("Error: Unable to obtain download information for", appid) 108 | else: 109 | print("Error: Unable to obtain version information for", appid) 110 | return None 111 | 112 | 113 | def version_tuple(v): 114 | return tuple(map(int, (v.split(".")))) 115 | 116 | 117 | def load_json(): 118 | global results 119 | if not os.path.exists("data.json"): 120 | results = {} 121 | return 122 | try: 123 | with open("data.json", "r") as f: 124 | results = json.load(f) 125 | if not results: 126 | results = {} 127 | except (json.JSONDecodeError, ValueError): 128 | results = {} 129 | 130 | 131 | def fetch(): 132 | current_day = datetime.now().day 133 | for channel, appid in channels.items(): 134 | for arch in ["x86", "x64", "ARM64"]: 135 | info_result = get_info(f"{appid}-{arch}") 136 | if info_result is not None: 137 | name, info = info_result 138 | else: 139 | print("Error: Unable to get info for", f"{appid}-{arch}") 140 | if name not in results: 141 | results[name] = info 142 | elif version_tuple(info["version"]) > version_tuple( 143 | results[name]["version"] 144 | ): 145 | results[name] = info 146 | elif current_day in [2, 11, 20, 28]: 147 | results[name] = info 148 | else: 149 | print("ignore", name, info["version"]) 150 | 151 | 152 | suffixes = ["B", "KB", "MB", "GB", "TB", "PB"] 153 | 154 | 155 | def humansize(nbytes): 156 | i = 0 157 | while nbytes >= 1024 and i < len(suffixes) - 1: 158 | nbytes /= 1024.0 159 | i += 1 160 | f = ("%.2f" % nbytes).rstrip("0").rstrip(".") 161 | return "%s %s" % (f, suffixes[i]) 162 | 163 | 164 | def replace_http_to_https(): 165 | for name, info in results.items(): 166 | results[name]["下载链接"] = ( 167 | results[name] 168 | .get("下载链接", "") 169 | .replace("http://msedge.b", "https://msedge.sb") 170 | ) 171 | 172 | 173 | def decode_sha256_base64(): 174 | for name, info in results.items(): 175 | sha256_base64 = info.get("Sha256", "") 176 | if ( 177 | sha256_base64 and len(sha256_base64) != 64 178 | ): # Only decode if not already decoded 179 | try: 180 | sha256_decoded = base64.b64decode(sha256_base64).hex() 181 | results[name]["Sha256"] = sha256_decoded 182 | except binascii.Error: 183 | print(f"Error: Unable to decode base64 for {name}") 184 | 185 | 186 | def save_md(): 187 | index_url = "https://github.com/Bush2021/edge_installer?tab=readme-ov-file#" 188 | with open("readme.md", "w") as f: 189 | f.write(f"# Microsoft Edge 离线安装包下载链接(请使用 7-Zip 解压)\n") 190 | f.write( 191 | f"稳定版存档:\n\n" 192 | ) 193 | f.write(f"## 注意\n") 194 | f.write(f"* Microsoft 直链会过期,请及时保存。\n") 195 | f.write(f"* 下载文件名可能是乱码,有需要的话请自行重命名。\n") 196 | f.write("\n") 197 | f.write(f"## 目录\n") 198 | for name in results.keys(): 199 | title = name[7:].replace("win-", "").replace("-", " ") 200 | link = index_url + title.replace(" ", "-") 201 | f.write(f"* [{title}]({link})\n") 202 | f.write("\n") 203 | for name, info in results.items(): 204 | f.write(f'## {name[7:].replace("win-", "").replace("-", " ")}\n') 205 | f.write(f'**最新版本**:{info.get("version", "")} \n') 206 | f.write(f'**文件大小**:{humansize(info.get("字节大小", 0))} \n') 207 | f.write(f'**文件名**:{info.get("文件名", "")} \n') 208 | f.write(f'**校验值(Sha256)**:{info.get("Sha256", "")} \n') 209 | f.write( 210 | f'**下载链接**:[{info.get("下载链接", "")}]({info.get("下载链接", "")}) \n' 211 | ) 212 | f.write("\n") 213 | 214 | 215 | def save_json(): 216 | with open("data.json", "w") as f: 217 | json.dump(results, f, indent=4) 218 | 219 | 220 | def main(): 221 | load_json() 222 | fetch() 223 | replace_http_to_https() 224 | decode_sha256_base64() 225 | save_md() 226 | save_json() 227 | 228 | 229 | if __name__ == "__main__": 230 | main() 231 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Microsoft Edge 离线安装包下载链接(请使用 7-Zip 解压) 2 | 稳定版存档: 3 | 4 | ## 注意 5 | * Microsoft 直链会过期,请及时保存。 6 | * 下载文件名可能是乱码,有需要的话请自行重命名。 7 | 8 | ## 目录 9 | * [stable win7and8 x86](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-win7and8-x86) 10 | * [stable win7and8 x64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-win7and8-x64) 11 | * [stable win7and8 ARM64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-win7and8-ARM64) 12 | * [stable x86](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-x86) 13 | * [stable x64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-x64) 14 | * [stable ARM64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#stable-ARM64) 15 | * [beta x86](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#beta-x86) 16 | * [beta x64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#beta-x64) 17 | * [beta ARM64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#beta-ARM64) 18 | * [dev x86](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#dev-x86) 19 | * [dev x64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#dev-x64) 20 | * [dev ARM64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#dev-ARM64) 21 | * [canary x86](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#canary-x86) 22 | * [canary x64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#canary-x64) 23 | * [canary ARM64](https://github.com/Bush2021/edge_installer?tab=readme-ov-file#canary-ARM64) 24 | 25 | ## stable win7and8 x86 26 | **最新版本**:109.0.1518.140 27 | **文件大小**:122.56 MB 28 | **文件名**:MicrosoftEdge_X86_109.0.1518.140.exe 29 | **校验值(Sha256)**:2b48ce3b304b7b9a8f9377a42d8661ecdc53c5f2c6ee708da9d62127c7802c18 30 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/d87a3bbd-7fe5-4ec3-b806-293cca78b363?P1=1749078786&P2=404&P3=2&P4=OsXhEQX4xMw7tRZiKzAJdhNrWTPwPfvZYdJ8IQeHXpuOkEZMruKe5Xzx79G1fLjz5yV%2b8xhS5DLhUOyzAcTtbA%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/d87a3bbd-7fe5-4ec3-b806-293cca78b363?P1=1749078786&P2=404&P3=2&P4=OsXhEQX4xMw7tRZiKzAJdhNrWTPwPfvZYdJ8IQeHXpuOkEZMruKe5Xzx79G1fLjz5yV%2b8xhS5DLhUOyzAcTtbA%3d%3d) 31 | 32 | ## stable win7and8 x64 33 | **最新版本**:109.0.1518.140 34 | **文件大小**:134.18 MB 35 | **文件名**:MicrosoftEdge_X64_109.0.1518.140.exe 36 | **校验值(Sha256)**:70d496873a0a1ca14ae0a038d25856b2121b1b4b7bad9801ce639b144bac41f8 37 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/0c4084f3-1bed-4246-b8ed-206ccbe60e3c?P1=1749078787&P2=404&P3=2&P4=DHqhRn16dEDa%2bBYRjXqSU%2f8fnr2%2fLQriWd3Ew%2fI3f5a%2b60J%2fq7d4NfSf%2bRNkkk8lMVNrAZp5vSHAQs7hkECTZA%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/0c4084f3-1bed-4246-b8ed-206ccbe60e3c?P1=1749078787&P2=404&P3=2&P4=DHqhRn16dEDa%2bBYRjXqSU%2f8fnr2%2fLQriWd3Ew%2fI3f5a%2b60J%2fq7d4NfSf%2bRNkkk8lMVNrAZp5vSHAQs7hkECTZA%3d%3d) 38 | 39 | ## stable win7and8 ARM64 40 | **最新版本**:109.0.1518.140 41 | **文件大小**:132.08 MB 42 | **文件名**:MicrosoftEdge_ARM64_109.0.1518.140.exe 43 | **校验值(Sha256)**:5de04fdc41cdbac64cecc86a3fd24ddba1520c6b7e04dbd1bfd9d3a6ec7bb971 44 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/630083c1-24b5-4545-9b0b-0f35a727bf89?P1=1749078788&P2=404&P3=2&P4=leJIU0en7ti6V4a6gpwNiyYw4Oj9rD2le1EwewUbYDn53xhvBat2aONG%2bN%2b5OjRgKa6Cf7WLehuBVTuO%2bzO5bQ%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/630083c1-24b5-4545-9b0b-0f35a727bf89?P1=1749078788&P2=404&P3=2&P4=leJIU0en7ti6V4a6gpwNiyYw4Oj9rD2le1EwewUbYDn53xhvBat2aONG%2bN%2b5OjRgKa6Cf7WLehuBVTuO%2bzO5bQ%3d%3d) 45 | 46 | ## stable x86 47 | **最新版本**:137.0.3296.52 48 | **文件大小**:154.1 MB 49 | **文件名**:MicrosoftEdge_X86_137.0.3296.52.exe 50 | **校验值(Sha256)**:1bff107b958c0f874a9a067539452f6c11db3562d4a9a656360dd87eaec52583 51 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749150606&P2=404&P3=2&P4=Uu1Avvx5N22J0%2bFw%2fh5jEAYedR7%2bsWXRDATKVTWeSYelN5iUc9DYAzFVpuDYbrnGJQ9YdbBGMRu6%2f3DToXkZtA%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749150606&P2=404&P3=2&P4=Uu1Avvx5N22J0%2bFw%2fh5jEAYedR7%2bsWXRDATKVTWeSYelN5iUc9DYAzFVpuDYbrnGJQ9YdbBGMRu6%2f3DToXkZtA%3d%3d) 52 | 53 | ## stable x64 54 | **最新版本**:137.0.3296.52 55 | **文件大小**:170.79 MB 56 | **文件名**:MicrosoftEdge_X64_137.0.3296.52.exe 57 | **校验值(Sha256)**:0dc95d11bdfcdf5fc22f6d78e880d9a7cbb71e3537841e2748d0917e2ee5717a 58 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749150606&P2=404&P3=2&P4=IMW9XYeEAlcIUEPWyj%2b7KFJtX%2bY6HtiUrDSbhJmfpOyAOA6bO%2b%2fWwxccB6W5WXfRbgra0hdAkChEndZOKe4%2fcQ%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749150606&P2=404&P3=2&P4=IMW9XYeEAlcIUEPWyj%2b7KFJtX%2bY6HtiUrDSbhJmfpOyAOA6bO%2b%2fWwxccB6W5WXfRbgra0hdAkChEndZOKe4%2fcQ%3d%3d) 59 | 60 | ## stable ARM64 61 | **最新版本**:137.0.3296.52 62 | **文件大小**:176.65 MB 63 | **文件名**:MicrosoftEdge_ARM64_137.0.3296.52.exe 64 | **校验值(Sha256)**:5149678167046b032d55feb00143a4e288313ab132843ffa98d83ad6bb7b09b2 65 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749150607&P2=404&P3=2&P4=QeLBt0RMTYStrEdN7jotl3Yq3W36ibvHhdKJjUpT7II4BxoddrofV3EZVwd2D2dys%2fov163NgOt6O8lqUV0Btg%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749150607&P2=404&P3=2&P4=QeLBt0RMTYStrEdN7jotl3Yq3W36ibvHhdKJjUpT7II4BxoddrofV3EZVwd2D2dys%2fov163NgOt6O8lqUV0Btg%3d%3d) 66 | 67 | ## beta x86 68 | **最新版本**:137.0.3296.52 69 | **文件大小**:154.1 MB 70 | **文件名**:MicrosoftEdge_X86_137.0.3296.52.exe 71 | **校验值(Sha256)**:1bff107b958c0f874a9a067539452f6c11db3562d4a9a656360dd87eaec52583 72 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749147547&P2=404&P3=2&P4=TMPQMryHIWvnB5g%2fkGXMAhvQaeMLTlcSP7C26OJ8lAT1Lkjjatr4J1NbmlXcr97XzUjC0aCSG63jbhRE%2bzXRHA%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/69b9989e-42e7-418e-9ae2-56d2ddda58df?P1=1749147547&P2=404&P3=2&P4=TMPQMryHIWvnB5g%2fkGXMAhvQaeMLTlcSP7C26OJ8lAT1Lkjjatr4J1NbmlXcr97XzUjC0aCSG63jbhRE%2bzXRHA%3d%3d) 73 | 74 | ## beta x64 75 | **最新版本**:137.0.3296.52 76 | **文件大小**:170.79 MB 77 | **文件名**:MicrosoftEdge_X64_137.0.3296.52.exe 78 | **校验值(Sha256)**:0dc95d11bdfcdf5fc22f6d78e880d9a7cbb71e3537841e2748d0917e2ee5717a 79 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749147548&P2=404&P3=2&P4=ZFV%2f7cDVwbMPV95T1%2bEecfmfvAYOKpUII5fci7%2bV4iJfrF2NorMraFvCX5FC7gkz4ptYRj%2fJG2oky98YWgyj0g%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/374973f4-2935-4802-a6ad-3efbd5eaded0?P1=1749147548&P2=404&P3=2&P4=ZFV%2f7cDVwbMPV95T1%2bEecfmfvAYOKpUII5fci7%2bV4iJfrF2NorMraFvCX5FC7gkz4ptYRj%2fJG2oky98YWgyj0g%3d%3d) 80 | 81 | ## beta ARM64 82 | **最新版本**:137.0.3296.52 83 | **文件大小**:176.65 MB 84 | **文件名**:MicrosoftEdge_ARM64_137.0.3296.52.exe 85 | **校验值(Sha256)**:5149678167046b032d55feb00143a4e288313ab132843ffa98d83ad6bb7b09b2 86 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749147548&P2=404&P3=2&P4=AYLnTikJy9KRWU7SHrsmfl1ZNDJ2IYD9eqKxvZTMVDU1juWTZFK%2bwVb4LHxXGtCNcHwRpqWAYlU995MIJi33Hg%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/cabadbf5-c0bc-455b-b8aa-c1780c9e2094?P1=1749147548&P2=404&P3=2&P4=AYLnTikJy9KRWU7SHrsmfl1ZNDJ2IYD9eqKxvZTMVDU1juWTZFK%2bwVb4LHxXGtCNcHwRpqWAYlU995MIJi33Hg%3d%3d) 87 | 88 | ## dev x86 89 | **最新版本**:138.0.3338.1 90 | **文件大小**:154.83 MB 91 | **文件名**:MicrosoftEdge_X86_138.0.3338.1.exe 92 | **校验值(Sha256)**:5fd493a7aacc19544eed4e870e0dd2f234ed0ec127a4b17fe36bfed59d27ca5b 93 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/476a32c8-fd81-4c1e-bf4c-fc7ede7258ba?P1=1749078791&P2=404&P3=2&P4=A87jA6DRJst%2fPGPN4F%2fTmdyCyyMrAMgfujdw6a163hjjqjmXxvtktEI5w7o1%2fk7OQYyrjMP1T2WAj7cdfCmBlg%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/476a32c8-fd81-4c1e-bf4c-fc7ede7258ba?P1=1749078791&P2=404&P3=2&P4=A87jA6DRJst%2fPGPN4F%2fTmdyCyyMrAMgfujdw6a163hjjqjmXxvtktEI5w7o1%2fk7OQYyrjMP1T2WAj7cdfCmBlg%3d%3d) 94 | 95 | ## dev x64 96 | **最新版本**:138.0.3338.1 97 | **文件大小**:171.63 MB 98 | **文件名**:MicrosoftEdge_X64_138.0.3338.1.exe 99 | **校验值(Sha256)**:958ece593dec5aaa2933b13eee4fd9b380bbfe45a9565e642dd973e57354b437 100 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/f433d3d4-fb45-403e-9c9c-1a2d2302604f?P1=1749078791&P2=404&P3=2&P4=iLDAxeWLqnhuBBGT7WNM3mBd%2fln3wsxBepAtAuIdX4LLcLtLk0OQGuC05J6dFimDCJnKsGNPNlwqbx3yiGvIig%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/f433d3d4-fb45-403e-9c9c-1a2d2302604f?P1=1749078791&P2=404&P3=2&P4=iLDAxeWLqnhuBBGT7WNM3mBd%2fln3wsxBepAtAuIdX4LLcLtLk0OQGuC05J6dFimDCJnKsGNPNlwqbx3yiGvIig%3d%3d) 101 | 102 | ## dev ARM64 103 | **最新版本**:138.0.3338.1 104 | **文件大小**:177.46 MB 105 | **文件名**:MicrosoftEdge_ARM64_138.0.3338.1.exe 106 | **校验值(Sha256)**:105ea3944630e87ad8aa02b8d0cf518afd6b50012725b53a8872cf6d7af7faf5 107 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/3127f720-0d4e-4970-901f-ddd1307bd1c4?P1=1749078792&P2=404&P3=2&P4=XlGCKCf45ufAH9qEqg2FgH8fsvXfUMkhYhb9Q3hzW5Suari7Jq%2bVCWG4Y%2bt%2fc5pFvHAjwbmdKjC%2b%2fqByiofGuA%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/3127f720-0d4e-4970-901f-ddd1307bd1c4?P1=1749078792&P2=404&P3=2&P4=XlGCKCf45ufAH9qEqg2FgH8fsvXfUMkhYhb9Q3hzW5Suari7Jq%2bVCWG4Y%2bt%2fc5pFvHAjwbmdKjC%2b%2fqByiofGuA%3d%3d) 108 | 109 | ## canary x86 110 | **最新版本**:138.0.3351.0 111 | **文件大小**:155.03 MB 112 | **文件名**:MicrosoftEdge_X86_138.0.3351.0.exe 113 | **校验值(Sha256)**:75873ca2a7f225ceb3cde5332cf362af76ead3d1830759fd1ca04bbe28e1f334 114 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/5aab84b7-c0bc-4c4f-b497-1818781d4e9e?P1=1749216331&P2=404&P3=2&P4=IogSboeeTzM44K20jJg%2bjT9zWqo5xycNsGx3yfTeU5bi375fCWxhf3BsGyCEFEDOclygp7BpjJJTAx1E6nc0aw%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/5aab84b7-c0bc-4c4f-b497-1818781d4e9e?P1=1749216331&P2=404&P3=2&P4=IogSboeeTzM44K20jJg%2bjT9zWqo5xycNsGx3yfTeU5bi375fCWxhf3BsGyCEFEDOclygp7BpjJJTAx1E6nc0aw%3d%3d) 115 | 116 | ## canary x64 117 | **最新版本**:138.0.3351.0 118 | **文件大小**:173.88 MB 119 | **文件名**:MicrosoftEdge_X64_138.0.3351.0.exe 120 | **校验值(Sha256)**:41106b69c94023ca618dba0d6b3954074907e0cad87bf0e067a37c2f1e1a5840 121 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/6acd8699-a4f0-4c76-9fb8-6f8b312c737f?P1=1749216332&P2=404&P3=2&P4=cda9E9SIYgdG7JT5f7zGWIWjfOITb%2bquDIybx0pQuBZzy9nBXilowh9HI%2bYnIzc5xG0cOOwQEgVDN2fAAQxPPg%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/6acd8699-a4f0-4c76-9fb8-6f8b312c737f?P1=1749216332&P2=404&P3=2&P4=cda9E9SIYgdG7JT5f7zGWIWjfOITb%2bquDIybx0pQuBZzy9nBXilowh9HI%2bYnIzc5xG0cOOwQEgVDN2fAAQxPPg%3d%3d) 122 | 123 | ## canary ARM64 124 | **最新版本**:138.0.3351.0 125 | **文件大小**:177.41 MB 126 | **文件名**:MicrosoftEdge_ARM64_138.0.3351.0.exe 127 | **校验值(Sha256)**:47d98b6c247b85d399da4dfc56f4a9857a5309be3ed5a3c245082be82bec73fe 128 | **下载链接**:[https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/888ff64c-f5b4-4dfa-902a-9c470fcf948d?P1=1749216333&P2=404&P3=2&P4=dUa2m0NL0U2P2WwxVVlRsvNUEtwRwJT%2bZ9iCyVD2fxad95VX1xgHTGeCU7i4vIF3tebmPNwHfCyc18o3yo6%2brQ%3d%3d](https://msedge.sb.tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/888ff64c-f5b4-4dfa-902a-9c470fcf948d?P1=1749216333&P2=404&P3=2&P4=dUa2m0NL0U2P2WwxVVlRsvNUEtwRwJT%2bZ9iCyVD2fxad95VX1xgHTGeCU7i4vIF3tebmPNwHfCyc18o3yo6%2brQ%3d%3d) 129 | 130 | --------------------------------------------------------------------------------