【OSG】Tweak開發:給調音量增加震動反饋
完整版請移步看雪論壇:【OSG】Tweak開發:給調音量增加震動反饋-『iOS安全』-看雪安全論壇
最近分析一個開源越獄插件--Volbrate,這個插件是給iPhone音量鍵增加震動的,功能很簡單。亮點在於,這個插件提供了在手機設置中做一些功能修改和設定
如圖所示:
通過搜索知道是利用了PreferenceBundle,theos第9個模板--preference_bundle_modern。只寫過tweak,對PreferenceBundle不了解,所以就邊分析邊學怎麼寫PreferenceBundle。
tweak
有關tweak的編寫,資料好多,就不再說了。推薦看狗神的《iOS應用逆向工程》第二版
plist文件
可知,其作用於springboard
xm文件
簡單來說,就是hook音量鍵,然後添加震動功能。 關鍵hook代碼:
%hook VolumeControlntnt-(void)increaseVolume {nttif(volVibrationOptions == 2) {nttt[FeedbackCall vibrateDevice];ntt} if(volVibrationOptions == 1 && volMax == YES){nttt[FeedbackCall vibrateDevice];ntt} else {nttt%orig;ntt}nt}nttnt-(void)decreaseVolume {nttif(volVibrationOptions == 2) {nttt[FeedbackCall vibrateDevice];ntt} if(volVibrationOptions == 1 && volMin == YES){nttt[FeedbackCall vibrateDevice];ntt} else {nttt%orig;ntt}nt}ntnt-(float)volume {nttx = %orig;nttif(x == 0){ntttvolMin = YES;ntt} if(x == 1){ntttvolMax = YES;ntt} if(x > 0 && x < 1) {ntttvolMin = NO;ntttvolMax = NO;ntt}nttntreturn %orig;nt}n%endn
由代碼可知,hook VolumeControl類裡面的三個函數。
-(float)volume
獲取音量值-(void)increaseVolume
增加一格音量
-(void)decreaseVolume
減少一格音量
推薦閱讀:
※iOS 保持界面流暢的技巧
※飛利浦的智能燈泡 Hue 使用起來體驗如何?好玩嗎?
※iOS10值不值得更新?
TAG:iOS |