当前位置: 首页 > news >正文

android-sqlite3:从官方 SQLite 源码自动构建 Android 可用的 sqlite3

GitHub 项目地址https://github.com/0pen1/android-sqlite3背景在 Android 设备上调试数据库时sqlite3命令行工具非常实用。它可以直接查看表结构、执行 SQL、验证数据、分析 App 私有目录里的数据库文件也适合在自动化测试和设备排障场景里快速定位问题。但现实情况是很多 Android 系统和厂商 ROM 并不默认提供sqlite3命令。即使设备有 root 权限进入adb shell后也经常会遇到/system/bin/sh: sqlite3: inaccessible or not foundandroid-sqlite3这个项目就是为了解决这个问题提供一个可验证、可复现、可以直接通过adb push放到 Android 设备上运行的sqlite3命令行构建方案。项目定位android-sqlite3不是 SQLite 的 fork也不维护修改版 SQLite 源码。项目的核心目标是从 SQLite 官方源码构建 Android 可执行文件。构建过程可追溯、可验证、可复现。通过 GitHub Actions 自动编译并发布 Release。产物可以直接在 Android 设备上通过adb shell使用。当前支持的 ABIarm64-v8a armeabi-v7a x86_64其中arm64-v8a适用于绝大多数现代 Android 手机。为什么不直接提交 SQLite 源码这个项目选择不把 SQLite 源码直接提交进仓库而是维护一个非常小的版本描述文件sqlite-version.env里面固定 SQLite 版本号、官方年份目录和官方 SHA3-256 校验值。构建时脚本会从SQLite 官方网站下载对应的 amalgamation 源码包然后先校验 SHA3-256校验通过后再进入编译阶段。这种方式有几个好处可以清晰证明构建源码来自 SQLite 官方发布包。避免手动同步源码造成偏差。仓库保持轻量只维护构建逻辑和版本元数据。每次构建都能重新验证源码完整性。构建流程项目中的构建流程分为两步scripts/download_sqlite.sh scripts/build_android.sh第一步下载并校验官方源码SQLite official amalgamation zip ↓ SHA3-256 verification ↓ build/sqlite-amalgamation-version/第二步使用 Android NDK 编译shell.c sqlite3.c ↓ Android NDK clang ↓ dist/abi/sqlite3 ↓ dist/sqlite3-android-version.zipGitHub Actions 会在 push、pull request、手动触发时自动执行构建。推送版本 tag时例如gittag v3.53.1gitpush origin v3.53.1工作流会额外创建 GitHub Release并上传编译好的压缩包。Android 上如何使用下载 Release 里的压缩包后选择对应 ABI 的sqlite3。大多数设备使用arm64-v8a/sqlite3推送到设备adb push arm64-v8a/sqlite3 /data/local/tmp/sqlite3 adb shellchmod755/data/local/tmp/sqlite3 adb shell /data/local/tmp/sqlite3--version打开普通数据库adb shell /data/local/tmp/sqlite3 /sdcard/Download/test.db执行 SQLadb shell/data/local/tmp/sqlite3 /sdcard/Download/test.db select sqlite_version();Root 调试场景如果设备有 root 权限可以查看 App 私有目录下的数据库adb shellsu-c/data/local/tmp/sqlite3 /data/data/package/databases/db-name .tables查询 schemaadb shellsu-c/data/local/tmp/sqlite3 /data/data/package/databases/db-name select * from sqlite_master;更推荐的做法是先复制数据库再做分析adb shellsu-ccp /data/data/package/databases/db-name /data/local/tmp/app.dbadb shellsu-cchmod 644 /data/local/tmp/app.dbadb pull /data/local/tmp/app.db.这样可以避免直接修改正在被 App 使用的数据库。已启用能力当前构建启用了常用 SQLite 功能SQLITE_THREADSAFE1 SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_DBSTAT_VTAB SQLITE_ENABLE_EXPLAIN_COMMENTS SQLITE_ENABLE_FTS4 SQLITE_ENABLE_FTS5 SQLITE_ENABLE_MATH_FUNCTIONS SQLITE_ENABLE_RTREE SQLITE_ENABLE_UNLOCK_NOTIFY SQLITE_HAVE_ZLIB1这意味着它不仅能执行基本 SQL也支持 FTS5、RTREE、数学函数、dbstat 虚拟表和zlib 相关能力。为了减少 Android 设备上的依赖问题构建中关闭了 readline 依赖。真机验证当前版本已经在一台arm64-v8aAndroid 设备上验证通过SQLite 3.53.1 普通 shell 执行通过 root shell 执行通过 建表、插入、查询通过 FTS5 测试通过 JSON 函数测试通过 zlib 可用这说明产物不仅能启动也能覆盖实际调试中常见的 SQLite shell 能力。适合哪些人使用这个项目适合Android 逆向分析和安全研究人员。Android App 开发者。测试和自动化工程师。需要在 root 设备上查看 App 数据库的调试人员。希望维护自有 Android sqlite3 构建产物的团队。如果你只是临时在手机上使用 SQLite也可以选择 Termux。但如果你的工作流依赖adb shell、root 设备、自动化测试或 CI 发布产物那么这个项目会更直接。项目特点总结android-sqlite3的重点不是“又编译了一个 sqlite3”而是提供了一套清晰的构建和验证链路官方源码 ↓ 官方 SHA3-256 校验 ↓ Android NDK 编译 ↓ GitHub Actions 自动构建 ↓ GitHub Release 发布 ↓ adb push 后直接运行对于需要长期维护 Android 调试工具链的人来说这比从不明来源下载一个二进制文件更透明也更容易审计。项目地址https://github.com/0pen1/android-sqlite3
http://www.rkmt.cn/news/1395128.html

