This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
howto:fridahooklibrary [2017/10/22 23:14] czokie [ setSSLPinningMode ] |
howto:fridahooklibrary [2017/10/24 06:06] jezzab [DJIAppSettings - sdr_force_fcc] |
||
---|---|---|---|
Line 86: | Line 86: | ||
</ | </ | ||
- | ===== checkIsAdminUser | + | ===== AFSecurityPolicy - setSSLPinningMode |
- | <code javascript | + | <code javascript |
- | if (ObjC.available) { | + | |
- | + | ||
- | var DJIAccountManager = ObjC.classes.DJIAccountManager; | + | |
- | + | ||
- | var checkIsAdminUser = DJIAccountManager[' | + | |
- | var checkIsAdminUserImpl = checkIsAdminUser.implementation; | + | |
- | checkIsAdminUser.implementation = ObjC.implement(checkIsAdminUser, | + | |
- | var originalResult = checkIsAdminUserImpl(handle, | + | |
- | console.log(' | + | |
- | return 1; | + | |
- | }); | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ===== setSSLPinningMode ===== | + | |
- | <code> | + | |
if (ObjC.available) { | if (ObjC.available) { | ||
var AFSecurityPolicy = ObjC.classes.AFSecurityPolicy; | var AFSecurityPolicy = ObjC.classes.AFSecurityPolicy; | ||
- | var setSSLPinningMode = AFSecurityPolicy[' | + | var setSSLPinningMode = AFSecurityPolicy[' |
var setSSLPinningModeImpl = setSSLPinningMode.implementation; | var setSSLPinningModeImpl = setSSLPinningMode.implementation; | ||
setSSLPinningMode.implementation = ObjC.implement(setSSLPinningMode, | setSSLPinningMode.implementation = ObjC.implement(setSSLPinningMode, | ||
setSSLPinningModeImpl(handle, | setSSLPinningModeImpl(handle, | ||
console.log(' | console.log(' | ||
+ | }); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== DJIAccountManager - checkIsAdminUser ===== | ||
+ | <code javascript DJIAccountManager.checkIsAdminUser.js> | ||
+ | //Set Admin mode in Flight Records | ||
+ | var DJIAccountManager = ObjC.classes.DJIAccountManager; | ||
+ | var checkIsAdminUser = DJIAccountManager[' | ||
+ | var checkIsAdminUserImpl = checkIsAdminUser.implementation; | ||
+ | checkIsAdminUser.implementation = ObjC.implement(checkIsAdminUser, | ||
+ | var originalResult = checkIsAdminUserImpl(handle, | ||
+ | | ||
+ | | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ===== DJIUpgradeNotifyViewModel - notifyHidden ===== | ||
+ | <code javascript DJIUpgradeNotifyViewModel.notifyHidden.js> | ||
+ | //Bypass upgrade notification on splash screen | ||
+ | var DJIUpgradeNotifyViewModel = ObjC.classes.DJIUpgradeNotifyViewModel; | ||
+ | var notifyHidden = DJIUpgradeNotifyViewModel[' | ||
+ | var notifyHiddenImpl = notifyHidden.implementation; | ||
+ | notifyHidden.implementation = ObjC.implement(notifyHidden, | ||
+ | var originalResult = notifyHiddenImpl(handle, | ||
+ | | ||
+ | | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ===== DJIAppSettings - sdr_force_fcc ===== | ||
+ | <code javascript DJIAppSettings.sdr_force_fcc.js> | ||
+ | //Force FCC Mode | ||
+ | var shown=0; | ||
+ | var fcc_enabled; | ||
+ | |||
+ | var DJIAppSettings = ObjC.classes.DJIAppSettings; | ||
+ | var sdr_force_fcc = DJIAppSettings[' | ||
+ | var sdr_force_fccImpl = sdr_force_fcc.implementation; | ||
+ | sdr_force_fcc.implementation = ObjC.implement(sdr_force_fcc, | ||
+ | var originalResult = sdr_force_fccImpl(handle, | ||
+ | | ||
+ | | ||
+ | | ||
+ | }); | ||
+ | |||
+ | //Fake Mavic for P4 FCC | ||
+ | var DJIProductManager = ObjC.classes.DJIProductManager; | ||
+ | var currentProductCode = DJIProductManager[' | ||
+ | var currentProductCodeImpl = currentProductCode.implementation; | ||
+ | currentProductCode.implementation = ObjC.implement(currentProductCode, | ||
+ | var originalResult = currentProductCodeImpl(handle, | ||
+ | | ||
+ | console.log(' | ||
+ | shown=1; | ||
+ | } | ||
+ | | ||
+ | | ||
+ | else | ||
+ | | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ===== DJIAppForceUpdateManager - hasChecked ===== | ||
+ | <code javascript DJIAppForceUpdateManager.hasChecked.js> | ||
+ | //Bypass DJI Go 4 new app version check | ||
+ | var DJIAppForceUpdateManager = ObjC.classes.DJIAppForceUpdateManager; | ||
+ | var hasChecked = DJIAppForceUpdateManager[' | ||
+ | var hasCheckedImpl = hasChecked.implementation; | ||
+ | hasChecked.implementation = ObjC.implement(hasChecked, | ||
+ | var originalResult = hasCheckedImpl(handle, | ||
+ | | ||
+ | | ||
+ | }); | ||
+ | </ | ||
+ | |||
+ | ===== DJIAppSettings - canUseIllegalChannels ===== | ||
+ | <code javascript DJIAppForceUpdateManager.hasChecked.js> | ||
+ | //Enable Illegal Channels (32 Channels) | ||
+ | if (ObjC.available) { | ||
+ | var DJIAppSettings = ObjC.classes.DJIAppSettings; | ||
+ | var canUseIllegalChannels = DJIAppSettings[' | ||
+ | var canUseIllegalChannelsImpl = canUseIllegalChannels.implementation; | ||
+ | | ||
+ | var originalResult = canUseIllegalChannelsImpl(handle, | ||
+ | console.log(' | ||
+ | return 1; | ||
+ | }); | ||
+ | var DJIRadioLogic = ObjC.classes.DJIRadioLogic; | ||
+ | var canUseIllegalChannels = DJIRadioLogic[' | ||
+ | var canUseIllegalChannelsImpl = canUseIllegalChannels.implementation; | ||
+ | | ||
+ | var originalResult = canUseIllegalChannelsImpl(handle, | ||
+ | console.log(' | ||
+ | return 1; | ||
}); | }); | ||
} | } | ||
</ | </ |