越狱环境下iOS如何制作.deb类型的应用

前言

  一般的iOS*应用都是.ipa格式的,Deb格式是Linux下的一种打包方式,相比于.ipa格式需要证书验证那些步骤,在越狱设备下.deb*文件的安装和卸载都比较容易,用终端指令即可。   

环境

macOS Sierra 10.12.3

流程

大致分为

  • 创建工程
  • 编译
  • 安装

创建工程

  越狱环境下创建工程一般有两种,一种是有GUI模板的iOSOpenDev,Github地址已经比较久时间不更新了,安装后的效果图大致如下:
  
  

还有一种是用theos,这个在《iOS应用逆向工程》中见到的比较多,本文主要也就用这种方式创建工程。

bla,bla,bla在成功安装theos后,就可以开始了

创建好的工程目录如下

依次进行简单说明

control

描述了这个deb包的一些信息

xxx.h xxx.m

这个不用说,iOS工程师应该都知道

Makefile

描述了该工程如何进行编译,引入thoes*的一些文件,参与编译的.m文件(比如*DEBAppDelegate.m),要链接的库文件(比如 UIKit),安装成功后要kill的进程,当然还有其他字段,比如处理器的架构,SDK的版本,这些在《iOS应用逆向工程》中也有说明

编译

bla,bla,bla.h,.m*中写完代码后,到工程目录下 *make package

如果是第一次安装编译,可能编译的过程会出现不通过的情况,只要根据报错的原因,上Googlestackoverflow搜索一般就能解决。虽然也想贴图说明我遇到的问题,但是当时没有记录下来,以后有空会再试试,换个角度想,为什么写blog呢?如果不写的话,以后忘了,就没有地方找了,一开始多留心些,后面大概就可以省力些吧。

编译成功后

多了两个目录objpackages,package下就是编译后的deb*包名,每编译一次,后面的-1,就会++*,记录你是第几次成功编译这个包吧

安装

  因为生成deb包还是要到手机上运行才行的,所以需要用到scp这个指令,越狱设备一般都会装openssh这个插件,提供远程登陆,方便数据传输。   

1
scp ./packages/com.coder.createdeb_0.0.1-1+debug_iphoneos-arm.deb root@192.168.5.105:/var/root/

  
  

这个问题大致是因为IP*没变,设备变了,而/.ssh/known_hosts文件中记录的是原来设备的信息,解决方法,删除/.ssh/known_hosts*中的记录

再试一次

ssh登陆设备后,查看root的家目录

已经在设备上了

1
dpkg -i dpkg -i com.coder.createdeb_0.0.1-1+debug_iphoneos-arm.deb

当然也可以一条龙服务,直接在Markfile的最上一行加上远程设备的IP地址

1
THEOS_DEVICE_IP = 远程设备的IP

安装指令改为

1
make package install 

然后ssh输入密码的过程也可以去掉

安装成功后,手机桌面可能没有出现安装的deb文件,这时候可以执行以下指令

1
su mobile -c uicache

应用截图

IMG_0001

objc-706工程搭建 MWeb图床配置
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×