我有两个智能手机(ZTEV788d,系统Android 2.3.6)同时连接到计算机(Ubuntu 11.10),使用命令:adb devices我得到了这个:
List of devices attached
P753A12D device
P753A12D device
Run Code Online (Sandbox Code Playgroud)
序列号是一样的!
我在计算机端编写了一个应用程序来与这两款手机进行通信,例如安装应用程序和推送文件.
我使用了这些命令:
adb -s P753A12D install XXX.apk
adb -s P753A12D push XXX /sdcard
Run Code Online (Sandbox Code Playgroud)
现在这两个手机有相同的序列号(P753A12D),当我运行这些命令时,我收到此错误:
error:more than one device
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:
顺便说一下,当我运行测试时,WiFi/3G网络将被关闭.
Ale*_*kin 15
今天我找到了解决这个问题的简单方法.
adb devices -l
Run Code Online (Sandbox Code Playgroud)
您将获得具有限定符的设备列表
List of devices attached
P753A12D device usb:26200000 transport_id:1
P753A12D device usb:24400000 transport_id:2
Run Code Online (Sandbox Code Playgroud)
然后你可以使用限定符而不是像这样的序列号
adb -s usb:26200000 install xxx.apk
Run Code Online (Sandbox Code Playgroud)
或者transport_id和-t
adb -t 1 install xxx.apk
Run Code Online (Sandbox Code Playgroud)
如果您的设备已植根,请
尝试用这种方法
更改设备的序列号,首先将其中一个连接到PC,然后在cmd中键入
adb devices
Run Code Online (Sandbox Code Playgroud)
这会显示您的设备ID(序列号)。
List of devices attached
P753A12D device
Run Code Online (Sandbox Code Playgroud)
选择一些新名称,例如NAME1,
然后键入以下命令
adb shell
su
device_name="NEW_NAME"
cd /sys/class/android_usb/android0/
echo -n $device_name > iSerial
cat iSerial
Run Code Online (Sandbox Code Playgroud)
exit从root
exit退出从shell退出
START
现在拔掉USB电缆并运行此命令
adb kill-server
Run Code Online (Sandbox Code Playgroud)
再次连接您的设备并输入
adb devices
Run Code Online (Sandbox Code Playgroud)
现在您可以看到更改
List of devices attached
New_NAME device
Run Code Online (Sandbox Code Playgroud)
END
注意:如果第一次无法使用
,请断开手机,然后重新执行指南中从START到END的这一部分。
序列号的目的是唯一标识设备,因此它们应该不同。话虽这么说,但有些制造商并不介意。固件也可能错误地报告了数字。
您可以检查实际设备上的序列号,看看是否与adb报告的内容相符。
Settings > About Device > Phone Identity > Device Serial Number
Run Code Online (Sandbox Code Playgroud)
据我所知,没有一种简单或一致的方法可以做到这一点。以下是其他人已经完成这项壮举的一些例子(但我还没有):
xda-developers.com - 更改任何 mtk android 手机的 Wifi、BT、IMEI、序列号
Hugestreet.info - 如何更改任何 Android 设备的 IMEI、设备 ID
如果一次仅连接一台设备,则运行命令应该不会有任何问题。
我遇到了同样的问题.这是因为adb工具使用序列号来识别连接到usb的设备而不是它们的设备路径(肯定是唯一的).
如果您想亲自动手,请下载Android源代码树,转到system/core/adb/transport.c,将其更改为:
void register_usb_transport(usb_handle *usb, const char *serial, const char *devpath, unsigned writeable)
{
atransport *t = calloc(1, sizeof(atransport));
D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb,
serial ? serial : "");
init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM));
// if(serial) {
// t->serial = strdup(serial);
// }
if(devpath) {
t->devpath = strdup(devpath);
t->serial = strdup(devpath);
}
Run Code Online (Sandbox Code Playgroud)
键入make adb从顶层路径和瞧.设备使用usb路径进行识别.现在,您只需单击一下即可从Eclipse安装和执行所有设备.
| 归档时间: |
|
| 查看次数: |
17711 次 |
| 最近记录: |