2017-03-21

折腾电子词典系列(3)探索BlueDict的爆破问题

折腾电子词典系列(3)探索BlueDict的爆破问题

探索对象

截至目前,Android系统的BlueDict只有5.9.6可以同时找到原版和爆破版,非常适合研究“蠻荒搜神”是如何进行爆破的。

下面是原版和爆破版的校验和,通过Google搜索校验和应该可以下载到这两个apk:

5.9.6爆破版校验和:
BlueDict Pro v5.9.6 noAD by 蛮荒.apk
大小: 1277806 字节
MD5: 3F153CDA16111DC6290FD09B16CF3B5D
SHA1: 8A9BD723DEC233A5008D86E0FE993F582EE21415
CRC32: 2A54E87E

5.9.6原版的校验和:
BlueDict.5.9.6.apk
大小: 1478374 字节
MD5: 27082DAFFF4BD90DD54EBDF7A1136F14
SHA1: 48B62DDC5D2DA0F94F8F25FB0132540B6FBA37D4
CRC32: E3D6D084

探索工具

AndroidKiller_v1.3.1(md5:E066CD3D82CA67ED2EBED9B352033BCA),这个需要用md5搜索下载。

JRE、JDK和BCompare,这三个软件到各自官网下载就行。

使用前需要安装JRE和JDK,并设置系统环境变量:

CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

JAVA_HOME
C:\Program Files (x86)\Java\jdk1.8.0_121

PATH添加(注意不要覆盖默认的PATH)
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

注:假设JDK版本为1.8.0;其他版本应修正上述环境变量,以保证正确引用。

探索过程

使用AndroidKiller_v1.3.1反编译原版和爆破版;
然后使用BCompare比较反编译得到的源代码。

主要差别如下:























下面仔细看看被爆破的文件,左侧为原版,右侧为爆破版:















不懂爆破,下面仅仅是猜测:

  1. 最关键的,右侧新增了assets\CERT.RSA文件,应该和爆掉程序签名验证及其他防爆破验证有关。
  2. 类似的,original\META-INF\下的三个文件被爆破,应该也是搞定验证用的。
  3. 左侧的com文件夹被移除了,应该全是广告插件。
  4. lib和main文件夹下有几个smali被爆破,应该是从源代码上爆掉防修改验证、广告加载和部分受限功能延迟。
下面是一些具体被修改的smali的源代码对比截图:
main\MyDict.smali,似乎是声明了一个常量,目标为assets/CERT.RSA,应该是爆破防修改用的。
main\MainActivity.smali部分差异截图,可见很多被移除的invoke-static,应该是爆掉了加载广告的函数或子程序;还新增了几个goto,应该用于跳过某些验证吧。
main\FloatActivity.smali部分截图,也是很多用于加载广告的函数调用被爆掉了。

















































其他几个smali的修改,应该是爆破受限功能强制延迟10秒的提示。比如:
main\be.smali截图,看到sleep,猜测是爆破了那个受限功能强制延迟10秒的提示信息。

2017-03-20

折腾电子词典系列(2)BlueDict恶心的广告方式

折腾电子词典系列(2)BlueDict恶心的广告方式


截至2017年3月,BlueDict可以称得上是Android系统上最好用的电子词典,不是之一,是唯一。

然而,BlueDict的广告方式实在是太恶心了。

Android软件含有广告很正常,但是像BlueDict这样的广告方式真的不多,让人感觉它不是为了广告而广告;似乎是为了用恶心的广告敦促用户去购买Pro版。BlueDict的广告显示方式与一般的Android软件大不相同,不仅仅是广告,而是通过广告给用户强大的视觉冲击和视觉压力……用过人相比对其广告方式心有余悸。

本来软件做的好,支持一下作者没什么,本人也在Google Play上买了一些软件的Pro版支持其作者;但是被这么恶心的广告催着去买Pro版,实在是感觉不爽。

而且BlueDict无法通过Google Play购买,购买后也不能像一般的安卓软件那样,只要用同一个Google帐号登录就可以无缝迁移;BlueDict Pro版是绑定手机串号的。

