android app间通信中,非root app可以和adbd来通信吗

超级adbd adbd Insecure v1.30
版本:1.30 &
软件语言:简体中文
更新时间:
软件大小:509M
下载次数:10305
拥有开机自动启用超级adbd模式选项,省去您频繁操作的烦恼。
超级adbd adbd Insecure v1.30截图
超级adbd adbd Insecure v1.30介绍
adbd Insecure(超级adbd)能让您在已经的设备上强制以ROOT模式运行adbd(注意,如果您运行的是第三方内核,则可能已经具备了这项功能)。如果您的设备上运行的是原生(设备制造商的)内核,那么adbd就会以“”模式来运行,即使已经ROOT。这款应用能让您以“非安全”模式运行adbd,让“adb shell”拥有ROOT权限,允许通过“adb push/pull”直接访问系统文件和目录,并通过运行“adb remount”命令来让您的/system/分区可写。
主要功能:
- 通过“patch(打补丁)”的方式来对一些系统文件进行破解,不会对您的系统进行永久的更改,重启后就会恢复原始状态,不必担心会出现问题
注意事项:
- 您的设备必须已经ROOT才能让adbd Insecure工作,并且可能无法在“S-ON”和已锁定bootloader的设备上工作
- 如果在有应用激活或停用adbd的情况下连接USB,则需要拔出/重新插入数据线或运行“adb kill-server”命令才能让adb重新工作
更新日志:
- 修复三星Galaxy S4上的问题
超级adbd adbd Insecure v1.30下载地址
高速下载器
安卓版下载
应用名称:系统工具
含有不良插件
无法安装或启动
深圳市艾秀信息技术有限公司
All Rights Reserved
&粤网文[号 &不root也能玩机!安卓不root玩机必备技巧
  不root冻结App后台:绿色守护软件名称:绿色守护(Greenify)软件版本:2.8软件大小:2.56MB软件授权:免费适用平台:Android下载地址:  安卓系统的一大烦恼,就是某些流氓App总会驻留系统后台,这会导致耗电发热卡机等问题。一般的解决办法,是root掉系统后,安装相应的后台管理工具。但其实,如果利用绿色守护,无需root也能清理系统后台。绿色守护界面,把需要休眠的App加入到列表即可  绿色守护的大名相信很多安卓玩家都有所耳闻,这是目前最受欢迎的安卓系统辅助类App之一。绿色守护的原理是休眠掉App,而不是杀掉后台进程,因此一定程度上避免后台进程不断重新启动的问题,效果有目共睹。从2.0的版本开始,绿色守护就可以支持非root模式,就算设备没有root,绿色守护的基础功能同样可以使用。带有应用排查顾问,一眼可以看出什么App最耗电最占资源  绿色守护的使用很简单,开启App后,添加特定的App到休眠名单,这些App就会在用户手动按下休眠按钮的时候被休眠。绿色守护有一个好,那就是可以自动分析哪些App会造成额外的耗电。如果你拿不准注意要休眠什么App,可以按照绿色守护给出的建议,把不老实的App加入到休眠列表中。非root模式下可以使用系统授权来完成自动休眠(弱化版),也可以设置手动休眠快捷按钮  绿色守护可以在非root环境下发挥作用,不过某些功能会受到限制,例如自动休眠功能会被削弱。不过绿色守护可以建立桌面的手动休眠快捷按钮,手动休眠其实也并不算不方便。
键盘也能翻页,试试“← →”键
最新资讯离线随时看
聊天吐槽赢奖品
相关软件:
大小:1.93 MB
授权:免费
大小:62.51 MB
授权:免费3091人阅读
Android(39)
1、adbd配置:
android中,想要配置开机启动adbd或者adb具有root权限,需在根目录下的default.prop中修改,不同于system/build.prop,这个文件修改后重启就会恢复原本的值。
在源码中,他并不是一个已经存在的文件,而是在编译脚本中来生成的。通常,他里面的这些属性,是控制着一些安全性的。让我们看下这个文件:
# ADDITIONAL_DEFAULT_PROPERTIES
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.sys.usb.config=mtp
(1)ro.secure=0意味着只能用普通用户登录adb,ro.secure=1,这以root用户登录。该值在build/core/main.mk中修改
(2)ro.debuggable在build编译系统中,会根据这个值来生成persist.sys.usb.config。该值在build/core/main.mk中修改
(3)persist.sys.usb.config则会在init.usb.rc中用到,会指定那种属性配置可以启动adbd。
另外,当我们想要配置adb的端口号,可以设置属性service.adb.tcp.port来进行指定
2、default.prop的生成:
全编脚本中make命令会调用build/core/main.mk,在里面可以看到一段关于debuggable的编译选项,赋值ADDITIONAL_DEFAULT_PROPERTIES;
ifeq (true,$(strip $(enable_target_debugging)))
# Target is more debuggable and adbd is on by default
ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=1
# Include the debugging/testing OTA keys in this build.
INCLUDE_TEST_OTA_KEYS := true
else # !enable_target_debugging
# Target is less debuggable and adbd is off by default
ADDITIONAL_DEFAULT_PROPERTIES += ro.debuggable=0
endif # !enable_target_debugging
在build/core/Makefile中会执行post_process_props.py脚本文件,post_process_props.py会根据main.mk中的ro.debuggable指定的值来生成default.prop的persist.sys.usb.config;
# default.prop
INSTALLED_DEFAULT_PROP_TARGET := $(TARGET_ROOT_OUT)/default.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DEFAULT_PROP_TARGET)
ADDITIONAL_DEFAULT_PROPERTIES :=
$(call collapse-pairs, $(ADDITIONAL_DEFAULT_PROPERTIES))
ADDITIONAL_DEFAULT_PROPERTIES +=
$(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES))
ADDITIONAL_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component,
$(ADDITIONAL_DEFAULT_PROPERTIES),=)
$(INSTALLED_DEFAULT_PROP_TARGET):
@echo Target buildinfo: $@
@mkdir -p $(dir $@)
$(hide) echo "#" & $@;
echo "# ADDITIONAL_DEFAULT_PROPERTIES" && $@;
echo "#" && $@;
$(hide) $(foreach line,$(ADDITIONAL_DEFAULT_PROPERTIES),
echo "$(line)" && $@;)
build/tools/post_process_props.py $@
所以从上面可以看到,这个文件中的内容,都是在编译脚本中根据宏来控制的。
如果是debug版本的话,default.prop会是这样的。
# ADDITIONAL_DEFAULT_PROPERTIES
ro.secure=0
ro.allow.mock.location=1
ro.debuggable=1
persist.sys.usb.config=mtp,adb
从中看到persist.sys.usb.config=mtp,adb。而在init.rc中,我们可以看到这样的注释
#adbd is controlled via property triggers in init.platform.usb.rc
所以去init.platform.usb.rc下可以看到adb服务的自启动条件
on property:sys.usb.config=mass_storage,adb
start adbd
on property:sys.usb.config=mtp,adb
start adbd
on property:sys.usb.config=ptp,adb
start adbd
所以,当default.prop为debug版本中那样,adbd会开机启动,这样,我们就可以使用adb调试了。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47194次
排名:千里之外
原创:40篇
转载:18篇
评论:21条
(1)(1)(3)(2)(1)(3)(2)(2)(4)(2)(1)(2)(1)(1)(6)(4)(5)(1)(5)(1)(10)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'在之前博客中我们分析了很多adbd的代码,也分析了adb root的代码流程,这篇博客我们说下adb root的一个bug。
我们先来回顾下adbd处理adb root的代码:
void restart_root_service(int fd, void *cookie) {
if (getuid() == 0) {
WriteFdExactly(fd, &adbd is already running as root\n&);
adb_close(fd);
char value[PROPERTY_VALUE_MAX];
property_get(&ro.debuggable&, value, &&);
if (strcmp(value, &1&) != 0) {
WriteFdExactly(fd, &adbd cannot run as root in production builds\n&);
adb_close(fd);
property_set(&service.adb.root&, &1&);
WriteFdExactly(fd, &restarting adbd as root\n&);
adb_close(fd);
初看没啥问题,我们再来结合init.rc来看。
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
adb root后adbd会往service.adb.root写1,然后init会根据这个属性,把上面init.rc中的两个节点先写0,再写1。什么意思呢,就是usb驱动,使能开关先关掉,再开。而这中间还要重启adbd。
正常的话,我们之前也分析过了,adbd重启后,发现property:service.adb.root=1,于是就不会给adbd降级为shell,还是为root。
但是如何有问题的话,首先adbd写这个属性,先把usb驱动的使能开关关了,试问这个时候adbd往adb驱动写的数据只有到一半怎么办?这个时候很有可能和pc的通信就有问题。
结合实际,在我们的手机上没有问题,但是类似&restarting adbd as root“的字眼经常在pc的cmd命令上显示不出来,就是因为usb使能关太早了,导致adbd还没发送完数据。
最近调试adb root就直接驱动那边出问题。
二、解决方法
归根到底就是一个时序的问题,解决方案可以在驱动关闭usb使能的时候,延时一段时间,就可以解决了。
但是归根到底还是google的一个bug,可以在adbd中等数据完全通信完了再去写service.adb.root为1,这样这个问题也就完全解决了,而不用去做规避。

本文已收录于以下专栏:
相关文章推荐
本文将从几个方面,由浅至深地讲述ROOT到底是什么东西?
一. ROOT权限简单介绍
二.为什么需要ROOT
三. ADBD的ROOT权限
四.深入源代码
ROOT权限简介:
ROOT权限...
上篇博客最后讲到在output_thread中,读取了adb驱动的数据后,就调用write_packet(t-&fd, t-&serial, &p)函数,把数据网socketpair的一侧写。
上篇博客中分析过adb root pc到adbd的流程,这篇博客我们再来讲下adb root是adbd重启并且获取root的流程。我们再来回顾之前的函数:
void restart_root_serv...
注:如果没有 root 权限也是可以试试,一般情况下,都需要 root 权限,才能连接成功。
1.需要确保你的开发 PC 和 Android 手机都连上了 wifi 并处于同一网段下...
adbd源码位于system/core/adb/目录下,可执行文件位于/sbin/adbd。通过adb执行ps命令,结果如下:USER     PID   PPID  VSIZE  RSS     W...
闲聊ROOT权限——ROOT权限的前世今生
很久以前,积累了一些Linux的小知识,
第一步:打开终端,在命令行里输入sudo nautilus
第二步:输入你的用户的密码
第三步:在弹出的窗口中打开需要操作的目录
先来看adb原理的逻辑图:
VirtualBox也有与VMware类似的Shared Folder的功能. 使得主机与虚拟机之间可以共享文件.废话少说. 开工. 环境:主机:Windows XP虚拟机:Ubuntu 10.10 ...
最简单的调试打印语句:
#define dlog(format,...) \
        do{ \
                if(debug) \
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 android app 申请root 的文章

 

随机推荐