作者归档:CD

在Windows中启用苹果蓝牙无线键盘的功能键

感谢@forrealee,本文来源于他的这个视频,但是他在视频中只是说可以实现音量控制功能,但是实际上不止如此。

一 最终实现的情况

在Windows上启用苹果蓝牙无线键盘的部分功能快捷键:
屏幕亮度调节(F1、F2)、媒体键(F7、F8、F9)、音量调节(F10、F11、F12)和光驱推出键;
Fn和四个方向键的组合,Fn和delete键的组合。

二 硬件条件

苹果蓝牙无线键盘,具体型号是MC184CH/B,其他型号是否成功无法测试;
Windows 10 64位系统个人电脑。

三 步骤

1 下载Boot Camp 支持软件

请务必下载bootcamp 5.1.5722版。
如安装其他版本,请使用微软官方工具删除。
解压获得BootCamp.msi和AppleKeyboardInstaller64.exe。为讲解方便,我们假设将这两个文件一起放到C盘根目录。

2 安装Boot Camp 支持软件

以管理员方式启用命令行提示符(先同时按windows徽标+x键或command+x键,再按a键),进入c盘根目录(cd c:\),之后按如下命令安装BootCamp.msi:

msiexec /i BootCamp.msi
此命令会自动安装AppleKeyboardInstaller64.exe。

正常安装,提示:“无法打开此安装程序包”,“关闭”。然后会出现“正在安装boot camp”并安装成功。重启计算机。

四 可选,更改功能键设置

重启后,在状态栏有个“Boot Camp”的图标,点击可以打开“Boot Camp控制面板…”,在里面的“键盘”标签下可以设置是否将F1、F2等键用作标准功能键。
打勾时,为F1-F12系统默认的快捷键;
不勾时,为苹果设计的键盘功能快捷键。
自己试试吧。

ShadowsocksR 最后版客户端(Windows 4.7.0和安卓3.4.0.6)的Hash值

感谢@breakwa11的贡献。

记一下2017年7月27日发布的客户端的hash值,权当纪念,并方便查询。

1 Windows客户端

支持auth_chain_b,版本应该有两个:

1.1 github release版
ShadowsocksR-4.7.0-win.7z
CRC32 Checksum: B55BA4FE
MD5 Checksum: 1173E451A629ECB5E35E8CA13DA8C45B
SHA-1 Checksum: A0CFEEFDE94C8B1765F8B46954DCC3CADEEBA726
SHA-256 Checksum: 481A20D24E0E0F4D8B4A872CD82650A7A2721E699416BC0A43351CFFD1B27FA6
SHA-512 Checksum: 2E62CD56F74852F0286B80EB36D431AB7506B2F8B6F83466EB26D2895B28938B2B3DF4B98E8F9AECA4D056C93EF682CAE68D833B3701522AAC6F2ED681EA175B

1.2 appveyor 自动编译版
1.2.1 ShadowsocksR.exe for dotnet2.0
CRC32 Checksum: 98D72BBF
MD5 Checksum: F11D13F13EE0F390D7183A859ABEB8C6
SHA-1 Checksum: 3D55D18673D17AB48980D532B24B6A2C3A185E00
SHA-256 Checksum: 30AFACEE2C649CA27C656329DB90947D8AFFFE3B24404AE8188C782C2901C59F
SHA-512 Checksum: C33CE1E9B8F292C3FFEC0FD66403BF2F973E903B842F4A726A74914D5B4247EEDD30FD86255A4DC726DCAEAA7DE7614F65D5600B4607E44DE8ABC9A235B676C9

1.2.2 ShadowsocksR.exe for dotnet4.0
CRC32 Checksum: 9C996029
MD5 Checksum: 633DEA542FB669BA4EF5FAEAF149107A
SHA-1 Checksum: 02E2A7E370716285C8BA335517CF00580233738D
SHA-256 Checksum: F3DFBB0E8850C8402866601447490BEBDC1283AC6493312A2FD8E9E3FE7EBBE7
SHA-512 Checksum: E08949665BFC6E55312E2EFDB5EDE58041D4814B2DC79F35C77CF7840E80D1791692F7CF5D35C60D37EC5FB9C6B4FC3F8C0F92FA651505AC966DF9A8F91A3981