有广告,特别是不一般的广告方式,就必须防止小白进行逆向工程去除广告。

BlueDict加密很强悍,不是一般小白通过简单的反编译、去广告、重新编译就能搞定的。这玩意儿采用了特殊的签名及签名验证方法,不说去广告,仅仅是反编译,然后重新编译就会闪退,因为签名验证失败。

除了技术上采用了强悍的加密,BlueDict似乎还采取了更多的社会工程学方法来敦促用户购买Pro版,包括但不限于:

  • 猛烈打击爆破版的帖子和博客,可能通过软硬兼施等各种办法,使网站将已发布的爆破版换成原版;注意,是换成原版,而不是删除发布。但帖子中显示的依然是xx爆破版,从而让小白误以为下载的是xx爆破版。
  • 甚至,可能作者(团队)采取了混淆手段:他们自己以破解版、免费Pro版等为主题四处发布信息,实际发布的就是原版。
  • ……

无论上述社会工程学手段是否是原作者(团队)所为,都已经成为事实:通过搜索引擎检索BlueDict、蓝典,破解版,免费版Pro等关键字,获得的99.99%是垃圾信息。

既然原作者(团队)动用了社会工程学的“混淆战术”,那么就使用搜索引擎的时候,就需要一点点技巧了:不要搜索软件名称关键;取而代之的是直接搜索md5校验值。不管怎么混淆,校验和可以快速作为确认软件身份的依据。

科普一下BlueDict的版本信息:这玩意儿分为“免费含广告版”和“20元绑定手机串号注册版”。

下面是最近一些原版md5值供参考,如果您在任何网站下载到下述md5值的软件,就直接删了吧,这些都是原版,要么有恶心的广告,要么以开启后会提示输入与手机串号对应的注册码。


原版的校验和-免费恶心广告版

这是“免费版”的校验和,再说一遍,这些是原版,不是爆破版:
BlueDict.6.0.9免费版.apk
大小: 1900036 字节
MD5: C2E3C21EF326C9F1EBC25C202455857D
SHA1: 0D5A1D7F32A4B3DE6B2685EFAC27819F9CF13E94
CRC32: 968961A3

BlueDict.7.0免费版.apk
大小: 2596358 字节
MD5: 648042C9A67B10C7EAF6DC2750F21D76
SHA1: D86DA499B3AD215EDAD5D5760033170948628058
CRC32: 50B68BE0

BlueDict.7.0.2免费版.apk
大小: 3274516 字节
MD5: FBDBC7A58867981C5C845C5DE80CFE44
SHA1: D9AFCE5B324FA2BA6007B0AF09A1F3E3EACEE381
CRC32: A70AE11A

BlueDict.7.0.6免费版.apk
大小: 3275023 字节
MD5: 6877A6FD523CFE744FFB84B74F4DEBB6
SHA1: 6ADA852CEADE8BEA8EB91F88484289F22FB39C20
CRC32: 3C2D3D62

BlueDict.7.0.8免费版.apk
大小: 3141994 字节
MD5: 4C47A9F9B4BFC893DEF9A9CA94473F30
SHA1: 929766F143AF32A63CCC2F12B060F0ED9792091D
CRC32: DF058172

BlueDict.7.2.0免费版.apk
大小: 3176046 字节
修改时间: 2017年3月18日, 21:37:31
MD5: 906BE05ADB41A1E423D145940DCC96B1
SHA1: C7AE4C5BB71748A604F818640B29C447536D6D8A
CRC32: D2A1522D

BlueDict.7.2.6免费版.apk
大小: 3196325 字节
修改时间: 2017年3月18日, 21:37:59
MD5: 0CD886C0872760BAC11BC257294E9A8E
SHA1: DE1DE6FAE3E2F96034F393589F40151DC913168B
CRC32: 8FA57692

BlueDict.7.2.9.免费版.apk
大小: 3197202 字节
MD5: 8F6F08E7CACE2111EDF14D07528E988B
SHA1: 8A3F4934A4C1EC2EC95BAF41D2AC082DD1F5E2C0
CRC32: BD99A2A5

