修改 NvidiaGraphicsFixup.kext 内建显示器

起因

关于内建显示器,主要有 DSDT 注入,DisplayMergeNub.kext,EFI String 等方法。

我的机器 P751DMG 之前因为无法使用 DSDT 注入(DSDT 或 SSDT 添加显卡相关代码花屏)一直使用的是 EFI String,但是在 10.13 后, EFI String 由于未知原因也失效了,而DisplayMergeNub.kext 因为签名问题无法加载,所以不得不寻找新的办法。

有一天调整音量的时候偶然发现 HDMI 音频竟然是启用的,而我本身没有用 EFI String 修正 HDMI 音频,赶紧去翻了下 NvidiaGraphicsFixup 的 changelog 发现竟然是它加入了 HDMI Audio 的支持,看到这里情况就很明显了,修改 HDMI 音频相关数据和内建屏幕所需修改的 connector 数据是在一起的,那么应该能够通过 NvidiaGraphicsFixup 修改 connector 相关信息以实现显示器内建。
继续阅读“修改 NvidiaGraphicsFixup.kext 内建显示器”

macOS 文明5 汉化包自动安装脚本

macOS 上文明5并不像 Windows 上一样自带繁体中文,所以需要自己安装汉化包,同时因为没有自动化的安装包,几乎能找到的教程都是手动一个一个文件夹合并,不仅非常复杂,还很容易出错,所以自己写了个 shell 脚本安装汉化文件。
继续阅读“macOS 文明5 汉化包自动安装脚本”

完美驱动 AppleHDA 续: AppleALC

之前的文章 完美驱动 AppleHDA 讲述了如何通过 codec 提取 PinConfigPlatforms PathMap 的方式驱动 AppleHDA, 但是这个方法有几个缺点:

  • 需要修改系统文件,S/L/EAppleHDA.kext 中不仅需要添加或替换 Layoutxx.xml.zlib 和 Platformsxx.xml.zlib, 还需要 bin-patch 打二进制补丁或在 Clover 中添加 Kext Patch;
  • 每次升级系统后都需要重新替换,如果没有使用 Clover KextPatch 还需要重新 bin-patch.

幸运的是,vit9696 的 AppleALC 项目 vit9696/AppleALC 为我们解决了这些烦恼,它不仅内置了大量已经制作好的 LayoutPlatforms PathMap, 更是免去了修改系统文件和手动 bin-patch 的问题。
继续阅读“完美驱动 AppleHDA 续: AppleALC”

品阅小说阅读器

这是最早从 2013 开始的一个小说阅读器项目,前后集成了来自百度 Wap, 宜搜, 海豚等在线小说来源,可以实现追书功能,但目前都已失效。
由于各种原因(主要是怕算是盗版),一直都只在同学和朋友之间传播使用,并没有公开发布,如今在线来源已基本全部失效,所以开源出来。
从 2013 – 2015, 从 Android Design 到 Material Design, 从代码混乱地写在各个 Activity 中,到 MVP (VP 其实也分得并不清晰),目前因为没有来源暂时停下来了,仅仅保持一些小的修复性更新。
当然,如果你能告诉我新的来源,我会尽量添加支持的。
项目地址:
Github: https://github.com/crysehillmes/smoothnovelreader

基本功能

  • 在线追书
  • 离线缓存
  • 本地 txt 智能分章
  • 阅读设置
    • 翻页方式自定义 ( 左右 Flip, 上下 Flip, 左右滑动 )
    • 字体大小
    • 阅读背景
    • 行距调整
    • 夜间模式

继续阅读“品阅小说阅读器”

Android 文件管理系列 (03) – 监控文件变化

文件管理器有个关键问题是,当用户浏览某个目录时,有可能这个目录中发生了文件的 新建 / 删除 / 修改 等操作,因此需要及时的将这类变化的信息更新,在 Android 上则有两种办法实现:

  1. 继承并实现 android.os.FileObserver;
  2. 使用 org.apache.commons.io 提供的 FileAlterationMonitor, FileAlterationObserver 以及 FileAlterationListener.

继续阅读“Android 文件管理系列 (03) – 监控文件变化”

Android 文件管理系列 (02) – FileProvider

之前的文章有讲过,/data/data/<package-name>/<some-external-storage/Android/data/<package-name> 等应用私有目录无法被其他应用访问,如果需要在其他应用内打开私有内容,需要使用到 FileProvider.
FileProvider 是继承自 ContentProvider 的一个子类,用于安全地将一个应用相关的文件通过 content:// Uri 而不是 file:/// Uri 分享给其他用户。
Content Uri (schema 为 content://) 允许你临时赋予读写权限。当你发送一个包含 content Uri 的 Intent 给目标 app 时,使用 Intent.setFlags(), Intent.addFlags() 方法为其赋予权限。
继续阅读“Android 文件管理系列 (02) – FileProvider”