2 安卓客户端

还未来得及更新,不支持auth_chain_b

ssr-3.4.0.6.apk
CRC32 Checksum: FE6853AD
MD5 Checksum: B9FE97B976A56B6FEE99817A47A5F159
SHA-1 Checksum: 119075E15D407807B44CAB9A5C490B4CE0834AC6
SHA-256 Checksum: 66108A194729CDD2E23AEA7D3D5FAF0C37B0416200669F01EF3C11E1F735257B
SHA-512 Checksum: D8DC1433ECE1940094FF2BD6C62B9D8092F5DB8FDA3CBF0D590FCE2616E9896507AD9CA50DCCC63E781B01D292BD1E1ED6FBFFD32FC8D99DBC9B1F3201E4C46C

解决debian 9 stretch中VIM不能双击触摸板粘贴的问题

升级到debian 9后,出现了在Chromebook的Secure Shell中双击触摸板不能在VIM中粘贴的问题,Chromebook中Secure Shell中双击触摸板类似于鼠标右键的操作。问题表现为:双击触摸板时,变成了— (insert) VISUAL —模式,粘贴失效。
解决办法:将 set mouse=a 改为set mouse=r。
具体如下:

vi /usr/share/vim/vim80/defaults.vim

将
" In many terminal emulators the mouse works just fine.  By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
if has('mouse')
  set mouse=a
endif

改为:

" In many terminal emulators the mouse works just fine.  By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
if has('mouse')
  set mouse=r
endif

小米MAX(标准版/高配版)免解锁Bootloader刷入LineageOS

感谢@nijel8不断的努力。

刷机会清空手机所有内容,所以在刷机前务必备份重要数据,如联系人、图片等数据。
对已安装该版本的LineageOS进行升级时,可以首先尝试dirty flash新版本的刷机包,即进入recovery直接安装新包。

更新

20171004 nijel8于20170930更新了lineage-14.1-20170930版; 同时将固件升级包适配了MIUI 9 Global Beta ROM 7.9.22; 小米刷机工具升级为官方最新版 MiFlash 7.4.25。 20170807 nijel8于20170807更新了lineage-14.1-20170807版; 同时将固件升级包(MGD,MIUI 国际开发版)更新为8.5.10(MG,MIUI国际稳定版)。 20170724 nijel8于20170723更新了lineage-14.1-20170723版。 20170710 nijel8于20170708更新了lineage-14.1-20170708版; nijel8于20170707更新了TWRP。 20170624 nijel8放出了lineage-14.1-20170624版。 20170612 nijel8于20170612适配MIUI国际开发版7.6.8; 更新TWRP MOD 3.1.1-1。
小米MAX是个不错的大屏手机,而LineageOS(曾经的CyanogenMod,CM)是个深受喜爱的定制ROM。小米MAX标准版(hydrogen,32G)已经被LineageOS官方所支持,但是LineageOS官方迟迟未适配小米MAX高配版(helium,64G\128G)。幸运的是有一个天才程序员@nijel8,在LineageOS的基础上,可以说是以一己之力完成了高配版的适配工作,他还为其他ROM(包括官方版LineageOS)提供修改建议。他适配的ROM,稳定、流畅,bug少且修复快,目前约每半月左右更新一次,每次更新都同步更新了LineageOS的最新源码,安卓版本已同步更新为Android 7.1.2。他分别提供了hydrogen和helium的固件,相对于官方版,他称它们为UNOFFICIAL。本文主要以helium版为例。由于高通提供了救援模式(Emergency Download Mode,EDL模式),亦被国人称为9008模式,所以可以免解锁bootloader直接刷入TWRP,并进一步刷入LineageOS。
注:正是因为EDL模式的存在,在“二 线刷fastboot包”步骤中,如不替换recovery.img,直接刷入下载回来的fastboot包,即可无需解锁bootloader就能实现救砖、更新、降级、国行与国际版互刷、稳定版与开发版互刷等刷机操作。
主要参考:
https://forum.xda-developers.com/mi-max/development/rom-lineageos-14-1-t3529851
https://forum.xda-developers.com/mi-max/how-to/guide-installing-miui-v8-2-1-twrp-root-t3573550
http://en.miui.com/thread-307139-1-1.html