BlueDict.7.3.2.免费版.apk
大小: 3204252 字节
MD5: 18563270CCB51987B174169DE1801658
SHA1: DB4250016348AB00046636C1CE733EA2BEBFA380
CRC32: 6B5E73BD

BlueDict.7.3.6免费版.apk
大小: 2948065 字节
MD5: E231EAE80F5FC221C4B31D6D10FF7CCA
SHA1: 9C3FD72BE598DF1113253D8B4762D28311E3D296
CRC32: DD713E10

BlueDict.7.3.9免费版.apk
大小: 3022105 字节
MD5: 865523A5180DF385363CC89EBD0ECA6B
SHA1: E7921DAA78095197F43CA66602B77E1C4AC38003
CRC32: EB45E444

BlueDict.7.6.0免费版.apk
大小: 3990204 字节
MD5: 6F4DE2AD49F518640193C418AE707884
SHA1: D596BD7F3B60AD4680C8CEE0F0ACCCE11505739E
CRC32: 08108824

BlueDict7.6.1免费版.apk
大小: 3991311 字节
MD5: 97BDB1A6CD169291969B296EAA6670BA
SHA1: 147ACF7269E7E3D7BD417B369194894685E0181F
CRC32: 81363D37


原版的校验和-绑定手机串号注册版

这是“注册版”的校验和,再说一遍,这些是原版,不是爆破版,需要输入注册码的:
BlueDictPro.6.0.9注册版.apk
大小: 1400967 字节
MD5: 57036CBC1B297FFF59B1446FA2C178D8
SHA1: BF98767B02E42E6C20F0C5189E55CF44CD68F6FE
CRC32: 85DAE180

BlueDictPro.7.0注册版.apk
大小: 1922296 字节
MD5: EF9D3BC8FCBB7C2E240161A3CB915E37
SHA1: 91ED96B3EC95459F4CC8935599CFC1410402A9C2
CRC32: 94EE3D51

BlueDictPro.7.0.2注册版.apk
大小: 2600517 字节
MD5: 5005B764207B3DF479436263FC34190D
SHA1: 7BAD0AAC7D957A3EA6DED46ECEACB01F2E2D4E2E
CRC32: D361E4F7

BlueDictPro.7.0.6注册版.apk
大小: 2602620 字节
MD5: CE2956D0147F684C40C277D2B1EB7D14
SHA1: A7A6A6F1D50E8840413E8450846D44F71DFA267C
CRC32: 4E08E367

BlueDictPro.7.0.8注册版.apk
大小: 2602701 字节
MD5: 63557F2F8E2588262B3EDA885935C991
SHA1: F71F73FE3F918C299B5580F7B57026ABDC6D41B1
CRC32: 300D973B

BlueDictPro.7.2.0注册版.apk
大小: 2624589 字节
MD5: ECDC9CF7B3873C8F3480F5E3D675A388
SHA1: 3F5188DD7A66A179827FA96ED333DD2A4AB3DC6E
CRC32: ABD63D88

BlueDictPro.7.2.6注册版.apk
大小: 2647243 字节
MD5: A7618741A55D97E0118B0153B20E1CAE
SHA1: 95DD364F71FD440C4C9FBEB17D70339758F30A52
CRC32: D1261D08

BlueDictPro.7.2.9.注册版.apk
大小: 2647497 字节
MD5: 9BD8F77E48F47A22D2773A4EDA42DA77
SHA1: EA54C7129829205516F083238783212AA29A035B
CRC32: B0D2599D

BlueDictPro.7.3.2.注册版.apk
大小: 2650390 字节
MD5: 10865FCE7E2ACFFF4BF89D94E2F23889
SHA1: 759CC520E6163E178CF5D0ACDC3C1F02CE89820B
CRC32: 4FDAD985

BlueDictPro.7.3.6注册版.apk
大小: 2678246 字节
MD5: EBEC78A5428EDB9B7BC1DF353212F3C1
SHA1: 23FD70A9571377ED7FE351BF44DCD4121567AD78
CRC32: 2E740E1D