相关文章:

  • ChatGPT文件上传失败率高达63.7%?资深工程师曝光3个被忽略的客户端埋点陷阱及修复Checklist
  • 创业团队如何利用Taotoken快速原型验证不同模型的AI能力
  • 【高并发AI网关设计内参】:单节点扛住5000+ QPS的API路由、熔断与审计方案
  • Claude 4.7 Opus 智能应用落地实战指南
  • 5个简单步骤:用BiliBiliCCSubtitle实现B站字幕高效提取
  • 如何高效部署系统授权管理工具:企业级批量许可解决方案终极指南
  • 20254220 2025-2026-2 《Python程序设计》实验四报告
  • 双效降重神器|5 款真正能过 AI 检测的论文工具,降重 + 去 AI 痕一步到位
  • OoderAI V3.5.0 技术白皮书——NLP 驱动的 AI 原生开发平台
  • libhv实战:构建一个具备自动重连与心跳机制的TCP客户端
  • 临床执业医师老师推荐:一位讲师,一套体系,一条路径 - 医考机构品牌测评专家
  • 分区网格与动态模型:高效高精度壁湍流大涡模拟实践
  • RevIN-TadGAN:应对分布偏移的射频信号无监督异常检测实战
  • 高效游戏加速框架:OpenSpeedy开源项目集成指南
  • 基于ENS210传感器与Arduino的高精度露点监测仪设计与实现
  • 26-cv-3065、26-cv-3391、26-cv-4054 BLACK CLOVER 黑色四叶草、BLEACH
  • 超节点技术深度篇五:长上下文推理与 KV Cache 池化:从显存压力到 PD 分离调度
  • 通过 Python 调用 Taotoken 实现多模型自动切换与降级策略
  • 26-cv-2701、26-cv-2736、26-cv-2794、26-cv-5556、26-cv-5631、26-cv-5683、26-cv-5877、26-cv-5981 UGG商标!
  • 开源显示校准工具G-Helper:三步解决华硕笔记本屏幕色彩异常问题
  • 镜像视界浙江科技有限公司·数字孪生/视频孪生/无感定位/跨镜跟踪 行业地位与核心优势
  • 哈夫曼树代码
  • 2026年AI论文平台深度评测:6款工具全流程得分排名
  • 拉美海外仓实测评测:合规时效成本及平台适配全维度对比 - 互联网科技品牌测评
  • NVIDIA Profile Inspector完全指南:解锁显卡隐藏性能的7个关键技术步骤
  • Nacos 2.x 源码深度解析 (六):三级缓存体系 —— 降级兜底与故障自愈机制
  • 在Eclipse IDE中开始使用GitHub Copilot的ABAP支持
  • 【飞机】自主无人机飞行稳定和轨迹跟踪【含Matlab源码 15569期】
  • 用Python解码新年决心的时间序列规律
  • 从‘年龄与疾病’到数据分析入门:用OpenJudge题目教你玩转计数与百分比