http://1code.codeplex.com/wikipage?title=IRPC#x_x_Download

D:\Dev\Microsoft SDKs\Windows\v7.0\Samples\netds\rpc

自动获取最新版 chrome 下载地址

from ml import *
import asyncio

stable = r'''<?xml version='1.0' encoding='UTF-8'?><request protocol='3.0' ismachine='0'><app appid='{4DC8B4CA-1BDA-483E-B5FA-D3C12E15B62D}' ap='-multi-chrome'><updatecheck/></app></request>'''
beta = r'''<?xml version='1.0' encoding='UTF-8'?><request protocol='3.0' ismachine='0'><app appid='{4DC8B4CA-1BDA-483E-B5FA-D3C12E15B62D}' ap='1.1-beta'><updatecheck/></app></request>'''
dev = r'''<?xml version='1.0' encoding='UTF-8'?><request protocol='3.0' ismachine='0'><app appid='{4DC8B4CA-1BDA-483E-B5FA-D3C12E15B62D}' ap='2.0-dev'><updatecheck/></app></request>'''

stable = r'''<?xml version="1.0" encoding="UTF-8"?>
<request protocol="3.0" version="1.3.29.1" shell_version="1.3.29.1" ismachine="1" sessionid="{19A1B502-10BF-484F-8A0D-D67E94D1B62E}" installsource="taggedmi" requestid="{E6B71FEB-CC00-49F6-89A2-70DE65A2083A}" dedup="cr">
    <!-- <hw physmemory="6" sse="1" sse2="1" sse3="1" ssse3="1" sse41="1" sse42="1" avx="1"/> -->
    <os platform="win" version="10.0" sp="" arch="x86"/>
    <app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" nextversion="" lang="en" brand="" client="" installage="-1" installdate="-1" iid="{12066EC4-352D-45CF-A793-465E1E7EA180}">
        <updatecheck/>
    </app>
</request>'''

async def query_chrome(ver):
    req = network.AsyncHttp()
    # req.SetProxy('localhost', 6789)
    ret = await req.request('post', 'https://tools.google.com/service/update2', data = ver)

    info = ET.fromstring(ret.text())
    app = info.find('app')
    updatecheck = app.find('updatecheck')
    urls = updatecheck.find('urls')
    manifest = updatecheck.find('manifest')

    name = manifest.find('packages')[0].attrib['name']
    dllist = [(x.attrib['codebase'] + name) for x in urls]

    for url in dllist:
        print(url.split('://', maxsplit = 1)[1])
    print()

    return dllist

@asynclib.main
async def run():
    dl = (await query_chrome(stable))[-1]

    req = network.AsyncHttp()
    open(os.path.join('D:\\Desktop\\', os.path.basename(dl)), 'wb').write((await req.request('get', dl)).content)

def main():
    run()
    console.pause('done')

if __name__ == '__main__':
    Try(main)

在没有鼠标按键的情况下,会接收不到 mouseMoveEvent,相当困扰。OD 跟了一小时,毫无进展

省略掉过程

结果当然是解决了

class EventDispatcher(QObject):
    def eventFilter(self, Receiver, Event):
        type = Event.type()
        if type == QEvent.MouseMove and isinstance(Receiver, QWidget):
            f = None
            try:
                f = Receiver.mouseMoveEvent
            except AttributeError:
                pass

            if callable(f):
                f(Event)
                return False

        return super().eventFilter(Receiver, Event)


Dispatcher = EventDispatcher()
app = QApplication(sys.argv)
app.installEventFilter(Dispatcher)

搞定……真是好 SB 的 BUG(?)

1
configure.bat -platform win32-msvc2010 -confirm-license -release -opensource -shared -ltcg -nomake tests -nomake examples -mp -no-opengl


北京时间 2014年5月29日 2:28

瞎 JB 折腾了 48 小时,还是失败了……

然后打开官网一看,尼玛个逼,支持 py 3.4 的出来了,操

  1. 还是先装这个驱动

  2. 然后再选择一个喜欢的第三方 recovery,个人推荐 TWRP,因为支持触屏

    ClockworkMod Recovery

    TWRP Recovery

  3. 2和3下载的东西放到一起,如图
  4. 关机。按住电源键和音量下,进入 bootloader/fastboot

  5. 用音量键切换到 Restart Bootloader,按电源键选择。重启后再切换到 Recovery Mode,按电源键
1
2
3
4
5
6
7
8
9
10
echo fuck
fastboot flash bootloader bootloader-bullhead-bhz10i.img
fastboot reboot-bootloader
fastboot flash radio radio-bullhead-m8994f-2.6.28.0.65.img
fastboot reboot-bootloader
fastboot erase cache
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot flash system system.img
fastboot flash vendor vendor.img