黑白群暉激活AME(Advanced Media Extention)

黑群暉激活Advanced Media Extensions(AME)解碼HEVC視頻和HEIC圖片

聲明:此教程在正版群暉系統中進行的操作,雖然也能用于非正版系統中AME的安裝,但是在非正版系統中安裝AME屬于破解行為,對系統造成的影響和其它方面的影響由個人負責,如有實力請支持正版群暉。

DSM的Advanced Media Extensions套件必須要登錄群暉賬號才能激活使用,導致黑群暉在使用Video Station或者Synology Photos等套件時,無法查看高效率視頻編碼 (HEVC) 和高效率圖像容器 (HEIC) 文件。今天就來說說黑群暉如何通過補丁激活AME。

一、什么是Advanced Media Extensions?

其功能是:支持在群暉DSM上查看高效率視頻編碼 (HEVC) 和高效率圖像容器 (HEIC) 文件
在這里插入圖片描述
激活后可在不同套件中實現:

  • File Station
  • Synology Drive
  • Surveillance Station
  • Synology MailPlus
  • Synology Mail Plus Server
  • Synology Photos
  • Universal Viewer
  • Video Station

二、如何激活AME?

說明:通過補丁激活AME屬破解行為,該教程僅用于個人學習,不得用于商業行為,后果自負。有實力請支持群暉(本人黑白群暉都使用,最開始用的黑群暉,后來覺得不錯入手了正品,感謝群暉對個人愛好者的支持與包容)

一、通過ssh連接到群暉

在這里插入圖片描述

二、在tmp下創建一個py腳本

  • 創建腳本,touch ame.py
    在這里插入圖片描述
  • 使用vim在腳本中輸入以下代碼:

DSM7.1

import hashlib
import os
import subprocessr = ['669066909066906690', 'B801000000', '30']
s = [(0x1F28, 0), (0x48F5, 1), (0x4921, 1), (0x4953, 1), (0x4975, 1), (0x9AC8, 2)]prefix = '/var/packages/CodecPack/target/usr'
so = prefix + '/lib/libsynoame-license.so'print("Patching")
with open(so, 'r+b') as fh:full = fh.read()if hashlib.md5(full).digest().hex() != 'fcc1084f4eadcf5855e6e8494fb79e23':print("MD5 mismatch")exit(1)for x in s:fh.seek(x[0] + 0x8000, 0)fh.write(bytes.fromhex(r[x[1]]))lic = '/usr/syno/etc/license/data/ame/offline_license.json'
os.makedirs(os.path.dirname(lic), exist_ok=True)
with open(lic, 'w') as licf:licf.write('[{"appType": 14, "appName": "ame", "follow": ["device"], "server_time": 1666000000, "registered_at": 1651000000, "expireTime": 0, "status": "valid", "firstActTime": 1651000001, "extension_gid": null, "licenseCode": "0", "duration": 1576800000, "attribute": {"codec": "hevc", "type": "free"}, "licenseContent": 1}, {"appType": 14, "appName": "ame", "follow": ["device"], "server_time": 1666000000, "registered_at": 1651000000, "expireTime": 0, "status": "valid", "firstActTime": 1651000001, "extension_gid": null, "licenseCode": "0", "duration": 1576800000, "attribute": {"codec": "aac", "type": "free"}, "licenseContent": 1}]')subprocess.run(['/usr/syno/etc/rc.sysv/apparmor.sh', 'remove_packages_profile', '0', 'CodecPack'])apparmor = '/var/packages/CodecPack/target/apparmor'
if os.path.exists(apparmor):os.rename(apparmor, apparmor + ".bak")print("Checking whether patch is successful...")
ret = os.system(prefix + "/bin/synoame-bin-check-license")
if ret == 0:print("Successful, updating codecs...")os.system(prefix + "/bin/synoame-bin-auto-install-needed-codec")print("Done")
else:print(f"Patch is unsuccessful, retcode = {ret}")

DSM7.2

