AlphaPi相关硬件驱动提取
初涉硬件编程,在咸鱼上搞了几块AlphaPi和microbit的板鼓捣了一下,alphapi生态不完善,网上又无任何文档,搞封闭,可玩性实在有限,但貌似相关扩展板是可以插microbit的,于是想把这些扩展版用microbit来驱动。
看了核桃编程和量子兔编程的安装程序,从文件结构和文件名称可以确定,软件是用Unity游戏引擎写的,相关资源被打包成Asset Bundle(*.ab)文件,目录路径(量子兔机器人_Data\StreamingAssets\Bundles\Windows\)
按照网上教程去github下载assetStudio和UABE (Unity Asset Bundle Extractor) 就能从*.ab文件中提取出相关资源,assetStudio和UABE都是下载解压即可使用,无需安装,文件仅10M左右。
提取后,发现驱动是microPython编译成.mpy的二进制编码文件,虽然在.ab文件中提取出来的文件名为Python.bytes,但实际上是.mpy文件改了扩展名而已。
用mpy-tool.py对.mpy文件进行处理,得到一份样子有点像是汇编语言但不是汇编语言的代码, 本质来说,mpy-tool.py是把“二进制字节码(Binary Bytecode)”转成“人类可读的字节码(Readable Bytecode)” ,mpy-tool.py做的主要是将变量名、函数名、方法名的引用进行解码,使它们映射回原始的可读名称,同时解析代码文件的整体结构。
然后把Readable Bytecode交给chatgpt,让它将其还原成普通microPython代码。