网心云OES折腾经验备份

前言

100从咸鱼收购一个oes一代的盒子,开始鼓捣,两周时间做各种推测,整理一下自己的处理流程:

1.盒子到手,捅屁股恢复出厂设置,可以反复做,最好让盒子开机固定ip 在10.9.8.7,官网有介绍,自己可以用浏览器打开10.9.8.7:8080看恢复出厂设置后,工作状态对不对。如果不是,盒子网络工作在dhcp模式,自己要去自己家的路由器上查询盒子的IP地址,最好的办法继续捅屁股,直到开机固定ip ,10.9.8.7。
2.装Moba xterm,这个有个工具端口扫描,看盒子开的端口,盒子默认开通了ssh,22端口,无论咋分析密码,Moba xterm显示链接失败。
3.分析原因:ssh这个错误和平时的SSH连接失败反馈的结果不一样,显示Bandon,而不是提示密码错误。分析厂家做了手脚,ssh密码错误是我们输入的不对,禁止登陆就是别的原因,后面的结果证明: 恢复出厂设置后root的密码为空,SSH登录不了,既然这样telent因该开放啊,解开后的系统说明厂家确实开了telent,只不过专门将telent设置成无法工作状态,这样两头无法破解。大佬们可以参考这个语句:

sleep 10

factorymode=fw_printenv xl_softmode | awk -F”=” ‘{print $2}’
if [ “${factorymode}” = “factory” ]; then
echo “fatorymode = ${factorymode}, S98 exit”
exit 1;
fi

checkpswd=cat /etc/shadow | grep “root:” | awk NR==1 | awk -F’:’ ‘{print $2}’
if [ “${check_pswd}” = “” ]; then
echo “no has passwd” > /tmp/S98.log
rm -f ‘/etc/shadow+’
myhostname=`hostname | awk -F’
’ ‘{print $2}’`
mypswd=”${myhostname}””a311d2019″
(echo ${mypswd}; sleep 1; echo ${mypswd}) | passwd root
else
echo “already has passwd” > /tmp/S98.log
fi
在/etc/init.d里面S98passwd文件专门配置密码的,呵呵你们自己琢磨。
3.单机用户推荐自己用ttl串口 波特115200,自己去破,与本人无关
4.刷机,进去看里面/etc/init.d目录,改造S00initrootfs S01rootfs_upgrade S20urandom S40network S42wifi S49ntp S50telnet S81named S87usbgadget S88wxmnt S90xyipkmng S98passwd rcK xyipkmng
S01logging S10mdev S30dbus S41inetd S48wx_earlyipk S50dropbear S80dnsmasq S86wxinit S88cache S89wxbase S95monit rc.modules rcS 里面的文件。
比如 S40network 设置你想要网络ip、网关; S50telnet S50dropbear 是重点,输入passwd命令 设置root密码,这样ssh就可以登陆了。其他的网心服务如S98passwd 该删就删了。
5.系统分析,整个系统是buildroot下生成,安卓9.0的底子,4.9的核心。进去以后就是一个docker服务,所有业务全部属在docker内,本来想安装一个debian或armbian,结果看了分区,整个system只有不到1G,难啊,这个固件活脱脱就是安卓架构
[ 2.564317] meson-mmc: [mmcblk0p01] bootloader offset 0x000000000000, size 0x000000400000
[ 2.573850] meson-mmc: [mmcblk0p02] reserved offset 0x000002400000, size 0x000004000000
[ 2.583389] meson-mmc: [mmcblk0p03] cache offset 0x000006c00000, size 0x000020000000
[ 2.592929] meson-mmc: [mmcblk0p04] env offset 0x000027400000, size 0x000000800000
[ 2.602461] meson-mmc: [mmcblk0p05] logo offset 0x000028400000, size 0x000000800000
[ 2.612010] meson-mmc: [mmcblk0p06] recovery offset 0x000029400000, size 0x000001800000
[ 2.621538] meson-mmc: [mmcblk0p07] misc offset 0x00002b400000, size 0x000002000000
[ 2.631080] meson-mmc: [mmcblk0p08] dto offset 0x00002dc00000, size 0x000000800000
[ 2.640611] meson-mmc: [mmcblk0p09] cri_data offset 0x00002ec00000, size 0x000000800000
[ 2.650151] meson-mmc: [mmcblk0p10] param offset 0x00002fc00000, size 0x000001000000
[ 2.659681] meson-mmc: [mmcblk0p11] boot offset 0x000031400000, size 0x000002000000
[ 2.669221] meson-mmc: [mmcblk0p12] rsv offset 0x000033c00000, size 0x000001000000
[ 2.678764] meson-mmc: [mmcblk0p13] tee offset 0x000035400000, size 0x000002000000
[ 2.688303] meson-mmc: [mmcblk0p14] vendor offset 0x000037c00000, size 0x000010000000
[ 2.697831] meson-mmc: [mmcblk0p15] odm offset 0x000048400000, size 0x000010000000
[ 2.707370] meson-mmc: [mmcblk0p16] system offset 0x000058c00000, size 0x000040000000
[ 2.716914] meson-mmc: [mmcblk0p17] kernel offset 0x000099400000, size 0x000002000000
[ 2.726455] meson-mmc: [mmcblk0p18] backup offset 0x00009bc00000, size 0x000040000000
[ 2.736000] meson-mmc: [mmcblk0p19] instaboot offset 0x0000dc400000, size 0x000020000000
[ 2.745521] meson-mmc: [mmcblk0p20] data offset 0x0000fcc00000, size 0x0000d5400000

安卓system分区会挂载不,想自己动手的可以参照,rootfs就在system,下面是内核,想扩展分区很难。
4.刷入自己的系统,把nas的弄进去,重点安装docker,原来的linux,没有bash,没有bash,我折腾10天时间,把docker安装好,好像原系统包含一个docker安装包,我用opkg 装不了,无语。
5.系统测试结果:

a311d的性能可以肯定的,上传下载都可以满速度1000兆,最高的cpu占用36%左右。


6.最后吐槽两句,那个装硬盘的盒子太小,3碟的2.5寸硬盘装不进去,ssd可以装3片,1%负载正常温度38度,36%以上温度飙升。