安卓系统 4.2.2 硬件是荣耀立方
只对电视盒子部分进行了操作,没有修改路由部分
先安装<超级终端><RE文件管理器>(华为的应用市场里有),安装 <360超级root>(很坑的一个玩意。如果可以用其他软件ROOT,不建议用这个)
下载 arm 版的 dropbear,可以自己编译,也可以在下面地址下载
链接: https://pan.baidu.com/s/1XhIU9DQ1OyXWFR_CKwf_XA 密码: vkfd
PS:该版本的dropbear 启动之后,任意用户名,任意密码都都可以登陆,不知道为什么,最后只能启用了证书登录
压缩包内文件包括
─ ssh ├── bbc.sh ├── busybox ├── dropbear ├── dropbearkey ├── keys │ ├── authorized_keys │ └── g1.ppk ├── mot_boot_mode ├── scp ├── ssh └── ssh.sh
文件夹 复制到U盘或者SD卡(我直接通过smb 放到立方的根目录了)插到设备上
打开超级终端,在命令行下直接 输入 “su” 如果ROOT没问题的话,会然后对超级终端授权
然后将文件复制到 /data/sshtmp 目录
###注意:个人环境不同,命令不同。注意命令路径#### cp -r /mnt/sda/sda1/ssh /data/sshtmp #文件复制到 /data/sshtmp 目录 cd /data/sshtmp #进入到文件目录 chmod 755 * #设置文件权限 也可以使用 \'chmod +x *\' 赋予运行权限 cp busybox /system/xbin #复制busybox 到PATH目录,以下同理 cp dropbear /system/xbin cp dropbearkey /system/xbin cp scp /system/xbin cp ssh /system/xbin
需要的文件复制完毕,做常用命令的链接。PS:对于新手,请确认你知道在做什么。否则,请先看完全文在做操作,尤其是坑的部分
ln -s /system/xbin/busybox [ ln -s /system/xbin/busybox cat ln -s /system/xbin/busybox chmod ln -s /system/xbin/busybox chown ln -s /system/xbin/busybox cmp ln -s /system/xbin/busybox cp ln -s /system/xbin/busybox date ln -s /system/xbin/busybox dd ln -s /system/xbin/busybox df ln -s /system/xbin/busybox dmesg ln -s /system/xbin/busybox ifconfig ln -s /system/xbin/busybox insmod ln -s /system/xbin/busybox kill ln -s /system/xbin/busybox lsmod ln -s /system/xbin/busybox md5sum ln -s /system/xbin/busybox mkdir ln -s /system/xbin/busybox mount ln -s /system/xbin/busybox mv ln -s /system/xbin/busybox netstat ln -s /system/xbin/busybox printenv ln -s /system/xbin/busybox ps ln -s /system/xbin/busybox renice ln -s /system/xbin/busybox rm ln -s /system/xbin/busybox rmdir ln -s /system/xbin/busybox rmmod ln -s /system/xbin/busybox route ln -s /system/xbin/busybox setconsole ln -s /system/xbin/busybox sleep ln -s /system/xbin/busybox sync ln -s /system/xbin/busybox test ln -s /system/xbin/busybox top ln -s /system/xbin/busybox umount ln -s /system/xbin/busybox vi
建立 dropbear运行环境
1 mkdir /data/dropbear #建立dropbear主目录 2 chmod 644 /data/dropbear #设置目录的权限 3 mkdir /data/dropbear/.ssh #建立ssh的配置目录 4 chmod 644 /data/dropbear/.ssh #设置目录权限 5 dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key #生成密钥 6 dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key #生成密钥 7 echo >>/data/dropbear/.profile "PATH=/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin" #建立用的环境变量 8 echo >>/data/dropbear/.profile "export PATH" #建立用的环境变量 9 ln -s /data/dropbear /etc/dropbear #做目录快捷方式
然后运行命令
dropbear -v
可以用ssh 直接到该设备了。PS:我这里用户名和密码貌似随便输入就能登陆
设置dropbear 证书登录
cp ./keys/authorized_keys /data/dropbear/.ssh #将公钥复制到ssh配置目录 chmod 600 /data/dropbear/.ssh/authorized_keys #设置权限否则不能用
这个证书是通过puttygen 或者SecureCRT 生成。
生成步骤如下:
具体生成方式以及使用putty 或者SecureCRT登陆搜一下有很多
自启动设置。文件夹中 mot_boot_mode 可用于自启动 命令
mv /system/bin/mot_boot_mode /system/bin/mot_boot_mode.bin #重命名原始脚本
cp mot_boot_mode /system/bin #将该脚本复制执行目录
这种方法在我这设备上(荣耀立方)无效
我是通过修改 \'/system/bin/start.webserver.sh\' 文件来实现开机自启动
========================================
以下是遇到的问题,和一些坑
=======================================
问题一:输入命令 chmod 755 * 或 chmod +x * 蓝屏重启。
查看 /systme/bin/chmod 命令,指向的是 toolbox 程序。解决方法是用busybox 提供的chmod 程序。但因为这个时候 busybox 还没有运行权限,解决方法两种如下,
方法一,
安装RE文件管理器,直接用RE设置busybox 的运行权限,
然后运行 ‘ /system/xbin/busybox rm /system/bin/chmod ’ 删除原来的chmod程序
继续运行‘/system/xbin/busybox ln -s /system/xbin/busybox /system/bin/chmod’ 重新建立chmod指向
方法二,
使用linux系统,将U盘格式化为 ext4 (貌似fat,ntfs 不支持linux的权限属性),然后在Linux系统下将busybox 设置chmod 755 * ,然后U盘插到设备上
然后运行 ‘ busybox rm /system/bin/chmod ’ 删除原来的chmod程序
继续运行‘ busybox ln -s /system/xbin/busybox /system/bin/chmod’ 重新建立chmod指向
问题二:
同上面类似,/system/bin/ 下面原有的命令可能链接到其他的程序,或者是链接到精简版的busybox。有需要,可以重新关联。
建议先测试复制进去的busybox与系统的兼容新,然后将原来的删除,重新关联。查看busybox里包含的命令,直接运行就可以查看,如下图
原系统自带的 阉割版busybox
标准的,busybox
问题三,
修改/system/bin 等文件 会 提示 \'Read-only file system\'只读 文件系统
解决方法,运行 mount命令 (如果 mount运行不了,参照上面解决方式,用busybox 里面的mount )会发现文件系统 属性为 ro 如下图
可以看到 跟目录‘/’ 与 ‘/system’ 目录都是只读属性 ,需要重新挂载,命令如下
1 mount -o remount rootfs / #重新挂在跟目录 2 mount -o remount /dev/block/platform/hi_mci.1/by-name/system /system #重新挂载系统目录
在执行 mount命令查看 已经修改为 可读写模式
问题四,文件夹内文件说明:
keys文件内放置的是 自动登陆的公钥,和putty 上面用的私钥。linux ssh 无法使用
bbc.sh 是建立常用命令链接的。不建议直接运行。因为有些命令已经存在,我开始直接运行的,并不会覆盖原有链接,不知道为什么
ssh.sh 是用到的一些命令。
问题五: 有时候可能会建立linux 用户环境下面给出我用到的命令
1 echo "root:x:0:0::/root:/system/bin/sh" > /etc/passwd 2 echo "root::14531:0:99999:7:::" > /etc/shadow 3 echo "root:x:0:" > /etc/group 4 echo "root:!::" > /etc/gshadow 5 echo "/system/bin/sh" > /etc/shells 6 echo "PATH=\"/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/data/local/bin\"" > /etc/profile 7 echo "export PATH" >> /etc/profile
======================问题结束==============================
操作完成,测试SSH登陆已经自启动无问题后。可以删除 超级终端, re文件管理器,以及 360超级root (超级难删。。)