海外华为手机微信分身 (or any apps)

App 分身,又名 App Twin,即支持同个 App 多个账户,是 EMUI5 的一大卖点。但是海外版仅支持 Facebook 和 Twitter,国内版才有微信和QQ。

去著名的XDA翻了一下,早已有了解决办法,不需root手机。

XDA教程一 – 免 root 支持任意 App 分身
XDA教程二 – App 分身支持任意桌面/Launcher

首先,在 PC 上安装 adb,并且打开手机的 Developer options 里的 USB Debugging。此时,adb devices 就能看到自己的手机。

用诸如 App Inspector 来找到想要分身的 App 的 package name,然后
adb shell
> settings get secure clone_app_list
> settings put secure clone_app_list "PACKAGE#1;PACKAGE#2;PACKAGE#3"

如果是微信的话
> settings put secure clone_app_list "com.tencent.mm"

如果用的华为自带的桌面,就可以直接看到分身的 App。

如果用的不是华为的桌面,就需要教程二的额外的操作。教程二里用的是 Tasker,我比较小农,就用的 Automate 实现类似功能。

 

三个关于 Debug 的小故事

昨天听podcast听到的,觉得还蛮好玩,分享一下:

1. Email发不超过500英里的故事

如果你是公司的 IT,有人告诉你公司的 email 只能发送到500英里以内的人,你会是什么反应?你一定觉得这是个大玩笑吧。事实上,故事的主人公也是这么想的,觉得那帮人有毛病。然后他随手一试,从北卡到亚特兰大,没问题。到华盛顿,没问题。到纽约,420英里,没问题。到孟菲斯,600英里,擦,不行了!

最后发现是因为 mail server 在 upgrade 的过程中降级了软件,从而导致软件的配置有稍许不同 — timeout 变成了 0,意味着 3ms timeout,刚好是 500 英里左右的距离!

2. 游戏无法存档的故事

这是一个游戏开发者的苦逼故事。他负责一个存档读档的部分,然后发现有一定的概率在写的时候会出错。读档存档非常重要,于是他调试了好几个月,把 code 剥离到最最基本,却发现还是会出错。后来他突然发现在游戏初始化的时候会设置一个较高的刷新频率,如果他在写档的时候重置一下这个频率就不会出错。他百思不得其解,为什么一个较高的频率会导致出错。直到有一天有个 PM 在看他调试的时候玩了一会儿遥控器,这个时候写档就失败了。他一把把遥控器抢了过来,再次调出程序,写档,玩遥控器,失败,100% 重现。

最后他把这个结果发给了游戏机厂商,还在日本。那边一开始也不信,直到看到了重现的文档,发现是控制元件之间的互相影响。

3. 系统夜间错乱的故事

一个苏联的工程发现他的系统经常挂,白天运行的好好的,晚上就会挂。排查的时候发现每晚都在某一个固定的时刻出问题,而这个时间总是有一趟火车经过。这趟火车不是普通的列车,而是从切尔诺贝利核泄漏站出发的火车,核辐射会对磁盘和内存造成影响以至于每晚准时宕机。而后工程师发现这些火车是运肉的,然后他就立刻离开苏联了。

这让我想到另外一个故事,也是每晚准时宕机的故事。而且当工程师去现场排查的时候,晚上就不宕机了。工程师以为是不是有老鼠,装了一个摄像头,结果发现的真相是搞清洁的阿姨每天晚上会拔掉风扇电源打扫什么的,一段时间之后机箱会过热然后故障。而当有人排查的时候,阿姨就不会拔掉电源了。

爬个墙哟

前段时间回国了一趟,虽然是微信/支付宝各种方便,但还是想上Google/F/T/Github之流,特此记录一下我的番羽土墙过程:使用shadows0cks,并使用虾米啦的服务(http://bill.xiami.la/index.html#pricing),亲测可用,速度ok,推荐!

用NoMachine远程桌面

家里有一台台式机,用着很爽。最近有需要到处使用电脑的需求,手头有一台老旧的macbook air,想来可以试试远程桌面。

NoMachine 的设置很简单,并支持Win/MacOS/Linux和各类手机(未尝试),开箱almost可用,有一些小问题,特此记录一下:

  1. 我的PC是 linux,又是使用的大屏幕,自动转换分辨率并不支持。
  2. 我用colemak,PC上的键盘是在固件level改的,而mac的nomachine client无法forward这个设定。

好在 NoMachine 支持 callback custom script,在 session start /disconnect / close 等可以唤醒。设置在 /usr/NX/etc/node.cfg,用 xrandr 来改分辨率,setxkbmap 设置 keyboard layout。

#!/bin/bash

export XAUTHORITY=/home//.Xauthority
export DISPLAY=":0"

xrandr -d :0 --output HDMI-0 --dpi 144 --set audio off --mode 1920x1080 &> /tmp/f.log

setxkbmap us &>> /tmp/f.log