• 大小: 19KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Java
  • 标签: android  root  su  

资源简介

android 5.1源码root补丁 不需要SuperSU,使用android su

资源截图

代码片段和文件信息

/*
 * Main entry of app process.
 *
 * Starts the interpreted runtime then starts up the application.
 *
 */

#define LOG_TAG “appproc“

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include   // for AID_SYSTEM

#include 
#include 
#include 
#include 

namespace android {

void app_usage()
{
    fprintf(stderr
        “Usage: app_process [java-options] cmd-dir start-class-name [options]\n“);
}

class AppRuntime : public AndroidRuntime
{
public:
    AppRuntime(char* argBlockStart const size_t argBlockLength)
        : AndroidRuntime(argBlockStart argBlockLength)
         mClass(NULL)
    {
    }

    void setClassNameAndArgs(const String8& className int argc char * const *argv) {
        mClassName = className;
        for (int i = 0; i < argc; ++i) {
             mArgs.add(String8(argv[i]));
        }
    }

    virtual void onVmCreated(JNIEnv* env)
    {
        if (mClassName.isEmpty()) {
            return; // Zygote. Nothing to do here.
        }

        /*
         * This is a little awkward because the JNI FindClass call uses the
         * class loader associated with the native method we‘re executing in.
         * If called in onstarted (from RuntimeInit.finishInit because we‘re
         * launching “am“ for example) FindClass would see that we‘re calling
         * from a boot class‘ native method and so wouldn‘t look for the class
         * we‘re trying to look up in CLASSPATH. Unfortunately it needs to
         * because the “am“ classes are not boot classes.
         *
         * The easiest fix is to call FindClass here early on before we start
         * executing boot class Java code and thereby deny ourselves access to
         * non-boot classes.
         */
        char* slashClassName = toSlashClassName(mClassName.string());
        mClass = env->FindClass(slashClassName);
        if (mClass == NULL) {
            ALOGE(“ERROR: could not find class ‘%s‘\n“ mClassName.string());
        }
        free(slashClassName);

        mClass = reinterpret_cast(env->NewGlobalRef(mClass));
    }

    virtual void onstarted()
    {
        sp proc = ProcessState::self();
        ALOGV(“App process: starting thread pool.\n“);
        proc->startThreadPool();

        AndroidRuntime* ar = AndroidRuntime::getRuntime();
        ar->callMain(mClassName mClass mArgs);

        IPCThreadState::self()->stopProcess();
    }

    virtual void onZygoteInit()
    {
        // Re-enable tracing now that we‘re no longer in Zygote.
        atrace_set_tracing_enabled(true);

        sp proc = ProcessState::self();
        ALOGV(“App process: starting thread pool.\n“);
        proc->startThreadPool();
    }

    virtual vo

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-06-17 14:32  frameworks\
     目录           0  2017-06-17 14:32  frameworks\base\
     目录           0  2017-06-17 14:32  frameworks\base\core\
     目录           0  2017-06-17 14:32  frameworks\base\core\jni\
     文件       21841  2017-06-17 14:32  frameworks\base\core\jni\com_android_internal_os_Zygote.cpp
     目录           0  2017-06-17 14:32  frameworks\base\cmds\
     目录           0  2017-06-18 02:59  frameworks\base\cmds\app_process\
     文件       10419  2017-06-17 14:32  frameworks\base\cmds\app_process\app_main.cpp
     目录           0  2017-06-17 14:33  system\
     目录           0  2017-06-17 14:33  system\core\
     目录           0  2017-06-17 14:33  system\core\include\
     目录           0  2017-06-17 14:33  system\core\include\private\
     文件       13124  2017-06-17 14:33  system\core\include\private\android_filesystem_config.h
     目录           0  2017-06-17 14:33  system\extras\
     目录           0  2017-10-20 05:45  system\extras\su\
     文件        4270  2017-06-17 14:33  system\extras\su\su.c
     文件          52  2017-10-20 05:51  readme

评论

共有 条评论