精华内容
下载资源
问答
  • 用bat脚本修改adb serial

    2018-03-20 18:32:18
    首先讲一下我要做什么:因为有些手机的serial 是一样的,...主要用到1.adb shell 2.echo serialNumber> /sys/class/android_usb/android0/iSerial主要问题1.adb shell 会中断, 2.还有一个是传参的问题解决...

    首先讲一下我要做什么:因为有些手机的serial 是一样的,我就想根据创建时间生成一串数字,作为serial写到手机中。

    主要用到1.adb shell 

                 2.echo serialNumber> /sys/class/android_usb/android0/iSerial

    主要问题1.adb shell 会中断,

                  2.还有一个是传参的问题

    解决思路:1.adb shell < ms.txt

                     2.更改ms.txt的内容



    @echo off

    setlocal enabledelayedexpansion

    @rem 根据当前时间生成一串数字,作为serial
    set serialnumber=%time:~,10%
    set sn=%serialnumber::=%

    set sn=%sn:.=%

    @rem 需要创建一个txt文件 作为修改的模板

    set fn=C:\Users\lenovo\batch\ms.txt

    @rem 所有的列 每行以空格分隔
    for /f "tokens=* delims= " %%i in (%fn%) do (
      echo %%i
      set str=%%i
      @rem 将行中sn字符替换成自己生成的随机数,并写入ms。txt;这里的ms.txt和之前创建的ms.txt不是同一个文件;
      @rem 这个文件应该在系统的根目录下
      echo !str:sn=%sn%! >ms.txt

    )

    @rem 下面的无关紧要
    echo exit >> ms.txt
    start ms.txt

    adb shell < ms.txt
    adb kill-server
    adb devices


    下面的是ms.txt 的内容:

    echo sn > /sys/class/android_usb/android0/iSerial

    弄了一下午,转载请标明出处

    展开全文
  • adb 修改设备的serial号码

    万次阅读 2017-02-06 11:32:54
    参考: adb 修改设备的serial号码 adbserial number要如何修改

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/54865043 文章出自:薛瑄的博客

    你也可以查看我的其他同类文章,也会让你有一定的收货!

    最近在做一个功能,就是APP要与设备绑定,需要获取设备的唯一且固定的序列号,硬件方提供了与serial绑定的方法,可以通过pc端来更改serial,就去了解了一下怎么修改serial号码。

    这个序列号就是adb devices,后返回的一串符号

    我的思路是,这个serial号码是android设备都有的,还可以改变,代码也可以读取到,应该就是存储在系统的某个文件里面。最后让我找到了这个文件路径

    /sys/class/android_usb/android0/iSerial

    修改序列号,也很简单,见下面的代码

    root@Android:/sys/class/android_usb/android0 # cat iSerial
    19761202
    root@android:/sys/class/android_usb/android0 # 
    root@android:/sys/class/android_usb/android0 # echo 19761203 > iSerial
    root@android:/sys/class/android_usb/android0 # cat iSerial                     
    19761203
    root@android:/sys/class/android_usb/android0 #

    如果adb devices查看设备发现的序列号没有改变,这个应该和adb的主机端服务有关。。。先kill掉服务,再查看设备。

    adb kill-server
    adb devices

    参考:
    adb 修改设备的serial号码
    adb 的serial number要如何修改?

    关注我的公众号,轻松了解和学习更多技术
    这里写图片描述

    展开全文
  • 所以只能研究SN的产生过程,过程中看了两篇比较好的文档在本篇后面附上如下是最种修改的代码,只需要在某个目录下添加一个文件,将SN写入其中,重启后serial number就会修改掉。...
    最近需要修改高通SN号,但是工具写入的SN在设置serial number中不生效,所以只能研究SN的产生过程,过程中看了两篇比较好的文档在本篇后面附上


    修改高通SN号,需要修改地方有3

    1:添加文件/persist/.sc_serialno.bin,其中写入ro.sc.serialno=SN 如ro.sc.serialno=99999999

    2:在高通的btnvtool工具代码main函数修改如下:

    diff --git a/vendor/qcom/proprietary/bt/hci_qcomm_init/btnvtool.cpp b/vendor/qcom/proprietary/bt/hci_qcomm_init/btnvtool.cpp

    index 53f361f..6f96b3a 100755
    --- a/vendor/qcom/proprietary/bt/hci_qcomm_init/btnvtool.cpp
    +++ b/vendor/qcom/proprietary/bt/hci_qcomm_init/btnvtool.cpp
    @@ -112,13 +112,14 @@ int main(int argc, char *argv[])
    {"board-address", required_argument, NULL, 'b'},
    {"reference-clock", required_argument, NULL, 'r'},
    {"enable-clock-sharing", required_argument, NULL, 'c'},
    + {"set-serial_number", no_argument, NULL, 's'},
    {"print-all-nv", no_argument, NULL, 'p'},
    {"on-boot-config", no_argument, NULL, 'O'},
    {"help", no_argument, NULL, 'h'},
    {0, 0, 0, 0}
    };
    - c = getopt_long (argc, argv, ":b:c:r:Op",
    + c = getopt_long (argc, argv, ":b:c:r:Ops",
    long_options, &option_index);
    if (c == -1)
    break;
    @@ -347,7 +348,51 @@ int main(int argc, char *argv[])
    fprintf (stderr, "--clock-sharing: %s \n",
    my_nv_item.bt_soc_clk_sharing_type?"Enabled":"Disabled" );
    break;
    -
    + case 's':
    +//add for serial number set
    + {
    + FILE *fp_src = fopen("/persist/.sc_serialno.bin","r");
    + if(fp_src == NULL){
    + fprintf (stderr, "/persist/.sc_serialno.bin not exist !!!\n");
    + }else{
    + char buffer_src[24]={'\0'};
    + fgets(buffer_src,24,fp_src);
    + fclose(fp_src);
    + if(0 != strncmp(buffer_src,"ro.sc.serialno=",15)){
    + fprintf (stderr, "/persist/.sc_serialno.bin file err1 !!!\n");
    + return 0;
    + }else{
    + for(int i=15;i<23;i++){
    + fprintf (stderr, "[%d]!!!\n",buffer_src[i]);
    + if(!(buffer_src[i] >= '0' && buffer_src[i] <= '9')){
    + fprintf (stderr, "/persist/.sc_serialno.bin file err2 !!!\n");
    + return 0;
    + }
    + }
    + char buffer_a_line[50]={0};
    + long cur_pos=0;
    + bool prop_exist = false;
    + FILE *fp_dst = fopen("/vendor/default.prop","r+");
    + if(fp_dst != NULL){
    + while(fgets(buffer_a_line,50,fp_dst)){
    + if(0 == strncmp(buffer_a_line,"ro.sc.serialno",sizeof("ro.sc.serialno")-1)){
    + fseek(fp_dst,0,SEEK_SET);
    + fseek(fp_dst,cur_pos,SEEK_CUR);
    + fputs(buffer_src,fp_dst);
    + prop_exist = true;
    + break;
    + }
    + cur_pos = ftell(fp_dst);
    + }
    + if(prop_exist == false){
    + fputs(buffer_src,fp_dst);
    + }
    + fclose(fp_dst);
    + }
    + }
    + }
    + }
    + break;
    default:
    printf ("%s: Unrecognized option: %c\n\n", argv[0], optopt);
    /* fall through */
    @@ -364,6 +409,7 @@ int main(int argc, char *argv[])
    printf (" -O\t--on-boot-config\t\tOn boot BD address generation\n");
    printf ("\noption flags:\n");
    printf (" -h\t--help\t\t\t\tprint this usage message\n");
    + printf (" -s\t\t\t\tset serial_number\n");
    return 1;
    break;
    }


    此段代码将/persist/.sc_serialno.bin中的内容写入/vendor/default.prop中。

    这个/vendor/default.prop文件中的属性内容在系统启动时由init进程执行时会读入共享内存中,所以可以通过property_get可以获取到ro.sc.serialno=99999999

    3:由于系统会使用ro.serialno的值作为SN号,所以修改init.cpp代码,使得系统将属性ro.sc.serialno的值传给ro.serialno

    diff --git a/system/core/init/init.cpp b/system/core/init/init.cpp
    index e5aa0e2..eb25e23 100755
    --- a/system/core/init/init.cpp
    +++ b/system/core/init/init.cpp
    @@ -471,7 +471,7 @@ static void export_kernel_boot_props() {
    const char *dst_prop;
    const char *default_value;
    } prop_map[] = {
    + //{ "ro.boot.serialno", "ro.serialno", "", },
    - { "ro.boot.serialno", "ro.serialno", "", },
    { "ro.boot.mode", "ro.bootmode", "unknown", },
    { "ro.boot.baseband", "ro.baseband", "unknown", },
    { "ro.boot.bootloader", "ro.bootloader", "unknown", },
    @@ -1076,9 +1076,6 @@ int main(int argc, char** argv) {
    signal_handler_init();
    property_load_boot_defaults();
    + std::string value = GetProperty("ro.sc.serialno", "");
    + std::string value_2 = GetProperty("ro.boot.serialno", "");
    + property_set("ro.serialno", (!value.empty()) ? value.c_str() : value_2.c_str());
    export_oem_lock_status();
    start_property_service();



    修改完此三处后,如下动作使其生效:

    1:编译mmm vendor/qcom/proprietary/bt/hci_qcomm_init/

    生成最新的out/target/product/msm8998/vendor/bin/btnvtool

    将其放入/vendor/bin/中:adb push btnvtool /vendor/bin

    2:创建/persist/.sc_serialno.bin文件:echo "ro.sc.serialno=99999999" > /persist/.sc_serialno.bin

    3:执行btnvtool工具: ./vendor/bin/btnvtool -s

    查看/vendor/default.prop是多了一行:ro.sc.serialno=99999999

    4:然后重启机器,开机后在设置中查看serial number是99999999

    修改完成。





    展开全文
  • 突然发现用adb devices命令查看时,这两个手机的serial号码完全一样。因为这是公司的同一款机器。。。。这就没法同时连接了。 apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb devices List of...

        在公司调试多台手机,因为要做对比,因此通过usb同时连接了两台手机在电脑上。突然发现用adb devices命令查看时,这两个手机的serial号码完全一样。因为这是公司的同一款机器。。。。这就没法同时连接了。

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb devices
        List of devices attached 
        19761202 device
        19761202 device

        必须要修改下这个号码才可以区别。。。。

        凭经验在编译生成的rootfs搜索了一下“19761202”

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/out/target/product/xxxxxxx/root$ grep -nr "19761202" --color .
        ./init.xxxxxxx.usb.rc:4: write /sys/class/android_usb/android0/iSerial 19761202

        原来是这样的。。。。

        那只接去修改sys文件就好了么。。。

        先连上一台机器,adb root进去。。。

        root@android:/sys/class/android_usb/android0 # cat iSerial
        19761202

        root@android:/sys/class/android_usb/android0 # 
        root@android:/sys/class/android_usb/android0 # echo 19761203 > iSerial
        root@android:/sys/class/android_usb/android0 # cat iSerial  
        19761203

        root@android:/sys/class/android_usb/android0 #

        修改成功! 

        现在把两台机器都连上,然后adb devices一下!

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb devices
        List of devices attached 
        19761202 device
        19761202 device

        我靠咋没变???

        三秒钟后。。。

        经验告诉我。。。这个应该和adb的主机端服务有关。。。先kill了再说!

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb kill-server
        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb devices
        * daemon not running. starting it now on port 5037 *
        * daemon started successfully *
        List of devices attached 
        19761202 device
        19761203 device

        哦耶!搞定!

        下来就可以用adb的-s参数同时连接这些机器了。

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb -s 19761202 root
        restarting adbd as root
        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb -s 19761202 shell
        root@android:/ # 

        在另一个终端中:

        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb -s 19761203 root
        restarting adbd as root
        apuser@YaochuanLiubt:~/mywork/4.1-3.4/kernel/arch/arm/configs$ adb -s 19761203 shell
        root@android:/ #

    转载于:https://www.cnblogs.com/lance-ehf/archive/2013/05/23/3094031.html

    展开全文
  • 玩转ADB命令(ADB命令使用大全)

    万次阅读 多人点赞 2017-10-27 10:53:39
    我相信做Android开发的朋友都用过ADB命令,但是也只是限于安装应用push文件和设备重启相关,根深的也不知道了,其实我们完全可以了解多一点,有一些不常用的场景我们至少应该知道它可以做到,比如,我们知道adb ...
  • 在网上看到有人给出代码是...但是试验过发现,部分手机显示为null,还有两部ZTE手机显示一样:0123456789ABCDEF,但是在adb devices下显示为:ZTE_U807 ZTE_U817 (与手机型号一样)。谁有这方面知识,分析一下,谢谢。
  • 1.打开DOS命令行 ,输入adb,回车,可查看命令帮助。 2.adb devices 回车,显示设备列表: ...[serialNumber] [state] 022BTF7N43047029 device 037c708040609357 device adb -s 022BTF7N43047029 shell 回车
  • adb

    2018-04-04 16:45:29
    转自:https://github.com/mzlogin/awesome-adbADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎提 PR 和 Issue 补充指正,觉得...
  • adbadb shell

    2013-03-19 21:19:00
    adb常用命令: adb devices 查看与计算机...adb get-serialno 获取与计算机连接设备的serialnumber adb get-state 获取与计算机连接设备的状态 注:adb -d 发送命令给usb连接的设备 adb -e发送命令给模拟器 ...
  • Android ADB

    2017-07-03 11:50:25
    adb 的工作方式在您的设备上启用 adb 调试通过 WLAN 连接到设备查询设备将命令发送至特定设备安装应用设置端口转发将文件复制到设备/从设备复制文件停止 adb 服务器adb 命令参考发出 shell 命令 调用 Activity ...
  • Android ADB命令

    2018-07-17 09:30:24
    adb基本指令 Shell AM&...进入指定设备 adb -s serialNumber shell 查看版本 adb version 查看日志 adb logcat 查看设备 adb devices 连接状态 adb get-state 启动ADB服务 adb start-...
  • adb常用指令

    2019-08-02 14:56:44
    root uid 0 gid0 system uid 1000 gid1000 shell uid 2000 gid2000 app uid >10000 gid >10000 ...adb -s serialNumber shell adb shell 进入手机管理 adb install apkpath -r -f -s adb u...
  • adb 命令

    2019-09-21 10:14:57
    Adb常用命令小结 adb version 显示adb版本 adb help 帮助 adb start-server 启动 adb kill-server 停止 adb 服务器 一.设备控制 -d 指定当前唯一通过 USB 连接的 Android 设备为...serialNumber>...
  • Awesome Adb

    千次阅读 2016-08-30 22:01:41
    adb大全
  • Android adb

    千次阅读 2013-12-07 10:22:29
    Android调试桥接器,简称ADB (Android Debug Bridge),是用于管理模拟器或真机状态的万能工具,采用了客户端-服务器模型,包括三个部分: l 客户端部分,运行在开发用的电脑上,可以在命令行中运行adb命令来调用该...
  • ADB

    千次阅读 2011-10-19 16:41:44
     本章内容为开发者指南(Dev Guide)/Developing/Tools/adb,这是一篇非常优秀的译稿,翻译来自"移动云_文斌",欢迎访问它的博客:"http://blog.csdn.net/caowenbin",再次感谢"移动云_文斌" !期待你一起参与翻译...
  • adb 常用指令

    2015-04-05 22:58:21
    adb -s serialNumber shell  adb shell 进入手机管理 adb install apkpath -r -f -s  adb uninstall apkpackname -k  adb push 电脑端文件路径 手机端文件路径 adb pull 手机端文件路径 电脑端文件路径 adb...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,878
精华内容 1,151
关键字:

adbserial修改