冰月酱的备忘录
43 members
52 photos
3 files
33 links
日常技术备忘以及一些好玩的东西。

本体 @haruue
Twitter: twitter.com/HaruueIcymoon
GitHub: git.io/haruue
Blog: haruue.moe

======
所有未标识来源的原创内容以及转发自 @haruue 的内容均以 CC-BY-SA 3.0 非本地化协议授权,代码部分额外以 Apache License 2.0 协议授权。
其他内容则与转发来源或标明的来源使用的授权协议一致。
频道头像来自 とある科学の超電磁砲 EP#20 01:20
Download Telegram
to view and join the conversation
冰月酱的备忘录
Photo
适用于阿里云轻应用服务器的 vps2arch

在 Ubuntu 16.04 系统上测试通过。
这类服务器会莫名其妙地不定期重建 /bin /sbin /lib /lib64 目录,导致安装 filesystem 时发生冲突而失败。
另外 default 的 initramfs 看起来无法加载成功,必须带上 -S autodetect 选项 mkinitcpio 。
另请注意,轻应用服务器默认没有 root 密码,这将导致 vps2arch 完成后 root 密码被设置为 vps2arch ,并且默认允许密码登录。为了您的服务器安全,建议执行之前先设置 root 密码。

https://gist.github.com/haruue/805c2c539e028453e0d5e909d918a149
这才是设备需要注册的情况。。。
#google #android
众所周知,在传统的 Android 应用开发中我们使用 XML 编写 layout , 用 Java 编写实现。 但是这样的话就涉及到在运行时解析 XML 和反射构建 View , 还涉及到遍历 View Tree 寻找 layout id 的问题。 人们还发明了一大堆方案在保持代码可维护性的同时避免 findViewById() 带来的性能损失, 例如 ViewHolder 以及用 HashMap 再缓存一次(Kotlin Android Plugin 的 View Binding 就是这样做的)。于是就会有一些人会尝试去使用 Java 代码手动创建 layout 。 这听起来就是个一举多得的事情,随便总结一下就有以下优点:再也不需要在运行时解析 xml 和使用反射构建 View 了。在手动创建 View 的同时就能持有对应 View 的引用, 避免在运行时浪费时间 findViewById() 的困扰。可以安全地混淆我们的自定义 View 了。layout 的代码可以混淆得连 你自己 都认不出来, 要知道 parse 和修改 Android binary xml 可比更改和重新编译 smali 容易多了。最成功的 Java 代码布局的例子非 Telegram 莫属, 在阅读正文之前, 你可以先欣赏一下他们的 布局代码

via Haruue Icymoon http://haruue.moe/blog/2019/01/02/android-kotlin-layout/
解决 Linux 在睡眠( systemctl suspend )之后自动唤醒的玄学问题

/proc/acpi/wakeup 中禁用除电源按钮之外的唤醒方式。
for i in $(cat /proc/acpi/wakeup | grep -v 'platform' | grep 'enabled' | awk '{print $1}'); do echo "$i" > /proc/acpi/wakeup; done

https://delightlylinux.wordpress.com/2017/12/05/fix-the-immediate-resume-following-suspend/
说起来。。咕咕噜 GSuite 这个作为 Device owner 的时候禁用 开发者选项 是用的哪个 API 。。。
哦,找到了。。
DevicePolicyManager.addUserRestriction 带上 DISALLOW_DEBUGGING_FEATURES
顺便发现了个彩蛋。。。
从古至今的 Google 日语输入法愚人节视频列表。。。
https://www.youtube.com/playlist?list=PLhUl_Y1C1N-k28mh1dzJBbitybKNns1-p
没有找到 2010 年的视频, 但是有一个专页
弄了个解锁了的荣耀 Play, 试着用 magisk 获取了一下 root 权限, 过程记录如下:

1. 进系统, 打开 USB 调试(需要输入一下验证码), 关掉每次连接 USB 都需要询问的开关, 关掉 USB 不能安装应用的开关, 关掉验证通过 USB 安装的应用程序的开关。 然后进入连接设置, 将 USB 的连接方式设置为文件传输。
2. adb reboot bootloader (好像确实没其他方法能整进 bootloader)
3. 在 fastboot 模式下刷 twrp (下载) , fastboot flash recovery_ramdisk twrp_cornell-3.2.2.img (华为的 recovery 叫做 recovery_ramdisk )
4. 执行 fastboot reboot , 同时马上断开 USB 并按住音量+(迟了会导致系统自动切换到原有的 recovery, 再试一次)。
5. 进入 twrp 后, 使用 dd 命令备份 /dev/block/platform/ff3c0000.ufs/by-name/ramdisk 或者 /dev/block/platform/ff3c0000.ufs/by-name/ramdisk_a (华为分了 kernel 和 ramdisk), 将输出文件写入到 /data/boot.img 这种不会加密的地方(因为现有的 twrp 移植不支持解密), 设置权限为 666 , 设置 SELinux Context u:object_r:shell_data_file:s0
6. 重启到系统, 安装 magisk manager , 对第 5 步 dump 出的 ramdisk 镜像执行 patch 。
7. 再次 adb reboot bootloaderfastboot flash ramdisk magisk_patched.img 以及 fastboot flash ramdisk_a magisk_patched.img 刷入 magisk patch 好的镜像。
8. fastboot reboot
Forwarded from Henryzhao
如果你把vlc的安装文件命名为 vlc.exe
Forwarded from Henryzhao
它会认为有vlc在运行
Forwarded from Henryzhao
然后把自己杀掉
冰月酱的备忘录
如果你把vlc的安装文件命名为 vlc.exe
OpenVPN 安装程序也这样。。。