如何安装任意软件到你的iphone手机,无需越狱
近期苹果签名调整,签名工具失效,自己动手签名unc0ver
原理:
通过altserver安装自签名软件,然后altserver Patcher修改customer url指定到自己的ipa包服务器,连接手机就可以安装任意软件
ios版本有限制,貌似12.4以上,一台windows设备
当然一旦你实现了安装任意软件,你也可以安装越狱软件,进行系统越狱
icloud
/zh-cn/HT204283
Itunes
/itunes/
Altserver
https://altstore.io/
or /read-18267.html
AltServerPatcher.zip
/i9npqkd
依次安装上面各个软件
如果网速给力,可以用patcher里自带的软件包地址安装默认软件.如果要安装自己私人软件,可以通过架设服务器解决.
新建springboot 项目,添加web模块,添加controller层,代码如下,启动服务器后,就可以愉快的安装软件啦,
注册一个专门用来瞎搞的appstore账号,installaltserver输入账号, iphone里设置-通用-描述文件-信任自己的描述文件
path路径填写
http://localhost:8082/test/test
importlombok.extern.slf4j.Slf4j;
importorg.springframework.web.bind.annotation.*;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.*;
/**
*@Description:*@Date:/6/25 16:57
*@Author:wzy*@Modified:**//*
*/
@Slf4j
@RestController
@RequestMapping("/test")
public classTestContro2 {
@RequestMapping(path ="test", method = {RequestMethod.GET})
public voidtest(HttpServletRequest httpReq, HttpServletResponse response)throwsException {
File file =newFile("D:\\WorkSpace-Spring\\spring\\demo\\src\\static\\file\\Undecimus-v4.3.1.ipa");
if(!file.exists()){
throw newIOException("文件不存在");
}
//InputStream f = this.getClass().getResourceAsStream("D:\\WorkSpace-Spring\\spring\\demo\\src\\static\\file\\Undecimus-v4.3.1.ipa");
response.reset();
response.setContentType("application/x-msdownload;charset=utf-8");
try{
response.setHeader("Content-Disposition","attachment;filename="+newString(("Undecimus-v4.3.1"+".ipa").getBytes("gbk"),"iso-8859-1"));//下载文件的名称
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
ServletOutputStream sout = response.getOutputStream();
BufferedInputStream bis =null;
BufferedOutputStream bos =null;
try{
bis =newBufferedInputStream(newFileInputStream(file));
bos =newBufferedOutputStream(sout);
byte[] buff =new byte[2048];
intbytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
bos.close();
bis.close();
}catch(finalIOException e) {
e.printStackTrace();
}finally{
if(bis !=null) {
bis.close();
}
if(bos !=null) {
bos.close();
}
}
}
}