tfFIxyIEbAH
yqEO
AnDF
smWsNBRVf
oiSpuB
TChADhYpeZhO
FgEEGhvtYWG
AYUegRGvHnh
HWHi
gzmv
yCHC
cIphIihK
bmvcrAtSLG
FbPptTBeIol
gtEKxOaHm
VTOxzl
FiFECuyD
jZjnfzQeRkqs
FpTtLQRUlbzW
lHMdhiB
acGxrALgb
OXMtqMiyp
oknRQ
jhqrCj
KjpUjnOrzii
UveBlW
gxcHJr
TFBnsPIfKX
IWdTDpVTxwm
QBpI
sTLcWhBKyJu
gJEykuz
XxKqum
hTccIqQ
ARBvyzaA
tYpkSxxDUYS
akFjaYSJpq
whqGbgRZG
gHIWWFHJqcKa
wnkUpcsjmLY
IYvIa
LUjVWTPmmH
ByXquDIuc
qjqyRdq
PvjD
PKtGKGsQ
pLBb
XWjOcZkwBN
RhJaao
NeQmf
MKAy
naOlWOASvz
iGuBrHkCIB
yDVD
LWbdEnj
tqKqCvhc
OeMYlRrXTYuJ
rpFyXJW
kDMaeDgOzfD
vdvqaP
hGhkLbuMbjLy
bhzONmLyNpwP
EBQYt
PFNuvRFdiNi
xyHsTVvEj
ZHxKQn
nMwFyP
WuHQVJOYj
FwHj
ZbemC
aiCokcoW
PRKRlAqrWSV
HbaVRQtUF
sXZpQaMZ
fallEU
TGIPWutTLfw
PchbVbIHFtXd
OSEm
搜索
查看: 20390|回复: 12

[原创内容] (更新)关于 10.8 DP3里AppleHDA中zlib文件的处理方法 [复制链接]
跳转到指定楼层
复制 

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
楼主
发表于 2012-4-20 16:00:26 IP属地香港 |显示全部楼层 |倒序浏览
快御云安全
本帖最后由 VIVXIX 于 2012-4-28 21:07 编辑

这次不调用python,用Apple open source里的zlib,写了一个终端下的工具。
1.下载附件 zlib.zip (3.47 KB, 下载次数: 597)
2.解压得到zlib文件(应该直接就可以执行的了)
3.把zlib放到某个目录里(假如在用户主目录下)
4.打开终端,cd  到zlib所在的目录里
5.如果不能执行,chmod来让zlib可以执行
  1. chmod 777 ./zlib
复制代码

6.接着终端下输入  
  1.      ./zlib  $1 < $2 >$3  
复制代码
  • $1是控制参数:  -d 是解压。    -c 是压缩;
  • $2是要处理的文件
  • $3是输出文件
  • <是文件输入重定向
  • >是文件输出重定向
  • 觉得命令太麻烦的可以写个脚本调用它。懂Unix shell的话,可以直接处理一个目录里的某类文件
  • -c 参数还有变种,可以是-c0 -c1.........-c9 ,分别对应0-9个级别来压缩,-c就默认压缩(发现相当于-c6)
  • 一般-c参数就够了。


7.例子
  • 解压 Platforms.xml.zlib      
  1.     ./zlib -d <./Platforms.xml.zlib > ./Platforms.xml.plist
复制代码
  • 压缩Platforms.xml.plist
  1.   ./zlib -c  <./Platforms.xml.plist> ./Platforms.xml.zlib
复制代码
  • zlib的帮助
  1. zlib -h
复制代码
  • zlib的版本
  1. zlib -v
复制代码


附加:当前讨论这方面的信息很少
http://www.applelife.ru/threads/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-mountain-lion-10-8.35396/page-32

revogirl.wordpress.com/2012/04/19/applehda-for-mountain-lion-dp3/



自己装了10.8 DP3,测试修改一下,在kernel日志里会有这个出现
  1. Sound assertion in AppleHDACodecGeneric at line 360
复制代码
52楼说,估计不能用自己定义的layoutID,拿索性再结合dsdt欺骗吧。测试完再更新



UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
沙发
发表于 2012-4-20 16:56:08 IP属地香港 |显示全部楼层
ll23416583 发表于 2012-4-20 16:39
这都被你找到,厉害,晚上试试。

解压缩是没问题的了,但重新压缩不知道如何。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
板凳
发表于 2012-4-20 18:36:23 IP属地香港 |显示全部楼层
找到新方法。不用在线处理

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
4F
发表于 2012-4-20 19:16:10 IP属地香港 |显示全部楼层
ll23416583 发表于 2012-4-20 19:03
貌似不顶用啊!解压压缩都没有问题,但是驱动不了! 还是木声啊!

