将以下代码保存为py文件。例如:AME.py 用python运行 python /volume/download/AME.py 改成自己对应的目录 在计划任务中添加计划运行也可以 DSM7.1 代码: import hashlib import os r = ['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}]') 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 r = ['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"}]') 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}")