[初学python]苹果何时开放IOS降级通道啊?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq446252221/article/details/88824708

手机升级从iOS10升级到iOS12后,有点不适应,想降级到iOS10就没门了,太可恶了。

想着苹果曾经意外地开放过旧系统的验证通道,于是幻想会不会再次出现?

于是经常打开http://ipsw.me查询当前签名的系统版本,唉,频繁手动操作有点费时,

不如用python写个自动化脚本来实现吧,检测到IOS10的时候就给我发个邮件吧。

于是研究了一下ipsw.me,该网站提供查询接口了,并以json的格式返回数据。

于是就有了下面的代码:

定时访问ipsw.me提供的接口,检测到IOS10系统有效就发送邮件给我。

发送邮件使用了网易提供的邮件接口。

间隔10分钟查询一次,就让它在电脑的后台24小时运行吧,万一哪天真的它就给我发邮件了呢。嘿嘿。。。

#发现IOS10可以降级时通过邮件通知我
#QQ:446252221
#2018.05.10
import io
import time
import json
import urllib.request
import smtplib
import email.mime.text
import email.mime.multipart 

#获取当前时间
def local_time_str():
    str = time.strftime("%Y-%m-%d %X", time.localtime(time.time()+28800))
    return str

#通过网易的SMTP服务器发送邮件
def send_mail(title, content):
    mail_host = "smtp.163.com"           #设置服务器
    mail_port = 25                       #SMTP端口号
    mail_user = "############@163.com"   #用户名
    mail_pass = "########"               #口令(授权码)
    mail_recv = ["[email protected]"]     #收件人
    mail_subject = title                 #邮件主题
    mail_content = content               #邮件正文

    msg = email.mime.multipart.MIMEMultipart()  
    msg["From"] = mail_user
    msg["To"] = mail_recv[0]
    msg["Subject"] = mail_subject
    msg.attach(email.mime.text.MIMEText(mail_content))

    try:
        print("正在发送邮件...")
        smtp_obj = smtplib.SMTP()
        smtp_obj.connect(mail_host, mail_port)    
        smtp_obj.login(mail_user, mail_pass)
        smtp_obj.sendmail(mail_user, mail_recv, msg.as_string())
    except:
        print("邮件发送失败!")
        return False
    else:
        print("邮件发送成功.")
        return True

#调用ipsw接口,查询可升级的IOS版本
def call_ipsw(iphone):
    try:
        print("正在获取数据...");
        request_url = "https://api.ipsw.me/v4/device/" + iphone
        session = urllib.request.urlopen(request_url)
    except:
        print("获取数据失败!")
        return None
    else:
        print("获取数据成功.")
        respon_body = session.read()
        json_obj = json.loads(respon_body.decode("utf-8"))
        ios_all_list = json_obj["firmwares"]
        ios_signed_list = []
        for item in ios_all_list:
            if item["signed"]:
                ios_signed_list.append(item["version"])
        return ios_signed_list

#程序入口
while True:
    print("当前系统时间:", local_time_str())
    ios_list = call_ipsw("iPhone8,4")
    for ios in ios_list:
        print("当前IOS版本:", ios)
        if ios.startswith("10."):
            send_mail("苹果开放IOS10降级通道啦!", "当前可降级版本为:"+ios)

    #延时10分钟
    time.sleep(600)

猜你喜欢

转载自blog.csdn.net/qq446252221/article/details/88824708