文档章节

在Ubuntu14中adb 不能检测OnePlus One的解决过程

Jagery
 Jagery
发布于 2015/08/15 11:18
字数 1182
阅读 73
收藏 0

       最近在学习Android的开发,且对于linux平台很有兴趣,随即将学习开发Android的平台搭建在了Ubuntu14.04 LTS中。但是却在一开始的时候就遇到了十分棘手的问题——使用eclipse不能连接到我的真机测试,即Oneplus One。

        没有办法,只有慢慢尝试开始解决这一问题。

    1.首先是发现并没有在/ect/udev/rules.d/ 下创建有51-android.rules。

    接着在Using Hardware Devices中的Setting up a Device for Development 找到了如何添加udev rules的方法。

    1.1 首先是将手机开启了Usb 调试后,连接电脑

    1.2 打开Ubuntu终端

sudo lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 014: ID 09da:054f A4 Tech Co., Ltd 
Bus 002 Device 005: ID 04f2:b469 Chicony Electronics Co., Ltd 
Bus 002 Device 006: ID 04ca:300b Lite-On Technology Corp. 
Bus 002 Device 003: ID 06cb:2970 Synaptics, Inc. 
Bus 002 Device 017: ID 2a70:9011  
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

      1.3 于是在结果中找到了Oneplus One 的idDevice 和idProduct   

Bus 002 Device 017: ID 2a70:9011

        1.4 按照前面找到的google android官方的资料的方法添加udev rules

sudo vi /ect/udev/rules.d/51-android.rules
  1 #OnePlus ONE
  2 SUBSYSTEM=="usb",ATTR{idVendor}=="2a70",ATTR{idProduct}=="9011",MODE="0666",GROUP="plugdev"

    1.5 保存后重启相关的服务

sudo service udev restart
adb kill-server
adb devices
List of devices attached

    1.6 结果是空白,没有发现有任何的device

    无果后开始google寻找其他的方法,没有办法,本身对于linux也是刚刚学习接触,本打算通过学习开发来熟悉这个平台的使用,哎!

    2. 于是goolge到XDA 论坛中的Oneplus One 版块中的一个帖子

    Oneplus mtp won't connect on ubuntu but adb will的二楼中提到了另一种情况。虽然我的情况是MTP 可以连接到Ubuntu,adb不能。但死马当活马医呗,于是就又试了一下

    2.1 他在其中提到了另一个udev的配置文件/lib/udev/rules.d/69-libmtp.rules

    在其文件中,内容如下

# Put this file in /etc/udev/rules.d
   3 
   4 ACTION!="add", GOTO="libmtp_rules_end"
   5 ENV{MAJOR}!="?*", GOTO="libmtp_rules_end"
   6 SUBSYSTEM=="usb", GOTO="libmtp_usb_rules"
   7 GOTO="libmtp_rules_end"
   8 
   9 LABEL="libmtp_usb_rules"
  10 
  11 # Some sensitive devices we surely don't wanna probe
  12 # Color instruments
  13 ATTR{idVendor}=="0670", GOTO="libmtp_rules_end"
  14 ATTR{idVendor}=="0765", GOTO="libmtp_rules_end"
  15 ATTR{idVendor}=="085c", GOTO="libmtp_rules_end"
  16 ATTR{idVendor}=="0971", GOTO="libmtp_rules_end"
  17 # Canon scanners that look like MTP devices (PID 0x22nn)
  18 ATTR{idVendor}=="04a9", ATTR{idProduct}=="22*", GOTO="libmtp_rules_end"
  19 # Canon digital camera (EOS 3D) that looks like MTP device (PID 0x3113)
  20 ATTR{idVendor}=="04a9", ATTR{idProduct}=="3113", GOTO="libmtp_rules_end"
  21 # Sensitive Atheros devices that look like MTP devices
  22 ATTR{idVendor}=="0cf3", GOTO="libmtp_rules_end"
  23 # Sensitive Atmel JTAG programmers
  24 ATTR{idVendor}=="03eb", GOTO="libmtp_rules_end"
  .....

    不难发现,这个文件也是配置了手机usb连接的相关信息。其中包括了各大手机品牌的各种型号,为了验证,我拿出了当年的旧机,来连接,lsusb找到了idVendor后搜索文件发现了其配置

 869 # SONY ST25i Xperia U MTP+CDROM
 870 ATTR{idVendor}=="0fce", ATTR{idProduct}=="4171", SYMLINK+="libmtp-%k", MODE     ="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

但搜索Oneplus One 却没有找到,于是我怀着激动的心情把配置添加上去,

