当前位置:首页 » 安卓系统 » androidsdkubuntu下载

androidsdkubuntu下载

发布时间: 2023-03-02 09:27:44

1. 如何在Ubuntu下配置Android开发环境

1.安装Eclipse和Android SDK/PhoneGap所需软件包:

打开终端,输入下面命令完成题目所述过程:

sudo apt-get install openjdk-6-jdk eclipse ruby rubygems ruby-dev libnokogiri-ruby git ant libxml2 libxml2-dev libxslt1-dev

若是64位,还需要安装下面两个软件包:

sudo apt-get install lib32stdc++6 ia32-libs

2.安装Android SDK

打开网络浏览器,输入地址http://developer.android.com/sdk/index.html,下载所需的平台(Win,Mac,linux)的Android SDK版本。我们选择Linux(i386)即可(32位和64位平台皆适用)。或者,用下面命令下载并解压文件包:

cd ~ wget http://dl.google.com/android/android-sdk_r11-linux_x86.tgz tar xvfz android-sdk_r11-linux_x86.tgz

由上述命令,我们可得到文件目录 android-sdk-linux_x86 ,现在我们要将$HOME/android-sdk-linux_x86/tools 目录 和 $HOME/android-sdk-linux_x86/platform-tools 目录添加到PATH 路径变量中去:

打开 ~/.profile文件

gedit ~/.profile

添加下面一行内容到该文件末尾:

[...]

PATH="$HOME/android-sdk-linux_x86/tools:$HOME/android-sdk-linux_x86/platform-tools:$PATH"

然后,运行下面命令将上述改动生效:

export

PATH="$HOME/android-sdk-linux_x86/tools:$HOME/android-sdk-linux_x86/platform-tools:$PATH"

现在,启动 Android SDK:

android

下图就是Android SDK所示:

接下来,选择左侧的“ Available packages ”,后选择右侧栏内的“ Android Repository”,选中所有“ Android Repository”组内的软件包,点击“安装所选软件包”即可。接下来选择“接受”,继续安装完毕即可。

若提示“ADB需要重启”时,我们选择“Yes”,重启ADB。

下载完毕后,点击“close”,关闭对话框。

3.移植Android SDK到Eclipse

若是你用Eclipse创建Android应用,而非命令行下,则我们需要将移植Android SDK到Eclipse。

首先,从“Applications > Programming > Eclipse”,启动Eclipse。

这样,Ubuntu Linux系统的Android开发环境就安装配置好了,可以开始在Linux下进行Android应用开发了。

2. 怎样下载Android SDK

Android SDK在developer.android上下载,由于国内网络原因,已经无法正常访问,android 官网之前发布过ADT版本的Eclipse(已上传附件),即官方已经集成好ADT CDT SDK Eclipse,里面就包含了SDK。

谷歌直接下载地址是:developer.android.com/sdk/index.html

如果你用eclipse开发Android的话,可以通过ADT里面的 Android SDK and AVD Manager直接下载并安装好。

3. 怎么在Ubuntu编译Android2.3源代码以及制作自己的SDK

网上下一个软碟通软通(UitraISO)工具、然后去官网上下载一个64位ubuntu.*.iso系统文件、然后软碟通工具自己制作一个USB启动盘(非常简单)不会用软碟通的网络一下一大把!、系统最好是10.40以上的版本

使用的是ubuntu官网下载的ubuntu10.04 LTS 64位版本(ubuntu-10.04.2-desktop-amd64.iso)

配置软件源:

系统安装完毕以后应该首先换一个速度快的软件源

一般用的是ubunt

不然下载各种更新和软件包的时候非常的慢

安装JDK:

我要编译的是2.3姜饼的源代码 所以需要使用jdk6 (还需要是64位的系统)

如果是32为系统藐视jdk要安装jdk5.0的吧!藐视说有个doc什么的不行!所以系统一般装64的、如果是32的小伙们赶快把jdk看看

安装方法:

打开终端

输入

sudo add-apt-repository "deb "

