mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-21 11:15:27 +01:00
Merge branch 'master' of https://github.com/CloverHackyColor/CloverBootloader
This commit is contained in:
commit
d1d1aaff0e
2
.github/workflows/main.yml
vendored
2
.github/workflows/main.yml
vendored
@ -27,8 +27,6 @@ jobs:
|
||||
- name: Build Clover Pack
|
||||
run: |
|
||||
chmod +x ./buildme
|
||||
chmod +x ./Clover_Duet.command
|
||||
cp -rf ./Clover_Duet.command ./CloverPackage/CloverV2/
|
||||
./buildme "" ci
|
||||
- name: Prepare Release Packs
|
||||
run: |
|
||||
|
@ -1,229 +1,285 @@
|
||||
<?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>BuildMachineOSBuild</key>
|
||||
<string>18G9323</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.netkas.FakeSMC</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>KEXT</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.5.4</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>3.5.4</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>11B53</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>GM</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>17C76</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>macosx10.13</string>
|
||||
<key>DTXcode</key>
|
||||
<string>1120</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>11B53</string>
|
||||
<key>IOKitPersonalities</key>
|
||||
<dict>
|
||||
<key>SMC Device Emulator</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.netkas.FakeSMC</string>
|
||||
<key>Configuration</key>
|
||||
<dict>
|
||||
<key>Keys</key>
|
||||
<dict>
|
||||
<key>$Num</key>
|
||||
<array>
|
||||
<string>ui8 </string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>ACID</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>ur48RcADEEM=</data>
|
||||
</array>
|
||||
<key>ALI0</key>
|
||||
<array>
|
||||
<string>{ali</string>
|
||||
<data>BgECAA==</data>
|
||||
</array>
|
||||
<key>ALRV</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<data>AAE=</data>
|
||||
</array>
|
||||
<key>ALV0</key>
|
||||
<array>
|
||||
<string>{alv</string>
|
||||
<data>AQEDtwCjABVq9A==</data>
|
||||
</array>
|
||||
<key>CLKH</key>
|
||||
<array>
|
||||
<string>{clh</string>
|
||||
<data>AABwgAABGUA=</data>
|
||||
</array>
|
||||
<key>CLKT</key>
|
||||
<array>
|
||||
<string>ui32</string>
|
||||
<data>AAByGw==</data>
|
||||
</array>
|
||||
<key>EPCI</key>
|
||||
<array>
|
||||
<string>flag</string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>FNum</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AA==</data>
|
||||
</array>
|
||||
<key>LSOF</key>
|
||||
<array>
|
||||
<string>flag</string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>LSSB</key>
|
||||
<array>
|
||||
<string>{lso</string>
|
||||
<data>AQE=</data>
|
||||
</array>
|
||||
<key>LsNM</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>LsbV</key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>AQQKAAY=</data>
|
||||
</array>
|
||||
<key>MOST</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<data>gAM=</data>
|
||||
</array>
|
||||
<key>MSDW</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>MSPS</key>
|
||||
<array>
|
||||
<string>{msp</string>
|
||||
<data>AA==</data>
|
||||
</array>
|
||||
<key>MSSD</key>
|
||||
<array>
|
||||
<string>si8</string>
|
||||
<data>BQ==</data>
|
||||
</array>
|
||||
<key>NATJ</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AA==</data>
|
||||
</array>
|
||||
<key>NATi</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<string>0000</string>
|
||||
</array>
|
||||
<key>NTOK</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AQ==</data>
|
||||
</array>
|
||||
<key>NVPR</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>AA==</data>
|
||||
</array>
|
||||
<key>OSK0</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>b3VyaGFyZHdvcmtieXRoZXNld29yZHNndWFyZGVkcGw=</data>
|
||||
</array>
|
||||
<key>OSK1</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>ZWFzZWRvbnRzdGVhbChjKUFwcGxlQ29tcHV0ZXJJbmM=</data>
|
||||
</array>
|
||||
<key>REV </key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>ATAPAAAD</data>
|
||||
</array>
|
||||
<key>RGEN</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>Ag==</data>
|
||||
</array>
|
||||
<key>RMde</key>
|
||||
<array>
|
||||
<string>char</string>
|
||||
<data>QQ==</data>
|
||||
</array>
|
||||
<key>RPlt</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<string>m82</string>
|
||||
</array>
|
||||
<key>RVBF</key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>ATAPAAAD</data>
|
||||
</array>
|
||||
</dict>
|
||||
<key>debug</key>
|
||||
<false/>
|
||||
<key>smc-compatible</key>
|
||||
<string>smc-napa</string>
|
||||
</dict>
|
||||
<key>IOClass</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>IOMatchCategory</key>
|
||||
<string>IOACPIPlatformDevice</string>
|
||||
<key>IOProviderClass</key>
|
||||
<string>AppleACPIPlatformExpert</string>
|
||||
<key>IOResourceMatch</key>
|
||||
<string>ACPI</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.13</string>
|
||||
<key>OSBundleCompatibleVersion</key>
|
||||
<string>3.3.0</string>
|
||||
<key>OSBundleLibraries</key>
|
||||
<dict>
|
||||
<key>com.apple.iokit.IOACPIFamily</key>
|
||||
<string>1.0.0d1</string>
|
||||
<key>com.apple.kpi.iokit</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.libkern</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.mach</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.unsupported</key>
|
||||
<string>9.0.0</string>
|
||||
</dict>
|
||||
<key>OSBundleRequired</key>
|
||||
<string>Root</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>23C64</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.netkas.FakeSMC</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>KEXT</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.5.6</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>3.5.6</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string></string>
|
||||
<key>DTPlatformName</key>
|
||||
<string>macosx</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>14.2</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>23C53</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>macosx14.2</string>
|
||||
<key>DTXcode</key>
|
||||
<string>1510</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>15C65</string>
|
||||
<key>IOKitPersonalities</key>
|
||||
<dict>
|
||||
<key>SMC Device Emulator</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.netkas.FakeSMC</string>
|
||||
<key>Configuration</key>
|
||||
<dict>
|
||||
<key>Keys</key>
|
||||
<dict>
|
||||
<key>$Num</key>
|
||||
<array>
|
||||
<string>ui8 </string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>ACID</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>
|
||||
ur48RcADEEM=
|
||||
</data>
|
||||
</array>
|
||||
<key>ALI0</key>
|
||||
<array>
|
||||
<string>{ali</string>
|
||||
<data>
|
||||
BgECAA==
|
||||
</data>
|
||||
</array>
|
||||
<key>ALRV</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<data>
|
||||
AAE=
|
||||
</data>
|
||||
</array>
|
||||
<key>ALV0</key>
|
||||
<array>
|
||||
<string>{alv</string>
|
||||
<data>
|
||||
AQEDtwCjABVq9A==
|
||||
</data>
|
||||
</array>
|
||||
<key>CLKH</key>
|
||||
<array>
|
||||
<string>{clh</string>
|
||||
<data>
|
||||
AABwgAABGUA=
|
||||
</data>
|
||||
</array>
|
||||
<key>CLKT</key>
|
||||
<array>
|
||||
<string>ui32</string>
|
||||
<data>
|
||||
AAByGw==
|
||||
</data>
|
||||
</array>
|
||||
<key>EPCI</key>
|
||||
<array>
|
||||
<string>flag</string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>FNum</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AA==
|
||||
</data>
|
||||
</array>
|
||||
<key>LSOF</key>
|
||||
<array>
|
||||
<string>flag</string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>LSSB</key>
|
||||
<array>
|
||||
<string>{lso</string>
|
||||
<data>
|
||||
AQE=
|
||||
</data>
|
||||
</array>
|
||||
<key>LsNM</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>LsbV</key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>
|
||||
AQQKAAY=
|
||||
</data>
|
||||
</array>
|
||||
<key>MOST</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<data>
|
||||
gAM=
|
||||
</data>
|
||||
</array>
|
||||
<key>MSDW</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>MSPS</key>
|
||||
<array>
|
||||
<string>{msp</string>
|
||||
<data>
|
||||
AA==
|
||||
</data>
|
||||
</array>
|
||||
<key>MSSD</key>
|
||||
<array>
|
||||
<string>si8</string>
|
||||
<data>
|
||||
BQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>NATJ</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AA==
|
||||
</data>
|
||||
</array>
|
||||
<key>NATi</key>
|
||||
<array>
|
||||
<string>ui16</string>
|
||||
<string>0000</string>
|
||||
</array>
|
||||
<key>NTOK</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>NVPR</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
AA==
|
||||
</data>
|
||||
</array>
|
||||
<key>OSK0</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>
|
||||
b3VyaGFyZHdvcmtieXRoZXNld29y
|
||||
ZHNndWFyZGVkcGw=
|
||||
</data>
|
||||
</array>
|
||||
<key>OSK1</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<data>
|
||||
ZWFzZWRvbnRzdGVhbChjKUFwcGxl
|
||||
Q29tcHV0ZXJJbmM=
|
||||
</data>
|
||||
</array>
|
||||
<key>REV </key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>
|
||||
ATAPAAAD
|
||||
</data>
|
||||
</array>
|
||||
<key>RGEN</key>
|
||||
<array>
|
||||
<string>ui8</string>
|
||||
<data>
|
||||
Ag==
|
||||
</data>
|
||||
</array>
|
||||
<key>RMde</key>
|
||||
<array>
|
||||
<string>char</string>
|
||||
<data>
|
||||
QQ==
|
||||
</data>
|
||||
</array>
|
||||
<key>RPlt</key>
|
||||
<array>
|
||||
<string>ch8*</string>
|
||||
<string>m82</string>
|
||||
</array>
|
||||
<key>RVBF</key>
|
||||
<array>
|
||||
<string>{rev</string>
|
||||
<data>
|
||||
ATAPAAAD
|
||||
</data>
|
||||
</array>
|
||||
</dict>
|
||||
<key>debug</key>
|
||||
<false/>
|
||||
<key>smc-compatible</key>
|
||||
<string>smc-napa</string>
|
||||
</dict>
|
||||
<key>IOClass</key>
|
||||
<string>FakeSMC</string>
|
||||
<key>IOMatchCategory</key>
|
||||
<string>IOACPIPlatformDevice</string>
|
||||
<key>IOProviderClass</key>
|
||||
<string>AppleACPIPlatformExpert</string>
|
||||
<key>IOResourceMatch</key>
|
||||
<string>ACPI</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.13</string>
|
||||
<key>OSBundleCompatibleVersion</key>
|
||||
<string>3.3.0</string>
|
||||
<key>OSBundleLibraries</key>
|
||||
<dict>
|
||||
<key>com.apple.iokit.IOACPIFamily</key>
|
||||
<string>1.0.0d1</string>
|
||||
<key>com.apple.kpi.iokit</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.libkern</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.mach</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.unsupported</key>
|
||||
<string>9.0.0</string>
|
||||
</dict>
|
||||
<key>OSBundleRequired</key>
|
||||
<string>Root</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
Binary file not shown.
@ -1,225 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Clover-LegacyDuet: by chris1111
|
||||
# Thanks: CloverHackyColor
|
||||
# Thanks: Acidanthera
|
||||
apptitle="Clover-LegacyDuet"
|
||||
version="1.0"
|
||||
# Set Icon directory and file
|
||||
iconfile="/System/Library/CoreServices/Finder.app/Contents/Resources/Finder.icns"
|
||||
printf '\e[8;47;83t'
|
||||
PARENTDIR=$(dirname "$0")
|
||||
cd "$PARENTDIR"
|
||||
echo " "
|
||||
echo "🚫 Do not use this program on a disk where Clover or OpenCore is already installed!"
|
||||
rm -rf ./boot*
|
||||
Sleep 1
|
||||
cp -Rp ./Bootloaders/x64/{boot6,boot7} ./
|
||||
cp -Rp ./BootSectors/{boot0af,boot1f32} ./
|
||||
|
||||
# Install Clover booter on physical disk.
|
||||
|
||||
#get BOOT File
|
||||
if [ "$2" == "" ]; then
|
||||
echo " "
|
||||
echo "Choose (6 or 7) for the Booter
|
||||
6 = -> Clover EFI 64-bits using SATA to access drives.
|
||||
7 = -> Clover EFI 64-bit using Bios Block I/O to access drives. "
|
||||
echo "Make a choice followed by Enter: "
|
||||
|
||||
while [ -z "$BOOT" ]; do
|
||||
read BOOT
|
||||
done
|
||||
|
||||
else
|
||||
BOOT="$2"
|
||||
fi
|
||||
|
||||
export ARCHS=$BOOT
|
||||
|
||||
if [ ! -f "boot${ARCHS}" ] || [ ! -f boot0af ] || [ ! -f boot1f32 ] || [ ! -f EFI/CLOVER/CLOVERX64.efi ]; then
|
||||
echo "Clover is not build?"
|
||||
echo "Or you probably have change directory on this package?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
if [ "$EUID" -ne 0 ]
|
||||
then echo "Please run this script as root"
|
||||
exit
|
||||
fi
|
||||
if [ "$(which lsblk)" = "" ]; then
|
||||
echo "lsblk tool is missing! Try installing util-linux package"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$(which fdisk)" = "" ]; then
|
||||
echo "fdisk tool is missing!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf ./origbs
|
||||
rm -rf ./newbs
|
||||
rm -rf ./boot*
|
||||
|
||||
echo "Select the disk where you want to install boot files:"
|
||||
lsblk -d | tail -n+2 | cut -d" " -f1
|
||||
echo "Example: sda"
|
||||
read -r DRIVE
|
||||
|
||||
DRIVE="/dev/${DRIVE}"
|
||||
|
||||
if ! lsblk "$DRIVE"; then
|
||||
echo Disk "${DRIVE}" not found
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Choose EFI partition on selected disk:"
|
||||
lsblk -f "${DRIVE}"
|
||||
echo "Example: sda1"
|
||||
read -r EFI_PART
|
||||
|
||||
EFI_PART="/dev/${EFI_PART}"
|
||||
|
||||
if ! lsblk -f "$EFI_PART" | grep -q -e FAT32 -e vfat; then
|
||||
echo "No FAT32 partition to install"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Write MBR
|
||||
dd if=boot0af of="$DRIVE" bs=1 count=446 conv=notrunc || exit 1
|
||||
|
||||
umount "${EFI_PART}"
|
||||
|
||||
dd if="${EFI_PART}" count=1 of=origbs
|
||||
cp -v boot1f32 newbs
|
||||
dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
|
||||
dd if=/dev/random of=newbs skip=496 seek=496 bs=1 count=14 conv=notrunc
|
||||
dd if=newbs of="${EFI_PART}"
|
||||
|
||||
p=/tmp/$(uuidgen)/EFI
|
||||
mkdir -p "${p}" || exit 1
|
||||
mount -t vfat "${EFI_PART}" "${p}" -o rw,noatime,uid="$(id -u)",gid="$(id -g)" || exit 1
|
||||
|
||||
cp -v "boot${ARCHS}" "${p}/boot" || exit 1
|
||||
echo "Install EFI -> /Volumes/EFI/EFI Wait. . ."
|
||||
cp -Rp "EFI" "${p}" || exit 1
|
||||
|
||||
echo Check "${p}" boot drive to install Clover Duet
|
||||
|
||||
DISK_SCHEME=$(fdisk -l "${DRIVE}" | sed -n 's/.*Disklabel type: *//p')
|
||||
if [ "$DISK_SCHEME" != "gpt" ]; then
|
||||
BOOT_FLAG=$(dd if="$DRIVE" bs=1 count=1 status=none skip=$((0x1BE)) | od -t x1 -A n | tr -d ' ')
|
||||
if [ "$BOOT_FLAG" != "80" ]; then
|
||||
fdisk "$DRIVE" <<END
|
||||
p
|
||||
a
|
||||
1
|
||||
w
|
||||
END
|
||||
fi
|
||||
fi
|
||||
else
|
||||
rm -rf ./origbs
|
||||
rm -rf ./newbs
|
||||
|
||||
diskutil list
|
||||
echo "Disable SIP in the case of any problems with installation!!!"
|
||||
echo "Enter disk number to install to:"
|
||||
read -r N
|
||||
|
||||
if ! diskutil info disk"${N}" | grep -q "/dev/disk"; then
|
||||
echo Disk "$N" not found
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! diskutil info disk"${N}"s1 | grep -q -e FAT_32 -e EFI; then
|
||||
echo "No FAT32 partition to install"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Write MBR
|
||||
echo "Type your password to continue!"
|
||||
sudo fdisk -uy -f boot0af /dev/rdisk"${N}" || exit 1
|
||||
echo " "
|
||||
echo "Clover Duet boot$ARCHS$BO0T will be Install to ➤ EFI System Partition"
|
||||
echo " "
|
||||
diskutil umount disk"${N}"s1
|
||||
sudo dd if=/dev/rdisk"${N}"s1 count=1 of=origbs
|
||||
cp -v boot1f32 newbs
|
||||
sudo dd if=origbs of=newbs skip=3 seek=3 bs=1 count=87 conv=notrunc
|
||||
dd if=/dev/random of=newbs skip=496 seek=496 bs=1 count=14 conv=notrunc
|
||||
sudo dd if=newbs of=/dev/rdisk"${N}"s1
|
||||
#if [[ "$(sudo diskutil mount disk"${N}"s1)" == *"mounted" ]]
|
||||
if sudo diskutil mount disk"${N}"s1 | grep -q mounted; then
|
||||
cp -v "boot${ARCHS}" "$(diskutil info disk"${N}"s1 | sed -n 's/.*Mount Point: *//p')/boot"
|
||||
else
|
||||
p=/tmp/$(uuidgen)/EFI
|
||||
mkdir -p "${p}" || exit 1
|
||||
sudo mount_msdos /dev/disk"${N}"s1 "${p}" || exit 1
|
||||
cp -v "boot${ARCHS}" "${p}/boot" || exit 1
|
||||
fi
|
||||
|
||||
if diskutil info disk"${N}" | grep -q FDisk_partition_scheme; then
|
||||
sudo fdisk -e /dev/rdisk"$N" <<-MAKEACTIVE
|
||||
p
|
||||
f 1
|
||||
w
|
||||
y
|
||||
q
|
||||
MAKEACTIVE
|
||||
fi
|
||||
fi
|
||||
|
||||
Sleep 1
|
||||
rm -rf ./origbs
|
||||
rm -rf ./newbs
|
||||
rm -rf ./boot*
|
||||
|
||||
while true
|
||||
do
|
||||
response=$(osascript -e 'tell app "System Events" to display dialog "Clover Duet is installed!
|
||||
You can install a Clover EFI folder that you created.
|
||||
You can use Generic Clover EFI folder from this release.\n\nCancel to not install EFI folder." buttons {"Cancel","Generic Clover EFI","Personal EFI"} default button 3 with title "'"$apptitle"' '"$version"'" with icon POSIX file "'"$iconfile"'" ')
|
||||
|
||||
action=$(echo $response | cut -d ':' -f2)
|
||||
|
||||
# Exit if Canceled
|
||||
if [ ! "$action" ] ; then
|
||||
osascript -e 'display notification "Program closing" with title "'"$apptitle"'" subtitle "User cancelled"'
|
||||
echo "User cancelled Program Clover-LegacyDuet closing in 2 sec"
|
||||
Sleep 2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$action" == "Generic Clover EFI" ] ; then
|
||||
mv ./EFI/CLOVER/config-sample.plist ./EFI/CLOVER/config.plist
|
||||
Sleep 1
|
||||
cp -Rp "EFI" "$(diskutil info disk${N}s1 | sed -n 's/.*Mount Point: *//p')"
|
||||
echo "Install EFI -> /Volumes/EFI/EFI Done!"
|
||||
mv ./EFI/CLOVER/config.plist ./EFI/CLOVER/config-sample.plist
|
||||
Sleep 2
|
||||
Open -R "$(diskutil info disk"${N}"s1 | sed -n 's/.*Mount Point: *//p')/boot"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$action" == "Personal EFI" ] ; then
|
||||
echo " "
|
||||
#get EFI folder
|
||||
if [ "$2" == "" ]; then
|
||||
echo " "
|
||||
echo "Move your EFI folder here"
|
||||
echo "Followed by Enter: "
|
||||
|
||||
while [ -z "$EFIfolder" ]; do
|
||||
read EFIfolder
|
||||
done
|
||||
|
||||
else
|
||||
EFIfolder="$2"
|
||||
fi
|
||||
cp -Rp "$EFIfolder" "$(diskutil info disk${N}s1 | sed -n 's/.*Mount Point: *//p')"
|
||||
echo "Install EFI -> /Volumes/EFI/EFI Done!"
|
||||
Sleep 2
|
||||
Open -R "$(diskutil info disk"${N}"s1 | sed -n 's/.*Mount Point: *//p')/boot"
|
||||
exit 1
|
||||
fi
|
||||
done
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$(dirname "$0")" || exit 1
|
||||
export DUETTOOL=Clover_Duet.command
|
||||
cp -Rp $DUETTOOL ./CloverPackage/CloverV2
|
||||
./CloverPackage/CloverV2/$DUETTOOL
|
||||
Sleep 1
|
||||
rm -rf ./CloverPackage/CloverV2/$DUETTOOL
|
@ -20,6 +20,8 @@ Bootloader for macOS, Windows and Linux in UEFI and in legacy mode
|
||||
- Press **F4** to save original (OEM) ACPI tables into `/EFI/CLOVER/ACPI/origin`
|
||||
- Press **F5** to test DSDT patching
|
||||
- Press **F6** to save graphics firmware into `/EFI/CLOVER/misc`
|
||||
- Press **F7** to test HDA output
|
||||
- Press **F9** to switch screen resolution
|
||||
- Press **F10** to save screenshots from GUI
|
||||
- Press **F11** to reset NVRAM
|
||||
- Press **F12** to eject CD/DVD
|
||||
@ -29,7 +31,7 @@ Bootloader for macOS, Windows and Linux in UEFI and in legacy mode
|
||||
- Create custom boot entries for personalizing boot entries and add support for other operating systems
|
||||
- Create Clover boot entry in NVRAM with tool from GUI
|
||||
- Launch EFI command shell from GUI
|
||||
- Startup sound controlled by **F8** and checked by **F7**
|
||||
- Startup sound checked by **F7**
|
||||
|
||||
### Developers:
|
||||
|
||||
@ -42,7 +44,7 @@ Bootloader for macOS, Windows and Linux in UEFI and in legacy mode
|
||||
Chameleon team, crazybirdy, JrCs, chris1111.
|
||||
|
||||
### Clover is open source based on different projects :
|
||||
* Clover, rEFIt, XNU, VirtualBox. [The main is EDK2 latest revision](https://github.com/CloverHackyColor/CloverBootloader)
|
||||
* Chameleon, rEFIt, XNU, VirtualBox. [The main is EDK2 latest revision](https://github.com/CloverHackyColor/CloverBootloader)
|
||||
* Recent developments and changes in details at [Clover Change Explanations](https://www.insanelymac.com/forum/topic/304530-clover-change-explanations/)
|
||||
* Support forum discussion [AppleLife](https://applelife.ru/threads/clover.42089/) (Russian) [Insanelymac](https://www.insanelymac.com/forum/topic/284656-clover-general-discussion/) (English) [macos86.it](https://www.macos86.it/forum/46-clover/) (Italian)
|
||||
---------------------------------------------------------
|
||||
|
@ -1,49 +0,0 @@
|
||||
#!/bin/sh
|
||||
#Credit: chris1111
|
||||
#Credit: Jief_Machak
|
||||
#Vars
|
||||
apptitle="Config Validator"
|
||||
version="1.0"
|
||||
sleep 1
|
||||
rm -rf /Private/tmp/CloverConfigPlistValidator.zip
|
||||
#Dialog Text
|
||||
read -r -d '' applescriptCode <<'EOF'
|
||||
set dialogText to text returned of (display dialog "
|
||||
Type the numer of the CloverConfigPlistValidator you whant to use?
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
The lowest you can start is ➢ 5143
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Type the number then click Continue" default answer "" with icon 0 buttons {"Continue"} default button "Continue")
|
||||
return dialogText
|
||||
EOF
|
||||
|
||||
dialogText=$(osascript -e "$applescriptCode");
|
||||
echo " "
|
||||
echo Your choice is CloverConfigPlistValidator $dialogText;
|
||||
|
||||
echo " "
|
||||
echo "
|
||||
******************************************************
|
||||
Clover Config.Plist Validator
|
||||
Drag config.plist file to verify it
|
||||
******************************************************"
|
||||
#Set Droping directory and file
|
||||
rm -rf /Private/tmp/CloverConfigPlistValidator.zip
|
||||
sleep 1
|
||||
rm -rf /Private/tmp/CloverConfigPlistValidator
|
||||
curl -L https://github.com/CloverHackyColor/CloverBootloader/releases/download/$dialogText/CloverConfigPlistValidator_$dialogText.zip -s -o /Private/tmp/CloverConfigPlistValidator.zip
|
||||
Sleep 1
|
||||
ditto -x -k --sequesterRsrc --rsrc /Private/tmp/CloverConfigPlistValidator.zip /Private/tmp
|
||||
sleep 1
|
||||
rm -rf /Private/tmp/CloverConfigPlistValidator.zip
|
||||
#get config path
|
||||
if [ "$2" == "" ]; then
|
||||
while [ -z "$config" ]; do
|
||||
read config
|
||||
echo "Start of verification:"
|
||||
sleep 1
|
||||
done
|
||||
else
|
||||
config="$2"
|
||||
fi
|
||||
/Private/tmp/CloverConfigPlistValidator_$dialogText -v "$config"
|
@ -1,276 +0,0 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 48;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
83D6FCAC274A7F8600DF00C5 /* ConfigValidator.c in Sources */ = {isa = PBXBuildFile; fileRef = 83D6FCAB274A7F8600DF00C5 /* ConfigValidator.c */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
83D6FCA6274A7F8600DF00C5 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = /usr/share/man/man1/;
|
||||
dstSubfolderSpec = 0;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 1;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
83D6FCA8274A7F8600DF00C5 /* ConfigValidator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ConfigValidator; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
83D6FCAB274A7F8600DF00C5 /* ConfigValidator.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConfigValidator.c; sourceTree = "<group>"; };
|
||||
83D6FCB2274A7FBA00DF00C5 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
|
||||
83D6FCB3274A7FBF00DF00C5 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
83D6FCA5274A7F8600DF00C5 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
83D6FC9F274A7F8600DF00C5 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
83D6FCB3274A7FBF00DF00C5 /* CoreFoundation.framework */,
|
||||
83D6FCB2274A7FBA00DF00C5 /* IOKit.framework */,
|
||||
83D6FCAA274A7F8600DF00C5 /* ConfigValidator */,
|
||||
83D6FCA9274A7F8600DF00C5 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
83D6FCA9274A7F8600DF00C5 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
83D6FCA8274A7F8600DF00C5 /* ConfigValidator */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
83D6FCAA274A7F8600DF00C5 /* ConfigValidator */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
83D6FCAB274A7F8600DF00C5 /* ConfigValidator.c */,
|
||||
);
|
||||
path = ConfigValidator;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
83D6FCA7274A7F8600DF00C5 /* ConfigValidator */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 83D6FCAF274A7F8600DF00C5 /* Build configuration list for PBXNativeTarget "ConfigValidator" */;
|
||||
buildPhases = (
|
||||
83D6FCA4274A7F8600DF00C5 /* Sources */,
|
||||
83D6FCA5274A7F8600DF00C5 /* Frameworks */,
|
||||
83D6FCA6274A7F8600DF00C5 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConfigValidator;
|
||||
productName = ConfigValidator;
|
||||
productReference = 83D6FCA8274A7F8600DF00C5 /* ConfigValidator */;
|
||||
productType = "com.apple.product-type.tool";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
83D6FCA0274A7F8600DF00C5 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0920;
|
||||
ORGANIZATIONNAME = chris;
|
||||
TargetAttributes = {
|
||||
83D6FCA7274A7F8600DF00C5 = {
|
||||
CreatedOnToolsVersion = 9.2;
|
||||
ProvisioningStyle = Automatic;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = 83D6FCA3274A7F8600DF00C5 /* Build configuration list for PBXProject "ConfigValidator" */;
|
||||
compatibilityVersion = "Xcode 8.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 83D6FC9F274A7F8600DF00C5;
|
||||
productRefGroup = 83D6FCA9274A7F8600DF00C5 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
83D6FCA7274A7F8600DF00C5 /* ConfigValidator */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
83D6FCA4274A7F8600DF00C5 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
83D6FCAC274A7F8600DF00C5 /* ConfigValidator.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
83D6FCAD274A7F8600DF00C5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
83D6FCAE274A7F8600DF00C5 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.12;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
83D6FCB0274A7F8600DF00C5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
83D6FCB1274A7F8600DF00C5 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
83D6FCA3274A7F8600DF00C5 /* Build configuration list for PBXProject "ConfigValidator" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
83D6FCAD274A7F8600DF00C5 /* Debug */,
|
||||
83D6FCAE274A7F8600DF00C5 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
83D6FCAF274A7F8600DF00C5 /* Build configuration list for PBXNativeTarget "ConfigValidator" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
83D6FCB0274A7F8600DF00C5 /* Debug */,
|
||||
83D6FCB1274A7F8600DF00C5 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 83D6FCA0274A7F8600DF00C5 /* Project object */;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:ConfigValidator.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -1 +0,0 @@
|
||||
|
@ -1,504 +0,0 @@
|
||||
#if 0
|
||||
shc Version 3.8.9b, Generic Script Compiler
|
||||
Copyright (c) 1994-2015 Francisco Rosales <frosal@fi.upm.es>
|
||||
|
||||
./shc -v -r -T -f ./ConfigValidator.sh
|
||||
#endif
|
||||
|
||||
static char data [] =
|
||||
#define msg1_z 42
|
||||
#define msg1 ((&data[6]))
|
||||
"\233\150\044\313\040\005\310\215\377\044\043\272\360\062\203\301"
|
||||
"\267\327\203\242\173\355\003\065\230\317\341\013\160\222\025\257"
|
||||
"\174\041\006\331\151\070\053\007\161\263\250\222\134\220\123\167"
|
||||
"\132"
|
||||
#define chk1_z 22
|
||||
#define chk1 ((&data[51]))
|
||||
"\036\002\301\354\114\036\262\160\323\316\126\322\103\333\125\146"
|
||||
"\245\002\206\002\302\177\220\025\340\262\075\021"
|
||||
#define msg2_z 19
|
||||
#define msg2 ((&data[77]))
|
||||
"\322\362\137\041\163\034\331\056\026\024\206\006\040\313\175\267"
|
||||
"\067\213\234\312"
|
||||
#define xecc_z 15
|
||||
#define xecc ((&data[99]))
|
||||
"\152\276\165\352\335\200\050\306\016\010\342\317\342\326\250\255"
|
||||
"\175"
|
||||
#define chk2_z 19
|
||||
#define chk2 ((&data[118]))
|
||||
"\041\003\140\147\350\325\334\344\324\351\240\333\135\077\321\230"
|
||||
"\013\116\211\034\222\145\003\375\162\133"
|
||||
#define text_z 1633
|
||||
#define text ((&data[468]))
|
||||
"\332\223\133\117\353\157\261\253\233\243\035\167\326\172\152\035"
|
||||
"\101\260\305\012\170\154\302\114\065\020\023\076\356\070\072\277"
|
||||
"\152\331\254\253\373\123\144\076\067\200\154\336\363\223\106\042"
|
||||
"\141\214\277\011\064\125\324\043\034\240\310\130\375\366\242\112"
|
||||
"\177\362\352\073\002\312\163\254\025\316\167\210\017\137\306\143"
|
||||
"\267\003\017\235\073\240\047\334\161\136\257\341\265\327\212\252"
|
||||
"\332\025\210\104\346\176\362\206\321\365\026\227\050\070\176\033"
|
||||
"\142\160\050\162\353\141\370\353\364\265\215\351\022\022\035\264"
|
||||
"\227\212\263\256\215\312\147\114\301\131\025\365\000\267\337\233"
|
||||
"\365\035\073\016\302\355\032\140\002\246\212\212\166\220\166\143"
|
||||
"\301\153\074\347\370\320\007\221\031\220\107\206\307\117\322\244"
|
||||
"\214\171\221\302\113\374\176\363\017\073\037\275\013\243\357\377"
|
||||
"\312\337\255\361\206\105\235\012\060\044\176\106\243\055\273\044"
|
||||
"\254\120\100\001\253\117\043\105\324\234\155\153\167\307\001\326"
|
||||
"\370\115\336\172\005\153\122\056\335\075\110\336\054\101\265\342"
|
||||
"\057\107\146\320\172\366\156\201\036\360\226\335\343\220\237\377"
|
||||
"\161\217\342\117\031\060\343\325\204\317\326\311\114\370\210\206"
|
||||
"\115\236\203\363\065\174\164\160\210\044\021\167\330\004\340\342"
|
||||
"\016\245\055\264\025\050\070\300\247\154\264\263\032\257\322\125"
|
||||
"\062\020\331\224\257\040\201\324\021\354\052\217\205\244\045\263"
|
||||
"\175\165\341\154\246\304\124\070\113\022\327\355\200\173\222\207"
|
||||
"\201\066\360\011\364\057\376\366\340\301\275\355\236\320\003\036"
|
||||
"\375\263\160\163\034\043\307\277\177\371\161\166\050\177\334\311"
|
||||
"\241\012\041\321\317\211\272\330\040\351\214\311\341\000\352\235"
|
||||
"\353\350\003\074\126\031\377\227\145\064\301\266\335\002\112\011"
|
||||
"\046\053\005\145\124\301\315\242\021\153\355\314\011\342\221\304"
|
||||
"\121\336\326\162\376\247\070\147\124\157\211\063\010\301\350\205"
|
||||
"\130\337\141\073\203\011\345\243\227\166\162\302\201\164\331\064"
|
||||
"\121\006\006\326\362\300\022\051\317\164\132\046\057\221\040\225"
|
||||
"\255\376\254\341\066\053\105\211\034\146\206\201\134\272\064\252"
|
||||
"\264\036\147\274\354\262\277\132\373\303\211\352\266\377\250\324"
|
||||
"\006\126\167\076\252\067\307\025\025\231\020\132\340\336\360\107"
|
||||
"\214\155\047\014\315\170\120\235\175\233\372\170\351\173\272\335"
|
||||
"\006\106\102\303\247\255\070\153\153\302\054\037\221\061\277\076"
|
||||
"\153\021\033\002\003\232\345\326\160\341\200\343\356\054\260\237"
|
||||
"\337\234\112\160\374\105\126\071\314\110\036\014\241\025\365\106"
|
||||
"\072\130\333\135\157\302\127\043\207\000\034\104\240\012\205\054"
|
||||
"\041\054\271\221\166\210\011\066\052\324\134\141\236\240\007\244"
|
||||
"\035\143\211\247\001\215\173\363\332\153\235\255\046\045\255\140"
|
||||
"\351\257\205\147\262\232\077\022\070\010\075\233\017\313\241\155"
|
||||
"\360\113\143\225\356\356\243\260\015\077\206\256\273\347\260\242"
|
||||
"\105\114\231\213\366\117\310\326\035\055\146\334\127\312\151\132"
|
||||
"\042\362\057\153\223\064\311\054\237\331\030\346\267\123\001\227"
|
||||
"\147\262\136\073\216\042\360\310\253\157\144\214\050\375\012\056"
|
||||
"\264\253\006\231\052\321\215\273\250\127\151\047\166\005\076\005"
|
||||
"\122\061\113\017\073\346\276\164\333\221\067\310\321\177\162\216"
|
||||
"\057\107\064\013\141\217\056\044\304\072\140\077\366\253\125\003"
|
||||
"\055\165\046\311\226\272\107\011\040\145\241\202\005\174\146\210"
|
||||
"\044\213\157\350\324\356\215\142\244\244\133\302\024\027\332\075"
|
||||
"\314\017\153\122\142\261\303\300\136\021\270\314\326\370\235\226"
|
||||
"\320\167\042\012\171\255\271\234\331\147\327\140\367\123\242\102"
|
||||
"\260\204\120\165\213\056\064\335\336\075\367\212\216\005\316\223"
|
||||
"\272\267\212\127\020\034\053\267\102\234\175\177\113\134\112\246"
|
||||
"\067\212\006\024\323\056\172\370\206\072\205\361\030\150\247\212"
|
||||
"\345\022\255\306\170\233\016\002\230\273\121\347\032\131\005\166"
|
||||
"\054\165\210\170\110\046\024\046\000\053\352\077\020\140\062\014"
|
||||
"\276\172\251\375\134\357\257\206\040\366\226\334\235\212\167\135"
|
||||
"\062\377\252\067\264\204\126\163\223\243\247\340\031\211\350\154"
|
||||
"\032\074\275\122\375\035\276\366\177\104\135\254\037\134\374\372"
|
||||
"\375\001\122\131\342\226\023\147\155\200\231\317\203\067\343\226"
|
||||
"\310\321\022\277\240\362\242\360\364\017\056\111\110\032\235\234"
|
||||
"\364\216\115\357\027\215\343\145\152\322\330\140\304\337\042\262"
|
||||
"\324\147\155\270\110\000\167\372\246\050\205\231\067\161\222\337"
|
||||
"\220\347\256\343\064\137\150\325\267\375\146\020\053\021\120\171"
|
||||
"\327\011\363\221\362\266\345\373\200\265\207\200\167\200\245\021"
|
||||
"\264\311\333\253\022\155\363\231\303\300\066\244\024\111\264\024"
|
||||
"\101\245\311\043\115\242\031\347\257\241\014\051\100\326\323\135"
|
||||
"\151\316\024\037\206\023\020\125\036\363\021\214\350\214\357\106"
|
||||
"\255\277\122\057\162\144\146\047\061\160\337\105\040\121\133\001"
|
||||
"\323\102\034\164\305\053\113\110\252\176\072\272\220\313\156\321"
|
||||
"\213\116\022\273\176\212\130\366\113\320\116\010\004\011\023\024"
|
||||
"\037\222\240\174\375\301\067\364\025\270\015\232\353\037\014\354"
|
||||
"\263\134\055\001\120\060\131\130\232\204\343\337\055\326\147\131"
|
||||
"\273\231\154\153\314\376\344\211\263\215\177\310\371\246\225\011"
|
||||
"\215\001\221\342\112\220\026\027\355\114\205\374\226\211\064\126"
|
||||
"\041\134\321\353\276\107\170\231\000\145\372\010\146\346\261\310"
|
||||
"\244\327\352\253\221\363\261\331\341\100\135\204\163\237\300\375"
|
||||
"\037\000\126\246\035\200\034\040\263\216\213\210\205\065\064\316"
|
||||
"\035\251\344\013\176\044\322\353\225\266\304\055\104\131\213\162"
|
||||
"\177\023\112\251\250\077\303\271\156\027\012\145\075\120\005\162"
|
||||
"\273\325\106\313\354\370\231\262\132\041\302\060\106\211\153\061"
|
||||
"\036\346\006\250\063\006\174\050\210\050\304\301\242\274\055\121"
|
||||
"\376\176\055\325\155\365\200\000\146\352\107\135\150\332\330\220"
|
||||
"\216\127\277\230\310\161\145\030\300\327\107\242\026\267\102\241"
|
||||
"\302\353\035\252\134\125\261\120\354\132\373\162\063\177\257\361"
|
||||
"\170\353\214\314\212\272\275\174\110\214\033\372\106\107\172\205"
|
||||
"\061\351\377\077\144\360\165\200\050\051\254\101\173\354\233\104"
|
||||
"\361\143\352\030\340\341\006\360\370\206\124\166\215\107\231\346"
|
||||
"\027\330\137\233\311\301\005\366\021\342\350\235\127\334\116\275"
|
||||
"\031\220\156\301\244\030\304\217\207\256\036\136\333\362\175\345"
|
||||
"\047\017\065\256\213\132\101\143\216\376\353\074\372\362\222\217"
|
||||
"\115\344\226\042\044\177\326\122\144\317\015\300\226\236\261\346"
|
||||
"\045\132\065\355\250\120\161\031\120\032\001\217\056\237\151\360"
|
||||
"\177\131\276\114\252\162\201\001\114\003\355\352\303\244\177\151"
|
||||
"\137\014\021\312\165\003\065\316\351\345\232\167\017\235\170\037"
|
||||
"\100\122\371\034\205\150\327\217\333\247\001\044\146\305\347\324"
|
||||
"\100\072\147\065\367\246\007\017\031\337\177\016\215\022\134\005"
|
||||
"\253\315\124\146\170\236\335\326\041\157\240\204\001\251\115\353"
|
||||
"\306\046\176\370\044\106\314\127\046\327\033\020\131\300\312\207"
|
||||
"\076\151\336\226\251\276\341\177\361\224\210\170\124\341\156\022"
|
||||
"\257\370\242\132\340\212\167\033\312\013\037\224\004\051\156\157"
|
||||
"\043\035\101\215\361\107\036\362\331\247\037\250\207\127\124\226"
|
||||
"\253\136\045\331\054\043\226\310\133\312\002\066\116\112\366\151"
|
||||
"\322\213\226\364\150\312\053\276\230\003\143\150\273\366\225\012"
|
||||
"\117\354\031\341\347\211\203\050\103\066\262\373\257\165\263\034"
|
||||
"\256\324\267\252\137\310\365\155\125\177\265\106\037\301\135\344"
|
||||
"\203\064\235\200\351\204\352\151\041\165\302\046\111\110\305\314"
|
||||
"\220\325\353\001\203\356\322\146\032\005\143\361\134\061\007\173"
|
||||
"\055\066\277\053\000\054\077\315\332\076\343\375\003\074\260\253"
|
||||
"\176\055\331\350\117\240\321\113\303\054\026\240\103\276\055\350"
|
||||
"\024\040\345\076\074\261\332\221\060\225\312\344\150\032\051\334"
|
||||
"\066\075\005\330\020\150\304\114\264\062\114\077\061\043\264\254"
|
||||
"\054\334\226\237\305\326\165\265\016\004\274\037\070\014\377\336"
|
||||
"\355\242\123\323\226\336\142\077\271\256\044\254\237\273\035\115"
|
||||
"\257\371\225\233\103\336\371\353\044\030\150\372\343\000\112\266"
|
||||
"\047\112\334\365\034\275\133\100\225\032\221\101\133\315\106\251"
|
||||
"\334\231\134\236\327\376\372\271\042\350\263\006\322\305\252\133"
|
||||
"\352\027\130\236\153\257\057\141\325\215\324\113\347\027\177\103"
|
||||
"\327\330\036\276\122\265\044\200\025\025\223\275\253\010\276\301"
|
||||
"\331\264\062\310\062\126\070\154\150\146\210\343\207\204\124\130"
|
||||
"\343\226\032\123\301\126\366\275\033\306\323\072\051\143\251\024"
|
||||
"\272\321\032\164\143\242\024\067\126\063\132\340\133\332\076\052"
|
||||
"\275\170\224\175\152\122\246\266\161\151\013\020\004\170\273\245"
|
||||
"\151\021\153\306\204\006\311\374\247\035\162\260\076\005\270\122"
|
||||
"\053\236\304\250\162\025\105\361\027\341\223\155\330\017\377\055"
|
||||
"\236\361\000\354\017\077\274\105\217\371\251\225\230\113\011\317"
|
||||
"\065\237\010\176\137\004\133\035\001\223\277\065\010\117\253\334"
|
||||
"\234\342\340\342\326\020\310\304\102\132\020\144\313\352\022\250"
|
||||
"\306\241\144\362\167\126\174\361\330\245\111\332\003\030\175\044"
|
||||
"\023\311\221\201\363\233\166\373\172\253\165\047\003\141\120\304"
|
||||
"\211\361\207\103\243\367\143\203\156"
|
||||
#define tst1_z 22
|
||||
#define tst1 ((&data[2230]))
|
||||
"\014\205\023\224\235\247\111\054\223\114\047\203\345\017\017\165"
|
||||
"\056\117\361\057\223\267\263\257"
|
||||
#define lsto_z 1
|
||||
#define lsto ((&data[2253]))
|
||||
"\001"
|
||||
#define pswd_z 256
|
||||
#define pswd ((&data[2274]))
|
||||
"\347\010\271\264\150\206\136\015\366\114\323\264\020\217\331\124"
|
||||
"\100\253\020\335\153\115\253\134\027\054\010\254\246\146\371\045"
|
||||
"\030\377\005\205\343\252\376\352\056\335\171\171\025\252\046\026"
|
||||
"\205\177\074\370\323\213\032\334\135\314\026\022\062\333\245\213"
|
||||
"\055\145\341\150\216\152\301\004\100\331\001\160\216\043\041\076"
|
||||
"\362\060\211\036\245\026\152\301\212\054\172\342\006\313\010\107"
|
||||
"\226\140\112\312\000\063\152\323\014\350\120\202\354\045\135\356"
|
||||
"\344\054\167\014\054\367\355\306\317\052\233\271\175\314\327\336"
|
||||
"\213\062\057\124\035\032\241\023\022\172\016\133\014\320\016\064"
|
||||
"\346\026\323\274\066\122\040\364\047\347\141\147\200\215\052\301"
|
||||
"\262\104\202\331\374\154\315\166\170\017\114\124\252\340\010\307"
|
||||
"\034\117\146\363\300\234\232\005\151\143\152\326\023\371\012\247"
|
||||
"\341\005\334\242\154\137\226\312\202\337\011\017\347\315\134\344"
|
||||
"\060\314\152\301\161\345\217\164\255\161\334\153\220\123\305\067"
|
||||
"\244\064\006\152\210\226\320\307\201\060\323\205\146\324\344\163"
|
||||
"\043\150\135\352\142\170\346\025\110\323\063\221\266\315\032\271"
|
||||
"\152\365\213\252\265\317\066\266\273\017\232\313\167\207\317\110"
|
||||
"\135\161\337\036\132\001\221\065\066\326\236\255\061\322\156\101"
|
||||
"\325\126\266\345\127\233\135\263\146\126\322\026\306\075\116\005"
|
||||
"\173\367\013\073\076\260\014\315\046\170\371\265\155\167\215\321"
|
||||
"\202\061\304\224\223\174\236\344\220\057\046\273\140\007\077\353"
|
||||
"\203\140\355\073"
|
||||
#define shll_z 8
|
||||
#define shll ((&data[2595]))
|
||||
"\353\337\372\041\022\264\303\351\006"
|
||||
#define date_z 1
|
||||
#define date ((&data[2603]))
|
||||
"\332"
|
||||
#define opts_z 1
|
||||
#define opts ((&data[2604]))
|
||||
"\371"
|
||||
#define rlax_z 1
|
||||
#define rlax ((&data[2605]))
|
||||
"\222"
|
||||
#define inlo_z 3
|
||||
#define inlo ((&data[2606]))
|
||||
"\037\174\041"
|
||||
#define tst2_z 19
|
||||
#define tst2 ((&data[2609]))
|
||||
"\030\170\107\235\170\073\371\345\000\376\025\161\056\245\327\250"
|
||||
"\340\122\041\153\054\353\204"/* End of data[] */;
|
||||
#define hide_z 4096
|
||||
#define DEBUGEXEC 0 /* Define as 1 to debug execvp calls */
|
||||
#define TRACEABLE 1 /* Define as 1 to enable ptrace the executable */
|
||||
|
||||
/* rtc.c */
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* 'Alleged RC4' */
|
||||
|
||||
static unsigned char stte[256], indx, jndx, kndx;
|
||||
|
||||
/*
|
||||
* Reset arc4 stte.
|
||||
*/
|
||||
void stte_0(void)
|
||||
{
|
||||
indx = jndx = kndx = 0;
|
||||
do {
|
||||
stte[indx] = indx;
|
||||
} while (++indx);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set key. Can be used more than once.
|
||||
*/
|
||||
void key(void * str, int len)
|
||||
{
|
||||
unsigned char tmp, * ptr = (unsigned char *)str;
|
||||
while (len > 0) {
|
||||
do {
|
||||
tmp = stte[indx];
|
||||
kndx += tmp;
|
||||
kndx += ptr[(int)indx % len];
|
||||
stte[indx] = stte[kndx];
|
||||
stte[kndx] = tmp;
|
||||
} while (++indx);
|
||||
ptr += 256;
|
||||
len -= 256;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Crypt data.
|
||||
*/
|
||||
void arc4(void * str, int len)
|
||||
{
|
||||
unsigned char tmp, * ptr = (unsigned char *)str;
|
||||
while (len > 0) {
|
||||
indx++;
|
||||
tmp = stte[indx];
|
||||
jndx += tmp;
|
||||
stte[indx] = stte[jndx];
|
||||
stte[jndx] = tmp;
|
||||
tmp += stte[indx];
|
||||
*ptr ^= stte[tmp];
|
||||
ptr++;
|
||||
len--;
|
||||
}
|
||||
}
|
||||
|
||||
/* End of ARC4 */
|
||||
|
||||
/*
|
||||
* Key with file invariants.
|
||||
*/
|
||||
int key_with_file(char * file)
|
||||
{
|
||||
struct stat statf[1];
|
||||
struct stat control[1];
|
||||
|
||||
if (stat(file, statf) < 0)
|
||||
return -1;
|
||||
|
||||
/* Turn on stable fields */
|
||||
memset(control, 0, sizeof(control));
|
||||
control->st_ino = statf->st_ino;
|
||||
control->st_dev = statf->st_dev;
|
||||
control->st_rdev = statf->st_rdev;
|
||||
control->st_uid = statf->st_uid;
|
||||
control->st_gid = statf->st_gid;
|
||||
control->st_size = statf->st_size;
|
||||
control->st_mtime = statf->st_mtime;
|
||||
control->st_ctime = statf->st_ctime;
|
||||
key(control, sizeof(control));
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if DEBUGEXEC
|
||||
void debugexec(char * sh11, int argc, char ** argv)
|
||||
{
|
||||
int i;
|
||||
fprintf(stderr, "shll=%s\n", sh11 ? sh11 : "<null>");
|
||||
fprintf(stderr, "argc=%d\n", argc);
|
||||
if (!argv) {
|
||||
fprintf(stderr, "argv=<null>\n");
|
||||
} else {
|
||||
for (i = 0; i <= argc ; i++)
|
||||
fprintf(stderr, "argv[%d]=%.60s\n", i, argv[i] ? argv[i] : "<null>");
|
||||
}
|
||||
}
|
||||
#endif /* DEBUGEXEC */
|
||||
|
||||
void rmarg(char ** argv, char * arg)
|
||||
{
|
||||
for (; argv && *argv && *argv != arg; argv++);
|
||||
for (; argv && *argv; argv++)
|
||||
*argv = argv[1];
|
||||
}
|
||||
|
||||
int chkenv(int argc)
|
||||
{
|
||||
char buff[512];
|
||||
unsigned long mask, m;
|
||||
int l, a, c;
|
||||
char * string;
|
||||
extern char ** environ;
|
||||
|
||||
mask = (unsigned long)&chkenv;
|
||||
mask ^= (unsigned long)getpid() * ~mask;
|
||||
sprintf(buff, "x%lx", mask);
|
||||
string = getenv(buff);
|
||||
#if DEBUGEXEC
|
||||
fprintf(stderr, "getenv(%s)=%s\n", buff, string ? string : "<null>");
|
||||
#endif
|
||||
l = strlen(buff);
|
||||
if (!string) {
|
||||
/* 1st */
|
||||
sprintf(&buff[l], "=%lu %d", mask, argc);
|
||||
putenv(strdup(buff));
|
||||
return 0;
|
||||
}
|
||||
c = sscanf(string, "%lu %d%c", &m, &a, buff);
|
||||
if (c == 2 && m == mask) {
|
||||
/* 3rd */
|
||||
rmarg(environ, &string[-l - 1]);
|
||||
return 1 + (argc - a);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if !TRACEABLE
|
||||
|
||||
#define _LINUX_SOURCE_COMPAT
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if !defined(PTRACE_ATTACH) && defined(PT_ATTACH)
|
||||
# define PTRACE_ATTACH PT_ATTACH
|
||||
#endif
|
||||
void untraceable(char * argv0)
|
||||
{
|
||||
char proc[80];
|
||||
int pid, mine;
|
||||
|
||||
switch(pid = fork()) {
|
||||
case 0:
|
||||
pid = getppid();
|
||||
/* For problematic SunOS ptrace */
|
||||
#if defined(__FreeBSD__)
|
||||
sprintf(proc, "/proc/%d/mem", (int)pid);
|
||||
#else
|
||||
sprintf(proc, "/proc/%d/as", (int)pid);
|
||||
#endif
|
||||
close(0);
|
||||
mine = !open(proc, O_RDWR|O_EXCL);
|
||||
if (!mine && errno != EBUSY)
|
||||
mine = !ptrace(PTRACE_ATTACH, pid, 0, 0);
|
||||
if (mine) {
|
||||
kill(pid, SIGCONT);
|
||||
} else {
|
||||
perror(argv0);
|
||||
kill(pid, SIGKILL);
|
||||
}
|
||||
_exit(mine);
|
||||
case -1:
|
||||
break;
|
||||
default:
|
||||
if (pid == waitpid(pid, 0, 0))
|
||||
return;
|
||||
}
|
||||
perror(argv0);
|
||||
_exit(1);
|
||||
}
|
||||
#endif /* !TRACEABLE */
|
||||
|
||||
char * xsh(int argc, char ** argv)
|
||||
{
|
||||
char * scrpt;
|
||||
int ret, i, j;
|
||||
char ** varg;
|
||||
char * me = argv[0];
|
||||
|
||||
stte_0();
|
||||
key(pswd, pswd_z);
|
||||
arc4(msg1, msg1_z);
|
||||
arc4(date, date_z);
|
||||
if (date[0] && (atoll(date)<time(NULL)))
|
||||
return msg1;
|
||||
arc4(shll, shll_z);
|
||||
arc4(inlo, inlo_z);
|
||||
arc4(xecc, xecc_z);
|
||||
arc4(lsto, lsto_z);
|
||||
arc4(tst1, tst1_z);
|
||||
key(tst1, tst1_z);
|
||||
arc4(chk1, chk1_z);
|
||||
if ((chk1_z != tst1_z) || memcmp(tst1, chk1, tst1_z))
|
||||
return tst1;
|
||||
ret = chkenv(argc);
|
||||
arc4(msg2, msg2_z);
|
||||
if (ret < 0)
|
||||
return msg2;
|
||||
varg = (char **)calloc(argc + 10, sizeof(char *));
|
||||
if (!varg)
|
||||
return 0;
|
||||
if (ret) {
|
||||
arc4(rlax, rlax_z);
|
||||
if (!rlax[0] && key_with_file(shll))
|
||||
return shll;
|
||||
arc4(opts, opts_z);
|
||||
arc4(text, text_z);
|
||||
arc4(tst2, tst2_z);
|
||||
key(tst2, tst2_z);
|
||||
arc4(chk2, chk2_z);
|
||||
if ((chk2_z != tst2_z) || memcmp(tst2, chk2, tst2_z))
|
||||
return tst2;
|
||||
/* Prepend hide_z spaces to script text to hide it. */
|
||||
scrpt = malloc(hide_z + text_z);
|
||||
if (!scrpt)
|
||||
return 0;
|
||||
memset(scrpt, (int) ' ', hide_z);
|
||||
memcpy(&scrpt[hide_z], text, text_z);
|
||||
} else { /* Reexecute */
|
||||
if (*xecc) {
|
||||
scrpt = malloc(512);
|
||||
if (!scrpt)
|
||||
return 0;
|
||||
sprintf(scrpt, xecc, me);
|
||||
} else {
|
||||
scrpt = me;
|
||||
}
|
||||
}
|
||||
j = 0;
|
||||
varg[j++] = argv[0]; /* My own name at execution */
|
||||
if (ret && *opts)
|
||||
varg[j++] = opts; /* Options on 1st line of code */
|
||||
if (*inlo)
|
||||
varg[j++] = inlo; /* Option introducing inline code */
|
||||
varg[j++] = scrpt; /* The script itself */
|
||||
if (*lsto)
|
||||
varg[j++] = lsto; /* Option meaning last option */
|
||||
i = (ret > 1) ? ret : 0; /* Args numbering correction */
|
||||
while (i < argc)
|
||||
varg[j++] = argv[i++]; /* Main run-time arguments */
|
||||
varg[j] = 0; /* NULL terminated array */
|
||||
#if DEBUGEXEC
|
||||
debugexec(shll, j, varg);
|
||||
#endif
|
||||
execvp(shll, varg);
|
||||
return shll;
|
||||
}
|
||||
|
||||
int main(int argc, char ** argv)
|
||||
{
|
||||
#if DEBUGEXEC
|
||||
debugexec("main", argc, argv);
|
||||
#endif
|
||||
#if !TRACEABLE
|
||||
untraceable(argv[0]);
|
||||
#endif
|
||||
argv[1] = xsh(argc, argv);
|
||||
fprintf(stderr, "%s%s%s: %s\n", argv[0],
|
||||
errno ? ": " : "",
|
||||
errno ? strerror(errno) : "",
|
||||
argv[1] ? argv[1] : "<null>"
|
||||
);
|
||||
return 1;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
./shc -v -r -T -f ./ConfigValidator.sh
|
||||
Sleep 1
|
||||
rm -rf ./ConfigValidator/ConfigValidator.c
|
||||
cp -rp ./ConfigValidator.sh.x.c ./ConfigValidator/ConfigValidator.c
|
||||
rm -rf ./ConfigValidator.sh.x
|
||||
rm -rf ./ConfigValidator.sh.x.c
|
@ -1,28 +0,0 @@
|
||||
|
||||
XCODE_VERSION_GE_4 := $(shell expr `xcodebuild -version | sed -nE 's/^Xcode ([0-9]+).*/\1/p'` \>= 4)
|
||||
XCODE_VERSION_GE_10 := $(shell expr `xcodebuild -version | sed -nE 's/^Xcode ([0-9]+).*/\1/p'` \>= 10)
|
||||
|
||||
XCODEBUILD_OPTIONS=-project 'ConfigValidator.xcodeproj' CONFIGURATION_BUILD_DIR=$(CURDIR)/build DEPLOYMENT_LOCATION=NO
|
||||
|
||||
ifeq "$(XCODE_VERSION_GE_10)" "1"
|
||||
XCODEBUILD_OPTIONS += ARCHS=x86_64 VALID_ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES
|
||||
endif
|
||||
|
||||
ifeq "$(XCODE_VERSION_GE_4)" "1"
|
||||
XCODEBUILD_OPTIONS += -scheme 'ConfigValidator'
|
||||
# BUILD_ACTION=running
|
||||
else
|
||||
XCODEBUILD_OPTIONS += -configuration 'Release'
|
||||
endif
|
||||
|
||||
ConfigValidator:
|
||||
@echo "Building ConfigValidator..."
|
||||
@echo "ConfigValidator uses release of User choice"
|
||||
@$/chmod 755 CreateBuild.sh
|
||||
@$/chmod 755 ConfigValidator.sh
|
||||
@$/chmod 755 shc
|
||||
@$(CURDIR)/CreateBuild.sh
|
||||
@/usr/bin/xcodebuild $(XCODEBUILD_OPTIONS) $(BUILD_ACTION) >/dev/null
|
||||
@echo [XCODE] $(PROGRAMS)
|
||||
|
||||
.PHONY: ConfigValidator clean
|
Binary file not shown.
@ -1141,6 +1141,9 @@ void AboutRefit(void)
|
||||
AboutMenu.AddMenuInfo_f(" stinga11, TheRacerMaster, solstice, SoThOr, DF");
|
||||
AboutMenu.AddMenuInfo_f(" cecekpawon, Micky1979, Needy, joevt, ErmaC, vit9696");
|
||||
AboutMenu.AddMenuInfo_f(" ath, savvas, syscl, goodwin_c, clovy, jief_machak");
|
||||
AboutMenu.AddMenuInfo_f(" chris1111, vector_sigma, LAbyOne, Florin9doi");
|
||||
AboutMenu.AddMenuInfo_f("Package credits:");
|
||||
AboutMenu.AddMenuInfo_f(" Chameleon team, crazybirdy, JrCs, chris1111");
|
||||
AboutMenu.AddMenuInfo_f("Credits also:");
|
||||
AboutMenu.AddMenuInfo_f(" projectosx.com, applelife.ru, insanelymac.com");
|
||||
AboutMenu.AddMenuInfo_f(" ");
|
||||
|
Loading…
Reference in New Issue
Block a user