一 准备所需软件和固件

1.1 下载并安装小米官方最新的刷机程序MiFlash

MiFlashSetup_eng.msi
Size: 48863232 bytes
MD5: B550CF87B618D298CE9600612F6D2773
SHA1: 709A0506CCE3775157D7ADEFAACB4901E4D068DC
CRC32: C2C9359A

该版本的驱动经过了微软签名,不会再跳出需要同意“始终安装此驱动程序软件”的提示。

1.2 下载nijel8修改版TWRP(标准版hydrogen、高配版helium通用)

(09-05-2017)twrp_v311-2_hydrogen-helium_nijel8-MOD_A7.1.2.img

1.3 下载nijel8修改版rom所能支持的最新的小米官方国际版fastboot刷机包(目前为MIUI 9 国际测试版7.9.22)

标准版hydrogen:
hydrogen_global_images_7.9.22_20170922.0000.00_7.0_global_d6b6bee3f8.tgz
高配版helium:
helium_global_images_7.9.22_20170922.0000.00_7.0_global_ab5a25d14d.tgz

1.4 下载nijel8的LineageOS固件

标准版hydrogen:
lineage-14.1-20170930-UNOFFICIAL-hydrogen.zip
高配版helium:
lineage-14.1-20170930-UNOFFICIAL-helium.zip

1.5 下载对应的固件升级包(MG, MIUI Global)

标准版hydrogen:
firmware-HYDROGEN_MGD-7.9.22.zip
高配版helium:
firmware-HELIUM_MGD-7.9.22.zip

1.6 下载最新版的谷歌包opengapps(可选)

依次选择“ARM64” > “7.1” > “nano”,并点击红色下载按钮,20171004得到:

open_gapps-arm64-7.1-nano-20171004.zip
推荐nano的原因是:
pico是仅包括保证google play运行的最小安装,
nano则在pico的基础上还包括了不能从play下载到的功能组件,
谷歌的其他软件都可以通过play下载到,因此推荐安装pico包。

二 免解锁bootloader线刷fastboot包

简单来说,该步骤的目的就是免解锁bootloader刷入TWRP。

2.1 解压小米官方fastboot包

这里注意解压得到的目录,后面线刷时不要选择错了
推荐使用7zip解压,需要先将tgz包“提取到当前位置”解压为tar包,再通过“提取到当前位置”解压tar包为文件夹。
例如高配版fastboot包放在D盘根目录:

D:\helium_global_images_7.9.22_20170922.0000.00_7.0_global_ab5a25d14d.tgz

通过两次“提取到当前位置”,最后解压为:

D:\helium_global_images_7.9.22_20170922.0000.00_7.0_global\

2.2 替换recovery.img

将下载的nijel8修改版TWRP,改名为recovery.img,复制到固件所在文件夹下的images文件夹内,替换原名文件,即

D:\helium_global_images_7.9.22_20170922.0000.00_7.0_global\images

2.3 进入EDL(9008)模式

关机,同时按住(音量+)(音量-)按钮不要松手,数据线连接电脑,手机振动,电脑听到新硬件插入的提示音,随后会出现安装驱动的提示,即可松手。
正确进入EDL模式的话,屏幕为黑色的关闭状态,可以在“设备管理器”中见到类似如下的字样(COM端口可能会有不同):

端口(COM和LPT)
     Qualcomm HS-USB QDLoader 9008(COM20)
