25 字
1 分钟
emby本地破解方法
Emby.Server.Implementations.dll
get_expDate 返回值 DateTimeOffset.UtcNow.AddDays(999.0);(RegRecord)get_isValid 返回值 true;(RegRecord)get_registered 返回值 true;(RegRecord)源码所在地

MediaBrowser.Model.dll
源码位置

get_IsMBSupporter 返回值 true;
何先生建议不修改此项:get_SupporterKey 返回值 "何先生破解";
关闭检测更新方法hasUpdateAvailable 返回值 false (systeminfo)
EnableAutomaticRestart 返回值 falseEmby.Web.dll
提取 Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js
搜索 timeSinceLastValidation=Date.now()-(feature.lastValidDate||0);将 return timeSinceLastValidation<=864e5?(console.log("getRegistrationInfo returning cached info"),Promise.resolve()):替换为 if (true) return console.log("getRegistrationInfo returning cached info"),Promise.resolve();
提取 Emby.Web.dashboard_ui.modules.registrationservices.registrationservices.js//如果是 mac 客户端,文件在/Applications/Emby.app/Contents/Resources/www/modules/registrationservices/registrationservices.js
搜索 validateFeature 最后
从 _exports.default={validateFeature:function(feature,options){ 后面全部替换return Promise.resolve();},showPremiereInfo:showPremiereInfo}});embypremiere.js
文位置在system\dashboard-ui\embypremiere
搜索 _loading.default.show(),将前面的 return 删除
搜索 Plugins/SecurityInfo将 getJSON(apiClient.getUrl("Plugins/SecurityInfo")).then(function(info){ 到 if(statusInfo) 中间的代码替换为:page.querySelector(".txtSupporterKey").value = info.SupporterKey || "", page.querySelector(".txtSupporterKey").classList.add("invalidEntry"), page.querySelector(".notSupporter").classList.add("hide"), page.querySelector(".supporterContainer").classList.add("hide"),key = info.SupporterKey; var statusInfo = { "deviceStatus": "0", "planType": "Lifetime", "subscriptions": {} };比如下面:page.querySelector(".txtSupporterKey").value=info.SupporterKey||"",info.SupporterKey&&!info.IsMBSupporter?(page.querySelector(".txtSupporterKey").classList.add("invalidEntry"),page.querySelector(".notSupporter").classList.remove("hide")):(page.querySelector(".txtSupporterKey").classList.remove("invalidEntry"),page.querySelector(".notSupporter").classList.add("hide")),info.IsMBSupporter?(page.querySelector(".supporterContainer").classList.add("hide"),function(key){key="key="+key+"&serverId="+ApiClient.serverId();return fetch("https://mb3admin.com/admin/service/registration/getStatus",{method:"POST",body:key,headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then(function(response){return response.json()})}(info.SupporterKey).then(function(statusInfo){
替换
page.querySelector(".txtSupporterKey").value = info.SupporterKey || "", page.querySelector(".txtSupporterKey").classList.add("invalidEntry"), page.querySelector(".notSupporter").classList.add("hide"), page.querySelector(".supporterContainer").classList.add("hide"),key = info.SupporterKey; var statusInfo = { "deviceStatus": "0", "planType": "Lifetime", "subscriptions": {} };
然后删除替换 var subs,key;_loading.default.hide()})):(page.querySelector(".supporterContainer").classList.remove("hide"),page.querySelector(".isSupporter").classList.add("hide"),_loading.default.hide(),Promise.resolve())});
为 }),_loading.default.hide();
在 classList.remove("hide")}}) 后面添加 ,_loading.default.hide()
如 querySelector(".isSupporter").classList.remove("hide")}}),_loading.default.hide()将 page.querySelector(".txtSupporterKey")前的return删除搜索删除 ),_loading.default.hide(/*删除 var subs,key; })) : (page.querySelector(".supporterContainer").classList.remove("hide"), page.querySelector(".isSupporter").classList.add("hide")), _loading.default.hide()
在 }) 后面添加 ,_loading.default.hide();
例如 querySelector(".isSupporter").classList.remove("hide")}}),_loading.default.hide()*//Contents/Resources/www/modules/emby-apiclient/connectionmanager.js 文件修改,针对 mac 客户端
//搜索以下代码getRegistrationInfo(feature, apiClient, options) { 中间的代码全部替换为以下代码 }
//替换代码 getRegistrationInfo(feature, apiClient, options) { const params = { serverId: apiClient.serverId(), deviceId: this.deviceId(), deviceName: this.deviceName(), appName: this.appName(), appVersion: this.appVersion() };
// Simulate successful validation without making a request const simulatedResponse = { cacheExpirationDays: 999 };
// Generate cache key const cacheKey = getCacheKey(feature, apiClient, options);
// Store simulated response in app storage this.appStorage.setItem(cacheKey, JSON.stringify({ lastValidDate: Date.now(), deviceId: params.deviceId, cacheExpirationDays: simulatedResponse.cacheExpirationDays, lastUpdated: Date.now() }));
// Return a resolved Promise return Promise.resolve(); } 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐





