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