注:经过多次尝试,这个步骤推荐的做法是:在手机处于任何状态下,用数据线连接电脑,同时按住(音量+)(音量-)按钮不要松手,按住电源键10秒左右,手机第一次震动,此时松开电源键,再过13秒左右手机第二次震动,此时在硬件管理器中应该就可以可见9008模式的驱动了,说明正确进入了EDL模式,可以松开(音量+)(音量-)按钮。

2.4 刷机

在桌面打开刷机程序(XiaoMiFlash.exe), 点击“刷新”按钮,在列表中,会见到如下内容:

编号	设备	进度	时间	状态	结果
1	COM20		0s

点击“选择”按钮,定位到刷机包文件夹:

D:\helium_global_images_7.9.22_20170922.0000.00_7.0_global\

注意是images文件夹的上一级文件夹。
选择“全部删除”,而后点击“刷机”。静静等待3分钟左右,提示成功(success)。

不要开机,不要开机,不要开机。

三 卡刷LineageOS包

3.1 将LineageOS固件包、固件升级包、谷歌包复制到到SD卡内或者放到u盘(需要otg线)内,并在开机前插入手机中:

lineage-14.1-20170930-UNOFFICIAL-helium.zip
firmware-HELIUM_MGD-7.9.22.zip
open_gapps-arm64-7.1-nano-20171004.zip

SD卡对应后面卡刷时的/sdcard1目录;
U盘则对应后面卡刷时的/usb-ogt目录。

3.2 进入TWRP

断开手机和电脑的连接,按住(音量+)(电源键),出现MI图标,即可松手,稍等片刻,即可进入TWRP。
直接点击保持只读(Keep Read Only)即可,也可以选择语言(Select Language),这里我直接点击保持只读(Keep Read Only)进入。

3.3 格式化数据区

点击清除(Wipe),格式化Data(Format Data)。
第一次安装LineageOS时忽略此步骤,可能导致手机存储容量不能被正确识别。

3.4 四清

返回(back)Wipe界面,点击高级清除(Advanced Wipe),选择“Dalvik/ART Cache”、“System”、“Data”、“Cache”,滑动清除(Swipe to Wipe)。

3.5 安装LineageOS

返回主界面,点击安装(Install),定位到刷机包所在的“/sdcard1”或者“/usb-otg”目录,选择lineage-14.1-20170807-UNOFFICIAL-helium.zip,添加更多压缩包(Add more Zips)添加固件升级包和谷歌包,然后滑动刷机(Swip to confirm Flash)。安装好后清除缓存(Wipe cache/dalvik)后重启手机(Reboot System)。
等待一段时间,即会进入LineageOS的设置向导界面。

如需刷入谷歌包,请在重启前就刷入,手机重启后想刷的话,需要将手机重置后在刷入,否则可能出现崩溃情况;
当刷入谷歌包时,如果没有国际互联网接入,可以在设置向导界面顺时针方向连续按屏幕四角几圈来跳过。

在LEDE上配置Samba文件共享服务

免费开源的Samba协议可以在局域网(LAN)中为Windows、Linux和MacOS提供文件和打印机共享服务。
配置成功的关键在于Samba用户、共享文件目录权限的设置。

背景

在折腾703N扩展LEDE到U盘的时候,把U盘分成了三个区,第三个区用来作为文件存储区,并被挂载到LEDE的/mnt/sda6,sda6内有一个共享文件夹share,其目录结构是:

/
|--mnt
|  |--sda6
|     |--share

希望达到的文件共享方式是:

匿名用户guest(nobody)只能访问文件目录(/mnt/sda6/share),对其内的文件目录及文件具有添加、修改、删除的权限,方便多人共享;
管理员账户root通过密码方式登录,管理整个存储分区(/mnt/sda6),对其内的所有文件目录和文件都具备添加、修改、删除的权限,方便管理。

LEDE 17.01.2 正式版固件上,记录实现上述共享方式的步骤如下:

1 安装samba

#更新软件包列表
opkg update #直接安装中文语言包,会自动安装samba36-server(20170529版本:3.6.25-6)、luci-app-samba opkg install luci-i18n-samba-zh-cn

