高度自定义工具OneMore开发

一、OneMore的诞生

在公司其他事业部有一个工具包bsptools集成了一些常用的工具,咨询了作者不开源。
同时设计的UI界面因为偏重于实用,界面设计也较为复古
https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_8355b1f2d5bccbd72503abdf93f9442a.png

受到此软件的启发,有了制作一款高度自定义的集成工具的想法,OneMore由此诞生。
下图为软件登录界面

https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_54c8b588490c0245356ecb93e478b7d4.png

二、框架设计

OneMore使用了pyqt6+fluent-widgets(https://github.com/zhiyiYo/PyQt-Fluent-Widgets/tree/PyQt6)进行开发,以侧边导航栏为分类,以新建标签页的形式来呈现每个工具的功能。将工具所需要的变量以可视化的方法交由使用人员配置进行。

https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_dca69931c0a962e8f6c826619e7f91b7.png

https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_121a599b49bdb8e934f848bac2117a9a.png

app/common: 存放通用的一些接口
app/resource: 存放资源文件,包括图标,背景图片,语言翻译文件等等
app/view/mtk_subinterface: 存放侧边导航栏MTK的工具集
app/view/qcom_subinterface: 存放侧边导航栏高通的工具集
app/view/ui : 设计为QT designer的ui设计文件,但是暂时里面只存放了测试ui
app/main_window.py: 主窗口文件
app/mtk_interface.py: mtk界面设计界面
app/qcom_interface.py: 高通界面设计界面
app/register_window.py: 账号登录界面
app/setting_interface.py: 设置界面

三、当前已实现功能

  1. 完成登录界面(后续软件会增加一些登录的限制,防止软件泛滥)

  2. 设置界面设计完成,包括深浅色模式切换、语言选择等等

  3. 导航栏设计完成,方便后续新增分类

  4. 标签页设计完成,方便后续分类中的tool新增标签页的

  5. tool执行页面设计完成,以工具简介/工具详细描述/工具执行参数可视化等元素

  6. 已实现MTK分类/Aee extractor的工具可视化

  7. 已完成高通分类/Linux Ramdump Parser的工具可视化部分

  8. 将UI与业务逻辑分离,后续增加新工具只需要实现业务逻辑

  9. 增加dtb解析dts工具

  10. 增加android images unpack工具

  11. 增加gdb调试工具

  12. 增加memory analyzer tool

  13. 增加MTK分类的KE/NE分析工具

  14. 增加NOC Decode工具

    https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_edc79fdc6fd2998798aa16b73dd75a31.png

    https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_2e15ffb4e4a50e793f5939a225062906.png

    https://hexoimg.oss-cn-shanghai.aliyuncs.com/blog/24/11/image_085dd9d9be798baf0a23006f88c9832c.png

四、后续期望

  1. 集成wifi/bt/charger/audio/等bsp模块的相关的工具或者测试脚本(会优先短距/charger/audio的工具集成)
  2. 集成稳定性相关工具
  3. 集成手机常用工具,比如跳过开机界面,同步手机时间等
  4. 增加串口工具(暂时遥遥无期,毕竟串口工具可选的很多)
  5. more…

五、共同开发

本着Linux开源的思想,本项目完全开源!
项目地址:https://github.com/miniLQ/onemore

  1. 如果您对此项目感兴趣,并且有能力协助一起开发,期待您的PR https://github.com/miniLQ/onemore/pulls
  2. 如果你对此项目有一些idea,也可以在issue提出您的建议,谢谢!https://github.com/miniLQ/onemore/issues