sudo add-apt-repository "deb-src "

sudo apt-get update

sudo apt-get install sun-java6-jdk

就安装好了 (ubuntu10.04 LTS版会自带那两个源)

并且不需要配置环境变量

这一步可以参考

安装各种软件包:

终端中输入

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos texinfo libsdl-dev libwxgtk2.6-dev

最后三个是我补充的 其他都是官方文档提供的

这一步可以参考

下载源代码:

打开终端并输入

mkdir ~/bin

PATH=~/bin:$PATH

这两句是在你的个人文件夹下创建了一个名字叫bin的文件夹 并且把其加入到了环境变量中

再输入

curl ; ~/bin/repo

chmod a+x ~/bin/repo

这两句首先在bin目录下面下载了一个repo文件 repo简单来说就说用来版本控制的 我们就是用的它来同步代码

然后建立一个用来存放源代码的文件夹 我的这个文件夹的名字是android2.3

输入

mkdir android2.3

cd android2.3

进入android2.3目录

输入

repo init -u git://androi/platform/manifest.git -b gingerbread

在此说明一下:

安卓总称:“机器人”

1.5系统:“纸杯蛋糕”

Android 1.6 Donut甜甜圈
Android 2.0 Eclair松饼
Android 2.1 Eclair松饼
Android 2.2 Froyo冻酸奶
Android 2.3 Gingerbread姜饼(以上系统都是用于手机的)官方消息说2.4准备出来了!至于3.0目前只用于平板电脑

Android 4.0 Ice Cream Sandwich(简称ICS,冰淇淋三明治),

表示你需要的代码是姜饼的 所以最后是gingerbread 如果是2.2代码 就把gingerbread改成froyo

然后你需要输入你的名字跟邮箱地址

如果提示找不到repo命令的话 需要重新设置环境变量 就是之前的PATH=~/bin:$PATH

输入

repo sync

开始同步代码 这个过程会根据你的网速来决定快慢

这一步需要下载的数据有3g那么大

可以续传 一次没下完也没关系

如果之前就已经下过一次的话 只需要把源代码目录(我的是android2.3)下有一个叫.repo的隐藏文件夹里的projects文件夹备份出来就可以了

以后还需要同步的时候再把projects文件夹拷贝回去

ctrl+h查看隐藏文件

这一步可以参考

编译整个源代码:

cd android2.3

进入你的代码目录

输入

. build/envsetup.sh

注意.和build中间有个空格

输入

lunch full-eng

make -j2

输入make就是开始编译代码了 加一个-j2参数就是开两个线程去编译 速度会快些 我花了两个小时的时间

编译完毕以后马上输入

emulator

就可以运行模拟器了 系统能跑起来就说明编译成功了

如果提示找不到emulator命令的话

需要添加环境变量

在android2.3目录下的out/target/proct/generic文件夹下会看到system.img

能看到的话应该算是成功了

这一步可以参考

编译SDK:

这一步在官方网站上没有说明

但是在源代码文件夹里面有文档提到了

就是在android2.3/sdk/docs目录下有一个叫howto_build_SDK.txt的文件介绍了如何编译SDK

原文

Then once you have all the source, simply build the SDK using: $ cd ~/my-android-git $ . build/envsetup.sh $ lunch sdk-eng $ make sdk

看来不需要先编译整个系统再编译SDK 可以直接上来就编译SDK

按提示输入

make到时候也可以加上-j参数 比如 make -j2 sdk

但是不推荐 因为容易编译失败 而且编译SDK只需要二十多分钟到时间 不算很长

当出现

Package SDK: out/host/darwin-x86/sdk/android-sdk_eng.<build-id>_mac-x86.zip

的时候 就表示编译成功了 其中<build-id>默认是系统的用户名

howto_build_SDK.txt中还提到了编译ADT插件

我发现自己编译到ADT插件竟然认不到platform 自己编译出来到SDK也一样

原因不明

只要使用官方的SDK和ADT就没有问题了

