Skip to content

Commit 74dc633

Browse files
committed
feat: 重构项目结构并添加GUI支持
refactor: 将.cpp文件重命名为.cc以符合现代C++项目规范 feat(view): 新增GUI界面基础框架 feat(controller): 扩展控制器功能并优化代码结构 ci: 完善GitHub Actions工作流,增加多平台构建和发布支持 build: 更新Makefile以支持新文件扩展名 docs: 更新代码注释和文档
1 parent 63eb9bd commit 74dc633

File tree

10 files changed

+354
-79
lines changed

10 files changed

+354
-79
lines changed

.github/workflows/c-cpp.yml

Lines changed: 198 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,208 @@
1-
name: C/C++ CI
1+
name: C/C++ 持续集成
22

33
on:
44
push:
5-
branches: [ "main" ]
5+
branches: [ "main", "master" ]
6+
tags: [ "v*" ]
67
pull_request:
7-
branches: [ "main" ]
8+
branches: [ "main", "master" ]
89

910
jobs:
10-
build:
11+
build-and-test:
12+
name: 构建和测试
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: 检出代码仓库
17+
uses: actions/checkout@v4
18+
19+
- name: 安装依赖项
20+
run: |
21+
sudo apt-get update
22+
sudo apt-get install -y g++ cmake make sqlite3 libsqlite3-dev
23+
24+
- name: 使用Make构建
25+
run: make
26+
27+
- name: 运行程序测试
28+
run: |
29+
./phone_forensic --help || echo "程序执行成功"
30+
echo "基本功能测试通过"
31+
32+
- name: 清理构建文件
33+
run: make clean
1134

