應用簽名-手動簽名

獲取破殼應用

手動簽名是對破殼後的應用進行簽名,應用破殼有兩種: 一、經過越獄手機獲取破殼應用,可參考:《砸殼概述及其原理》; 二、經過PP助手獲取越獄應用便可。 將砸殼應用放到桌面或其餘方便操做的地方,當前使用的是微信應用:xcode

app.png

簽名步驟

一、建立一個WeChat工程,本測試中使用的是xcode自動生成的證書和描述文件,也可使用建立的證書和描述文件,由於都是從蘋果服務器申請獲取的,參考《應用簽名-簽名原理》,因此可以對APP進行手動簽名。接入真機並編譯,獲取.app中的描述文件。以下圖:bash

create.png

二、右鍵.app顯示包內容複製embedded.mobileprovision到桌面備用,使用命令查看描述文件中的權限配置(Entitlements下的爲權限配置):服務器

security cms -D -i embedded.mobileprovision
複製代碼

權限文件部分:微信

<key>Entitlements</key>
<dict>
    <key>application-identifier</key>
    <string>48HJPW679W.com.yahibo.WeChat</string>
    <key>keychain-access-groups</key>
    <array>
        <string>48HJPW679W.*</string>
    </array>
    <key>get-task-allow</key>
    <true/>
    <key>com.apple.developer.team-identifier</key>
    <string>48HJPW679W</string>
</dict>
複製代碼

三、建立一個plist權限文件,並將embedded.mobileprovision中的權限文件複製到plist中,用來對砸殼應用重簽名。架構

Entitlements.png

四、將權限文件移動到桌面或其餘方便操做的地方,並將embedded.mobileprovision文件加入到砸殼應用包中(.app右鍵顯示包內容)。以下圖:app

mobileprovision.png

五、修改砸殼應用中包中info.plist的惟一標識:ide

info.png

六、給可執行文件執行權限post

chmod +x WeChat
複製代碼

七、進入到桌面砸殼應用,由於對Watch中的app沒法簽名,因此直接刪除,Plugins中插件沒法被驗證不能使用,因此須要刪除。 Watch文件(刪除):測試

Watch.png

PlugIns文件(刪除):spa

PlugIns.png

八、進入Frameworks.app中的文件)文件中對全部庫重簽名。 1)查看當前安裝的證書

security find-identity -v -p codesigning
複製代碼

2)使用可用證書對每個庫簽名

codesign -fs "iPhone Developer: yahibo@qq.com (64R6BCB698)" ProtobufLite.framework
複製代碼

注意:簽名證書要與工程中使用的證書保持一致

簽名使用的證書:

sign1.png

Frameworks下的全部庫重簽名:

sign2.png

九、簽名APP,返回桌面,用已經建立好的權限文件對.app從新簽名

codesign -fs "iPhone Developer: yahibo@qq.com (64R6BCB698)" --no-strict --entitlements=Entitlements.plist Payload/WeChat.app
複製代碼

在建立工程時自動生成的描述文件中已經包含了測試設備id,簽名後app便可安裝到測試設備上;若是想添加多臺設備,能夠本身建立證書,建立描述文件時添加須要安裝的設備,重簽名使用該證書便可。

安裝: 一、簽名完以後能夠放在xcode中替換原有的.app,直接運行;以下圖:

xcode.png

二、打包APP,經過Xcode->window devices安裝ipa包。打包命令以下:

zip -ry WeChat.ipa Payload
複製代碼

安裝ipa

install.png

總結

應用簽名步驟以下:

  1. PP助手越獄手機中獲取解密ipa包
  2. 建立新應用,並安裝至手機,獲取.app包中的描述文件;
  3. 從描述文件中獲取權限配置,並建立en.plist權限文件;
  4. 進入解密ipa包中的.app文件,移除Plugin插件及Watch文件;
  5. 使用上面建立工程的證書,對解密的.app/Frameworks文件下的庫進行重簽名;
  6. 將第2步獲取的描述文件放入解密的.app包下;
  7. 使用第3步en.plist權限文件對整個.app包進行重簽名;
  8. 向手機安裝.app包或者打包爲.ipa包

注意

在操做過程當中發現如下問題: 一、經過越獄手機獲取到的破殼應用,因爲手機CPU架構不一樣(測試用iPhone5),會致使安裝失敗; 二、建立的工程獲取描述文件時注意,要使用一手描述文件(從新編譯描述文件會發生變化,簽名APP驗證不經過)。

《應用簽名-簽名原理》

《應用簽名-腳本簽名》

相關文章
相關標籤/搜索