具体就是把自己编译出来platform拷贝到官方SDK里到platforms文件夹下 搞过Android开发都懂的

最后:

非常简单的一步

就是直接修改源代码然后编译SDK就可以得到自己的SDK了

我就示范一个简单的例子 抛砖引玉

首先我找到TextView的代码

在frameworks/base/core/java/android/widget 如图

我在updateTextColors方法的开头添加了一句System.out.println

打印了一句话"Source Code Changed"

updateTextColors方法会在TextView的setTextColor方法中被调用

好 保存

编译

然后使用这个platform

新建一个项目

调用一下TextView的setTextColor方法看看有什么效果

一个很简单的例子

看看

Source Code Changed被打出来了

SDK修改成功

4. linux系统下如何安装android sdk

一、下载android sdk
下载SDK,下载地址:http://developer.android.com/sdk/index.html,选择Linux(i386)。因为SDK只有32位的,如果装的是64位系统,则要安装ia32-libs,运行32位程序。
ubuntu安装命令:sudo apt-get install ia32-libs(在Ubuntu中的命令)。
centos安装命令:
yum install glibc.i686

下载完成后解压,在终端进入到SDK的根目录,然后执行:tools/android update sdk –no-ui即可开始和windows里面一样的更新。

二、配置环境变量
更新完成后配置环境变量。使用命令 vi /etc/profile 编辑文件profile,然后在下面增加下面内容:
export ANDROID_HOME=/opt/softwaretools/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
/opt/softwaretools/android-sdk-linux为SDK的根目录。
这个配置之后,以后要执行android里面的命令,就不是需要进到这个目录,直接可以在终端里面输入。
修改完成后,使用命令 :wq! 保存关闭文件,再执行命令 source /etc/profile 使配置生效一下。
在终端输入:android,如果Android SDK Manager窗口出来了,就证明环境配置成功。

三、配置AVD
1、进入$SDK_HOME/toos目录
2、命令窗口运行:./android avd

5. 如何在Ubuntu下搭建Android NDK开发环境

在Ubuntu 系统下搭建Android NDK 开发环境分以下步骤:

  1. 到官网下载NDK版本。

  2. 解压到 ~/bin 目录下。

  3. 配置NDK环境变量,打开 ~/.bashrc文件: $sudovim~/.bashrc 在文件最后一行添加一行如下指令:exportPATH=$PATH:~/bin/android-ndk-r7b

  4. 保存关闭bashrc 文件,并运行ndk-build-v 查看NDK版本信息。

  5. 如果出现NDK版本信息,就表示NDK安装成功了。

6. 如何快速地安装Ubuntu SDK

