theos笔记

   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;

你可能感兴趣的:(theos笔记)