標籤:

【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 |