1)安装Ubuntu SDK
首先,我们可以安装好我们的Ubuntu桌面系统.我们一般推荐安装最新的Ubuntu桌面系统,比如目前即将面世的16.04 LTS版本.如果已经有一个Ubuntu桌面系统,我们可以它通过如下的命令来升级我们的桌面系统到最新的系统:
[html] view plain
$ update-manager -d
依照现有的文章"Ubuntu SDK 安装"中介绍的那样,安装最新的Ubuntu SDK.
[html] view plain
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get dist-upgrade
$sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$sudo apt-get install ubuntu-sdk
$sudo apt-get install ubuntu-sdk-dev ubuntu-sdk-ide
$sudo apt update && sudo apt dist-upgrade
在上面的先开始的命令中,我们先把我们的Ubuntu桌面系统更新到最新的状态,这样使得我们的最新的SDK依赖的包都被安装到系统中以使得后面的SDK的安装能够顺利进行.否侧在我们的实际安装中,如果有的包不在系统中或是最新的,那么后面SDK的安装可能失败.
在这个步骤中,由于我们使用了ppa,所有它可以支持断点续传.如果失败了,它可以在下次安装时再次从上次中断的地方继续下载安装.一般来说我们并不担心这一步的失败.对于有些开发者来说,可以尝试使用VPN的方法来提高安装的速度.成功安装后,我们可以在dash中找到我们所需要的Ubuntu SDK
对于网路情况不是很好的开发者来说,请直接跳到下面的第三节下载已经成功安装过的chroots来安装而不需要下面的第二步.
2)安装chroots
在这个步骤中,由于它不支持断点续传,所有它是最容易导致安装失败的环节.如果我们的网路情况好的话,我们可以直接在我们的命令行中打入下面的命令来安装我们的chroots.在这个步骤中,我们可以来安装我们所需要版本的chroots.我们可以通过如下的方式找到我们手机所有支持的framework:
[html] view plain
liuxg@liuxg:~$ adb shell
phablet@ubuntu-phablet:~$ click framework list
一般来说在我们开发时,会选择我们所需要的framework(相当于iOS的版本).如果我们所定义的framework在手机中不存在,那么我的应用在手机中将不能被运行.目前我们建议使用15.04的chroots.
- armhf chroot的安装
我们可以通过如下的命令来安装我们的armhf chroot:
[html] view plain
$sudo click chroot -aarmhf -f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
- i386 chroot的安装
我们可以通过如下的命令来安装我们的armhf chroot:
[html] view plain
$sudo click chroot -ai386 -f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
[html] view plain
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
3)直接下载已有的chroots进行安装
在实际的安装中,我发现有很多的开发者在进行上面的安装时由于网路的原因而导致上面的安装不能成功.基于这个原因,我们把我已经成功安装过的chroots上传到我们的网络网盘供大家下载.等下载完后,我们再把它们解压到我们所需要的路径中.这样的安装好处是,我们可以使用各种方法进行断点下载我们打包过的chroots,并成功拷贝到相应的目录中.这个方法的缺点是:chroots可能不是最新的.开发者在以后的SDK中可以进行自动更新或手动更新我们的chroots.不过一般来说,这个chroots已经够用即使在不更新的情况下.
删除任何已经安装或安装不成功的chroots
我们可以通过上一节中介绍的方法来删除曾经没有安装成功的chroots以保证我们有干净的安装环境:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
通过上面的方法,我们确保在我们的桌面系统中没有任何我们曾经安装失败后残存的chroots文件.
下载我们上传的chroots
开发者可以到我们的网址下载我们已经上传的chroots.这个chroots是到上传时间最新的chroot.对于绝大多数的应用开发应该是没有任何问题的.当然开发者可以在以后的SDK中进行更新.
就如同我们上面显示的那样.在我们上次的chroots中,有两部分文件.
- chroot.d:
这个是需要安装到/etc/schroot/chroot.d目录中的文件.安装后的文件架构是:
[html] view plain
liuxg@liuxg:/etc/schroot/chroot.d$ tree
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
在实际的拷贝中,我们需要使用sudo来拷贝的方法这两个文件.这里的liuxg是我自己的电脑liuxg上用户名.在你们自己安装时,这个名字应该是你们自己的用户名.打开这个两个文件,同样我们需要使用sudo来编辑这两个文件,比如click-ubuntu-sdk-15.04-armhf:
[html] view plain
[click-ubuntu-sdk-15.04-armhf]
description=Build chroot for click packages on armhf
users=root,liuxg
root-users=root,liuxg
source-root-users=root,liuxg
type=directory
profile=default
setup.fstab=click/fstab
# Not protocols or services see
# debian bug 557730
setup.nssdatabases=sbuild/nssdatabases
union-type=overlayfs
directory=/var/lib/schroot/chroots/click-ubuntu-sdk-15.04-armhf

我们可以使用vi或gedit来编辑上面的文件.替换上面的"liuxg"为自己电脑上的用户名.然后存下来.我们使用同样的方法来对click-ubuntu-sdk-15.04-i386进行同样的操作.
- chroots.tar.gz
我们把这个文件拷贝到/var/lib/schroot/目录,然后我们通过如下的方法来解压缩
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ sudo tar -xvf chroots.tar.gz
解药缩后的文件架构为:
[html] view plain
liuxg@liuxg:/var/lib/schroot/chroots$ tree -L 1
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386

同样上面的"liuxg"是我自己的用户名.在实际应用中,它应该是你自己电脑上的用户名.
- 检查我们已经安装好的chroots
我们可以通过如下的方法来检查我们的chroots的安装是否已经成功:
[html] view plain
liuxg@liuxg:~$ schroot -l
chroot:click-ubuntu-sdk-15.04-armhf
chroot:click-ubuntu-sdk-15.04-i386
source:click-ubuntu-sdk-15.04-armhf
source:click-ubuntu-sdk-15.04-i386

如果我们已经看到上面的显示,表明我们的安装已经是成功的.
- 打开我们的Ubuntu SDK来检查我们的chroots
在SDK中,我们怎么来检查我们已经安装过的chroots是否已经成功呢?我们首先打开我们的SDK,然后点击菜单:
Tools ==> Options ==> Ubuntu ==>Click

如果我们已经看到我们的chroot已经在上面所示的图片中,表明我们的chroot是已经安装成功的.我们可以点击上面的Update来更新我们的chroots到最新状态.当然我们也可以点击Maintain来添加或删除我们所需要的模块或库.
4)最后一招
如果上面的所有方法都已经试过了,还是不可以的话,可以在地址下载debian文件进行安装.需要安装的文件在页面的最下面.目前使用于16.04 LTS的desktop系统.
ubuntu-sdk-api-15.04-armhf_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (573.6 MiB)
ubuntu-sdk-api-15.04-i386_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (448.8 MiB)
ubuntu-sdk-api-tools_15.04-20160122~0ubuntu1~0xenial1_all.deb (10.9 KiB)
如果大家还是有困难下载上面的文件,我们已经把它们放到我们的网络云上面了.请在网络云盘里下载.在安装我们上面的文件时,我们必须按照上面的方法先删除我们先前安装过的文件。我们可以使用如下的命令:
[html] view plain
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
然后通过如下的命令:
[html] view plain
$ sudo dpkg -i ubuntu-sdk-api-15.04-i386_15.04-20160122-0ubuntu1-0xenial1_amd64
$ sudo dpkg -i ubuntu-sdk-api-tools_15.04-20160122-0ubuntu1-0xenial1_all.deb
$ sudo dpkg -i ubuntu-sdk-api-15.04-armhf_15.04-20160122-0ubuntu1-0xenial1_amd64.deb
当然,我们也可以直接通过点击已经下载的.deb文件,并通过系统的"Ubuntu Software"应用来帮我们进行安装.等安装完后,我们也可以通过命令行来查看是否已经安装好了:
[html] view plain
$ schroot -l
我们也可以在我们的SDK的界面中进行更新的操作.当然这依赖于我们的网路速度:)

7. 怎样在Ubuntu下安装Android SDK/ADB

Ubuntu电脑安装Android SDK/ADB

第一步,你要下载Linux版Android SDK的安装或文件包,然后你需要从Android SDK Manager内下载Platform Tools
Package

请从Google官方获取Android
SDK安装或文件包,通常情况,你下载的文件名为android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz

请放置Android SDK安装或文件包在你的用户主目录

在你的Ubuntu电脑上打开终端窗口

解压Android SDK文件:
cd ~
tar -zxvf android-sdk_r16-linux.tgz

在~/android-sdk-linux/tools字目录,有一个叫做android的可执行文件,尽管名字是android,但它实际上是Android
SDK Manager

运行Android SDK Manager:
./~/android-sdk-linux/tools/android

选择Android SDK
Tools与Android SDK Platform-tools项,点Install
packages安装Platform Tools
Package工具包。包括ADB与Fastboot可执行的文件在内的工具包都会被下载,由于下载的文件较多而需要一定的时间,你能去喝点东西

你下载的Platform Tools
Package工具包文件将位于新创建的~/android-sdk-linux/platform-tools目录

