建立tweak工程,最重要的就是配置theos掰茶。
這里插一段話,上一章講了從無到用usbmuxd連接越獄手機(jī),網(wǎng)上普遍文檔是直接 ssh root@ip的 然后tweak的配置也是直接傳到這個(gè)ip来涨,而一部分講的是usbmuxd用USB線連接越獄手機(jī) ?然而,我遇到的困難是 ssh root@ip 無法直接連接到手機(jī)启盛,也不是錯(cuò)誤蹦掐,就是無反應(yīng),哪怕有個(gè)錯(cuò)誤也好僵闯,開一整晚都無反應(yīng)卧抗,而用 ping ip 得到的是連接正常,關(guān)于這個(gè)問題請(qǐng)教過很多人鳖粟,也包括大牛社裆,都無法解決,所以這里后續(xù)會(huì)補(bǔ)充 如何在USB連接情況下 ssh傳輸數(shù)據(jù)給手機(jī)向图,這步也是卡了我這10天節(jié)奏的主要原因泳秀,我就一菜鳥,希望把我這一步一步東西榄攀,都分享給大家嗜傅,我知道自己摸索有多麻煩,我也是直接摸索過來的檩赢。
首先吕嘀,安裝theos。
這里首先要注意路徑問題,一開始不懂币他,自己在/opt/下建立了一個(gè)theos文件夾坞靶,后來沒辦法 用 rm -rf /opt/theos 刪除重新安裝,不然后面很多配置問題不能和網(wǎng)上對(duì)應(yīng)蝴悉,開始初學(xué)還是盡量都跟著主流教程走彰阴。
在命令行 輸入1、 export THEOS=/opt/theos? 2拍冠、sudo git clone git://github.com/DHowett/theos.git $THEOS
這時(shí)候使用 ?/opt/theos/bin/nic.pl (這句話是可以打開tweak模板)
如果出現(xiàn)這個(gè)錯(cuò)誤
[error] Cowardly refusing to make a project inside $THEOS (/opt/theos/)
這個(gè)需要修改.bash_profile文件就在路徑~下 沒有的自己建立就好 ‘.’表示隱藏文件 手動(dòng)mac下不讓建立? 可以用touch 命令建立? 然后用vi 在里面添加
export THEOS=/opt/theos
export PATH=/opt/theos/bin/:$PATH
這兩句話 這個(gè)就是路徑問題? 之所以上面說我自己建立了個(gè)theos文件夾 然后里面再裝theos 我修改這里 為/opt/theos/theos 作用無效 不知道哪里有問題尿这,為了避免扯太多麻煩,初學(xué)階段暫不研究庆杜,就重裝了theos射众。
然后輸入/opt/theos/bin/nic.pl
這個(gè)時(shí)候應(yīng)該就可以了 ?能夠出現(xiàn)
這個(gè)時(shí)候就說明theos安裝成功 ?我們選擇11,網(wǎng)上大多還是5晃财,有點(diǎn)過時(shí)叨橱,可能你們裝的時(shí)候也不是11了,注意選擇tweak就好
然后填寫一些東西断盛,什么bundle 組織名 作者 就是最后一條要注意罗洗,是安裝完成后需要重啟的應(yīng)用,以進(jìn)程名表示
cd到工程目錄下 先用 命令 make 一下 我的理解 應(yīng)該是編譯的意思钢猛,
Makefile:1: theos/makefiles/common.mk: No such file or directory
Makefile:7: /framework.mk: No such file or directory
make: *** No rule to make target `/framework.mk'.Stop.
如果出現(xiàn)如上錯(cuò)誤 使用 ln -sf $THEOS 重新使用make
這時(shí)候錯(cuò)誤變成
==> Error:The vendor/include and/or vendor/lib directories are missing. Please run `git submodule update --init --recursive` in your Theos directory. More information: https://github.com/theos/theos/wiki/Installation.
make: *** [before-all] Error 1
說的很明白 讓我們運(yùn)行g(shù)it submodule update --init --recursive這句話 伙菜,都不用google了 這時(shí)候回到 theos目錄下 使用sudo git submodule update --init --recursive 注意加上sudo 這里有權(quán)限問題
然后再回到項(xiàng)目里面 使用make 這時(shí)候編譯很順利?
不要注意yueyu兩個(gè)字 ?這個(gè)tweak我來來回回建了3 4個(gè)吧 名字不重要
這時(shí)候需要安裝ldid,簽名用的命迈,這塊我本來想理一下再發(fā)贩绕,還是先發(fā)一下吧 ?不然萬一影響安裝就抱歉了
首先直接輸入 ldid
應(yīng)該是直接輸入ldid ?但我記得好像還下過一個(gè)ldid的包,不是很記得有沒有影響壶愤,如果有影響淑倾,可以私聊我,把這個(gè)包發(fā)你們征椒。
應(yīng)該是有影響的踊淳,你們可以自行網(wǎng)上下載個(gè)ldid 或者找我要一個(gè),網(wǎng)上大多需要把ldid這個(gè)bin文件拷貝到/usr/bin目錄下 但是mac這個(gè)文件夾權(quán)限不開放陕靠,不管用什么命令都無法將文件拷到這個(gè)目錄下,這個(gè)很氣啊脱茉,然后網(wǎng)上說可以/usr/local/bin用這個(gè)路徑代替/usr/bin路徑 因?yàn)闀?huì)先從/usr/local/bin目錄加載 然后再加載/usr/bin目錄 ?不清楚是不是這個(gè)說法?
sudo cp /Users/pro_cookie/Downloads/ldid /usr/local/bin
然后使用這句 將文件拷貝到了 /usr/local/bin目錄
這樣就算配置成功了? 后來發(fā)現(xiàn) 我好蠢啊? 好像使用brew install ldid就可以搞定這個(gè) brew是個(gè)命令行安裝工具的神器? 沒有的趕緊自行安裝 別問我? 因?yàn)槲彝?這個(gè)brew使用起來感覺和pip pod這些一樣? 很簡(jiǎn)單? 另外提一點(diǎn) 網(wǎng)上很多N年前的版本? 當(dāng)時(shí)使用的命令是apt-get 等同于 brew ?我之前很蠢 ?不明白 ?然后想安裝個(gè)apt-get 安裝死我了 ?后來因?yàn)楹孟耱?yàn)證還是什么證書問題 反正好像現(xiàn)在裝不了了 ?大家都說用brew代替了這個(gè)apt-get
好了 ?這個(gè)時(shí)候ldid也裝好了 ?回到我們的工程來
使用cat 命令可以直接看文件內(nèi)容剪芥,很好的命令
然后 說明一下 makefile文件是配置一些版本信息的 ?我給大家看一下我成功的配置
這里需要說明的,就是開頭提到的USB連接方式ssh傳輸數(shù)據(jù)琴许,網(wǎng)上有的是THEOS_DEVICE_IP = xxx.x.x.x 沒有下面這句 export THEOS_DEVICE_PORT = 2222 因?yàn)樗麄兌际莣ifi連接 ?税肪。。。 我因?yàn)檫@句話至少卡了我5天時(shí)間 后來還是在公車上看帖子看到的益兄,回來一試 果然成功了 export應(yīng)該是多余的 ?只要后面的就好這里還需要注意的是 ?我的工程名是 secondTest ?自己根據(jù)自己的工程名修改上面需要修改的地方 自己找不同啊
然后是 Tweak.xm文件 這文件里面是我們要寫的代碼都寫在這里面锻梳,初始模板的文件是都被注釋掉的 運(yùn)行起來 手機(jī)就springBoard刷新一下 ?然后沒反應(yīng),我一開始不知道 還奇怪 代碼都有 手機(jī)也有反應(yīng)了 怎么沒出效果 ?后來才發(fā)現(xiàn)被注釋掉了
上面部分是初始模板 ?我代碼是%hook %end之間這段?
然后運(yùn)行make package install 就應(yīng)該能傳輸?shù)绞謾C(jī)了
中間還有一些錯(cuò)誤解決 净捅,不太記得了 疑枯,我在最后說一下吧
Makefile:1: /makefiles/common.mk: No such file or directory
Makefile:6: /tweak.mk: No such file or directory
make: *** No rule to make target `/tweak.mk'.Stop.
如果出現(xiàn)這個(gè)錯(cuò)誤? 就需要export THEOS=/opt/theos一下
==> Error:/Applications/Xcode.app/Contents/Developer/usr/bin/make install requires that you set THEOS_DEVICE_IP in your environment.
==> Notice:It is also recommended that you have public-key authentication set up for root over SSH, or you will be entering your password a lot.
make: *** [internal-install] Error 1
如果出現(xiàn)這個(gè)錯(cuò)誤 就需要export THEOS_DEVICE_IP=127.0.0.1
如果上傳手機(jī)最后一步中出現(xiàn)了這個(gè)錯(cuò)誤? 就需要 這就比較麻煩了 和下面那個(gè)錯(cuò)誤不一樣? 這個(gè)錯(cuò)誤是我自己亂搞? 不知道搞了什么搞出來的? 后來 去theos重新找了deb.mk文件 這個(gè)文件千萬不要亂修改
dpkg-deb: error: obsolete compressiontype'lzma'; use xz instead Type dpkg-deb--helpforhelpabout manipulating*.deb files;Typedpkg--helpforhelpabout installing and deinstalling packages.make:***[internal-package]Error2
如果出現(xiàn)上面這個(gè)錯(cuò)誤
/opt/theos/makefiles/package
sudo vi deb.mk ?使用這句代碼 ?上面那句是路徑
這里需要把lzma 改成xz 因?yàn)闊o法解壓xz文件 注意 !;琢>S馈!這個(gè)文件里面還有一個(gè)錯(cuò)誤
?$(ECHO_NOTHING)COPYFILE_DISABLE=1 $(FAKEROOT) -r dpkg-deb -Zgzip -b "$(THEOS_STAGING_DIR)" "$(_THEOS_DEB_PACKAGE_FILENAME)" $(STDERR_NULL_REDIRECT)$(ECHO_END)??
這段替換我整出了一個(gè)無語的錯(cuò)誤? 然后選擇重新替換掉deb.mk文件才解決? 并不是原theos的deb.mk文件
附上個(gè)連接https://github.com/moloch--/theos這個(gè)里面的/makefiles/package里面的deb.mk文件 替換之后好像連修改lzma變成xz都不需要了 我傳個(gè)截圖看看吧
自己摸索就是困難国章,希望有初學(xué)者能夠互相交流一下具钥,這個(gè)tweak的基本上所有坑都躺過 很多錯(cuò)誤都沒發(fā)表 ?有些找不到源頭了 ?有些改文件里面的 忘了改了什么 實(shí)在對(duì)不住大家 ?不過記憶深的都發(fā)出來了 ?既然是記住的 ?說明比較麻煩 ?記不住的 ?說明大家自己查下就能很簡(jiǎn)單的解決了 ?