溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在iOS 系統(tǒng)上使應(yīng)用具有root權(quán)限

發(fā)布時間:2020-04-04 08:33:01 來源:網(wǎng)絡(luò) 閱讀:3282 作者:chenjohney 欄目:移動開發(fā)

問題描述:使用xcode生成 app后,將它放置/Applications 目錄下,但調(diào)用系統(tǒng)目錄的權(quán)限不足,導(dǎo)致reboot等命令不能執(zhí)行.
解決問題方向: 將app具有root 權(quán)限.

解決方法:
1.suid位,在unix上用于表示文件權(quán)限,用于標(biāo)識其他用戶執(zhí)行該文件時是以文件的所有者來運行.僅對二進(jìn)制可執(zhí)行文件有效,若該文件屬于root時,當(dāng)其他用戶執(zhí)行文件時,相應(yīng)地也就具有了root權(quán)限.
修改 suid 權(quán)限:
chmod u+s filename 設(shè)置SUID
chmod u-s filename 去掉SUID設(shè)置
設(shè)置了suid位,則文件在原來的x位"x"變成了"s"
#ls -l a.txt
-rwxrwxrwx 777
#chmod 4777 a.txt
-rwsrwxrwx ======>注意s位置
操作:
(1)在項目的main.m文件修改以下代碼:

int main(int argc, char *argv[])
{
    setuid(0);
    setgid(0);
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


(2)將打包好的RebootApp.app放在/Applications 目錄下,并將RebootApp.app/RebootApp 的權(quán)限加上suid,并將其所有者改為 root
chmod u+s RebootApp
chown root RebootApp

2. 增加引導(dǎo)程序
在第一步完成后,重啟設(shè)備,發(fā)現(xiàn)一打開應(yīng)用就閃退.后來查資料才知道原因在于用戶打開應(yīng)用時通過SpringBoard來啟動應(yīng)用的中,而iOS在用戶打開應(yīng)用的時候會進(jìn)行權(quán)限檢測,它如果檢查到將以root運行應(yīng)用程序時就不會執(zhí)行.
解決方法:設(shè)置引導(dǎo)程序,通過引導(dǎo)程序打開應(yīng)用, 就可以眺過SpringBoard的安全檢查,而引導(dǎo)程序是普通用戶權(quán)限,用戶可以直接打開.
操作:
(1) 將設(shè)備里的/Applications/RebootApp.app/RebootApp 文件改名為RebootApp_
(2) 在項目的main.m文件修改以下代碼:

int main(int argc, char *argv[])
{
    @autoreleasepool {
        NSString* string = [[NSBundle mainBundle] pathForResource:@"RebootApp_" ofType:nil];//RebootApp_是所要啟動的名字二進(jìn)制文件名
        argv[0] = (char*)[string UTF8String];
        execve([string UTF8String], argv, NULL);
        return 0;
    }
}


(3) 再編譯一次生成RebootApp.app,將RebootApp.app包里的RebootApp 通過ssh放到設(shè)備的 /Applications/RebootApp.app/目錄,重啟設(shè)備,打開應(yīng)用,完成,程序具有root權(quán)限


參考文章:

http://blog.csdn.net/longhuihu/article/details/8907004

http://hi.baidu.com/lm382304817/item/4aa87eaa87c7f2746dd455ad

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI