Android 7.0 aosp_shamu-userdebug
一. 启动时获取的参数
AndroidRuntime::startVm(/framework/bae/cpre/jni/AndroidRuntime.cpp)方法会首先获取大量系统属性,并将这些系统属性转化为实际的启动参数,下面是获取的系统属性以及对应的启动参数:
dalvik.vm.checkjni(ro.kernel.android.checkjni)
真实值:无
默认为false, 如果为true, 则添加参数-Xcheck:jni
dalvik.vm.execution-mode
真实值:无
默认为KEMDefault, 有四个取值:KEMDefault, kEMIntPortable, kEMIntFast, kEMJitCompiler. 如果不是kEMDefault,则相应的参数为:-Xint:portable, -Xint:fast, -Xint:jit
dalvik.vm.stack-trace-file
真实值:/data/anr/traces.txt
参数的形式为:-Xstacktracefile:/data/anr/traces.txt
dalvik.vm.jniopts
真实值:没有设置
如果有设置的话,参数形式为:Xjnipots:...
{exit, runtime_exit}
Hook Runtime的exit()为runtime_exit(int code)函数
{vfprintf, runtime_vfprintf}
Hook Runtime的fprintf()为runtime_vfprintf(FILE* fp, const char* format, va_list ap)函数
{sensitiveThread, runtime_isSensitiveThread()}
Hook Runtime的sensitiveThread()为runtime_isSensitiveThread()函数
直接添加参数-verbose:gc
dalvik.vm.heapstartsize
真实值:8m
参数的形式为:-Xms8m
dalvik.vm.heapsize
真实值:512m
参数的形式为:-Xmx512m
dalvik.vm.heapgrowthlimit
真实值:256m
参数形式为:-XX:HeapGrowthLimit=256m
dalvik.vm.heapminfree
真实值:512k,
参数形式为:-XX:HeapMinFree=512k
dalvik.vm.heapmaxfree
真实值:8m
参数形式为:-XX:HeapMaxFree=8m
dalvik.vm.heaputilization
真实值:0.75
参数形式为:-XX:HeapTargetUtilization=0.75
dalvik.vm.usejit
真实值:true
参数形式为:-Xusejit:true
dalvik.vm.jitmaxsize
真实值是:无
如果设置则参数形式为:-Xjitmaxsize:${dalvik.vm.jitmaxsize}
dalvik.vm.jitinitialize
真实值:无,
如果设置参数形式为:-Xjitinitialize:${dalvik.vm.jitinitialize}
dalvik.vm.jitthreshold
真实值:无
如果设置参数形式为:-Xjitthreshold:..
dalvik.vm.usejitprofiles
真实值:true,
参数形式为:-Xjitsaveprofilinginfo
dalvik.vm.jitprithreadweight
真实值:无
如果设置,参数的形式为:-Xjitprithreadweight
dalvik.vm.jittransitionweight
真实值:无
如果设置,参数的形式为:-Xjittransitionweight:${dalvik.vm.jittransitionweight}
ro.config.low_ram
真实值:无
如果设置,参数形式为:-XXLowMemoryMode
dalvik.vm.gctype
真实值:无
如果设置,参数形式为:-Xgc:${dalvik.vm.gctype}
dalvik.vm.backgroundgctype
真实值:无
如果设置,参数形式为:-XX:BackgroundGC=${dalvik.vm.backgroundgctype}
直接添加参数-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y
dalvik.vm.lockprof.threshold
真实值:500
参数形式为:-Xlockprofthreshold:500
vold.decrypt
trigger_restart_framework
因为不等于trigfer_restart_min_framework和1,所以还要获取属性dalvik.vm.image-dex2oat-filter, 系统中并未设置该值,如果设置了,参数的形式为:--compiler-filter=${dalvik.vm.image-dex2oat-filter}, -Ximage-compiler-option
直接添加参数Ximage-compiler-option
直接添加参数--compiled-classes=/system/etc/preloaded-classes
如果文件/system/etc/compiled-classes存在(实际存在),则添加参数:-Ximage-compiler-option, --compiled-classes=/system/etc/compiled-classes
dalvik.vm.imgae-dex2oat-flags
真实值:无
如果设置,参数形式为:-Ximage-compile-option, ${image-dex2oat-flags}
dalvik.vm.dex2oat-Xms
真实值:64m
参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -Xms64m
dalvik.vm.dex2oat-Xmx
真实值:512m
参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -Xms512m
dalvik.vm.dex2oat-filter
真实值:无
如果设置了,参数的形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, --compiler-filter=${dalvik.vm.dex2oat-filter}
dalvik.vm.dex2oat-threads
真实值:无
如果设置了,参数形式为:-Xcompiler-option, --runtime-arg, -Xcompiler-option, -j${dalvik.vm.dex2oat-threads}
dalvik.vm.image-dex2oat-threads
真实值:无
如果设置了,参数形式为:-Ximage-compiler-option, --runtime-arg, -Ximage-compiler-option, -j${dalvik.vm.image-dex2oat-threads}
dalvik.vm.isa.arm.variant
真实值:krait
参数最终形式为:-Ximage-compiler-o