BlueDictPro.7.3.9注册版.apk
大小: 2685464 字节
MD5: 2359CBCE73C163EA5DF01484979AF2B1
SHA1: D6887D9811C1810D96919ED1C9A72B78A0EC0ECD
CRC32: 2676E979

BlueDictPro.7.6.0注册版.apk
大小: 3645674 字节
MD5: 7FC1B2F566860BD2544BABABE637EF49
SHA1: CDA1A8184501FC00AEA02B73F228EC740D0AF8DB
CRC32: DF98222A

BlueDictPro7.6.1注册版.apk
大小: 3646850 字节
MD5: 926A863ED828C1695ACA9E9BB4B04348
SHA1: BA41B18508FE92FBA7B32153A0F8871DCE5E55BE
CRC32: 3FCCAD7D


爆破版

难道就没人觉得BlueDict的广告方式太恶心吗?
难道就没人觉得BlueDict的注册方式太变态吗?
这么多大神就没人出手吗?
当然不是。

到目前为止,可以找到的爆破版有1.0、3.5和5.96。
1.0版和3.5版年代久远,没什么使用价值了,不多讨论。


“蠻荒搜神”看不下去了

5.96版是目前最新的爆破版,根据搜索引擎获得信息来看,其由“蠻荒搜神”爆破,不仅移除了广告,而且似乎是通过增加一个CERT.RSA的const到源代码中,解决了签名验证的问题,这个版本可以使用各种反编译工具进行反编译,然后重新编译,依然可以正常运行。

这个爆破版的名字通常叫做“BlueDict Pro v5.9.6 noAD by 蛮荒.apk”,但是正如前面所说,自然语言组成的软件包名字,在面对社会工程学的混淆上显然是不足以所为搜索关键字的,需要使用md5校验和进行搜索:
BlueDict Pro v5.9.6 noAD by 蛮荒.apk
大小: 1277806 字节
MD5: 3F153CDA16111DC6290FD09B16CF3B5D
SHA1: 8A9BD723DEC233A5008D86E0FE993F582EE21415
CRC32: 2A54E87E

如果有志于研究蠻荒搜神是如何爆破的,可以对比5.9.6的原版。5.96版是目前唯一可以同时找到原版和爆破版的版本,反编译之后就可以对比原版和爆破版的源代码了。这是5.96原版的校验和:
BlueDict.5.9.6.apk
大小: 1478374 字节
MD5: 27082DAFFF4BD90DD54EBDF7A1136F14
SHA1: 48B62DDC5D2DA0F94F8F25FB0132540B6FBA37D4
CRC32: E3D6D084

2017-03-14

折腾电子词典系列(1)几种常见的Windows、Andorid词典对比

折腾电子词典系列(1)几种常见的Windows、Andorid词典对比

Windows桌面系统最常见的就是Mdict了,其他金山、Lingoes、ABBYY等要么太大、要么需要联网、要么各种广告、要么词库难找。

Mdict的Windows版已经很不错了,词库丰富,绿色免安装,无需联网。没啥太多需要说的。

Android上的选择就多了,而且各有利弊。

就功能和性能来说,BlueDict最牛,各种完美。然而,这玩意儿的作者也是最牛的:一是广告投放方式不同寻常,完全不是Google的套路;二是反盗版不同寻常,各种变态加密;三是购买方式不同寻常,有自己单独的一套购买和验证方式。
BlueDict荟萃了各种不同寻常,让人又爱又恨。能不用还是别用BlueDict吧,太变态了。

其他GoldenDict、ColorDict、ABBYY等等大同小异,简单总结一下就是“不好用”。什么是好用?后续会逐个展开说明。

再剩下就是Mdict了,这个的作者应该是业余或兼职更新此软件,版本更新太慢了。但是,只要稍微动动手,可以算得上是Andorid上最好用的电子词典了。

首先,Mdict的编程似乎很基本,从Android Jellybean 4.1~4.3、Kitkat 4.4、Lollipop 5.0~5.1、Marshmallow 6.0,再到最新的Nougat 7.0,Mdict都可以正常运行,多词典联合查询性能正常、功能正常。

