return [(NSMutableDictionary *) copy autorelease];
}
+int main_copy();
+int main_file();
+int main_gpgv();
+int main_rred(int, char *argv[]);
+
+int main_gzip(int, char *argv[]);
+
int main_store(int, char *argv[]);
+int main_http();
+
int main(int argc, char *argv[]) {
-#ifdef __arm64__
const char *argv0(argv[0]);
if (const char *slash = strrchr(argv0, '/'))
argv0 = slash + 1;
if (false);
+ else if (!strcmp(argv0, "copy"))
+ return main_copy();
+ else if (!strcmp(argv0, "file"))
+ return main_file();
+ else if (!strcmp(argv0, "gpgv"))
+ return main_gpgv();
+ else if (!strcmp(argv0, "rred"))
+ return main_rred(argc, argv);
+#ifdef __arm__
+ else if (!strcmp(argv0, "bzip2"))
+ return main_gzip(argc, argv);
+ else if (!strcmp(argv0, "gzip"))
+ return main_gzip(argc, argv);
+ else if (!strcmp(argv0, "lzma"))
+ return main_gzip(argc, argv);
+#endif
+#ifdef __arm64__
else if (!strcmp(argv0, "store"))
return main_store(argc, argv);
#endif
+ else if (!strcmp(argv0, "http"))
+ return main_http();
+ else if (!strcmp(argv0, "https"))
+ return main_http();
+ else {}
int fd(open("/tmp/cydia.log", O_WRONLY | O_APPEND | O_CREAT, 0644));
dup2(fd, 2);
_config->Set("Acquire::AllowInsecureRepositories", true);
_config->Set("Acquire::Check-Valid-Until", false);
- _config->Set("Dir::Bin::Methods::store", "/Applications/Cydia.app/store");
+
+ _config->Set("Dir::Bin::Methods", "/Applications/Cydia.app");
_config->Set("pkgCacheGen::ForceEssential", "");
--- /dev/null
+/* iPhone Open SDK - Free Open Source Anti-Apple SDK
+ * Copyright (C) 2008 Jay Freeman (saurik)
+*/
+
+/*
+ * Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation
+ * and/or other materials provided with the
+ * distribution.
+ * 3. The name of the author may not be used to endorse
+ * or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef LOCKDOWN_LOCKDOWN_H
+#define LOCKDOWN_LOCKDOWN_H
+
+#include <CoreFoundation/CFString.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern CFStringRef kLDErrorMissingKey;
+
+extern CFStringRef kLockdownActivationInfoCompleteKey;
+extern CFStringRef kLockdownActivationInfoErrorsKey;
+extern CFStringRef kLockdownActivationInfoKey;
+extern CFStringRef kLockdownActivationRandomnessKey;
+extern CFStringRef kLockdownActivationStateAcknowledgedKey;
+extern CFStringRef kLockdownActivationStateKey;
+extern CFStringRef kLockdownActivationTicketKey;
+extern CFStringRef kLockdownAmountCameraAvailableKey;
+extern CFStringRef kLockdownAmountCameraReservedKey;
+extern CFStringRef kLockdownAmountDataAvailableKey;
+extern CFStringRef kLockdownAmountDataReservedKey;
+extern CFStringRef kLockdownAmountSongsReservedKey;
+extern CFStringRef kLockdownBasebandBootloaderVersionKey;
+extern CFStringRef kLockdownBasebandMasterKeyHashKey;
+extern CFStringRef kLockdownBasebandThumbprintKey;
+extern CFStringRef kLockdownBasebandVersionKey;
+extern CFStringRef kLockdownBluetoothAddressKey;
+extern CFStringRef kLockdownBrickStateKey;
+extern CFStringRef kLockdownBuildVersionKey;
+extern CFStringRef kLockdownCalendarUsageKey;
+extern CFStringRef kLockdownCameraUsageKey;
+extern CFStringRef kLockdownCaptureSyslogKey;
+extern CFStringRef kLockdownCarrierBundleInfoKey;
+extern CFStringRef kLockdownCheckpointDomainKey;
+extern CFStringRef kLockdownColorSyncProfileKey;
+extern CFStringRef kLockdownDBVersionKey;
+extern CFStringRef kLockdownDataSyncDomainKey;
+extern CFStringRef kLockdownDebugDockPresentKey;
+extern CFStringRef kLockdownDebugDomainKey;
+extern CFStringRef kLockdownDeviceCertificateKey;
+extern CFStringRef kLockdownDeviceClassKey;
+extern CFStringRef kLockdownDeviceNameKey;
+extern CFStringRef kLockdownDevicePrivateKey;
+extern CFStringRef kLockdownDevicePublicKey;
+extern CFStringRef kLockdownDiskUsageDomainKey;
+extern CFStringRef kLockdownEnable8021XLogsKey;
+extern CFStringRef kLockdownEnableVPNLogsKey;
+extern CFStringRef kLockdownFairPlayCertificateKey;
+extern CFStringRef kLockdownFairPlayContextIDKey;
+extern CFStringRef kLockdownFairPlayDomainKey;
+extern CFStringRef kLockdownFairPlayGUIDKey;
+extern CFStringRef kLockdownFairPlayIDKey;
+extern CFStringRef kLockdownFairPlayKeyDataKey;
+extern CFStringRef kLockdownFamilyIDKey;
+extern CFStringRef kLockdownFirmwareVersionKey;
+extern CFStringRef kLockdownHostAttachedKey;
+extern CFStringRef kLockdownICCIDKey;
+extern CFStringRef kLockdownIMEIKey;
+extern CFStringRef kLockdownIMSIKey;
+extern CFStringRef kLockdownInternalDomainKey;
+extern CFStringRef kLockdownInternationalDomainKey;
+extern CFStringRef kLockdownInverseDeviceIDKey;
+extern CFStringRef kLockdownIsInternalKey;
+extern CFStringRef kLockdownKeyboardKey;
+extern CFStringRef kLockdownLanguageKey;
+extern CFStringRef kLockdownLocaleKey;
+extern CFStringRef kLockdownLogToDiskKey;
+extern CFStringRef kLockdownMediaCacheUsageKey;
+extern CFStringRef kLockdownMinimumiTunesVersionKey;
+extern CFStringRef kLockdownMobileApplicationUsageKey;
+extern CFStringRef kLockdownModelNumberKey;
+extern CFStringRef kLockdownNANDInfoKey;
+extern CFStringRef kLockdownNotesUsageKey;
+extern CFStringRef kLockdownPasswordProtectedKey;
+extern CFStringRef kLockdownPhoneNumberKey;
+extern CFStringRef kLockdownPhotoUsageKey;
+extern CFStringRef kLockdownProductTypeKey;
+extern CFStringRef kLockdownProductVersionKey;
+extern CFStringRef kLockdownProhibitAppInstallKey;
+extern CFStringRef kLockdownProposedTicketKey;
+extern CFStringRef kLockdownProtocolVersionKey;
+extern CFStringRef kLockdownRegionInfoKey;
+extern CFStringRef kLockdownReleaseTypeKey;
+extern CFStringRef kLockdownRentalBagRequestKey;
+extern CFStringRef kLockdownRentalBagRequestVersionKey;
+extern CFStringRef kLockdownRentalBagResponseKey;
+extern CFStringRef kLockdownRentalCheckinAckRequestKey;
+extern CFStringRef kLockdownRentalCheckinAckResponseKey;
+extern CFStringRef kLockdownReservedBytesKey;
+extern CFStringRef kLockdownRestrictionDomainKey;
+extern CFStringRef kLockdownSIMGID1Key;
+extern CFStringRef kLockdownSIMGID2Key;
+extern CFStringRef kLockdownSIMStatusKey;
+extern CFStringRef kLockdownSerialNumberKey;
+extern CFStringRef kLockdownSomebodySetTimeZoneKey;
+extern CFStringRef kLockdownSupportedKeyboardsKey;
+extern CFStringRef kLockdownSupportedLanguagesKey;
+extern CFStringRef kLockdownSupportedLocalesKey;
+extern CFStringRef kLockdownSupportsCarrierBundleInstallKey;
+extern CFStringRef kLockdownSyncDataClassDomainKey;
+extern CFStringRef kLockdownTimeIntervalSince1970Key;
+extern CFStringRef kLockdownTimeZoneKey;
+extern CFStringRef kLockdownTimeZoneOffsetFromUTCKey;
+extern CFStringRef kLockdownTotalDataAvailableKey;
+extern CFStringRef kLockdownTotalDataCapacityKey;
+extern CFStringRef kLockdownTotalDiskCapacityKey;
+extern CFStringRef kLockdownTotalSystemAvailableKey;
+extern CFStringRef kLockdownTotalSystemCapacityKey;
+extern CFStringRef kLockdownTrustedHostAttachedKey;
+extern CFStringRef kLockdownUniqueDeviceIDKey;
+extern CFStringRef kLockdownUnlockCodeKey;
+extern CFStringRef kLockdownUserPreferencesDomainKey;
+extern CFStringRef kLockdownUserSetLanguageKey;
+extern CFStringRef kLockdownUserSetLocaleKey;
+extern CFStringRef kLockdownUses24HourClockKey;
+extern CFStringRef kLockdownVoicemailUsageKey;
+extern CFStringRef kLockdownVoidWarrantyKey;
+extern CFStringRef kLockdownWifiAddressKey;
+extern CFStringRef kLockdownWildcardTicketKey;
+extern CFStringRef kLockdowniTunesHasConnectedKey;
+
+extern void *lockdown_connect(void);
+extern CFStringRef lockdown_copy_value(void *lockdown, void *null, CFStringRef key);
+extern void lockdown_disconnect(void *lockdown);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif/*LOCKDOWN_LOCKDOWN_H*/
link += -Wl,-dead_strip
link += -Wl,-no_dead_strip_inits_and_terms
-flag += -Xarch_armv6 -Iapt32
-flag += -Xarch_armv6 -Iapt32-contrib
-flag += -Xarch_armv6 -Iapt32-deb
-flag += -Xarch_armv6 -Iapt-extra
-flag += -Xarch_armv6 -IObjects/apt32
-
-flag += -Xarch_arm64 -Iapt64
-flag += -Xarch_arm64 -Iapt64-contrib
-flag += -Xarch_arm64 -Iapt64-deb
-flag += -Xarch_arm64 -Iapt-extra
-flag += -Xarch_arm64 -IObjects/apt64
+iapt :=
+iapt += -Iapt32
+iapt += -Iapt32-contrib
+iapt += -Iapt32-deb
+iapt += -Iapt-extra
+iapt += -IObjects/apt32
+
+flag += $(patsubst %,-Xarch_armv6 %,$(iapt))
+flag += $(patsubst %,-Xarch_arm64 %,$(subst apt32,apt64,$(iapt)))
flag += -I.
flag += -isystem sysroot/usr/include
libs += -framework WebCore
libs += -framework WebKit
+libs += -framework CFNetwork
+libs += -llockdown
+
libs += -Xarch_armv6 -Wl,-force_load,Objects/libapt32.a
libs += -Xarch_arm64 -Wl,-force_load,Objects/libapt64.a
code := $(filter-out SDURLCache/SDURLCacheTests.m,$(code))
code += MobileCydia.mm Version.mm iPhonePrivate.h Cytore.hpp lookup3.c Sources.h Sources.mm DiskUsage.cpp
+code += gpgv.cc
+code += http.cc
+
source := $(filter %.m,$(code)) $(filter %.mm,$(code))
-source += $(filter %.c,$(code)) $(filter %.cpp,$(code))
-header := $(filter %.h,$(code)) $(filter %.hpp,$(code))
+source += $(filter %.c,$(code)) $(filter %.cpp,$(code)) $(filter %.cc,$(code))
+header := $(filter %.h,$(code)) $(filter %.hpp,$(code)) $(filter %.hh,$(code))
object := $(source)
object := $(object:.c=.o)
object := $(object:.cpp=.o)
+object := $(object:.cc=.o)
object := $(object:.m=.o)
object := $(object:.mm=.o)
object := $(object:%=Objects/%)
+methods := copy file rred
+
libapt32 :=
libapt32 += $(wildcard apt32/apt-pkg/*.cc)
libapt32 += $(wildcard apt32/apt-pkg/deb/*.cc)
libapt32 += $(wildcard apt32/apt-pkg/contrib/*.cc)
+libapt32 += apt32/methods/gzip.cc
+libapt32 += $(patsubst %,apt32/methods/%.cc,$(methods))
libapt32 := $(patsubst %.cc,Objects/%.o,$(libapt32))
libapt64 :=
libapt64 += $(wildcard apt64/apt-pkg/contrib/*.cc)
libapt64 += apt64/apt-pkg/tagfile-keys.cc
libapt64 += apt64/methods/store.cc
+libapt64 += $(patsubst %,apt64/methods/%.cc,$(methods))
libapt64 := $(filter-out %/srvrec.cc,$(libapt64))
libapt64 := $(patsubst %.cc,Objects/%.o,$(libapt64))
flag64 += -Xarch_arm64 -miphoneos-version-min=7.0
apt32 := $(cycc) $(flag32) $(flag)
-apt32 += -include apt.h
apt32 += -Wno-deprecated-register
apt32 += -Wno-format-security
apt32 += -Wno-tautological-compare
apt32 += -Wno-uninitialized
apt32 += -Wno-unused-private-field
apt32 += -Wno-unused-variable
-apt32 += -D'VERSION="0.7.25.3"'
apt64 := $(cycc) $(flag64) $(flag)
apt64 += -include apt.h
apt64 += -Wno-unused-private-field
apt64 += -Wno-unused-variable
+eapt := -include apt.h
+apt64 += $(eapt)
+eapt += -D'VERSION="0.7.25.3"'
+apt32 += $(eapt)
+eapt += -Wno-format
+eapt += -Wno-logical-op-parentheses
+iapt += $(eapt)
+
cycc += $(flag32)
cycc += $(flag64)
../apt64/apt-pkg/tagfile-keys.list
sed -i -e 's@typedef char static_assert64@//\\0@' $@
+Objects/%.o: %.cc $(header)
+ @mkdir -p $(dir $@)
+ @echo "[cycc] $<"
+ @$(cycc) $(plus) -c -o $@ $< $(flag) -Wno-format -include apt.h -Dmain=main_$(basename $(notdir $@))
+
Objects/apt32/%.o: apt32/%.cc $(header) apt.h apt-extra/*.h
@mkdir -p $(dir $@)
@echo "[cycc] $<"
cp -a MobileCydia.app _/Applications/Cydia.app
rm -rf _/Applications/Cydia.app/*.lproj
cp -a MobileCydia _/Applications/Cydia.app/Cydia
- ln -s Cydia _/Applications/Cydia.app/store
+
+ for meth in bzip2 gzip lzma gpgv http https store $(methods); do ln -s Cydia _/Applications/Cydia.app/"$${meth}"; done
cd MobileCydia.app && find . -name '*.png' -exec cp -af ../Images/MobileCydia.app/{} ../_/Applications/Cydia.app/{} ';'