import hashlib
import os
import subprocessr = ['669066909066906690', 'B801000000', '30']
s = [(0x3718, 0), (0x60A5, 1), (0x60D1, 1), (0x6111, 1), (0x6137, 1), (0xB5F0, 2)]prefix = '/var/packages/CodecPack/target/usr'
so = prefix + '/lib/libsynoame-license.so'print("Patching")
with open(so, 'r+b') as fh:full = fh.read()if hashlib.md5(full).digest().hex() != '09e3adeafe85b353c9427d93ef0185e9':print("MD5 mismatch")exit(1)for x in s:fh.seek(x[0] + 0x8000, 0)fh.write(bytes.fromhex(r[x[1]]))lic = '/usr/syno/etc/license/data/ame/offline_license.json'
os.makedirs(os.path.dirname(lic), exist_ok=True)
with open(lic, 'w') as licf:licf.write('[{"attribute": {"codec": "hevc", "type": "free"}, "status": "valid", "extension_gid": null, "expireTime": 0, "appName": "ame", "follow": ["device"], "duration": 1576800000, "appType": 14, "licenseContent": 1, "registered_at": 1649315995, "server_time": 1685421618, "firstActTime": 1649315995, "licenseCode": "0"}, {"attribute": {"codec": "aac", "type": "free"}, "status": "valid", "extension_gid": null, "expireTime": 0, "appName": "ame", "follow": ["device"], "duration": 1576800000, "appType": 14, "licenseContent": 1, "registered_at": 1649315995, "server_time": 1685421618, "firstActTime": 1649315995, "licenseCode": "0"}]')subprocess.run(['/usr/syno/etc/rc.sysv/apparmor.sh', 'remove_packages_profile', '0', 'CodecPack'])apparmor = '/var/packages/CodecPack/target/apparmor'
if os.path.exists(apparmor):os.rename(apparmor, apparmor + ".bak")print("Checking whether patch is successful...")
ret = os.system(prefix + "/bin/synoame-bin-check-license")
if ret == 0:print("Successful, updating codecs...")os.system(prefix + "/bin/synoame-bin-auto-install-needed-codec")print("Done")
else:print(f"Patch is unsuccessful, retcode = {ret}")

三、運行腳本獲取并安裝AME

運行剛剛創建的腳本,如果出現權限問題,則打開管理員權限

$ sudo su
password:****
# python ame.py
  • 最后看到done即完成安裝ame
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20403.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20403.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20403.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2006NOIP普及組真題 1. 明明的隨機數

線上OJ&#xff1a; 【06NOIP普及組】明明的隨機數 核心思想&#xff1a; 本題的要求是 1、去重 2、排序 以上兩個要求正好可以使用 set 來實現。set 自帶了去重和排序的功能。輸出時使用 iterator 即可。 解法一、set #include <bits/stdc.h> using namespace std;in…

這里一定有你不知道的VS調試技巧

目錄 使用環境&#xff1a;Visual Studio 2022,如無特殊說明&#xff0c;都是在Debug、x64環境下編譯 一.什么是BUG 二.調試快捷鍵 F9&#xff1a;創建斷電或取消斷點 條件斷點&#xff1a;滿足這個條件才觸發 F5&#xff1a;啟動調試&#xff0c;經常?來直接跳到下?個斷…

20 - grace數據處理 - 地下水儲量計算過程分解 - 地下水儲量計算

20 - grace數據處理 - 地下水儲量計算過程分解 - 地下水儲量計算 0 引言1 地下水儲量變化計算過程0 引言 由水平衡方程可以將地下水儲量的計算過程分解為3個部分,第一部分計算陸地水儲量變化、第二部分計算地表水儲量變化、第三部分計算冰后回彈改正、第四部分計算地下水儲量變…

python爬蟲之JS逆向——網頁數據解析

目錄 一、正則 1 正則基礎 元字符 基本使用 通配符: . 字符集: [] 重復 位置 管道符和括號 轉義符 轉義功能 轉義元字符 2 正則進階 元字符組合(常用) 模式修正符 re模塊的方法 有名分組 compile編譯 二、bs4 1 四種對象 2 導航文檔樹 嵌套選擇 子節點、…

Vue:Bin Code Editor格式化JSON編輯器

最終效果如下圖所示&#xff0c; Bin Code Editor安裝 npm或yarn安裝命令如下&#xff0c; npm i bin-code-editor -S # or yarn add bin-code-editor 組件注冊 全局注冊 在 main.js 中寫入導入以下內容&#xff0c; import Vue from vue; import CodeEditor from bin-cod…

服務器數據恢復—異常斷電導致ESXi虛擬機無法啟動的數據恢復案例

服務器數據恢復環境&#xff1a; 某大廠PS4000服務器&#xff0c;服務器上部署VMware ESXi虛擬化平臺。 服務器故障&#xff1a; 機房斷電&#xff0c;重啟后服務器中的某臺虛擬機不能正常啟動。管理員查看虛擬機配置文件&#xff0c;發現無法啟動的虛擬機的配置文件除了磁盤文…

【每日刷題】Day53

【每日刷題】Day53 &#x1f955;個人主頁&#xff1a;開敲&#x1f349; &#x1f525;所屬專欄&#xff1a;每日刷題&#x1f34d; &#x1f33c;文章目錄&#x1f33c; 1. 1019. 鏈表中的下一個更大節點 - 力扣&#xff08;LeetCode&#xff09; 2. 116. 填充每個節點的下一…

Exce 兩列一組對齊呈現,缺失補 0

Excel 里有 多 組數據&#xff0c;每組 2 列&#xff0c;每組長度不同。第 1 列是編號&#xff0c;列之間的編號有重復。 ABCDEFGH1Mass10Mass11Mass12Mass132802200581309088146532802225938133306824779282975598142002482273148413154988335698822331305832720485110460842…

