mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
25 字
1 分钟
emby本地破解方法
2024-06-01

Emby.Server.Implementations.dll#

get_expDate 返回值 DateTimeOffset.UtcNow.AddDays(999.0);(RegRecord)
get_isValid 返回值 true;(RegRecord)
get_registered 返回值 true;(RegRecord)

源码所在地

image-20230905151121569

MediaBrowser.Model.dll#

源码位置

image-20230905151453638

get_IsMBSupporter 返回值 true;
何先生建议不修改此项:get_SupporterKey 返回值 "何先生破解";
关闭检测更新
方法
hasUpdateAvailable 返回值 false (systeminfo)
EnableAutomaticRestart 返回值 false

Emby.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();
}
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

emby本地破解方法
https://6wd.cn/posts/emby-local-crack-method/
作者
技术宅拯救世界!
发布于
2024-06-01
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录