第二步,修改ADB与Fastboot可执行文件的默认PATH路径环境。PATH环境变量可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件内修改,~/.profile文件是读取所有交互式Shell的登录,~/.bashrc文件读取所有非交互式Shell的登录(如sftp),在大多数默认情况下,~/.profile文件导入所有~/.bashrc文件的设置。PATH命令设定的改变必须包括/android-sdk-linux/tools与/android-sdk-linux/platform-tools目录

kevdog的PATH命令设定通过Ubuntu系统内初始的默认编辑器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools

第三步,我们需要为Ubuntu创建udev设备管理规则,从而让设备在通过USB端口连接到电脑时能被正确地识别

将设备连接到电脑,然后执行命令:
lsusb

你会看到类似于下面的输出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd

由于kevdog的设备是Samsung的某款设备,因此你能看到相应的识别信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd

我们来解释下上面的识别信息:

Bus 001 Device
063,设备端的名称是/dev/bus/usb/001/063,即这个信息可以帮助我们确定设备端的名称

04e8,vendorID,即供货商编号

6860,proctID,即产品编号

使用设备端的名称/dev/bus/usb/001/063可以让我们查询设备的属性,查询这些属性有时很有必要,因为udev设备管理匹配设备是基于特定标准的。为此,我们需要一个正确的udev设备匹配规则集,这个过程的第一步就是查询能被连接或插入到我们规则集的准则,这可以通过udevadm程序来实现,并且有两种方式现,它们生成的输出信息为我们的设备构建udev设备管理规则:

udevadm查询udev设备管理规则方法1:
udevadm info -q all -n <name of device
node>
根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:

udevadm info -q all -n /dev/bus/usb/001/063
你会看到类似于下面的输出信息:

$ udevadm info -q all -n /dev/bus/usb/001/063
P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-8
N: bus/usb/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/usb/001/063
E: DEVTYPE=usb_device
E:
DRIVER=usb
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001

E: DEVNUM=063
E: SUBSYSTEM=usb
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B06501005018
E:
ID_SERIAL_SHORT=0146B06501005018
E: ID_BUS=usb
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我们使用的规则从有E:(E=ENV=Device
Property设备属性值)的行开始

udevadm查询udev设备管理规则方法2:
udevadm info -a -p $(udevadm info -q path
-n <name of device node>)

根据原作者的实际情况,设备端名称是/dev/bus/usb/001/063,因此命令是:
udevadm info -a -p
$(udevadm info -q path -n /dev/bus/usb/001/063)
你会看到类似于下面的输出信息:

$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/001/063)

Udevadm info starts with the device specified by the devpath and then

walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
'/devices/pci0000:00/0000:00:1d.7/usb1/1-8':
KERNEL=="1-8"

SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""

ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"

ATTR{bmAttributes}=="80"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="29"

ATTR{idVendor}=="04e8"
ATTR{idProct}=="6860"

ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"

ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"

ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"

ATTR{speed}=="480"
ATTR{busnum}=="1"
ATTR{devnum}=="63"

ATTR{devpath}=="8"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"

ATTR{quirks}=="0x0"
ATTR{avoid_reset_quirk}=="0"

ATTR{authorized}=="1"
ATTR{manufacturer}=="samsung"

ATTR{proct}=="Galaxy"
ATTR{serial}=="0146B06501005018"

looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':

KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"

ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"

ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"

ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="1403"

ATTRS{idVendor}=="1d6b"
ATTRS{idProct}=="0002"

ATTRS{bcdDevice}=="0300"
ATTRS{bDeviceClass}=="09"

ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"

ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"

ATTRS{speed}=="480"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"

ATTRS{devpath}=="0"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="8"

ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"

ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.0.0-14-generic
ehci_hcd"
ATTRS{proct}=="EHCI Host Controller"

ATTRS{serial}=="0000:00:1d.7"
ATTRS{authorized_default}=="1"

looking at parent device '/devices/pci0000:00/0000:00:1d.7':

KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"

ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x27cc"

ATTRS{subsystem_vendor}=="0x103c"
ATTRS{subsystem_device}=="0x3010"

