Android系统USR版本获取root权限
来源:互联网 发布:mac vi编辑器保存退出 编辑:程序博客网 时间:2024/05/16 14:14
adb.c中
int adb_main(int is_daemon, int server_port)
{
... ...
property_get("ro.adb.secure", value, "0");
auth_enabled = !strcmp(value, "1");
/* Modify byXXX */
if (auth_enabled) {
adb_auth_init();
property_get("persist.service.adb.root", value, "0");
auth_enabled = !strcmp(value, "0");
}
/* End modify */
... ...
/* don't listen on a port (default 5037) if running in secure mode */
/* don't run as root if we are running in secure mode */
if (should_drop_privileges()) {
drop_capabilities_bounding_set_if_needed();
... ...
}
static int should_drop_privileges() {
/* Add by XXX*/
char value1[PROPERTY_VALUE_MAX];
property_get("persist.service.adb.root", value1, "");
if (strcmp(value1, "1") == 0) {
return 0;
}
/* End add */
... ...
}
static void drop_capabilities_bounding_set_if_needed() {
/* Modify by XXX*/
char value1[PROPERTY_VALUE_MAX];
property_get("persist.service.adb.root", value1, "");
if (strcmp(value1, "1") == 0) {
return;
}
/* End modify */
... ...
}
system/core/init.rc中红色部分去掉。
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd --root_seclabel=u:r:su:s0
class core
socket adbd stream 660 system system
disabled
seclabel u:r:adbd:s0
在MMI APP层
public class HuaAdbRootActivity extends Activity implements OnCheckedChangeListener {
private final String TAG = "XXX";
private CheckBox mCheckBoxAdbRoot;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 1);
mCheckBoxAdbRoot.setEnabled(true);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hua_adb_root);
mCheckBoxAdbRoot = (CheckBox) findViewById(R.id.checkBoxAdbRoot);
mCheckBoxAdbRoot.setChecked(SystemProperties.getInt("persist.service.adb.root", 0) > 0);
if (ActivityManager.isUserAMonkey()) {
Log.d(TAG, getClass() + " in monkey test mode");
} else {
mCheckBoxAdbRoot.setOnCheckedChangeListener(this);
}
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mCheckBoxAdbRoot.setEnabled(false);
SystemProperties.set("persist.service.adb.root", isChecked ? "1" : "0");
Settings.Secure.putInt(getContentResolver(), Settings.Secure.ADB_ENABLED, 0);
mHandler.sendEmptyMessageDelayed(0, 1000);
}
}
- Android系统USR版本获取root权限
- 获取Android系统的ROOT权限
- ubuntu11.10版本系统root权限获取问题
- android系统root与应用程序获取root权限原理总结
- Android 获取root权限
- Android 获取root权限
- android 获取root权限
- Android获取root权限
- android 应用如何获取系统权限 以及root系统方法
- Mac系统获取root权限
- 获取MAC系统root权限
- Android应用获取root权限,修改系统文件
- Android系统的Root权限获取与检测
- Android系统system用户权限和root权限的获取
- Android系统system用户权限和root权限的获取
- Android系统system用户权限和root权限的获取
- Android app调用系统重启、关机、获取root权限
- Android获取Root权限方法
- android adb install 错误类型解析 PartI
- [Erlang]解决R17中文编码的问题
- 我的博客
- iOS 之UICollectionView 使用
- 面试笔记7(指针和引用)
- Android系统USR版本获取root权限
- 使用libmagic确定文件MIME类型【示例】
- 面试笔记8(类)
- iframe使用
- iterator 遍历与for循环与foreach的优劣对比
- java反射机制&Annotation详解_II
- 如何在Ubuntu中设置Apache Web 服务器支持 UserDir 特性
- 第十三周 项目1-动物这样叫(2)
- NYOJ 6 喷水装置(一)