部分用户在安装的时候出现了iOS版本太低安装不了微信的问题,那么出现这个问题该怎么解决呢?小编下面就给大家带来iOS版本太低安装不了微信的方法教程。
如果你的安装微信的时候出现了iOS版本太低安装不了微信,那么这个时候你就需要更新系统了,下面的具体的方法。
通过iTunes进行升级系统方法教程:
1.首先我们需要根据机型下载好所对应的固件版本。
3.按住键盘上Shift(上档键)+鼠标左键点击iTunes的更新\恢复功能:
4.iTunes会弹出对话窗--请选择已经下载好的固件--点击更新--等待iTunes运行。
5. 成功升级\恢复iOS8后需要先激活设备才可以正常使用!(请按照系统提示步骤完成)
通过进行升级系统方法教程:
1、首先下载安装爱思助手,用数据线把设备连接电脑;点击左下角“爱思工具箱”进入“一键刷机”界面。连接成功会自动匹配固件。(如果设备状态提示连接超时可以把设备进入恢复模式或DFU模式,连接后也会自动匹配固件并且可以刷机)
2、可刷版本全部会帮您显示出来;选择所需要刷机的版本之后,点击“立即刷机”会自动帮您下载并刷机。
3、接下来刷机就会自动进行,刷机过程中保持连接的稳定,等待刷机完成即可。
}
在网上搜索微信的历史版本,下载一个兼容多开的版本(实际上是bundleID不一样),比如5.0版本。当然也可以通charles等,在AppStore上下载微信旧版本,再重签名。
通过pp助手之类的工具,把旧版本微信安装到手机。
启动微信,登陆账号,遇到这样的提示:
OS逆向开发,突破微信强制升级机制,让低版本也能正常
使用版本过低,无法使用。
问题出现了,那怎么解决呢?
小程很自然地猜测,客户端有一个逻辑,是把当前的版本号与服务器返回的版本号作对比,如果发现当前的版本号过低,就提示升级。那么,当前的版本号是怎么获取到的呢,它是不是从一个函数返回的呢?如果小程把这个值改掉会怎么样呢?
同样,先要通过classdump拿到微信的所有类的声明。
然后搜索"version"关键字,对可能是返回版本值的函数进行注入,观察各个地方的输出。
注入的办法,用小程上一篇介绍的iOSOpenDev来做即可,而观察输出则使用之前介绍的socat。
这里给出部分注入的代码的截图:
iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
最终可以确认,CUtility::GetVersion就是目标函数,通过一个公共类来返回版本值,这在设计上是很合理的事情了。
运行微信时,可以在系统日志中看到这样的输出:
其中,就是当前的版本值。
对CUtility::GetVersion这个函数的返回值作修改,尝试返回(这个值是简单地把最高位加1而来):
iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
再次运行微信,低版本的限制消失了,看到这样的界面:
iOS逆向开发,突破微信强制升级机制,让低版本也能正常使用
身份验证之后,进入到陈旧的5.0界面:
因为微信6.x的bundleID与5.0版本的不一样,这就意味着,同时安装5.0版本与6.x版本的微信是可行的,比如小程就安装了两个(微信多开),运行起来的效果是这样的(录制时的帧率有点低,实际上是两个APP在切换):
}