ATTRS{class}=="0x0c0320"
ATTRS{irq}=="20"
ATTRS{local_cpus}=="ff"

ATTRS{local_cpulist}=="0-7"
ATTRS{dma_mask_bits}=="32"

ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{broken_parity_status}=="0"

ATTRS{msi_bus}==""
ATTRS{companion}==""
looking at
parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"

SUBSYSTEMS==""
DRIVERS==""
我们使用的规则从有ATTRS(ATTRS=Device
Attributes设备属性)的行开始

不管是ENV,还是ATTRS,我们可以构建一个udev设备管理规则集。规则集的名称可以随意,根据原作者的意图,我们叫做51-android.rules:

你能这样建立规则集文件:
gksu gedit /etc/udev/rules.d/51-android.rules

之后,请在规则集文件中加入相关的规则,以原作者的规则来看,注意是一行一个:
SUBSYSTEM=="usb",
ENV{ID_VENDOR_ID}=="04e8", ENV{ID_MODEL}=="Galaxy", MODE="0666",
SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL_ID}=="6860", MODE="0666", SYMLINK+="GalaxyNexus"

SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProct}=="6860",
ATTR{proct}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"

如上面所加的规则,这些规则匹配准则是SUBSYSTEM,
ENV,ATTR,它只会修改设备的模式MODE(0666=rw-rw-rw-)与创建链接于/dev/GalaxyNexus的GalaxyNexus标识。当然,更多的指令可以分配给设备,如插入或移除设备时的执行命令,你能这样指定指令:

ACTION=="add", RUN+="<name of action>"
ACTION==”remove”,
RUN+="<name of action>"
例如,我们要设定设备在插入或弹出时播放一个声音或MP3文件,可以如下指令设定:

ACTION=="add", RUN+="/usr/local/bin/NexusMount.sh"

ACTION==”remove”, RUN+="/usr/local/bin/NexusUnmount.sh"

需要注意的是,每个ACTION指令设定必须在它自己的命令行;目录必须正确;指令可以是多重设定

一旦规则构建完成,我们需要保存/etc/udev/rules.d/51-android.rules规则文件

在你执行规则集前,测试一下通常是一个好主意,因为那样你能很容易地找出编写规则集的错误:

你能使用udevadm工具简单地完成规则集的测试:
udevadm info -q path -n d=<device
name>
根据原作者的设备端名/dev/bus/usb/001/063,测试行为:

udevadm test --action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"" $(udevadm info -q
path -n /dev/bus/usb/001/063)
虽然测试输出行相当长,两行输出信息正确地识别规则集的指令设定:

udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
'GalaxyNexus' /etc/udev/rules.d/51-android.rules:1

一旦你确认了规则集正确,请重启udev设备管理服务:
sudo service udev restart

第四步,退出电脑的登录,然后重新登录回

在设备插入的情况下,执行ADB命令,如确认设备连接:
$ adb devices

你会看到设备识别号信息,根据原作者的设备,它是
0146B06501005018 device

如果你的设备已启动在Fastboot模式,许多设备不启动可能也行,你能执行Fastboot命令,如标准的Fastboot设备:
$
fastboot devices

热点内容
隆地优选交易密码是什么 发布:2025-05-14 21:53:23 浏览:93
强酸强碱存储柜 发布:2025-05-14 21:45:16 浏览:563
车辆参数配置包括什么 发布:2025-05-14 21:31:03 浏览:162
怎么引入安卓项目 发布:2025-05-14 21:26:39 浏览:824
游戏辅编程 发布:2025-05-14 21:18:49 浏览:687
三菱plc一段二段密码什么意思 发布:2025-05-14 21:17:16 浏览:527
电脑开机密码忘记了怎么破解 发布:2025-05-14 21:09:40 浏览:57
pythondict格式 发布:2025-05-14 21:09:38 浏览:886
落叶片拍摄脚本 发布:2025-05-14 20:40:49 浏览:799
安卓为什么不能用cmwap 发布:2025-05-14 20:40:43 浏览:658