Terminal 如何在PlistBuddy中输入数据

Terminal 如何在PlistBuddy中输入数据,terminal,plistbuddy,Terminal,Plistbuddy,我试图用PlistBuddy更改一个数据值,但无法理解它 /usr/libexec/PlistBuddy-c“Set:Kernel:Emulate:Cpuid1Mask aaaaaaaaaaaa==”~/Desktop/test.plist 当我查看文件时,我得到的不是我想要的数据,而是:qufbqufbqufbqufbq0fbqufbqt09 我已经玩了hex,dec,bin,所有我能想到的东西,但它从来没有写对过。 我到处都在找,但我找不到任何东西来解释怎么做。一切都取决于输入字符串,没有任

我试图用PlistBuddy更改一个数据值,但无法理解它

/usr/libexec/PlistBuddy-c“Set:Kernel:Emulate:Cpuid1Mask aaaaaaaaaaaa==”~/Desktop/test.plist

当我查看文件时,我得到的不是我想要的数据,而是:qufbqufbqufbqufbq0fbqufbqt09

我已经玩了hex,dec,bin,所有我能想到的东西,但它从来没有写对过。 我到处都在找,但我找不到任何东西来解释怎么做。一切都取决于输入字符串,没有任何东西告诉我们如何输入数据或数据的格式

我需要来回地将该值从aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==

我试着打印它以查看输出,这样我可以看到格式,但在终端中它是空白的

有人知道怎么做吗?

我知道了。 默认值和PlistBuddy都不能这样做。
plutil工作正常,不会损坏数据字符串。

PlistBuddy
可以在
base64
的帮助下完成。首先将传入的Base64流解码为二进制数据

base64 -D <<< AAAAAAAAAAAAAAACAAAAAA== > /tmp/tmp.bin
如果不再需要,请删除二进制数据

rm /tmp/tmp.bin

PS:我经常使用它来更改OpenCore中的数据值。

我不知道是否可以这样做。我已经试了好几天了,没人能弄明白。PlistBuddy是否有使用十六进制的语法?如果我打印它,它将不会显示在终端中,因为它们是不可见的字符,所以无法在命令行中输入它们。如果有其他内置命令来执行此操作,请告诉我。我只需要操纵那个值。我可以用字符串来正确地输入它,那么有没有办法将它作为字符串输入,然后将字符串标记更改为数据标记?很久没有出现在这里了,我想我会分享我找到的解决方案。正如我上面所说,“默认”和“PlistBuddy”都不能做到这一点。要么是错误,要么是疏忽。奇怪的是,他们能读字符串,却不能写。最后我使用了“plutil”:plutil-replace Kernel.Emulate.Cpuid1Mask-data“aaaaaaaaaaaaaa==”/config.plist
rm /tmp/tmp.bin