Android sqlite3 编译及安装

  1. 编译 sqlite3
    去官网下载 sqlite-autoconf-xxxxxxx.tar.gz 并解压
    确保电脑配置了 ANDROID_HOME 环境变量,修改脚本中对应的 ndk 版本号
    如果是32位架构,HOST 改为 armv7a,API 修改为对应手机的 Android 系统版本
    脚本如下:
bash 复制代码
#!/bin/bash

export TOOLCHAIN=$ANDROID_HOME/ndk/29.0.14206865/toolchains/llvm/prebuilt/darwin-x86_64
export HOST=aarch64-linux-android
export API=29
export CC=$TOOLCHAIN/bin/$HOST$API-clang
export CXX=$TOOLCHAIN/bin/$HOST$API-clang++
export AR=$TOOLCHAIN/bin/$HOST-ar
export AS=$TOOLCHAIN/bin/$HOST-as
export LD=$TOOLCHAIN/bin/$HOST-ld
export RANLIB=$TOOLCHAIN/bin/$HOST-ranlib
export STRIP=$TOOLCHAIN/bin/$HOST-strip
export CFLAGS="-mthumb -fpic -ffunction-sections -funwind-tables -fstack-protector-all -fno-strict-aliasing"
export CXXFLAGS="$CFLAGS -frtti -fexceptions"

./configure --prefix=`pwd`/build/sqlite3/ \
            --host=$HOST \
            --enable-shared \
            --disable-static
            
if [ $? -eq 0 ]; then
    make clean
    make -j16
    make install
fi
  1. push 到 /bin
bash 复制代码
adb -s e102dcb0 push `pwd`/build/sqlite3/bin/sqlite3 /sdcard
adb -s e102dcb0 shell << EOF
  su

  # 0. 移动sqlite3
  mv /sdcard/sqlite3 /data/local/tmp
	
	# 1. 定义模块目录变量
	MODDIR=/data/adb/modules/custom_path
	
	# 2. 创建目录
	mkdir -p $MODDIR/system/etc
	
	# 3. 写入 mkshrc 文件
	cat > $MODDIR/system/etc/mkshrc << 'EOF'
	# 为所有 shell(adb shell、终端模拟器、su 后的 shell)添加自定义 PATH
	export PATH=$PATH:/data/local/tmp
	EOF
	
	# 4. 写入模块属性文件
	cat > $MODDIR/module.prop << 'EOF'
	id=custom_path
	name=Custom PATH
	version=1
	versionCode=1
	author=equuleus
	description=Add /data/local/tmp to PATH for all shells
	EOF
	
	# 5. 设置权限
	chmod -R 755 $MODDIR
	chmod 644 $MODDIR/system/etc/mkshrc
	
	# 6. 验证文件已创建
	ls -l $MODDIR
	ls -l $MODDIR/system/etc/

  # 7.重启手机
  reboot

EOF

cd 到源码目录执行上述脚本会生成 sqlite3 可执行文件,如果你的手机已经是完全 root 过的,则直接 push 到 /system/xbin/ 即可。

但是我的手机是借助 magisk 来开启 root 权限的,是没有 system 分区的写权限的,这里我们先将 sqlite3 push 到 /sdcard 目录下,然后需要编写一个 magisk 模块 custom_path 来开启读写权限。

安装好 custom_path 模块后,重启执行 sqlite3 --version 。

bash 复制代码
(base) longwei@Mac-Pro ~ % adb -s e102dcb0 shell
$ su
# echo $PATH
/sbin:/system/sbin:/product/bin:/apex/com.android.runtime/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin:/data/local/tmp:/data/local/tmp
# sqlite3 --version
3.51.3 2026-03-13 10:38:09 737ae4a34738ffa0c3ff7f9bb18df914dd1cad163f28fd6b6e114a344fe6d618 (64-bit)
相关推荐
AC赳赳老秦6 分钟前
企业级合规审计体系:用 OpenClaw 落地采集全链路留痕,自动生成合规审计报告
java·python·django·beautifulsoup·php·deepseek·openclaw
吃杠碰小鸡1 小时前
VsCode中开发Java项目
java·vscode
宠友信息1 小时前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app
码农coding1 小时前
android12 点击桌面应用图标启动Activity流程
android
行百里er1 小时前
加个依赖就生效?一行搞定 Spring Boot Starter 自动装配
java·后端·监控
月华路2 小时前
G1 新生代对象晋升老年代:实现机制与 GC 日志
java·jvm·算法
johnsong2 小时前
深度拆解:150M循环模型如何用循环推理击败大Transformer
android·深度学习·transformer
AI人工智能+电脑小能手2 小时前
大白话说Java设计模式-34-命令模式(业务实战篇)
java·spring·设计模式·命令模式·异步任务·撤销重做·事务封装
净重21克2 小时前
万字长文!TLS协议升级避坑手册:JDK老项目适配TLS1.2/1.3全流程拆解
java·springboot·java安全
一直C2 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表