2 samba全局设置

依次点击LEDE的luci中的“服务” > “网络共享(samba)”,打开Samba的设置界面,点击“编辑模板”,并按如下修改:

...
unix charset = UTF-8
...
#invalid users = root
...
map to guest = Bad User
...
null passwords = yes
...

作用分别是:开启UTF-8国际字符集;允许root用户登录;当用户名输入错误时,则以匿名用户(nobody)登陆;允许空密码。

3 Samba文件共享设置

3.1 共享级访问(Share level access)方式

共享级访问文件共享方式已被用户级访问(User level access)方式通过如下代码取代:

security = user
map to guest = Bad User

这里就不细说了。

3.2 用户级访问(User level access)方式

3.2.1 在LEDE命令行中,为root用户设置samba登录密码

smbpasswd -a root New SMB password: Retype SMB password:

3.2.2 在LEDE命令行中,更改 /mnt/sda6/share目录的权限为777,否则匿名用户无法对其下内容进行添加、修改、删除操作。

chmod 777 /mnt/sda6/share

3.2.3 依次打开LEDE的luci中“服务” > “网络共享 > “共享目录”标签,按下图修改,并点击“保存&应用”。

注:
名称”下的share、root,为共享名称,即用户通过samba客户端访问时见到的主目录名,可设置为自己喜欢的名字;
只有当设置root用户新建文件、目录的权限为0777时,其在/mnt/sda6/share内添加的新文件或新目录,匿名用户才能对其进行修改、删除,否则因为权限问题无法实现我们目的的第一条;
如果完全是自用时,保留root那一行就可以了,同时建议将新建目录或文件的权限设为0755。
至此,设置结束,可以通过不同平台的客户端尝试访问。

4 windows 10中访问Samba文件共享服务器

已经设置好Samba文件共享的LEDE路由器IP地址是:192.168.2.1;windows 10具体版本:版本1703(OS内部版本 15063.296)。
在windows 10的文件管理器中,输入Samba服务器地址:file:\\192.168.2.1进行登陆,会有两种情况:

4.1 windows 10以微软账户登陆(username@outlook.com)时:
会先跳出登陆界面:
4.1.1 输入用户名root,和设置好的密码,会进入目录:/usr/local/。
4.1.2 输入除root外的其他任何字符,和任意密码或空密码(null passwords),会匿名(nobody)登陆,进入/usr/local/src。

4.2 windows 10以本地用户登录时:
会先看到我们设置好的两个共享文件目录:root和share:
4.2.1 双击share目录时,直接以匿名用户(nobody)进入目录:/usr/local/src。
4.2.2.1 双击root目录时,会弹出密码登陆选项,输入用户名root及其密码,会进入目录:/usr/local/。
4.2.2.2 双击root目录时,会弹出密码登陆选项,输入root以外的任何字符和密码时,禁止登陆。

较低版本(具体不详)的windows 10 (包括windows 8)可能会碰到禁止登陆的问题,建议及时更新至最新版的windows 10。低版本可通过修改注册表解决首先确认您的权限设置没有问题。然后尝试如下方法 打开注册表 Win+R输入regedit, 定位到如下位置 HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters 创建一个 DWORD 项, 命名为 ‘AllowInsecureGuestAuth’ , 值设置为“1”. 最后重启计算机再次访问查看结果。

5 清除windows访问Samba的访问记录

在windows中访问Samba服务器后,windows会存储访问记录,比如密码。当我们想清除密码,重新输入时,步骤如下:
5.1 获取访问记录

#在windows的命令行(cmd)中运行net use,可见访问Samba服务器的记录:
C:\Users\User>net use会记录新的网络连接。 
状态       本地        远程                      网络

-------------------------------------------------------------------------------
OK                     \\192.168.2.1\IPC$         Microsoft Windows Network
命令成功完成。

5.2 删除访问记录

C:\Users\User>net use \\192.168.2.1\IPC$ /del /y \\192.168.2.1\IPC$ 已经删除。

5.3 尝试重新登陆Samba。