博客

  • DIY U2F/FIDO2 Key

    YubiKey略贵,找了一些方案打算DIY一个,当然Hacking的过程中更有乐趣。

    Arduino的方案
    https://linux.cn/article-6568-1.html
    https://tinyhack.com/2015/11/08/teensy-lc-u2f-key/
    https://hackaday.com/2015/11/09/turning-a-teensy-into-a-u2f-key

    开源方案:
    U2F Zero:https://github.com/conorpp/u2f-zero有国人根据资料自己做出来
    SoloKeys:https://github.com/solokeys/solo,下面重点说说SoloKeys这个项目。
    Tomu:https://tomu.im/,很小巧。
    nRF52:https://wiki.makerdiary.com/nrf52-u2f/
    SMT32:https://github.com/gl-sergei/u2f-token

    SoloKeys
    Conor Patrick一开始做了U2F Zero,社区反馈不错,卖了几千套。
    后来又开发出了一个改进版,支持FIDO2,支持NFC,并改名叫做SoloKeys,在KickStarter上众筹,取得了不错的成果。

    相关程序和硬件都是开源的,还提供了一份USB版的BOM清单,所以目前计划是DIY个SoloKeys,硬件上跟大伟初步沟通了一下,目前基本没啥问题

    其他
    USB armory,跟这个主题没多大关系,去年看到的,Mark一下,相关的硬件设计和Bom都是开源的,后面有空也可以玩一下。

  • 将斐讯N1盒子改造成游戏机

    斐讯N1在矿难之后价格一路下滑最低到60多包邮,去年11月左右我在拼多多上75包邮买下,也算是第一次正式使用拼多多,当时拼多多股价还在20USD左右,之后看涨拼多多,目标价翻倍。

    斐讯N1本质上是一个电视盒子,默认是安卓系统,可以直接接到电视上使用。
    基本硬件配置:
    SoC:S905d
    内存:2G
    网口:千兆
    USB:2个2.0接口
    HDMI:1个
    存储:8G eMMC
    这个盒子的硬件配置秒杀树莓派

    Armbian
    几年前有个俄罗斯队大神balbes150成功把armbian移植到Amlogic S805/S905方案的电视盒子上,一下子扩展了这类电视盒子的玩法,其他相关的衍生发行版也都实现了在电视盒子上运行。
    所以理论上所有基于Amlogic S805/S905系列的电视盒子都可以改造成游戏机。

    原计划是刷Armbian系统然后作为主力网关设备,并且规划了如下一些功能:
    1、家庭网络接入网关
    2、Syncthing主节点
    3、离线下载
    4、电话语音短信网关
    5、游戏模拟器
    6、视频、音乐播放服务器
    7、NAS存储

    第一次尝试:
    1、降级Bootloader(这个是必须的步骤)
    2、将5.74版本4.20内核的Armbian刷入到U盘
    3、启动到U盘系统(我们没有将系统刷入到内部的eMMC存储),接HDMI显示器,启动成功,发现网络不通,网上找了一些资料以及加了群问了一下别人没找到解决方案,于是打算使用5.44版本的Armbian

    第二次尝试:
    1、刷入5.44版本3.14内核的Armbian
    2、apt安装retroarch,启动retroarch极度卡顿,应该是GPU驱动未加载,硬件加速有问题
    3、加群问人以及网上找资料未找到解决方案

    第三次
    1、找了SX05RE这个三合一镜像(Lakka、CoreElec、ES)刷入运行很流畅
    2、这个发行版来历:OpenElec -> LibreElec -> CoreElec -> SX05RE
    3、CoreElec是专门为S805/S905定制的LibreElec版本
    4、SX05RE是在CoreElec基础上整合了游戏模拟器
    5、有线、无线、蓝牙全部正常
    6、调整定位,N1盒子只用作游戏机

    硬件外设:
    1、游戏手柄原打算买一个山寨版的PS3手柄,偶然在一个论坛看到有人推荐HORI这个牌子,下单买了一个HORI的蓝牙PS3手柄,70;
    2、另外又额外买了2个USB接口的红白机经典手柄,2个手柄21块包邮;
    3、感叹一下,我爱中国制造。

    系统设置:
    1、我安装是系统包,不带游戏,从网上找了几个经典游戏ROM:魂斗罗、打坦克、超级玛丽、泡泡龙,通过网络共享放到ROMS目录之后重启即可;
    2、中文游戏名”口口”问题:替换ES主题文件夹里字体为中文字体即可。

    参考链接:
    刷机教程:https://www.mivm.cn/phicomm-n1-unofficial/
    SX05RE使用指南:https://vipiu.net/archives/2018/05/22/426.html

  • 愿望清单

    这里是之前的那份:https://www.mudone.com/?p=2360

    2019年的愿望清单,跟之前的有调整,希望未来几年内能陆续达成。

    1.Honda Odyssey Hybrid。
    7座车,家庭出行比较方便。续航1200KM 800KM,长途场景能大大缓解我的里程焦虑。车长4.8M,比许多B级车还要短,比较好停车。
    继续选择Honda是因为目前Honda Jade开下来不错,省心。

    2.中外环100平
    今年把计划的一些事情做好,争取明年能够落实这件事情。
    目前所在小区的居民素质实在不行,之前因为有人私占车位跟别人吵过好几次,跟居委会反映也无作为,不抱希望了。
    前天老板娘也跟楼下的一个人吵了一次,所以下定决心今早搬离这里。

    3.硕士学历
    本科学历不足够,打算落实一下硕士学历,目前倾向MBA。

    4.绿卡
    新加坡绿卡,不太喜欢上海冬季的湿冷。

    持续更新。

  • 2018年总结以及2019展望

    Once Upon 2018

    慢写。

    关于心态
    尽人事、平常心,有点佛系

    Live

    Company

    Future

    Don’t Judege

    生活
    比较重要的一件事情就是把的事情弄好了,感谢公司。
    有燕小达护体,这个事情迟早都会搞定,但是早一些总是比晚一些要方便一些。

    身体
    例行每年都会自己去做一下体检,今年公司有了体检福利。
    身体情况总体还行,看体检报告是说100人中打败了79人,算是比较好的状态。
    体检报告显示胆固醇高值:5.89,比正常指导范围5.2高了一些些,于是重视起来,运动+饮食调整。

    运动上买了一双亚瑟士Nimbus20,缓震系列跑鞋,夏天的时候早上去家里隔壁的河边公园跑个来回大概3KM,更多的是早起到公司的跑步机上运动一下。

    饮食调整,则坚决避开动物性脂肪,每天吃燕麦片,多吃蔬菜,减少米面等碳水化合物的摄入,多摄入低脂蛋白:鱼+肌肉+豆制品等等,油炸食品、蛋糕等等也不再吃。

    经过三个多月的调整,指标降到4.2,同时体重也降低了一些,到12x了。

    另外修复了身体上的另外一个小Bug——后背表皮囊肿,蛮久了,最近2年感觉变大。于是在瑞金预约了一个简单的门诊手术,切开拿掉,一切正常。

    心理
    整体大部分时间处于比较焦虑的状态,睡眠差,脾气差。
    跟自己较劲,强迫症有点厉害。
    自我诊断应该是有点轻度了。
    自己做了一些调整:
    1. 放下一些事情;
    2. 平常心,有点佛系;
    3. 写下这篇本身也是一种调节方式;
    缓解焦虑,最近稍好一些。

  • 通过AT指令操作串口收发短信

    在之前配置短信语音网关的时候买了一台华为EC122(CDMA)插电信卡使用,配置到gammu之后执行发送命令提示SMSC没有配置。
    查了一下貌似CDMA没有什么短信中心号的东西。

    且这台设备好多操作指令都是华为自定义的,gammu无法直接操作。
    决定自己写程序操作设备串口实现短信收发。

    基本思路:
    1、程序文件打开串口设备,轮询串口返回;
    2、当接收到+CMTI指令的之后解析指令的值,例如:+CMTI:”ME”,37,该指令意思是接到一条短信,存储在手机内存,存储Index为37;
    3、通过指令:AT^HCMGR=37,读取短信内容,短信内容编码为UCS2格式,需要进行转码;

    4、发送短信指令:AT^HCMGS=”电话号码” \CR\CL 之后跟着短信内容,然后输入Ctrl+Z即可发出。发送之前确认一下当前发送短信的内容格式:AT+CMGF,0为PDU格式,1为Text格式。

    HUAWEI CDMA AT Command文档
    Ref: http://www.letswireless.com/asp_bin/downfile/2009929121443234.pdf

    TODO: 理论上上网卡总是可以通过程序操作串口发送AT指令进行操作,后续考虑完全自己实现,连gammu都不用了。

  • 根宝了不起

    作为一个伪球迷,昨天也是一个相当开心的日子:上海上港足球俱乐部夺得中超联赛冠军。
    这是中国顶级足球联赛冠军时隔23年重回上海(上一次还是1995年,根宝带领的申花)。

    我倒是基本上一直粉球星不太粉球队,比如之前德国队的巴拉克、西班牙队的托雷斯,再到武磊,差不多是2013年前后开始粉武磊。

    早上刷微博,看到一张图,从昨天晚上开始累积的情绪瞬间释放 在中环上 止不住的泪流满面,触碰到心里柔软的地方。

    还有多少人记得当年的根宝足球网?

  • common sense

    the biggest difference between people is common sense.

  • 短信语音网关的一些记录

    Just For Fun. 这些事情就是乐趣本身,有人从看剧中获得满足感,有人从游戏中获得满足感,而我的乐趣来源更多是折腾这些东西,这些也都是我的小玩具。

    事情要回到年初:换了iPhone之后,由于没有双卡,不得不随身带2个手机,作为热点以及小号。

    期间有尝试过找一些解决方案,比如使用SIM800的扩展板接到NanoPi上实现自动接收转发短信,但是扩展板就成本来讲还是略高,暂时搁置。

    直到前几天看到可以使用“上网卡”来实现发短信以及语音电话功能,瞬间选择就多了不少。3G时代的各种品牌的上网卡在闲鱼上淘淘,20块包邮就可以到手,成色非常新,原盒包装都还在。

    作了一番调研,选择主要有两大品牌:华为和中兴ZTE。这类设备的英文名称一般是叫做:USB 3G Modem Dongle,如果是搜索英文资料可以基于这个关键词搜索。

    抱着试试看的态度先买了一个中兴的MF190,是一款WCMDA的联通3G上网卡,默认开启短信功能,没有提供语音电话功能(插上卡之后拨打该号码会提示正在通话中),接到电脑可以正确识别出,虽然是联通定制款上网卡,但是插入移动的SIM卡也是可以正常收发短信,只不过需要一点点设置,该上网卡默认首选的网络制式是3G的WCMDA,这种制式移动SIM卡不支持,需要将网络制式调整为GPRS,这样就可以了,具体操作如下:

    1、eject /dev/sr0 (设备名称根据实际情况确定),弹出网卡的cdrom之后,网卡就会切换为modem运行模式;
    2、连接到设备串口,波特率是9600,执行执指令:
          AT+ZOPRT=5(保持在线)
          AT+ZCDRUN=8(禁用CD自动运行)
          AT+ZSNT=1,0,0(切换为GPRS网络)
          AT+COPS?(执行该命令可以查询当前连接的移动网络名称,如正常则会返回China Mobile相关字样)
    3、执行完上述指令之后可能需要根据实际情况重新插拔上网卡才会生效;
    4、语音电话功能网上找了很多资料都没有找到如何开启,也罢,单纯作为短信使用。

    操作成功之后又在咸鱼淘了3台MF190,有点冲动了。

    说完了中兴,现在说说华为。
    华为相关的案例以及资料比中兴更多,看来通信类的产品还是首选华为,因为用的人多,遇到问题更容易解决。

    选择了一台E261的联通3G上网卡,可以解锁实现语音通话功能,昨天刚到手还没有时间去折腾,周末再补充。

    插曲:关于USB Hub的选择,一下子买了这么多USB上网卡,NanoPi只有一个USB,完全不够用,势必要买个USB Hub,作了一番调研,主要选择如下,按照网上的评价排名:

    1、西普莱,之前也没听过,在SMZDM看评论有人提到说做工很好,搜索了一下,不少人买这个牌子的Hub做群控,看来品质还可以;
    2、Anker,国人做的牌子,主要面向海外市场,做工以及口碑不错,但是国内只能淘宝或者咸鱼淘淘了;
    3、Orico,据说是给Anker代工的,京东有一款京造的USB Hub好像也是Orico做的,但是口碑上不太好,据说容易坏,但是他们的Hub用的是威盛的USB Hub芯片,所以打算选择他们家的产品;
    4、绿联,之前买过不少他家的线材,也买过一个USB 3.0的一拖四的Hub,轻度使用下来倒也正常,没出过什么问题,接的都是低功率设备,对电源没什么要求;

    3G上网卡通信峰值电流要求可能高达1A,所以Hub务必需要带独立辅助电源,电源功率上来看,绿联有24W的,Orico 有36W的,Anker有高的60W的产品,综合下来比较倾向于Orico的36W产品,继续咸鱼淘淘。

    最终选择了西普莱10口的Hub。


    短信服务软件的选择:
    1、kannel,最先研究的方案,细节的配置较多比较繁琐,暂时不考虑
    2、smstools,第二研究的方案,已经配置好能够收发短信了,但是嫌麻烦:短信需要转码处理
    3、gammu,第三研究的方案,自带数据库存储接口,短信接收到之后可以配置直接存入数据库,很方便

    配置记录:
    1、后端服务使用gammu,配置存储为:MySQL SQLITE
    2、在gammu的RunOnReceive配置项设置触发脚本,在接收到短信的时候执行,可以在脚本里处理长短信合并,以及调用WebHook等等,更多功能就发挥自己想象力了

    最终我们是要将操作系统接收到的短信让我们自己的手机可以看到,那么方式无外乎以下几种:
    1、直接转发,这个最简单,但是如果是没有短信套餐的话,转发短信是需要额外付费的,我希望成本最小化,1毛钱都不想多付
    2、通过邮件发送,这种可能会被邮件服务商拦截为垃圾邮件,邮件的及时性也是一个问题,作为可选方案
    3、通过微信推送,这个需要申请公众号才能操作推送服务,虽然有ServerChan已经提供了这类功能,但是短信内容隐私性比较强,还是选择自己搭建服务比较可靠,暂不考虑
    4、集成第三方的推送服务比如有人使用PushOver来实现,PushOver也是需要付费,暂不考虑
    5、提供Web网页访问接口,需要的时候访问网页即可获得短信内容,手机上只需要保存一个网页的快捷方式即可,目前定下这个方案。

    处理流程:
    1、创建一张新表,比如叫做pushsms(ID, PhoneID, SenderNumber, Message, CreateAt)
    2、接收到短信之后触发脚本,存储到pushsms表,如是长短信,还需要进行短信合并
    3、新建一个脚本从pushsms读取短信提供Web访问

    处理好短信之后接下来就是搭建一个VoIP网关,转发通话至手机,基本思路:
    1、先构建VoIP网络,外线呼入使用USB Modem接入,可以设置通话路由规则,很灵活
    2、手机安装VoIP客户端,配置接入自己搭建的VoIP网关,分配内网分机号,当小号手机有电话呼入的时候VoIP网关转发通话至手机的分机号,实现通话功能
    3、待续,周末继续折腾