首先,只有在越獄的ios設備上才可以獲取root權限,未越獄就不用考慮了!
思路:用具有普通權限的app引導具有root權限的app。假設你的應用程序為Demo,引導程序為Start。
具體步驟如下:
1、在Demo工程main.m文件開頭添加一句:setuid(0);編譯你的程序。進入Demo.app文件把Demo的執行文件改名為Demo_
2、在Start工程main.m文件開頭添加一下代碼:
NSString* string = [[NSBundle mainBundle]pathForResource:@"Demo_" ofType:nil];
argv[0] = (char*)[string UTF8String];
execve([string UTF8String], argv, NULL);
編譯程序,進入Start.app文件夾將執行文件Start拷貝到Demo.app文件夾並且改名為Demo。
3、在桌面新建一個文件夾假設名為test,在test文件夾下再新建兩個文件夾分別為:Applications、DEBIAN
4、將Demo.app包拷貝到Applications目錄下,將Demo.app中得control可執行文件拷貝到DEBIAN目錄下(這屬於deb打包的部分,如有問題可以網上搜索解決)
我當時遇到的問題是打包的時候control出錯,解決方法:打開control文件在末尾加兩行空行。
5、用Terminal進入到Applications/Demo.app目錄下,輸入以下3條命令:
sudo chown root:admin Demo_
sudo chmod 777 Demo_
sudo chmod u+s Demo_
6、將test目錄下的兩個文件打包成一個deb文件、命令如下:
sudo dpkg-deb -b ~/Desktop/test ~/Desktop/Demo.deb
7、將生成的Demo.deb拷貝到iOS指定目錄下:/var/root/Media/Cydia/AutoInstall。(可以用windows下得91助手,也可以用命令scp拷貝)
8、在iOS設備上用iFile安裝deb包,重啟iOS設備,OK!