您的位置:首页 > 移动开发

IOS越狱开发 创建具有ROOT权限的APP

2015-07-03 10:56 549 查看
创建具有Root权限的App

(当然,首先是需要你的移动设备已经越狱了)

1.创建并编写有Root的程序(例如名字为Demo),在main.m的main函数第一条代码执行setuid(0)命令

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


2.编译程序,把APP拷贝出来一份,打开APP的包内容,在运行文件名的后面加条下划线(Demo改为Demo_)

3.把程序的入口关掉(注释main.m里面的入口代码),在main函数里面加上以下代

int main(int argc, char * argv[]) {

NSString* string = [[NSBundle mainBundle]pathForResource:@"CreateRawSocket_" ofType:nil];
argv[0] = (char*)[string UTF8String];
execve([string UTF8String], argv, NULL);

//    setuid(0);
//    @autoreleasepool {
//        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
//    }
}


4.编译程序,把APP里面的运行文件拷贝到刚才拷贝出来的APP里面,这时APP里面就有2个运行文件了(Demo与Demo_)

5.根据以下的目录结构创建相对应的目录与文件

deb (文件夹)

   |----DEBIAN (文件夹)

           |-----control (配置文件)

   |----Applications (文件夹)

           |----- APP (APP程序)

6.修改deb文件夹与里面文件的权限,因为如果不修改成这个权限,后面打包deb的命令可能会失败

sudo -R 0755 chmod deb/

7.进入APP包里面,修改Demo_的所属组与权限,(也可以在手机上安装完之后再用Terminal修改,但是不喜欢用手机手机敲命令)

sudo chown root:admin Demo_   (可能没有admin这个组,例如我的linux里面默认存在的是root:roor,这时把组root改成admin就可以了)

sudo chmod 777 Demo_

sudo chmod u+s Demo_

8.打包deb文件 (最好在Linux系统里面,因为我在mac里面不装fink的情况下生成失败了)

dpkg-deb -b deb Demo.deb

9.拷贝Demo.deb到手机,用iFile安装(这时是看不到安装了的APP的图标的),用PP助手修复图标或重启即可看到图标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: