平头哥的核心代码

Related tags

Testing ratel-core
Overview

#平头哥项目

构建

仅仅支持linux或者mac,不支持windows,因为本项目的构建不是使用AndroidStudio的gradle脚本,而是使用shell脚本

生产构建:

./script/create-dist.sh

debug环境

./script/build_ratel_repkg.sh xxx.apk

单步调试

将命令行参数放到container-builder-repkg/src/main/java/com/virjar/ratel/builder/ratelentry/Main.java,然后单步调试main函数的执行流程即可

You might also like...
Comments
  • repkg failure  重打包失败

    repkg failure 重打包失败

    step1: download the project from github step2: ./script/create-dist.sh step3: ./script/build_ratel_manager.sh step4: repkg my apk:

    $ ./script/dist/ratel.sh app-debug.apk use /Users/yueyueniao/android-safe/ratel-core-master/script/dist/res/container-builder-repkg-2.0.0-SNAPSHOT.jar assemble new apk for app-debug.apk build with default certificate ratel build param: -s -w /Users/yueyueniao/.ratel-working-repkg -c /Users/yueyueniao/android-safe/ratel-core-master/script/dist/res/monthly_temp.txt app-debug.apk use ratel engine: rebuildDex build serialNo: ratel_85576517-0fcc-4218-9255-504a9bcd1239 work dir: /Users/yueyueniao/.ratel-working-repkg apk info [packageName:com.example.helloworld,appEntryClass: com.example.helloworld.MainActivity] warning: can not find class: android.app.AppComponentFactory handle inject for class: androidx.core.app.CoreComponentFactory Exception in thread "main" java.lang.AssertionError at external.com.android.dex.Dex$Section.writeStringData(Dex.java:723) at external.com.android.dx.merge.DexMerger$1.write(DexMerger.java:1433) at external.com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:298) at external.com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:1435) at external.com.android.dx.merge.DexMerger.merge(DexMerger.java:215) at com.virjar.ratel.builder.injector.CodeInjectorV2.doInject$187f0e2e(CodeInjectorV2.java:111) at com.virjar.ratel.builder.mode.RatelPackageBuilderRepackage.handleTask$16585ff8(RatelPackageBuilderRepackage.java:56) at com.virjar.ratel.builder.ratelentry.Main.ratelMain(Main.java:7174) at com.virjar.ratel.builder.ratelentry.Main.main(Main.java:67) assemble ratel apk failed

    定位问题: container-builder-repkg-2.0.0-SNAPSHOT.jar 生成的jar包好像有问题,不知道什么原因

    opened by yueyueZhu 4
  • vm 虚拟机执行 ./script/create-dist.sh 找不到java类

    vm 虚拟机执行 ./script/create-dist.sh 找不到java类

    BUILD SUCCESSFUL in 1m 52s 135 actionable tasks: 120 executed, 15 up-to-date replace BuildEnv.class

    input and output

    -libraryjars /usr/lib/jvm/java-9-openjdk-amd64/jmods/java.base.jmod(!**.jar;!module-info.class) -injars /tmp/rdp-tmp16539001164654877404.jar -outjars /tmp/builder-opt2662734108458548883.jar -printmapping /tmp/builder-proguard.map

    builder 的优化规则

    -keepattributes *

    貌似大小写会出问题,导致文件名大写,对应class小写

    -dontusemixedcaseclassnames

    ratel 框架入口class

    -keep class com.virjar.ratel.rdp.RDPBuilder { public static void main(java.lang.String[]); }

    -keep class org.jf.dexlib2.Opcode{*;}

    -keep class com.android.apksig.internal.**{*;}

    -dontwarn -dontnote -ignorewarnings

    开源环境,我们不做混淆

    -dontobfuscate

    execute cmd: java -jar /tmp/proguard10857178538044957529.jar @/tmp/proguard11340759816485037197.pro ProGuard, version undefined replace BuildEnv.class

    input and output

    -libraryjars /usr/lib/jvm/java-9-openjdk-amd64/jmods/java.base.jmod(!**.jar;!module-info.class) -injars /tmp/builder-dex11647356933490416329.jar -outjars /tmp/builder-opt16152504066025136237.jar -printmapping /tmp/builder-proguard.map

    builder 的优化规则

    -keepattributes *

    貌似大小写会出问题,导致文件名大写,对应class小写

    -dontusemixedcaseclassnames

    ratel 框架入口class

    -keep class com.virjar.ratel.builder.ratelentry.Main { public static void main(java.lang.String[]); }

    -keep class org.jf.dexlib2.Opcode{*;}

    -keep class com.android.apksig.internal.**{*;}

    -dontwarn -dontnote -ignorewarnings

    开源环境,我们不做混淆

    -dontobfuscate

    execute cmd: java -jar /tmp/proguard3626104743551435615.jar @/tmp/proguard18420058970009211339.pro ProGuard, version undefined Warning in /tmp/builder-dex11647356933490416329.jar:com/android/apksig/internal/util/X509CertificateUtils.class: Type java.util.Base64 was not found, it is required for default or static interface methods desugaring of java.nio.ByteBuffer com.android.apksig.internal.util.X509CertificateUtils.getNextDEREncodedCertificateBlock(java.nio.ByteBuffer) Warning in /tmp/builder-dex11647356933490416329.jar:com/virjar/ratel/builder/ratelentry/HelperZipAndSign.class: Type java.nio.file.Files was not found, it is required for default or static interface methods desugaring of void com.virjar.ratel.builder.ratelentry.HelperZipAndSign.zipalign(java.io.File, java.io.File) Warning in /tmp/builder-dex11647356933490416329.jar:com/android/apksig/internal/apk/ApkSigningBlockUtils.class: Type java.util.stream.Collectors was not found, it is required for default or static interface methods desugaring of java.util.Map com.android.apksig.internal.apk.ApkSigningBlockUtils.computeContentDigests(com.android.apksig.util.RunnablesExecutor, java.util.Set, com.android.apksig.util.DataSource, com.android.apksig.util.DataSource, com.android.apksig.util.DataSource) Warning in /tmp/builder-dex11647356933490416329.jar:com/android/apksig/internal/apk/ApkSigningBlockUtils$ChunkSupplier.class: Type java.util.function.Supplier was not found, it is required for default or static interface methods desugaring of com.android.apksig.internal.apk.ApkSigningBlockUtils$ChunkSupplier Warning in synthesized for lambda desugaring: Type java.util.function.ToLongFunction was not found, it is required for default or static interface methods desugaring of com.android.apksig.internal.util.-$$Lambda$ChainedDataSource$YbhxliLhPY8NWeCBObJtP04F1LE Warning in synthesized for lambda desugaring: Type java.util.function.Predicate was not found, it is required for default or static interface methods desugaring of com.android.apksig.internal.apk.-$$Lambda$ApkSigningBlockUtils$AeXO_V-y3jcGXA8TwhH3-ZW5RHI Warning in synthesized for lambda desugaring: Type java.util.function.Function was not found, it is required for default or static interface methods desugaring of org.apache.tools.zip.-$$Lambda$ZipFile$gLw0qrVX7ZhWOQIzPn3nFi3apeo replace BuildEnv.class

    input and output

    -libraryjars /usr/lib/jvm/java-9-openjdk-amd64/jmods/java.base.jmod(!**.jar;!module-info.class) -injars /home/virjar/Desktop/ratel/ratel-core/script/dist/res/container-builder-repkg-2.0.0-SNAPSHOT.jar -outjars /tmp/builder-opt18015309779143679370.jar -printmapping /home/virjar/Desktop/ratel/ratel-core/script/dist/res/builder-proguard.map

    builder 的优化规则

    -keepattributes *

    貌似大小写会出问题,导致文件名大写,对应class小写

    -dontusemixedcaseclassnames

    ratel 框架入口class

    -keep class com.virjar.ratel.builder.ratelentry.Main { public static void main(java.lang.String[]); }

    -keep class org.jf.dexlib2.Opcode{*;}

    -keep class com.android.apksig.internal.**{*;}

    -dontwarn -dontnote -ignorewarnings

    开源环境,我们不做混淆

    -dontobfuscate

    execute cmd: java -jar /tmp/proguard17818899127886307114.jar @/tmp/proguard3184489959863318244.pro ProGuard, version undefined adding: ratel.bat (deflated 67%) adding: ratel.sh (deflated 64%) adding: res/ (stored 0%) adding: res/ratel_version.txt (stored 0%) adding: res/monthly_temp.txt (deflated 20%) adding: res/container-builder-repkg-2.0.0-SNAPSHOT.jar (deflated 3%) adding: res/container-builder-repkg-2.0.0-SNAPSHOT-dex.jar (deflated 0%) adding: res/hermes_key (deflated 5%) adding: res/build_timestamp.txt (stored 0%) adding: res/hermes_bksv1_key (deflated 5%) virjar@virjar-aosp:~/Desktop/ratel/ratel-core$

    opened by chengyuwen 4
  • vm虚拟机 感染apk报错

    vm虚拟机 感染apk报错

    BUILD SUCCESSFUL in 49s 134 actionable tasks: 51 executed, 83 up-to-date engineVersionCode: 2.0.0-SNAPSHOT test file:container-builder-repkg-2.0.0-SNAPSHOT.jar use /home/virjar/Desktop/ratel/ratel-core/container-builder-repkg/build/libs/container-builder-repkg-2.0.0-SNAPSHOT.jar java.lang.IllegalStateException: no infect apk passed at com.virjar.ratel.builder.ratelentry.BuilderContextParser.check(BuilderContextParser.java:66) at com.virjar.ratel.builder.ratelentry.BuilderContextParser.parse(BuilderContextParser.java:34) at com.virjar.ratel.builder.ratelentry.Main.ratelMain(Main.java:99) at com.virjar.ratel.builder.ratelentry.Main.main(Main.java:73) assemble new apk for /Desktop/XX_9.25.0_apkcombo.com.apk build with default certificate error java.lang.IllegalStateException: no infect apk passed java.lang.IllegalStateException: no infect apk passed at com.virjar.ratel.builder.ratelentry.BuilderContextParser.check(BuilderContextParser.java:66) at com.virjar.ratel.builder.ratelentry.BuilderContextParser.parse(BuilderContextParser.java:34) at com.virjar.ratel.builder.ratelentry.Main.ratelMain(Main.java:99) at com.virjar.ratel.builder.ratelentry.Main.main(Main.java:73) task finish error the final output apk file is :error java.lang.IllegalStateException: no infect apk passed task finish error virjar@virjar-aosp:~/Desktop/ratel/ratel-core$

    opened by chengyuwen 2
  • forbid对arm64貌似不支持。在armeabi-v7a是正常的

    forbid对arm64貌似不支持。在armeabi-v7a是正常的

    我是抠runtime里面的io重定向出来使用。在armeabi-v7a是正常的,在arm64里面forbid不生效,redirectFile是成功的。 RatelNative.forbid("/sbin/su",true); RatelNative.redirectFile("/proc/cpuinfo", "/data/local/tmp/cpuinfo" );

    opened by dqzg12300 1
Owner
null