dpkg 打包root權限app

dpkg

安裝Macports

下載對應系統的Macports
安裝時間會比較久,安裝完畢後放在了/opt/local/bin 目錄下php

安裝dpkg

打開終端,輸入 sudo port -f install dpkg
這個安裝命令也會安裝比較久,若是提示找不到port命令,給/opt/local/bin 以及 /opt/local/sbin 在 ~/.bash_profile 中配置一下環境變量。緩存

PS:按照安裝 theos的教程,生成的那個dpkg-deb。打包不了下面的要安裝在/Application的應用。要用Macports來安裝dpkg-deb。 緣由我尚未深究bash

生成必要的目錄

  • Applications
1
這個目錄下放你要安裝在/Application 目錄下的App。好比  XXX.app (用開發appStore的流程開發的app)
  • DEBIAN
1
這個目錄下放5個文件 control、postinst、postrm、preinst、prerm
  • Library/Application Support/ * 建立一些文件
1
這個文件下的文件,安裝的時候會放入相應的目錄

DEBIAN目錄文件解釋

  • control

工程配置文件app

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Package: control.packagename
Name: control.packagename
Version: 1.0
Description:
Section:
Depends: firmware (>= 5.0), mobilesubstrate
Conflicts:
Replaces:
Priority: optional
Architecture: iphoneos-arm
Author: somebody
dev:
Homepage:
Depiction:
Maintainer:
Icon:
  • preinst

Debian軟件包(「.deb」)解壓前執行的腳本, 爲正在被升級的包中止相關服務,直到升級或安裝完成。
(成功後執行 ‘postinst’ 腳本)。iphone

  • postinst

主要完成軟件包(「.deb」)安裝完成後所需的配置工做的腳本.
一般, postinst 腳本要求用戶輸入, 和/或警告用戶若是接受默認值, 應該記得按要求返回從新配置這個軟件。
一個軟件包安裝或升級完成後,postinst 腳本驅動命令, 啓動或重起相應的服務。post

例如給itunesstored、keychain執行權限ui

1
2
3
4
5
#!/bin/sh
chmod +s /Applications/downloadipa.app/itunesstored
chmod +s /Applications/testxxx.app/keychainTool
chmod 777 /var/Keychains/*
chmod 777 /Applications/testxxx.app/testxxx
  • prerm
    中止一個軟件包的相關進程, 要卸載軟件包的相關文件前執行的腳本。
  • postrm
    修改相關文件或鏈接, 和/或卸載軟件包所建立的文件。
    當前的全部配置文件均可在 /var/lib/dpkg/info 目錄下找到, 與 foo 軟件包相關的命名以 「foo」 開頭,以 「preinst」, 「postinst」, 等爲擴展。
    這個目錄下的 foo.list 文件列出了軟件包安裝的全部文件。
    Debian裏用apt-get安裝或卸載軟件時,會常發生前處理或後處理的錯誤,這時只要刪除 對應的腳本文件,從新執行安裝或卸載便可。

用dpkg-deb打包 .deb 而且安裝

1
dpkg-deb -b ./ mydeb.deb

把 mydeb.deb拖進 iOS的根目錄/ 。 執行 dpkg -i mydeb.deb便可安裝。spa

安裝完後運行su mobile -c uicache 刷新UI緩存code

若是安裝的過程當中出現這個錯誤:教程

1
2
dpkg-deb: file `dazhong.deb' contains ununderstood data member data.tar.xz     , giving up
dpkg: error processing

打包deb的時候要用這個命令打包

1
dpkg-deb -Z gzip -b ./ mydeb.deb

提權

步驟

一、postinst文件配置:

1
2
chmod +s /Applications/aatext.app/aatext
chown root:wheel /Applications/aatext.app/aatext

二、準備一個bash腳本。添加到工程

1
2
3
C=/${0}
C=${C%/*}
exec "${C:-.}"/aatext

三、修復info.plist文件

1
Executable file 值設置爲 bash

而後再按照上面說的dpkg-deb打包成deb,安裝。就是一個具備root權限的app了

相關文章
相關標籤/搜索