目录
  1. 1. Apps tore 安装Xcode工具(文件较大提前安装好)
  2. 2. 提取声卡codec
    1. 2.1. 工具下载
    2. 2.2. 制作ubuntu启动u盘
    3. 2.3. 启动并提取
  3. 3. 声卡节点获取
    1. 3.1. 找出有效的节点
      1. 3.1.1. 首先需要将电脑的驱动改为微软的驱动
    2. 3.2. 安装hdausetup_x64.msi(需要.net3.5)
    3. 3.3. 记录有效节点并转化成10进制
  4. 4. 整理ConfigData
    1. 4.1. 插口位置
    2. 4.2. 点击获取pinconfig
  5. 5. 修改AppleALC源码配置文件
    1. 5.1. 下载applealc以及lilu源码
    2. 5.2. 确定layout id 这里以17为例
      1. 5.2.1. 编辑Platforms17.xml
      2. 5.2.2. 编辑layout17.xml
        1. 5.2.2.1. 计算CodecID(后面会经常用到)
        2. 5.2.2.2. 计算MuteGPIO
          1. 5.2.2.2.1. 计算后填入对应位置
      3. 5.2.3. 编辑info.plist
        1. 5.2.3.1. 修改CodecID
        2. 5.2.3.2. 修改Layouts
      4. 5.2.4. 修改PinConfigs.kext
        1. 5.2.4.1. 右键点击PinConfigs.kext显示包内容找到info
          1. 5.2.4.1.1. 修改info
  6. 6. 编译Applealc.kext需要Applestore安装Xcode
    1. 6.1. 编译Lilu.kext
      1. 6.1.1. 找到编译好的Lilu.kext
      2. 6.1.2. 将lilu.kext复制到AppleALC-master
黑苹果Applealc声卡驱动定制(笔记本alc662为例)

Apps tore 安装Xcode工具(文件较大提前安装好)

提取声卡codec

工具下载

百度云

提取码 pzgy

工具包含ubuntu镜像、刻录工具、其他工具

制作ubuntu启动u盘

推荐mac下操作

QQ20200301-163802@2x

启动并提取

出现Ubuntu Linux的引导界面,选择选择Try Ubuntu without installing

按组合键CTRL+WIN+t打开终端,输入以下命令:

cd ~/Desktop/ # 进入用户桌面

cp /proc/asound/card0/codec* . # 将codec开头的文件复制到当时位置

将桌面上的codec开头的文件复制到win下或其他盘符

声卡节点获取

找出有效的节点

首先需要将电脑的驱动改为微软的驱动

进入设备管理器,找到如图所示,的声音、视频和游戏控制器

安装hdausetup_x64.msi(需要.net3.5)

记录有效节点并转化成10进制

转化为十进制并倒序记录

Speaker(内置喇叭) 0x1F
0x10 - 0x1F 十进制:31-16

MicIn(外插麦克)0x1A
0x14 - 0x17 - 0x1A 十进制:26-23-20

Headphone(外置耳机)0x19
0x11 - 0x19 十进制:25-17

MicIn(内置麦克) 0x23
0x15 - 0x23 十进制:35-21

整理ConfigData

  1. mac下安装 PinConfigurator

  2. 加载之前ubuntu提取的codec#0

  3. 点击菜单上的修补删除无效节点

  4. 对比win提取的节点信息进行删减

修改设备类型以及查插口位置

插口位置

1/8” stereo/mono 通常接口

Optical SPDIF光纤口

Rear(后)笔记本选这个,意义不大

Front(前)

ATAPI (內建)笔记本一般选这个

• Fixed 内部设备

• Jack 是通过插孔进行连接的外部设备

• N/A 是其它未知设备

• 内置麦克风 —— Mic In

• 内置扬声器 ——Speaker

• 线路输出 —— line out

• 外置麦克风 —— Mic at Ext

• 线路输入 —— Line In 笔记本外置麦克要选这个

• 耳机 —— HP Out

点击获取pinconfig

01F71C10 01F71D01 01F71E17 01F71F99 01971C40 01971D10 01971E21 01971F01 01A71C30 01A71D10 01A71E81 01A71F01 02371C50 02371D01 02371EA6 02371F99

有些输出设备具有EAPD,软件会自动显示出来,简单判断EAPD节点的方法:那就是它通常会位于Speaker Out和HP Out这两个输出节点上.至于其它教程提到过的关于01470c02是组神奇的代码,可以让外放发声的说法是错误的,它可能刚好声卡的Speaker Out的输出节点是0x14而已.如果您的Speaker Out输出节点是0x16,那么就需要把它修改为01670c02,当然要遵守这个公式:Address+节点+70c+02
将01470C02放到最后,没有请略过

修改AppleALC源码配置文件

• 最后确认一共需要修改和定制的为4个文件:

  1. Applealc——resources——alc662—>Platforms17.xml

  2. Applealc——resources——alc662—>layout17.xml

  3. Applealc—>resources—>alc662—>info.Plist

  4. Applealc—>resources—>pinconfigs.kext—>contents—>info.Plist

下载applealc以及lilu源码

https://github.com/acidanthera/AppleALC
https://github.com/acidanthera/Lilu

确定layout id 这里以17为例

编辑Platforms17.xml

编辑layout17.xml

计算CodecID(后面会经常用到)

351359086

文本编辑器打开codec#0.文件找到Vendor Id并转化为10进制

计算MuteGPIO

  1. 搜索codec中外置mic下的vref值,vref含义为初始电压基础上增加的百分比。

  2. 当vref不为Hiz时,muteGPIO={(vref转换为16进制)+”0100”+node id}转换为10进制,codec中vref表示的是十进制,计算时转为16进制。

  3. 如果vref为Hiz,则muteGPIO=0

    举例如:在节点 0x1a下有效节点0x14发现vref_80,80转换为16进制=50,则muteGPIO=(5001001a)转换为10进制=1342242842;

计算后填入对应位置

编辑info.plist

修改CodecID

填写之前计算好的数值

修改Layouts

Layouts/Id、Layouts/Path修改成layout id对应值17

修改PinConfigs.kext

右键点击PinConfigs.kext显示包内容找到info

修改info
  1. 搜索你之前计算的CodecID值351359086

  2. 将你之前整理的ConfigData填写到对应位置

  3. LayoutID修改为17

编译Applealc.kext需要Applestore安装Xcode

编译Lilu.kext

编译成功会显示succeeeded

找到编译好的Lilu.kext

将lilu.kext复制到AppleALC-master

文章作者: 房大叔
文章链接: http://blog.fangf.cc/2020/03/02/applealc/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 房大叔的博客
打赏
  • 微信
  • 支付寶

评论