其次,Mdict的就是普通的mdx+mdd词库,网上很多,随便下载都能用,无论英汉、英英、汉英、汉语词典都有很多,无论是否完美,都足够普通人使用了。

第三,Mdict配合MoonReader很完美,虽然MoonReader的选项中没有列出Mdicit,实际上只要选择GoldenDict就行,因为他们都是同一类词典。

最后,Mdict完全没有广告,使用过程中也无需联网,清净、省心。

2017-02-21

Arch Linux升级后,中文字体渲染infinality彻底被删除

大约从2016年底或2017年初开始,infinality的官网和Arch的repo都不能访问了,也无法更新。

相关讨论也都被关闭了,没有给出任何原因或信息,不知道infinality发生了什么事。
但有一点是明确的:今后不会再有infinality这个东西了。

运行pacman -Syyuu命令更新Arch Linux后,启动时会出现下列错误:
Could not start kdeinit5 check your installation

实际上这是由于infinality被部分覆盖(移除?)导致的。

修复:
在错误界面按下 Ctrl+Alt+F2,登录,su获取root权限,然后运行下述命令:
pacman -S --asdeps freetype2 cairo fontconfig

这是用标准的fontconfig替代infinality。

然后reboot就可以正常登录了。

可能是因为之前的部分配置文件依然存在,显示效果看起来只是略微差了一点点,整体来说依然明显好于Arch Linux默认安装后的效果。

那么问题来了,如果是全新安装的Arch Linux该如优化字体渲染效果呢?只能等以后有时间再慢慢研究了。

最后,编辑pacman的配置文件,删除infinality相关的源:
nano /etc/pacman.conf

删除下面几行:
[infinality-bundle]
Server = http://bohoomil.com/repo/$arch

[infinality-bundle-multilib]
Server = http://bohoomil.com/repo/multilib/$arch

[infinality-bundle-fonts]
Server = http://bohoomil.com/repo/fonts






之后再运行pacman就不会提示找不到infinality源的错误了。

2016-10-12

折腾OpenWRT软路由Designated Driver trunk 4.4核心的Hyper-V支持

致谢

我参考的是原始作者Ning Ye的代码,感谢Ning Ye,https://patchwork.ozlabs.org/patch/431583/


简介

此种办法是通过Kernel的Module加载Hyper-V相关支持,是本人目前唯一找到源代码并且在所有版本(Attitude Adjustment,Barrier Breaker,Chaos Calmer和4.4核心trunk)测试通过的Hyper-V支持方法。

同时这也是最大限度使用OpenWRT官方源代码的Hyper-V支持方法;
其他有些Hyper-V虽然有“源代码“但是似乎对代码修改太多,需要从github迁出整份第三方修改的源代码才行,而不是简短的一个patch可以搞定了,以至于失去了通用性。

其他各种大牛、大神有各种支持Hyper-V的办法,非常牛叉,非常高大上,可惜没有源代码,无从研究。
根据OpenWRT的协议,照理说各种对OpenWRT的修改都应该公开源代码的……

CC和BB的Hyper-V支持

关于Chaos Calmer(同时适用于15.05和15.05.1)的Hyper-V补丁源代码可以看这里,https://github.com/tedaz/Hyper-V-support-for-OpenWrt-Chaos-Calmer

关于Barrier Breaker的Hyper-V补丁源代码可以看这里,https://github.com/tedaz/Hyper-V ... Wrt-Barrier-Breaker

DD trunk 4.4核心的Hyper-V支持

下面的办法是为了让OpenWRT Designated Driver trunk源代码编译后,可以运行在Hyper-V虚拟机上,且支持标准网卡(而不是Legacy百兆网卡)。

我用的是今天(2016-10-12)迁出的trunk源代码,因为Designated Driver依然处于Bleeding Edge状态,以后的代码很可能无法应用此补丁。

如果仅仅是测试目的,可以回滚到今天的代码应用补丁然后直接编译。
当然,关键还是弄明白补丁的意思,这样就可以手动修改今后版本的源代码了,而不需要依赖于预制做的补丁。

迁出源代码,

git clone git://github.com/openwrt/openwrt.git

最新的kernel 4.4已经彻底删除了对Hyper-V虚拟化支持的virtual.mk文件,
故首先到OpenWRT官网代码库下载历史版本的virtual.mk文件,

下载地址https://dev.openwrt.org/browser/ ... x/modules?rev=47415

下载virtual.mk文件,并拷贝到
./package/kernel/linux/modules/virtual.mk

建议备份virtual.mk文件,以备不时之需。

此时运行
make menuconfig
Kernel modules中并不会显示Virtulization菜单,需要
touch ./package/kernel/linux/Makefile

然后再次运行
make menuconfig
就会显示Virtulization菜单了。

只需要选中
kmod-hyperv-net-vsc

kmod-hyperv-storage
即可。
另外两个不用选。

Target Images选中ext4,然后用qemu-img命令转换为vhd就可以创建Hyper-V虚拟机了。

注:Openwrt默认的qemu-img生成的vhd有问题,无法使用。

保存后进行编译。

编译后生成img文件,运行命令转换为vhd,

qemu-img convert -f raw ./bin/x86/openwrt-x86-generic-combined-ext4.img -O vpc ./bin/x86/openwrt-x86-generic-combined-ext4.vhd

Windows Server 2008 R2直接创建虚拟机,选中标准网;
Windows Server 2012 R2创建虚拟机时选中Generation 1虚拟机,然后选中标准网卡。


源代码

下载的virtual.mk文件需要在文件末尾添加下述内容

#
# Hyper-V Drives depends on x86 or x86_64.
#
define KernelPackage/hyperv-balloon
  SUBMENU:=$(VIRTUAL_MENU)
  DEPENDS:=@(TARGET_x86||TARGET_x86_64)
  TITLE:=Microsoft Hyper-V Balloon Driver
  KCONFIG:= \
    CONFIG_HYPERV_BALLOON \
    CONFIG_HYPERVISOR_GUEST=y \
    CONFIG_PARAVIRT=n \
    CONFIG_HYPERV=y
  FILES:=$(LINUX_DIR)/drivers/hv/hv_balloon.ko \
    $(LINUX_DIR)/drivers/hv/hv_vmbus.ko
  AUTOLOAD:=$(call AutoLoad,06,hv_balloon)
endef

define KernelPackage/hyperv-balloon/description
  Microsofot Hyper-V balloon driver.
endef

$(eval $(call KernelPackage,hyperv-balloon))

define KernelPackage/hyperv-net-vsc
  SUBMENU:=$(VIRTUAL_MENU)
  DEPENDS:=@(TARGET_x86||TARGET_x86_64)
  TITLE:=Microsoft Hyper-V Network Driver
  KCONFIG:= \
    CONFIG_HYPERV_NET \
    CONFIG_HYPERVISOR_GUEST=y \
    CONFIG_PARAVIRT=n \
    CONFIG_HYPERV=y
  FILES:=$(LINUX_DIR)/drivers/net/hyperv/hv_netvsc.ko \
    $(LINUX_DIR)/drivers/hv/hv_vmbus.ko
  AUTOLOAD:=$(call AutoLoad,35,hv_netvsc)
endef

define KernelPackage/hyperv-net-vsc/description
  Microsoft Hyper-V Network Driver
endef

$(eval $(call KernelPackage,hyperv-net-vsc))

define KernelPackage/hyperv-util
  SUBMENU:=$(VIRTUAL_MENU)
  DEPENDS:=@(TARGET_x86||TARGET_x86_64)
  TITLE:=Microsoft Hyper-V Utility Driver
  KCONFIG:= \
    CONFIG_HYPERV_UTILS \
    CONFIG_HYPERVISOR_GUEST=y \
    CONFIG_PARAVIRT=n \
    CONFIG_HYPERV=y
  FILES:=$(LINUX_DIR)/drivers/hv/hv_util.ko \
    $(LINUX_DIR)/drivers/hv/hv_vmbus.ko
  AUTOLOAD:=$(call AutoLoad,10,hv_util)