計算機考研|408 值得選擇嗎?有哪些優勢?

408當然非常值得報考&#xff0c;但是現在的408已經卷麻了&#xff01; 現在越來越多的學校改考408&#xff0c;光今年就有6所發布通知&#xff0c;宣布改考408&#xff0c;分別是&#xff1a; 這對考408的學生肯定是好消息&#xff0c;后面可能還會有學校陸續改考&#xff0c;…

一、實現一個簡單的 Google Chrome 擴展程序

目錄 &#x1f9ed; 效果展示 # 圖示效果 a. 拓展程序列表圖示效果&#xff1a; b. 當前選項卡頁面右鍵效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 項目目錄結構 # 說明 # 結構 # 文件一覽 ? 核心代碼 # manifest.json # background.j…

SLAM ORB-SLAM2(26)重定位過程

SLAM ORB-SLAM2(26)重定位過程 1. 前言2. 詞袋模型2.1. 加快搜索2.2. 在文本檢索的應用2.3. 引入視覺圖像分類3. 重定位總體過程3.1. 計算當前幀特征點的詞袋向量3.2. 根據用詞袋查找相似的候選關鍵幀3.3. 通過詞袋模型進行初步匹配3.4. 查詢較匹配的關鍵幀3.4.1. 通過PnP投影…

華為 2024 屆實習校園招聘-硬件通?/單板開發——第五套

華為 2024 屆實習校園招聘-硬件通?/單板開發——第五套 部分題目分享&#xff0c;完整版帶答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔細校正&#xff0c;僅供參考&#xff09;&#xff08;共十套&#xff0c;每套四十題選擇題&#xff09;獲取&#xff08;WX:…

java期末細節知識整理(一)

1.java程序的執行過程&#xff1a;先編譯后解釋。也就是我們在idea寫的文件叫做java源文件&#xff08;.java結尾的文件&#xff09;&#xff0c;經過編譯器會生成字節碼文件&#xff08;.class結尾的文件&#xff09;&#xff0c;再通過解釋器進行實現 2.棧用來存儲引用類型的…

易語言本地IP一鍵切換程序(附帶源碼)

易語言本地IP一鍵切換程序 效果圖部分源碼源碼領取下期更新預報 效果圖 部分源碼 .判斷開始 (單選框1.選中 &#xff1d; 真)標簽5.標題 &#xff1d; #換行符 &#xff0b; “正在切換IP.”.如果真 (運行 (“netsh interface ip set address ” &#xff0b; #引號 &#xff…

PHP火狼大灌籃游戲源碼微信+手機wap源碼帶控制

使用此接口可以實現支付寶、QQ錢包、微信支付與財付通的即時到賬&#xff0c;免簽約&#xff0c;無需企業認證。PHP易支付源碼&#xff0c;免簽約不需要企業的支付平臺源碼&#xff0c;彩虹第三四方在線支付系統源碼,易支付token合作者商戶申請源碼&#xff0c;app和網頁都可以…

ubuntu--Linux運行時格式

Linux運行時格式 \r 錯誤 用vim打開那個執行錯誤的 sh腳本文件 進入最后一行模式下 :set ff顯示 fileformatdos 解決方法 : :set ffunix查看是否更改 : :set ff結果 : 保存退出即可 :x運行, 沒有出錯 * Author: cpu_code * Date: 2020-07-29 19:07:52 * LastEditTime: 2020…

day25回溯算法part02| 216.組合總和III 17.電話號碼的字母組合

216.組合總和III 題目鏈接/文章講解 | 視頻講解 class Solution { public:vector<vector<int>> result;vector<int> path;int sum;void backtracking(int n, int k, int startindex) {// int sum accumulate(path.begin(), path.end(), 0);if (sum n &am…

HTTP --tcp

TCP TCP連接 tcp/ip是全球計算機以及網絡設備都在使用的一種常見的分組交換網絡分層協議集&#xff0c;客戶端可以打開一條tcp/ip連接&#xff0c;連接到可能運行在世界各地的服務器應用程序&#xff0c;一旦連接建立起來了&#xff0c;在客戶端和服務器的計算機之間交換的報…

@autowired 注入進來對象為null的幾種場景及解決辦法

一、原因 Autowired 注解用于自動注入 Spring 容器中管理的依賴對象。如果注入的對象為 null&#xff0c;可能是以下原因之一&#xff1a; 被注入的對象沒有被 Spring 容器管理&#xff0c;即沒有被 Spring 掃描到或者沒有配置相應的 。注入的對象在 Spring 容器中有多個實例…

el-date-picker的使用,及解決切換type時面板樣式錯亂問題

這里選擇器的類型可以選擇日月年和時間范圍&#xff0c;根據類型不同&#xff0c;el-date-picker的面板也展示不同&#xff0c;但是會出現el-date-picker錯位&#xff0c;或者面板位置和層級等問題。 源代碼&#xff1a; <el-selectv-model"dateType"placeholder&…