废话不多说,上地址:https://github.com/Co2333/StatusBarFucker
这是一个使用lldb image lookup(找方法)和ivarDescription(找地址)深度查找揪出来的私有方法,苹果大概率不会让你上架,但是有先例子:学习强国。
接下来,咱们work through一遍。
1 - 连接到SpringBoard,咱们先开模拟器,然后 lldb attach SpringBoard
2 - 然后用指令po来获取当前的StatusBar
3 - 反复使用ivarDescription来获取我们需要的指针。
3.1 - po [[[UIApplication sharedApplication] statusBar] _ivarDescription]
3.2 - po [0x7fac3a413de0 _ivarDescription] 其中,0x7fac3a413de0,为statusbar的地址,已在上图标出。
3.3 - po 0x60000117aea0 寻找我们要的TimeItem。
3.4 - po [0x600003200eb0 _ivarDescription] 继续打印我们的Item寻找那个ShortTimeView。同时image lookup给了我们他的名字:_UIStatusBarStringView
3.5 最后,把他当UILabelView拿来用就行了
4 效果图:
最后,感谢一下 https://www.raywenderlich.com/ 的书,真香。