endef

define KernelPackage/hyperv-util/description
  Microsoft Hyper-V Utility Driver
endef

$(eval $(call KernelPackage,hyperv-util))

#
# Hyper-V Storage Drive needs to be in kernel rather than module to load the root fs.
#
define KernelPackage/hyperv-storage
  SUBMENU:=$(VIRTUAL_MENU)
  DEPENDS:=@(TARGET_x86||TARGET_x86_64) +kmod-scsi-core
  TITLE:=Microsoft Hyper-V Storage Driver
  KCONFIG:= \
    CONFIG_HYPERV_STORAGE=y \
    CONFIG_HYPERVISOR_GUEST=y \
    CONFIG_PARAVIRT=n \
    CONFIG_HYPERV=y
  FILES:=$(LINUX_DIR)/drivers/scsi/hv_storvsc.ko \
    $(LINUX_DIR)/drivers/hv/hv_vmbus.ko
  AUTOLOAD:=$(call AutoLoad,40,hv_storvsc)
endef

define KernelPackage/hyperv-storage/description
  Microsoft Hyper-V Storage Driver
endef

$(eval $(call KernelPackage,hyperv-storage))

创建并应用hyper-v.patch

注意创建文件时使用linux格式的换行。
  
diff --git a/target/linux/x86/config-4.4 b/target/linux/x86/config-4.4
index 13f1f9c..0c401af 100644
--- a/target/linux/x86/config-4.4
+++ b/target/linux/x86/config-4.4
@@ -216,6 +216,16 @@ CONFIG_HW_RANDOM=y
 CONFIG_HW_RANDOM_GEODE=y
 CONFIG_HW_RANDOM_VIA=y
 # CONFIG_HYPERVISOR_GUEST is not set
+# CONFIG_HYPERV is not set
+# CONFIG_HYPERV_BALLOON is not set
+# CONFIG_HYPERV_NET is not set
+# CONFIG_HYPERV_STORAGE is not set
+# CONFIG_HYPERV_UTILS is not set
+# CONFIG_HYPERV_KEYBOARD is not set
+# CONFIG_FB_HYPERV is not set
+# CONFIG_HID_HYPERV_MOUSE is not set
+# CONFIG_VMWARE_BALLOON is not set
+# CONFIG_MOUSE_PS2_VMMOUSE is not set
 CONFIG_HZ_PERIODIC=y
 CONFIG_I8253_LOCK=y
 # CONFIG_I8K is not set

2016-09-06

搞了一下Fedora,碰巧搞定了Arch任务栏网络图标和图形界面vpnc

Fedora release 24 (Twenty Four) Workstation

先说Fedora,本次尝试的是Fedora release 24 (Twenty Four) Workstation版本。安装之后默认的桌面环境是Gnome。默认显示效果什么的也还行,开启和关闭VMware Workstation虚拟机显卡的3D功能,对图形界面影响不大。

yum命令被废弃,请使用dnf命令

一个比较明显的变化是yum命令被废弃,取而代之的是dnf命令。
例如:
dnf update #更新系统
dnf install nano #安装nano

vm-tools

默认安装,会自动安装open-vm-tools-10.0.5-3.fc24.x86_64,宿主与虚拟机之间拷贝什么的都是正常的。

相比而言,Arch Linux今天更新到最新版,也只有open-vm-tools-6:10.0.7-5。
不知道是不同Linux的版本叫法不同,还是真的差了这么多版本。

Fedora 24让普通用户可以使用sudo命令的正确方法

usermod john -a -G wheel
Fedora默认允许wheel组的成员使用sudo命令,所以只需要将john加入到wheel组就可以了。不要直接编辑/etc/sudoers文件。

Fedora 24默认开启了密码策略,要求使用比较复杂的密码。对于生产系统也需很必要;但是对于测试用的系统来说则完全没必要,甚至与有可能导致在测试系统上,为了满足密码复杂度而输入了生产系统的密码。所以,

禁用密码复杂度

