tree_fly 发表于 2015-1-4 14:30:04

[02-10更新离线DEB]装B神器:教你修改QQ手机型号为iPhone6Plus

本帖最后由 tree_fly 于 2015-2-10 17:45 编辑

先来看下效果。








修改QQ手机类型为iPhone6 Plus基础设备:
  1.一台苹果电脑 or 虚拟机(OS X Yosemite)  2.越狱手机一台(如iPhone5 iOS8.1.1)  3.其他请参考老飘帖子:iOS逆向工程学习之路(工具+设备推荐):    https://www.chinapyg.com/thread-74331-1-1.html


入门步骤: 1.安装VM虚拟系统 OS X Yosemite。
 2.安装XCode。
 3.安装越狱开发系统theos、iOSOpenDev。  参考:theos https://github.com/DHowett/theos               http://iphonedevwiki.net/index.php/Theos/Setup    iOSOpenDev http://www.iosopendev.com/         老飘文档iOSOpenDev正确配置 http://www.dllhook.com/post/7.html
4.配置越狱后的手机,需要Cydia安装的(个别非必须)插件: Core Utilities Core Utilities(/bin) diskdev-cmds file-cmds system-cmds Mobileterminal openSSH sshpass toggle ssh preferencdloader substrate safe mode syslogd to /var/log/syslog
5. 测试SSH连接。
6.处理编译程序到真机可能出现的问题。  a) 参考官网: SSH Public Key Authentication https://github.com/kokoabim/iOSOpenDev/wiki/SSH-Public-Key-Authentication  b) 参考老飘中文解析: iOSOpenDev越狱开发直接编译安装到真机+错误解决方案 https://www.chinapyg.com/thread-74561-1-1.html
 


实践步骤:1.启动XCode,新建Project : Logos Tweak,命名为:ChangeIPhone6Plus。

新建的项目文档结构图:

2.修改项目Scheme:iOS Device。
3.添加项目必须的头文件及链接库文件。 a) Libsubstrate.dylib 默认安装路径:/opt/iOSOpenDev/lib/  b) Substrate.h 默认路径:/opt/iOSOpenDev/include/      Substrate.h 头文件副本来自:Cydia Substrate。请复制越狱手机/Library/Frameworks/CydiaSubstrate.framework/Headers/CydiaSubstrate.h 到MAC中/opt/iOSOpenDev/include/,并重命名为 substrate.h。
   
4.写hook代码:
/*
* 修改iPhone QQ手机类型为iPhone6 Plus
* 作者:tree_fly/P.Y.G, Thanks to creantan/P.Y.G
*/
#include "substrate.h"
int (*orig_sysctlbyname)(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);
int my_sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen){
   
    if (strcmp(name, "hw.machine") == 0) {
      
      int ret = orig_sysctlbyname(name, oldp, oldlenp, newp, newlen);
      
      if (oldp != NULL) {
            
            NSLog(@"+++\n+++\n+++\n+++\n+++:before %s +++\n+++\n+++\n++++",(char*)oldp);
            
            const char *mechine1 = "iPhone7,1";
            
            strncpy((char*)oldp, mechine1, strlen(mechine1));
      
            NSLog(@"+++\n+++\n+++\n+++\n+++:after%s +++\n+++\n+++\n++++",(char*)oldp);
          }
      
      return ret;      
      
    }else{
      return orig_sysctlbyname(name, oldp, oldlenp, newp, newlen);
    }
   
}
%ctor {
   
    MSHookFunction((void *)MSFindSymbol(NULL,"_sysctlbyname"), (void *)my_sysctlbyname, (void **)&orig_sysctlbyname);
}


5.查找QQ软件的Info.plist文件, 并查看其Bundle identifier Windows:
Mac OS:

6.修改项目的Bundle identifier:

7.编译项目(Product/Build for/Profiling)
8.启动日志查看工具,如iTools的实时日志工具。


9.手机端测试,记得点击日志下面的手机型号后,再次选择,否则不显示哦。





10.教程就到这里,祝你好运哦,2015新年新气象。最后,感谢creantan, 飘云悉心指导。




参考【教程2】接着玩--给NoShutterSound 添加插件配置开关 https://www.chinapyg.com/thread-74518-1-1.html设计插件的配置开关:      












creantan 发表于 2015-1-4 14:36:00

支持下。。教程图文并茂很详细{:soso_e179:}{:soso_e179:}

gujin162 发表于 2015-1-4 14:45:27


感谢楼主分享!

sky912 发表于 2015-1-4 16:38:38

搞个软件出来就帅呆了

l0v3cr4ck 发表于 2015-1-4 16:57:55

{:soso_e113:}吊炸天,感谢。

qinccckencn 发表于 2015-1-4 19:18:08

能把安卓变成爱疯更牛,期待大牛实现啊,呵呵

creantan 发表于 2015-1-4 19:28:35

qinccckencn 发表于 2015-1-4 19:18
能把安卓变成爱疯更牛,期待大牛实现啊,呵呵

早就有了哦。。自行Google

踏雪无痕 发表于 2015-1-4 19:44:08

好复杂啊,只能路过看看了

阳光宅男 发表于 2015-1-4 22:20:50

支持了,这个就不用了,呵呵

lcy925 发表于 2015-1-5 07:39:47

谢谢了。
好复杂…………
还是不装B了吧
页: [1] 2 3 4
查看完整版本: [02-10更新离线DEB]装B神器:教你修改QQ手机型号为iPhone6Plus