魅族手机配置linux
1、更换源的操作:
vim /etc/apt/sources.list
#deb http://ftp.debian.org/debian/ stable main contrib non-free
#deb-src http://ftp.debian.org/debian/ stable main contrib non-free
deb https://mirrors.163.com/debian/ stable main contrib non-free
deb-src https://mirrors.163.com/debian/ stable main contrib non-free
stable 是debian的一个版本,一般debian 10 是buster
2、安装数据库
2.1、安装mariadb
除了ubuntu,debian等发行版移除了mysql,只能安装mariadb
apt-get install mariadb-server
2.2、对mariadb进行初始化
mysql_secure_installation
# 根据提示进行设置,包括设置密码等操作
2.3、mysql配置外网访问
2.3.1、解除安卓系统网络限制
在安卓手机安装的debian中,需要执行下面这行代码才能让mysql能够被外网访问
usermod -aG aid_inet mysql
2.3.2、注释绑定的本地IP
在mysql配置文件/etc/mysql/mariadb.conf.d/50-server.cnf 中,默认绑定本地IP地址导致外网无法访问mysql,需注释该配置
# bind-address = 127.0.0.1
2.3.3、设置数据库访问权限
grant all privileges on databaseName.tableName to 'username'@'localhost' identified by 'password' with grant option;
flush privileges;
-- 其中databaseName和tableName分别表示库名和表名,可用*表示任意库或任意表
-- username表示用户名,localhost指本地地址,可使用%表示任意地址,也可指定特定的IP地址
-- password 表示密码,flush privileges刷新对权限的修改,使改动立即生效
2.3.4、安装时的一些坑
# 安装源
dpkg -i mysql-apt-config_0.8.15-1_all.deb
# 卸载源
dpkg -P mysql-apt-config
3、安装gogs
3.1、安装gogs之前需先安装git
apt install git
3.2、下载gogs
在https://gogs.io/docs/installation/install_from_binary.html页面选择合适的版本下载。
当前在arm架构中最新的只支持armv6,下载后解压。
3.3、修改配置
gogs脚本默认以git用户启动,如果当前用户不是git需修改成当前用户。
vim gogs/scripts/init/debian/gogs
# 将USER对应的值改为root
USER=root
3.4、执行安装
./gogs web
浏览器访问http://设备IP:3000,配置数据库等信息、管理员用户可不创建,之后注册的第一个用户(ID=1)自动成为管理员
3.5、后续启动使用
vim gogs/custom/conf/app.ini
# 将RUN_USER的值改为root
RUN_USER = root
# 然后使用启动命令
./gogs web
4、安装kodexplorer
4.1、安装nginx
apt install nginx
vim /etc/nginx/sites-enabled/default
#修改默认网站根目录
root /root/nginx/html;
#启用php
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
# 重启nginx
service nginx restart
4.2、安装php
apt install php7.3-fpm php7.3-curl php7.3 php7.3-mbstring php7.3-gd php7.3-xml php7.3-common php7.3-cli
vim /etc/php/7.3/fpm/pool.d/www.conf
# 修改运行用户
;user = www-data
;group = www-data
user=root
group=root
启动php-fpm
# php7.3-fpm -R
4.3、部署kodexplorer
下载kodexplorer,将zip包解压到nginx根目录。
5、配置USB自动挂载
手机无法启动udev服务,额,暂时没法使用
使用udisk2实现
自己写代码监听内核日志,发现usb插入、拔出日志,触发。
其他知识点:
https://zixijian.github.io/2020/09/01/007.html
https://zixijian.github.io/2021/01/15/008.html
保持 cpu 唤醒不起作用
表现为操作卡顿、联网卡顿,
使用 wakelock 锁,shell 中输入:
获取 su 权限
su
保持 cpu 唤醒:
echo lock_me > /sys/power/wake_lock
解除 wakelock 锁:
echo lock_me > /sys/power/wake_unlock
注:容器内使用时命令前面加 unchroot,
对 /sys 分区操作时不需要(容器挂载了 /sys 分区)。
Wi-Fi 进入节能模式
表现为不能全速传输,延时高。
查询节能状态
unchroot iw dev wlan0 get power_save
关闭节能模式
unchroot iw wlan0 set power_save off
6、解锁bl
不需要官方工具,进入fastboot模式(电源键+音量减)。解锁会清空数据!!!
注意是fastboot,不是adb,需要使用扩展坞,电脑usb口电压不够,无法成功识别adb,或者识别后无法执行命令。
fastboot oem unlock 111111111111111
...
(bootloader) Begin to do oem unlock ...
OKAY [ 0.042s]
finished. total time: 0.044s
出现上面的内容,此时手机上出现确认界面。
充电策略控制
将手机用作服务器后, 无用的安卓服务占据大量内存, 可停止安卓服务并使用 crontab 定时任务控制充电。
停止安卓服务:
unchroot /system/bin/stop
恢复安卓服务
unchroot /system/bin/start
创建 crontab 定时任务:
crontab -e
*/5 * * * * /usr/chargec.sh
创建脚本文件:
touch /usr/chargec.sh
chmod a+x /usr/chargec.sh
编辑充电控制脚本:
#!/bin/sh
# Android chroot charge limit controller
# author: zixijian
# website: zixijian.github.io
# co-author: Ethereal
# useage: crontab -e
# */5 * * * * /usr/chargec.sh
# define
charge=`cat /sys/class/power_supply/battery/status`
capacity=`cat /sys/class/power_supply/battery/capacity`
echo Now battery is: $charge.
echo Now battery level is: $capacity.
# set max charge current
# parameter: 800mA=800000
chmod 644 /sys/class/power_supply/battery/constant_charge_current_max
echo 800000 > /sys/class/power_supply/battery/constant_charge_current_max
# check max limit
if [ $capacity -ge 85 ]; then
# stop
echo 1 > /sys/class/power_supply/battery/input_suspend
fi
# check min limit
if [ $capacity -le 35 ]; then
# start
echo 0 > /sys/class/power_supply/battery/input_suspend
fi
红米note4x mido 充电控制文件为:
/sys/class/power_supply/battery/charging_enabled
禁止充电值为 0,开启充电值为 1。
# check max limit
if [ $capacity -ge 85 ]; then
# stop
echo 0 > /sys/class/power_supply/battery/charging_enabled
fi
# check min limit
if [ $capacity -le 35 ]; then
# start
echo 1 > /sys/class/power_supply/battery/charging_enabled
fi
常见问题
- CLI 启动失败,无法操作内存卡(内部存储)
从外部修改 sshd 配置:
UsePAM no
修改 /root/.profile 最后一行为:tty -s && mesg n || true
将用户加入aid_everybody
分组:usermod -aG aid_everybody username
- SSH 服务启动失败 常见网络问题, 可尝试更换网络环境重新安装系统, 使用 rootfs 包安装系统。 使用 CLI 调试。
- 容器挂载失败 检查 SElinux 状态, 更换 busybox 版本, 更换安装方式为目录安装。
- MYSQL、ping 等不能使用
将用户加入
aid_inet
用户组:usermod -aG aid_inet mysql
usermod -aG aid_inet root
- 按 TAB 不能自动补全路径
修改默认 shell:
chsh
输入/bin/bash
。