Theos tweak iPhone Linux

安裝 Theos

在右側(cè)選擇操作系統(tǒng)后進(jìn)行安裝:
https://github.com/theos/theos/wiki/Installation-Linux
安裝完成后記得添加 bin 目錄到 $PATH 中靶剑。

連接 iPhone

安裝 OpenSSH

Cydia 中安裝好 OpenSSH松却。

修改 root 密碼

為了安全,記得修改 iPhone 的 root 密碼:

$ ssh root@192.168.x.x  # iPhone 與電腦連接同一個(gè) wifi 后捷枯,查看 iPhone 的 ip

提示輸入密碼,默認(rèn)為alpine专执。

$ passwd root  # 輸入新密碼進(jìn)入修改

免密碼登錄

將電腦中的 ssh 公鑰 拷貝到 iPhone 的 ~/.ssh 目錄下:

# 電腦上執(zhí)行
$ cat ~/.ssh/id_rsa.pub
復(fù)制輸出的密鑰內(nèi)容淮捆。

# iPhone 上粘貼
$ ssh root@192.168.x.x  # 登入 iPhone
$ echo "xxx" >> ~/.ssh/authorized_keys  # xxx 為復(fù)制的公鑰內(nèi)容

第一個(gè) Tweak

# nic.pl 為 theos 的 bin 下的工具(確保已經(jīng)添加 bin 目錄到 $PATH 中)
finn@thinkpad:/tmp 
9:32:48$ nic.pl
NIC 2.0 - New Instance Creator
------------------------------
  [1.] iphone/activator_event
  [2.] iphone/application_modern
  [3.] iphone/application_swift
  [4.] iphone/flipswitch_switch
  [5.] iphone/framework
  [6.] iphone/library
  [7.] iphone/preference_bundle_modern
  [8.] iphone/tool
  [9.] iphone/tool_swift
  [10.] iphone/tweak
  [11.] iphone/xpc_service
Choose a Template (required): 10
Project Name (required): mytweak
Package Name [com.yourcompany.mytweak]: 
Author/Maintainer Name [finn]: 
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]: com.xx.kk  # *[1]
[iphone/tweak] List of applications to terminate upon installation (space-separated, '-' for none) [SpringBoard]: 
Instantiating iphone/tweak in mytweak/...
Done.

*[1] 這里很重要,需要輸入,你要 hook 的 app 的 bundle id攀痊。查看程序的 bundle id 有很多方法桐腌,我是直接通過(guò) ReProvision 查看的。一般安裝完 unc0ver 后苟径,我會(huì)安裝 ReProvision 進(jìn)行應(yīng)用的自動(dòng)重新簽名案站,它會(huì)顯示應(yīng)用的 id。

修改 makefile棘街,添加 iPhone 的 IP蟆盐,可以免 usb 調(diào)試

$ cd mytweak
$ vi Makefile

添加 IP,以及安裝完成后自動(dòng)重啟手機(jī)桌面使插件生效:

# the IP of iPhone
THEOS_DEVICE_IP = 192.168.x.x
# restart springboard after install
after-install::
    install.exec "killall -9 SpringBoard"

注意: Makefile 中需要使用 tab 進(jìn)行縮進(jìn)遭殉,不要使用空格石挂。

編寫(xiě) Tweak.x,隨便 hook 一個(gè)程序险污。

如何查看程序的 ui 布局:
在 Cydia 中安裝 FLEXible(作者 Shmoopi)痹愚,在系統(tǒng)設(shè)置中找到它,并對(duì)要調(diào)試的程序進(jìn)行開(kāi)啟罗心。重啟要調(diào)試的程序里伯,審查界面元素即可,找到布局導(dǎo)致渤闷,以及 Controller/Method 等信息疾瓮。

用丑陋的 Object-C 隨意寫(xiě)點(diǎn)東西:

