1. Java.perform(function () {
    2. console.log("start hooking...");
    3. function showstack() {
    4. var log = Java.use("android.util.Log");
    5. var Throwable = Java.use("java.lang.Throwable");
    6. console.log(log.getStackTraceString(Throwable.$new()))
    7. }
    8. var log = Java.use("android.util.Log");
    9. log.w.overload('java.lang.String', 'java.lang.String').implementation = function (a, b) {
    10. showstack();
    11. console.log("log.w: ", a, b);
    12. return this.w(a, b);
    13. }
    14. log.w.overload('java.lang.String', 'java.lang.Throwable').implementation = function (a, b) {
    15. showstack();
    16. console.log("log.w: ", a, b);
    17. return this.w(a, b);
    18. }
    19. log.w.overload('java.lang.String', 'java.lang.String', 'java.lang.Throwable').implementation = function (a, b,c) {
    20. showstack();
    21. console.log("log.w: ", a, b,c);
    22. return this.w(a, b,c);
    23. }
    24. })

    这种方法是用于APP代码里面写了调试信息的

    androidsdk中提供了log输出的api,方法在android.util.Log类中。
    Log.v(tag,message); //verbose模式,打印最详细的日志
    Log.d(tag,message); //debug的日志
    Log.i(tag,message); //info的日志
    Log.w(tag,message); //warn的日志
    Log.e(tag,message); //error的日志