http://www.h4ck.org.cn/2016/12/theos-dpkg-deb-error-obsolete-compression-type-lzma-use-xz-instead/
http://www.iosre.com/t/theos-make-install/6706/14
ldid brew
brew ldid
brew install dpkg ldid
$ brew install ldid
$ vim ~/.bash_profile .bash_profie 2
.bash_profiel $ source ~/.bash_profile
theos $THEOS ~/theos
$ git clone --recursive https://github.com/theos/theos.git $THEOS
tweak
$ /usr/bin/ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
export THEOS=~/theos
export PATH=$THEOS/bin:$PATH
cd
$ cd ~/Desktop
$ nic.pl
[11.] iphone/tweak
Project Name
Package Name ID
Author/Maintainer Name
Mac
[iphone/tweak] MobileSubstrate Bundle filter
APP Bundle Identifier FM com.gemd.iting
Cycript APP Bundle Identifier
[iphone/tweak] List of applications to terminate upon installation
Project Name (required): ting_tweak
Package Name [com.yourcompany.ting_tweak]: com.mj.ting
Author/Maintainer Name [MJ Lee]:
[iphone/tweak] MobileSubstrate Bundle filter [com.apple.springboard]:
com.gemd.iting
[iphone/tweak] List of applications to terminate upon installation (space-
separated, '-' for none) [SpringBoard]:
Instantiating iphone/tweak in ting_tweak/...
Done.
Makefile IP
THEOS_DEVICE_IP THEOS_DEVICE_PORT
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = ting_tweak
ting_tweak_FILES = Tweak.xm
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
install.exec "killall -9 SpringBoard"
Makefile IP $ source ~/.bash_profile
$ vim ~/.bash_profile
export THEOS=~/theos
export PATH=$THEOS/bin:$PATH
export THEOS_DEVICE_IP=127.0.0.1
export THEOS_DEVICE_PORT=10010
$ source ~/.bash_profile
Tweak.xm
%hook XMAdAnimationView
- (id)initWithImageUrl:(id)arg1 title:(id)arg2 iconType:(long long)arg3
jumpType:(long long)arg4
{
return nil; }
%end
%hook XMSoundPatchPosterView - (id)initWithFrame:(struct CGRect)arg1
{
return nil; }
%end
make
deb
make package
SpringBoard make install
1 - make package
$ make package
Can't locate IO/Compress/Lzma.pm in @INC (you may need to install the
IO::Compress::Lzma module) (@INC contains: /Library/Perl/5.18/darwin-
thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-
thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2
/System/Library/Perl/5.18/darwin-thread-multi-2level
/System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-
multi-2level /System/Library/Perl/Extras/5.18 .) at
/Users/mj/theos/bin/dm.pl line 12.
BEGIN failed--compilation aborted at /Users/mj/theos/bin/dm.pl line 12.
make: *** [internal-package] Error 2
gzip dm.pl #
deb.mk 6 gzip
2 - make
xcode Xcode Xcode
$ vim $THEOS/vendor/dm.pl/dm.pl
use IO::Compress::Lzma;
use IO::Compress::Xz;
$ vim $THEOS/makefiles/package/deb.mk
_THEOS_PLATFORM_DPKG_DEB_COMPRESSION ?= gzip
$ make
Error: You do not have an SDK in
/Library/Developer/CommandLineTools/Platforms/iPhoneOS.platform/Developer/S
DKs
$ sudo xcode-select --switch
/Applications/Xcode.app/Contents/Developer/
$ make
Making all for tweak xxx...
make[2]: Nothing to be done for `internal-library-compile'.
clean
$ make clean
$ make
“ ” 2
theos
https://github.com/theos/theos/wiki/Structure http://iphonedevwiki.net/index.php/Theos Logos http://iphonedevwiki.net/index.php/Logos
%hook %end hook %log
Xcode -> Window -> Devices and Simulators
HBDebugLog NSLog
%new
%c(className) Class %c(NSObject) NSStringFromClass() objc_getClass()
%orig %ctor
%dtor
logify.pl xm
logify.pl xx.h > xx.xm
layout / theos-tweak
Tweak
$ make Tweak *.dylib
$ make package dylib deb
$ make install deb Cydia deb /Library/MobileSubstrate/DynamicLibraries
*.dylib Tweak *.plist hook APP ID
APP
Cydia Substrate Cydia APP dylib
APP dylib theos tweak APP
APP tweak tweak .app
tweak tweak APP
APP tweak tweak APP
tweak
Swift\C tweak OC
tweak
C++\C#
logify.pl
logify.pl xm __weak
inout
@protocol XXTestDelegate;
- (void).cxx_destruct { %log; %orig; }
HBLogDebug(@" = 0x%x", (unsigned int)r); HBLogDebug(@" = 0x%@", r); void XXPerson * void *
@class XXPerson;