- (void)startCountDown {
    %orig;

    // 初始化
    if(!inited) {
        inited = true;

        // 點(diǎn)擊復(fù)制動(dòng)態(tài)碼
        UILabel *label = self.subviews[1];
        label.userInteractionEnabled = true;
        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] 
                     initWithTarget:self 
                     action:@selector(copyCodeToClipboard)];
        [label addGestureRecognizer:tapGesture];

        // 注入復(fù)制按鈕
        [self injectCopyButton];
    }
}

編譯安裝:

$ make package install

打包給未越獄用戶(hù)使用

通過(guò) theos 打包后為 deb 包,僅能在越獄機(jī)器使用飒箭。而我們需要在未越獄機(jī)上面使用狼电,就需要將我們寫(xiě)的代碼編譯為動(dòng)態(tài)鏈接庫(kù),并注入到原app中弦蹂。

theos 除了打包成 deb 外肩碟,還會(huì)在工程根目錄下生成動(dòng)態(tài)鏈接庫(kù):

finn@thinkpad:/tmp/mytweak 
9:51:07$ tree .theos 
.theos
├── _
│   ├── DEBIAN
│   │   └── control
│   └── Library
│       └── MobileSubstrate
│           └── DynamicLibraries
│               ├── mytweak.dylib
│               └── mytweak.plist
├── build_session
├── fakeroot
├── last_package
├── obj
│   └── debug
│       ├── arm64
│       │   ├── mytweak.dylib  # 這里
│       │   ├── Tweak.x.ac12b8c9.o
│       │   └── Tweak.x.ac12b8c9.Td
│       ├── armv7
│       │   ├── mytweak.dylib  # 這里
│       │   ├── Tweak.x.32257dda.o
│       │   └── Tweak.x.32257dda.Td
│       └── mytweak.dylib    # 這里(我一般使用最外層這個(gè))
└── packages
    └── com.yourcompany.mytweak-0.0.1

10 directories, 14 files

具體請(qǐng)參考:http://www.reibang.com/p/cd1f8ae46a3c ,按照 該文章詳細(xì)進(jìn)入即可凸椿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末削祈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子脑漫,更是在濱河造成了極大的恐慌髓抑,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件优幸,死亡現(xiàn)場(chǎng)離奇詭異吨拍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)网杆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)羹饰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)伊滋,“玉大人,你說(shuō)我怎么就攤上這事队秩⌒ν” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵刹碾,是天一觀的道長(zhǎng)燥撞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)迷帜,這世上最難降的妖魔是什么物舒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮戏锹,結(jié)果婚禮上冠胯,老公的妹妹穿的比我還像新娘。我一直安慰自己锦针,他們只是感情好荠察,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著奈搜,像睡著了一般悉盆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馋吗,一...
    開(kāi)封第一講書(shū)人閱讀 52,337評(píng)論 1 310
  • 那天焕盟,我揣著相機(jī)與錄音,去河邊找鬼宏粤。 笑死脚翘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绍哎。 我是一名探鬼主播来农,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼崇堰!你這毒婦竟也來(lái)了沃于?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤海诲,失蹤者是張志新(化名)和其女友劉穎繁莹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體饿肺,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒋困,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年盾似,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敬辣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雪标。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖溉跃,靈堂內(nèi)的尸體忽然破棺而出村刨,到底是詐尸還是另有隱情,我是刑警寧澤撰茎,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布嵌牺,位于F島的核電站,受9級(jí)特大地震影響龄糊,放射性物質(zhì)發(fā)生泄漏逆粹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一炫惩、第九天 我趴在偏房一處隱蔽的房頂上張望僻弹。 院中可真熱鬧,春花似錦他嚷、人聲如沸蹋绽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)卸耘。三九已至,卻和暖如春粘咖,著一層夾襖步出監(jiān)牢的瞬間蚣抗,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工涂炎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忠聚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓唱捣,卻偏偏與公主長(zhǎng)得像两蟀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子震缭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容