我正在通过Cydia制作一个可安装的包,它将编写com.intelliborn.intelliscreenx:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Hidden</key>
<array>
<string>libactivator</string>
<string>com.aaronash.BarrelSettings</string>
<string>com.iptm.bigboss.sbsettings</string>
</array>
</dict>
</plist>
但我不知道如何将postinst脚本写入到它正确添加的位置,并将postrmv脚本正确删除。
安装此软件包后,hidden.plist应该如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Hidden</key>
<array>
<string>libactivator</string>
<string>com.aaronash.BarrelSettings</string>
<string>com.iptm.bigboss.sbsettings</string>
<string>com.intelliborn.intelliscreenx</string>
</array>
</dict>
下面是我的postinst & postrmv脚本的外观:
后
#!/bin/bash
declare -a cydia
cydia=($CYDIA)
if [[ $1 == install ]]; then
if [[ ${CYDIA+@} ]]; then
eval "echo 'finish:restart' >&${cydia[0]}"
fi
fi
echo -e "\n\<string>com.intelliborn.intelliscreenx</string>\n" >> /var/mobile/Library/LibHide/hidden.plist
exit 0
波斯特莫夫
#!/bin/bash
echo " " >> /var/mobile/Library/LibHide/
sed -i 's/<string>com.intelliborn.intelliscreenx</string>\n" >> /var/mobile/Library/LibHide/hidden.plist
declare -a cydia
cydia=($CYDIA)
if [[ $1 == install ]]; then
if [[ ${CYDIA+@} ]]; then
eval "echo 'finish:restart' >&${cydia[0]}"
fi
fi
exit 0
发布于 2013-04-09 19:55:07
您可以对iPhone使用plutil,就像它适用于plist文件一样。
在cydia包的控制文件中,将以下内容添加到预依赖项中,如下面的示例所示,这样,如果在手动之前安装了plutil,则可以安装postinst和postrm以避免失败。
控制
Name: com.test.package
Pre-Depends: com.ericasadun.utilities
postinst
#!/bin/bash
#add value to array
plutil -key Hidden -arrayadd -value com.intelliborn.intelliscreenx /var/mobile/Library/LibHide/hidden.plist
declare -a cydia
cydia=($CYDIA)
if [[ $1 == install ]]; then
if [[ ${CYDIA+@} ]]; then
eval "echo 'finish:restart' >&${cydia[0]}"
fi
fi
exit 0
https://stackoverflow.com/questions/15777639
复制相似问题