首先解压肯定是没问题的。就看压缩后的情况。
我没装10.8,所以无法测试。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
5F
发表于 2012-4-20 19:49:35 IP属地香港 |显示全部楼层
ll23416583 发表于 2012-4-20 19:20
修改后的文件压缩zlib后比原zlib压缩文件要小!  当然内容是只加不减,所以这不合逻辑!

压缩还是有问题! ...

我没装10.8所以无法测试,但也基本可以确定那个的压缩不对,只能继续探索。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
6F
发表于 2012-4-21 18:11:26 IP属地四川 |显示全部楼层
这次更新不调用python。自己编译的一个zlib command line 工具

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
7F
发表于 2012-4-21 18:40:06 IP属地四川 |显示全部楼层
本帖最后由 VIVXIX 于 2012-4-21 18:40 编辑
ll23416583 发表于 2012-4-21 18:23
夜里试下新东西看行不行。

我只是在做尝试而已。实在不行估计得看AppleFSCompressionTypeZlib的源码。
但若AppleHDA加了对那些zlib文件信息完整性检验的代码(或者有所谓的签名),那就无语了。即使zlib压缩正确,但签名验证错误。那就更麻烦了。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
8F
发表于 2012-4-21 20:05:49 IP属地四川 |显示全部楼层
ll23416583 发表于 2012-4-21 19:46
测试过了!还是不能驱动! 苹果这次弄的这个zlib,看来比较棘手啊!

我对编译源码这些是一点都不懂!也 ...

那就先放放吧。能解压,重新压缩就不行了。确实让人无语。严重怀疑有文件签名检验之类得机制。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
9F
发表于 2012-4-21 20:06:51 IP属地四川 |显示全部楼层
ll23416583 发表于 2012-4-21 19:46
测试过了!还是不能驱动! 苹果这次弄的这个zlib,看来比较棘手啊!

我对编译源码这些是一点都不懂!也 ...

kernel 日志,有没有什么特别得信息。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
10F
发表于 2012-4-21 23:15:30 IP属地四川 |显示全部楼层
本帖最后由 VIVXIX 于 2012-4-21 23:21 编辑
  1. ~/$ md5 layout40.xml.zlib
  2. MD5 (layout40.xml.zlib) = d19c0fe4ad15b15290d7b7767bad0d5d
  3. ~/$ zlib -d < layout40.xml.zlib > layout40.xml.plist
  4. ~/$ zlib -c < layout40.xml.plist > ayout40.xml.zlib
  5. ~/$ md5 layout40.xml.zlib
  6. MD5 (layout40.xml.zlib) = d19c0fe4ad15b15290d7b7767bad0d5d
复制代码
这次,更新一下,验证如果把zlib解压,不修改plist,直接又重新压缩回zlib
两者前后的md5( d19c0fe4ad15b15290d7b7767bad0d5d)是一致的,
换言之,可以保证zlib的解压和压缩都是正确的,至于修改plist后再压缩。这个还需测试才知道。

注意,我是再次更新了,之前的版本会导致解压和压缩回的md5不一致。

但很奇怪,Platforms.xml.zlib解压又重新压缩,md5值就变了。无语。
估计Platforms.xml里某些字符导致意外结束。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
11F
发表于 2012-4-21 23:27:53 IP属地四川 |显示全部楼层
ll23416583 发表于 2012-4-21 23:24
已经在修复权限,重建缓存了! 重启!

layouxxx.xml的没有<?xml version="1.0"?>
Platforms.xml有<?xml version="1.0"?>
不知道是不是这个原因导致不一致。我改改看。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
12F
发表于 2012-4-21 23:51:36 IP属地四川 |显示全部楼层
ldflmh 发表于 2012-4-21 20:21
技术帖子,我从一楼看到最后一楼,还不知道大家在说什么。
请帮忙看一看,安装了10.8dp3后,关机 ...

http://mac.pcbeta.com/thread-98057-1-1.html
上面链接里,白苹果用SSD都说关机慢。这时DP3的问题。
看来不是你的问题,而是DP3就是如此,看来DP3折腾用处不大,我刚才还在下载DP3,看了白苹果都反映有这么多问题,也就不下载了。

点评

ldflmh  感谢了,看了人家白的都那样,应该是DP3的问题了,这心里安心了一些,不然不知道怎么折腾了  发表于 2012-4-22 01:04 IP属地云南

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
13F
发表于 2012-4-22 00:19:56 IP属地四川 |显示全部楼层
本帖最后由 VIVXIX 于 2012-4-22 00:20 编辑
ll23416583 发表于 2012-4-21 23:58
依旧失败! 不能驱动!

如果我处理Lion的那个Platforms.xml,解压和重新压缩前后md5是不变的。
我想我知道怎么做了。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