IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 2021-09-20 Android(R) user版本启动ADB,并设置root权限 -> 正文阅读

[移动开发]2021-09-20 Android(R) user版本启动ADB,并设置root权限

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

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;
	}

至此,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

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:48:20  更:2021-09-22 14:50:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:32:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码