经过各种重启后,发现还是没有,真是伤碎了心呀

    2.2 之后又找到一个贴子 Ubuntu is not detecting my android device ,在这其中讲到了这可能是权限受限的问题,普通用户没有权限去访问这个设备,然后我也把其设备权限改到了 666 

lsusb
Bus 002 Device 020: ID 2a70:9011 
#然后根据 Bus 002 Device 020 这个设备号找到了下面这个
ls -l /dev/bus/usb/002/020
crw-------+ 1 root audio 189, 147 Aug 15 13:04 /dev/bus/usb/002/020
chmod 666 /dev/bus/usb/002/020

不过依然无果,并没有解决问题呢

    3. 在上面的方法都没有解决后,把目光集中到了系统上,但还是其/ect/udev/rules.d/下的配置问题,在一个帖子中讲到了这配置文件的名称也是有讲究的,Ubuntu的版本不同,其文件名称也不同

How to Setup ADB and USB drivers on Ubuntu easily

    3.1 但是我把这几个配置文件的名称都弄了一份,也还是没有结果

-rwxr-xr-x 1 root root  105 Aug 15 13:55 50-android.rules
-rwxr-xr-x 1 root root  105 Aug 15 10:55 51-android.rules
-rwxr-xr-x 1 root root  105 Aug 15 13:55 70-android.rules
-rw-r--r-- 1 root root  629 Jun 15 04:57 70-persistent-net.rules

    3.2 如果是版本的问题,那Ubuntu14.04的配置文件的名称应该是叫做什么呢

    3.3 最后总结一下,会不会是手机系统问题呀

        后面刷了CM后,可以连接上了Ubuntu14了





© 著作权归作者所有

Jagery
粉丝 3
博文 23
码字总数 11583
作品 0
玉林
程序员
私信 提问
一加6手机的Bootloader漏洞可让攻击者控制设备

  你近期是否购买了一加6手机,或正计划购买一部呢?看完这篇报告性的文章,你可能会望而却步。因为,最近安全研究人员披露在OnePlus 6 bootloader中,存在严重的安全漏洞,即使bootloade...

FreeBuf
2018/06/12
0
0
KaliLinuxNetHunter教程下载相关资源

KaliLinuxNetHunter教程下载相关资源 当用户将刷机工具准备完后,则需要下载ROM包。ROM是ROM image(只读内存镜像)的简称,常用于手机定制系统。一般手机刷机的过程,就是将只读内存镜像(R...

大学霸
01/17
0
0
Android 内存泄露优化处理

参考: Android应用内存泄露分析、改善经验总结 使用新版Android Studio检测内存泄露和性能 解决安卓CPU使用率过高问题 Android CPU使用过大的问题解决以及造成的原因 AndroidStudio CPU Mo...

天鬼
2017/11/06
0
0
如何在Ubuntu下面识别Galaxy Nexus设备

最近入手了Galaxy Nexus手机,但是由于一直在Ubuntu下面开发,而Ubuntu不能直接识别GalaxyNexus的MTP设备,导致了16G的Rom在Ubuntu下面完全无法识别,只能通过adb push和adb install的方法来...

IT"精英"
2012/05/10
0
0
Android 系统 root 破解原理分析(续)

上文《Android系统root破解原理分析》介绍了Android系统root破解之后,应用程序获得root权限的原理。有一些网友提出对于root破解过程比较感兴趣,也提出了疑问。本文将会对这个root破解过程进...

红薯
2012/06/19
5.9K
3

没有更多内容

加载失败,请刷新页面

加载更多

lua web快速开发指南(7) - 高效的接口调用 - httpc库

httpc库基于cf框架都内部实现的socket编写的http client库. httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口. httpc支持header、args、body、timeout请求设置, 完美支持各种h...

水果糖的小铺子
45分钟前
3
0
通过四道常问面试题,带你了解什么是数据库分库分表

编者语:为了避免被误解为:「手里有把锤子,看什么都是钉子!」,说明一下不是什么业务都适合分布式数据库,更不是用了分布式数据库性能就一定能得到扩展。 其次:本文为纯干货,建议先转发...

老道士
今天
5
0
springmvc 整体流程

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR......

architect刘源源
今天
3
0
磁盘管理

先来看两个查看的命令 查看磁盘使用情况df 用法:df, df -h, df -m, df -k 查看目录或文件大小 用法:du -sh, du -sm, du -s(默认以k为单位) 新加一块盘如何操作 步骤:分区(可选)--> 格...

wzb88
今天
3
0
在 Linux 下确认 NTP 是否同步的方法

NTP 意即网络时间协议Network Time Protocol,它通过网络同步计算机系统之间的时钟。NTP 服务器可以使组织中的所有服务器保持同步,以准确时间执行基于时间的作业。NTP 客户端会将其时钟与 ...

Linux就该这么学
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部