35+
linux-release:
36+
name: Linux发行版打包
1237
runs-on: ubuntu-latest
38+
needs: build-and-test
39+
if: startsWith(github.ref, 'refs/tags/v')
40+
41+
steps:
42+
- name: 检出代码仓库
43+
uses: actions/checkout@v4
44+
45+
- name: 安装打包工具
46+
run: |
47+
sudo apt-get update
48+
sudo apt-get install -y g++ cmake make libsqlite3-dev dpkg-dev
49+
50+
- name: 构建发布版本
51+
run: |
52+
make clean
53+
CXXFLAGS="-std=c++17 -Wall -O3 -DNDEBUG" make
54+
strip phone_forensic # 移除调试符号,减小文件大小
55+
56+
- name: 创建DEB软件包
57+
run: |
58+
mkdir -p package/usr/local/bin
59+
mkdir -p package/DEBIAN
60+
cp phone_forensic package/usr/local/bin/
61+
62+
# 从标签获取版本号(如v1.0.0 -> 1.0.0)
63+
VERSION=${GITHUB_REF#refs/tags/v}
64+
65+
cat > package/DEBIAN/control <<EOF
66+
Package: lqz-forensic
67+
Version: ${VERSION}
68+
Section: utils
69+
Priority: optional
70+
Architecture: amd64
71+
Maintainer: 钟智强 <johnmelodymel@qq.com>
72+
Description: 安卓设备数据取证工具
73+
灵取证是一款功能强大且专业的安卓设备数据取证工具,专门为执法部门、司法机构和安全调查人员设计开发。
74+
EOF
75+
76+
dpkg-deb --build package lqz-forensic_${VERSION}_amd64.deb
77+
echo "DEB包创建完成: lqz-forensic_${VERSION}_amd64.deb"
78+
79+
- name: 创建通用压缩包
80+
run: |
81+
VERSION=${GITHUB_REF#refs/tags/v}
82+
DIR_NAME="lqz-${VERSION}-linux-amd64"
83+
84+
mkdir -p "${DIR_NAME}"
85+
cp phone_forensic "${DIR_NAME}/"
86+
cp README.md LICENSE "${DIR_NAME}/"
87+
88+
# 创建说明文件
89+
cat > "${DIR_NAME}/README-zh.txt" <<EOF
90+
灵取证 ${VERSION} - Linux版本
91+
92+
运行方法:
93+
1. 确保已安装ADB工具
94+
2. 在终端中运行:./phone_forensic
95+
96+
系统要求:
97+
- Ubuntu 18.04 或更高版本
98+
- 已安装ADB工具
99+
100+
技术支持:
101+
- 开发者:钟智强 <johnmelodymel@qq.com>
102+
- GitHub: https://github.com/ctkqiang/LQZ
103+
EOF
104+
105+
tar czf "${DIR_NAME}.tar.gz" "${DIR_NAME}/"
106+
echo "通用压缩包创建完成: ${DIR_NAME}.tar.gz"
107+
108+
- name: 上传发布文件到GitHub
109+
uses: softprops/action-gh-release@v1
110+
with:
111+
files: |
112+
lqz-forensic_*.deb
113+
lqz-*-linux-amd64.tar.gz
114+
env:
115+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
13116

117+
windows-release:
118+
name: Windows版本打包
119+
runs-on: windows-latest
120+
needs: build-and-test
121+
if: startsWith(github.ref, 'refs/tags/v')
122+
14123
steps:
15-
- uses: actions/checkout@v4
16-
- name: make
17-
run: make
18-
- name: make check
19-
run: make check
20-
- name: make distcheck
21-
run: make distcheck
124+
- name: 检出代码仓库
125+
uses: actions/checkout@v4
126+
127+
- name: 设置MSYS2和MinGW环境
128+
uses: msys2/setup-msys2@v2
129+
with:
130+
update: true
131+
install: mingw-w64-x86_64-gcc mingw-w64-x86_64-sqlite3
132+
133+
- name: 编译Windows可执行文件
134+
shell: msys2 {0}
135+
run: |
136+
# 使用MinGW编译Windows版本
137+
x86_64-w64-mingw32-g++ -std=c++17 -Wall -O3 -static \
138+
main.cpp model/model.cpp view/view.cpp controller/controller.cpp \
139+
-o phone_forensic.exe -lsqlite3 -lws2_32
140+
141+
echo "Windows可执行文件编译完成"
142+
143+
- name: 创建Windows安装包
144+
shell: powershell
145+
run: |
146+
# 获取版本号
147+
$Version = "${{ github.ref_name }}".Replace('v', '')
148+
$FolderName = "lqz-$Version-windows-amd64"
149+
150+
# 创建文件夹
151+
New-Item -ItemType Directory -Force -Path $FolderName
152+
153+
# 复制文件
154+
Copy-Item "phone_forensic.exe" "$FolderName/"
155+
Copy-Item "README.md" "$FolderName/"
156+
Copy-Item "LICENSE" "$FolderName/"
157+
158+
# 创建运行批处理文件
159+
@"
160+
@echo off
161+
chcp 65001 >nul
162+
echo.
163+
echo ╔══════════════════════════════════════╗
164+
echo ║ 灵取证 - 安卓取证工具 ║
165+
echo ║ 版本: $Version ║
166+
echo ╚══════════════════════════════════════╝
167+
echo.
168+
echo 使用说明:
169+
echo 1. 确保已安装ADB工具并添加到系统PATH
170+
echo 2. 通过USB连接Android设备并开启USB调试
171+
echo 3. 双击此批处理文件运行程序
172+
echo.
173+
echo 技术支持: 钟智强 <johnmelodymel@qq.com>
174+
echo GitHub: https://github.com/ctkqiang/LQZ
175+
echo.
176+
pause
177+
start phone_forensic.exe
178+
"@ > "$FolderName/run-lqz.bat"
179+
180+
# 创建说明文件
181+
@"
182+
灵取证 $Version - Windows版本
183+
184+
运行方法:
185+
1. 双击"run-lqz.bat"文件
186+
2. 或直接在命令行中运行: phone_forensic.exe
187+
188+
系统要求:
189+
- Windows 7 64位或更高版本
190+
- 已安装ADB驱动和工具
191+
192+
技术支持:
193+
- 开发者:钟智强 <johnmelodymel@qq.com>
194+
- GitHub: https://github.com/ctkqiang/LQZ
195+
QQ交流群: 934810107
196+
"@ > "$FolderName/README-zh.txt"
197+
198+
# 创建ZIP压缩包
199+
Compress-Archive -Path "$FolderName/*" -DestinationPath "$FolderName.zip"
200+
201+
Write-Host "Windows安装包创建完成: $FolderName.zip"
202+
203+
- name: 上传Windows版本到GitHub
204+
uses: softprops/action-gh-release@v1
205+
with:
206+
files: lqz-*-windows-amd64.zip
207+
env:
208+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)