当前位置:   article > 正文

2021-09-20 Android(R) user版本启动ADB,并设置root权限_android user 版本开启adb root 和 adb remount

android user 版本开启adb root 和 adb remount

Android® user版本启动ADB,并设置root权限

遇到的问题:

user版本莫名重启(调查发现是发生了kernel panic),由于没有Log,无法直接调查。

调查思路:

1.通过修改kernel config,将SERIAL_CONFIG设置成y打开log,但是如果是由于时序引起的重启,打开log之后问题可能不会再现
2.由于重启时,Android会将rawdump存起来,可以通过导出rawdump文件解析出当时的log

导出工具:

ADB,但是adb pull需要root权限,user版本默认是关闭的

修改方法:

1.android/build/make/core/main.mk

默认打开adb,不认证,设置root权限:

@@ -263,11 +263,11 @@ enable_target_debugging := true
tags_to_install :=
ifneq (,$(user_variant))
# Target is secure in user builds.
	- ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1
	+ ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0
	ADDITIONAL_DEFAULT_PROPERTIES += security.perf_harden=1

ifeq ($(user_variant),user)
	- ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=1
	+ ADDITIONAL_DEFAULT_PROPERTIES += ro.adb.secure=0
endif

ifeq ($(user_variant),userdebug)
@@ -275,7 +275,7 @@ ifneq (,$(user_variant))
	tags_to_install += debug
else
	# Disable debugging in plain user builds.
	- enable_target_debugging := 
	+ #enable_target_debugging :=
endif

# Disallow mock locations by default for user builds
@@ -297,7 +297,7 @@ ifeq (true,$(strip.$(enable_target_debugging)))
	ADDITIONAL_BUILD_PROPERTIES += dalvik.vm.lockprof.thershold=500
else # !enable_target_debugging
	#Target is less debuggable and adbd is off by default
	- ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0
	+ ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1
endif # !enable_target_debugging
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

2.可能需要修改devices/common中其他的ro.secure=0

(因为刚开始调查的时候不知道是否有影响,所以都进行了修改)
grep -snR ro.secure

3.android/system/core/init/selinux.cpp

修改selinx权限,默认返回permissive:

@@ -104,6 +04,7 @@ EnforcingStatus StatusFromCmdline() {
}
bool IsEnforcing() {
	+ return false;
	if(ALLOW_PERMISSIVE_SELINUX) {
		return StatusFromCmdline() == SELINUX_ENFORCING;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

至此,user版本就可以直接使用adb的root权限进行操作了。

解析rawdump:

adb pull /dev/block/by-name/rawdump
python minidump.py -s rawdump result/
python minidump.py -d result/md_KLOGBUF.BIN
解析出dmesg.txt

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/961947
推荐阅读
相关标签
  

闽ICP备14008679号