如何安装任意软件到你的iphone手机,无需越狱
近期苹果签名调整,签名工具失效,自己动手签名unc0ver
原理:
通过altserver安装自签名软件,然后altserver Patcher修改customer url指定到自己的ipa包服务器,连接手机就可以安装任意软件
ios版本有限制,貌似12.4以上,一台windows设备
当然一旦你实现了安装任意软件,你也可以安装越狱软件,进行系统越狱
icloud
https://support.apple.com/zh-cn/HT204283
Itunes
https://www.apple.com.cn/itunes/
Altserver
or https://www.abcydia.com/read-18267.html
AltServerPatcher.zip
https://www.lanzous.com/i9npqkd
依次安装上面各个软件
如果网速给力,可以用patcher里自带的软件包地址安装默认软件.如果要安装自己私人软件,可以通过架设服务器解决.
新建springboot 项目,添加web模块,添加controller层,代码如下,启动服务器后,就可以愉快的安装软件啦,
注册一个专门用来瞎搞的appstore账号,installaltserver输入账号, iphone里设置-通用-描述文件-信任自己的描述文件
path路径填写
http://localhost:8082/test/test
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
/**
* @Description:
* @Date: 2019/6/25 16:57
* @Author:wzy
* @Modified:
**//*
*/
@Slf4j
@RestController
@RequestMapping("/test")
public class TestContro2 {
@RequestMapping(path = "test", method = {RequestMethod.GET})
public void test(HttpServletRequest httpReq, HttpServletResponse response) throws Exception {
File file = new File("D:\\WorkSpace-Spring\\spring\\demo\\src\\static\\file\\Undecimus-v4.3.1.ipa");
if(!file.exists()){
throw new IOException("文件不存在");
}
//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=" + new String(("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 = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(sout);
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
bos.close();
bis.close();
} catch (final IOException e) {
e.printStackTrace();
} finally {
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
}
}
}