nano /etc/security/pwquality.conf
取消注释一些行——比如最短密码,是否要求混合字符什么的。取消注释就是放开限制;注释状态是要求复杂密码的状态。
保存设置文件,重启生效。
之后可以使用
passwd root
passwd john
将两个用户修改为简单密码。

禁止启动时的等待

nano /etc/default/grub
将其中的5秒等待时间改为0秒,开启直接启动,不显示引导菜单。

修改后需要重新生成grub,
grub2-mkconfig -o /boot/grub2/grub.cfg

安装chromium

dnf install chromium

安装flash

https://get.adobe.com/flashplayer/otherversions/
下载Choose Linux 64-bit, FP 22.0 (or later) for other Linux 64-bit, PPAPI.

Unpack it into /usr/lib64/chromium-browser/PepperFlash/.

此时会出现一个问题,虽然root和john的密码已经修改为简单密码了。但是由于系统安装时设置的是复杂密码,所以系统默认的Keyring密码依然是当初的复杂密码。
也就是每次启动Chromium浏览器需要输入的那个密码依然很复杂。

修改Keyring 密码

图形界面搜索password,启动
Password and Keys->
Password->Login
右键,Change Password

安装Opera

nano /etc/yum.repos.d/opera.repo
添加下列行,
[opera]
name=Opera packages
type=rpm-md
baseurl=https://rpm.opera.com/rpm
gpgcheck=1
gpgkey=https://rpm.opera.com/rpmrepo.key
enabled=1

运行命令
dnf install opera-stable

KDE桌面环境

由于最近折腾Arch Linux,对KDE Plasma很有好感,所以手动在Fedora上安装了KDE,

dnf group install kde-desktop-environment
重启后选中KDE登录。

之后需要更改默认的输入法设置,
Input Method Selector
选中ibus
重启生效

然后可以安装ibus-rime输入法,实测没有候选字黑色方块问题

意外发现

本人愚钝,一直不知道Arch Linux的System Tray上为什么没有网络图标,就是那个点击后可以查看、设置网卡IP,VPN拨号等的那个网卡图标。
在Fedora上安装KDE后发现,竟然有这个小标志,键下图那个电脑样子的图标:






为什么Arch Linux的System Tray上就没有这个图标呢?
System Tray Settings->Extra Items中已经选中了Networks,可就是不显示。

搜索发现,需要开启一个服务,
systemctl enable NetworkManager.service
重启之后,Arch Linux的System Tray上就会显示那个网络图标了。可以方便的更改网卡设置,查看网络流量。

并且还可以直接VPN拨号,并显示VPN状态。
如果需要使用vpnc(Cisco pure IPSec VPN),需要安装一个包,
pacman -S networkmanager-vpnc

VPN连接后的图标样子,

2016-09-02

全新安装了Ubuntu 16.04 LTS

刚装完后直接安装VMware workstation 11.1.4的vm-tools。之后有点非法操作的提示,dist-upgrade一下就没有提示了。但是有时候重启时依然会出现非法操作,无所谓了,反正虚拟机很多时候都是保存状态,而不是关机重启。

开启了3D,速度也还好。

还是有vm-tools的3D升级提醒,但似乎不影响使用。

也安装了开源的chromium,并安装了flash插件。

编译openwrt成功。

Opera默认也有些乱码,安装中文支持后乱码显示,区域什么的依然是en_US,挺神奇的,不知道ubuntu的中文支持到底都干了什么。(相比Arch下的Opera,只要安装了infinality就无法显示中日韩字符了。)

16.04最大的特点是字体漂亮,默认是Noto了,“门”问题依然存在,不过好在Ubuntu默认已经创建了控制CJK字体优先级的文件,只需要更改CJK字体优先级——将SC(简体中文)调整到最前面就OK了:
nano /etc/fonts/conf.d/64-language-selector-prefer.conf
调整为下面的顺序,
            <family>Noto Sans CJK SC</family>
            <family>Noto Sans CJK TC</family>
            <family>Noto Sans CJK JP</family>

Ubuntu 16.04 LTS的整体感觉不错,继续作为主力Linux桌面系统使用。