首页 > 其他分享 >adb sync指代的两种软件

adb sync指代的两种软件

时间:2024-02-09 12:45:05浏览次数:26  
标签:src sync system adb 指代 ANDROID OUT

第一种是指

sync [-l] [-z ALGORITHM] [-Z] [all|data|odm|oem|product|system|system_ext|vendor]
sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
-n: dry run: push files to device without storing to the filesystem
-l: list files that would be copied, but don't copy them
-z: enable compression with a specified algorithm (any/none/brotli/lz4/zstd)
-Z: disable compression

 

这个adb sync 似乎只用于把在电脑上源码构建的Android系统push到手机上

$ANDROID_PRODUCT_OUT 是一个环境变量,用于指示 Android 编译系统生成的构建输出目录的路径。在 Android 开发环境中,该变量通常设置为构建输出目录的完整路径。

Android 编译系统会根据所选的目标设备和其他配置参数,将编译结果生成到 $ANDROID_PRODUCT_OUT 目录中。该目录中包含了构建所需的各种文件和目录,例如系统镜像文件、应用程序等。

如果电脑上没有设置这个ANDROID_PRODUCT_OUT,会输出 adb.exe: product directory not specified; set $ANDROID_PRODUCT_OUT

 

https://medium.com/@yigitpirildak/syncing-aosp-build-changes-using-adb-sync-885ce12e5cc7

https://xdaforums.com/t/adb-sync-question.552372/

 


 

https://android.googlesource.com/platform/packages/modules/adb/+/refs/heads/master

看源码

        std::vector<std::string> partitions{"data",   "odm",        "oem",   "product",
                                            "system", "system_ext", "vendor"};
        bool found = false;
        for (const auto& partition : partitions) {
            if (src == "all" || src == partition) {
                std::string src_dir{product_file(partition)};
                if (!directory_exists(src_dir)) continue;
                found = true;
                if (!do_sync_sync(src_dir, "/" + partition, list_only, compression, dry_run)) {
                    return 1;
                }
            }
        }

从源码来看,

"data",   "odm",        "oem",   "product","system", "system_ext", "vendor" 这些构建出来应该都是一个个目录


bool directory_exists(const std::string& path) {   struct stat sb;   return stat(path.c_str(), &sb) != -1 && S_ISDIR(sb.st_mode); } struct stat S_ISDIR这些都是linux的库,看起来是用了mingw


 

标签:src,sync,system,adb,指代,ANDROID,OUT
From: https://www.cnblogs.com/hhdom/p/18012419

相关文章

  • react引用async异步函数数据渲染
    当需要在React组件中引用异步函数获取的数据时,可以使用useState钩子来存储数据,并在组件渲染时进行处理。下面是一个示例,展示了如何在React中引用异步函数的数据并进行渲染:importReact,{useState,useEffect}from'react';functionMyComponent(){const[data,......
  • [Go] Go routines with WaitGroup and async call
    So,let'ssaywehaveafunctiontofetchcryptocurrenciesprice:packagemainimport( "fmt" "sync" "project/api")funcmain(){gogetCurrencyData("BTC")gogetCurrencyData("BCH")......
  • 软件测试学习笔记丨App端测试—adb命令启动页面
    一、包和Activity(活动页)的概念package包:是Android应用的唯一标志Activity活动页:Android应用页面,一个页面就是一个Activity二、获取当前的页面名方法一:先启动应用执行adb命令:adbshell"dumpsyswindow|grepmCurrentFocus"三、获取启动页面的activity先执行adb命令:win:a......
  • 软件测试学习笔记丨App端测试——adb命令介绍
    一、adb简介AndroidDebugBridge(Android调试桥)简称adbAndroidsdk中提供的用于管理模拟器或真机状态的工具命令行工具二、adb操作手机设备打开应用adbshellamstart-ncom.tencent.wework/.launch.LaunchSplashActivity传输文件点击,输入,滑动等硬件操作返回,回到首页性能指......
  • 【pwn】ctfshow元旦水友赛--BadBoy
    首先先来看一下程序的保护情况这里got表可改,没有开地址随机接着看一下ida逻辑很直接,只有一个main函数,一点点分析这段代码buf[1]=__readfsqword(0x28u); init_func(argc,argv,envp); buf[0]='gfedcba'; v5=0LL; while((_DWORD)kl) {  puts("iamba......
  • 软件测试学习笔记丨App端测试——adb日志操作
    一、日志的级别V:明细verbose(最低优先级,会输出所有日志)D:调试debugI:信息infoW:警告warnE:错误errorF:严重错误fatalS:无记载silent(最高优先级,不会输出任何日志)二、adb命令查看日志adblogcat三、查看日志常用的参数adblogcat:打印默认日志数据adblogcat-vtime:打印时间adblogcat-vc......
  • org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '
    开发遇到一个问题:org.springframework.beans.factory.NoSuchBeanDefinitionException:Nobeannamed'ckhSynCardNumToMbhkJob'available这个报错可能是因为:1.spring的xml配置文件Bean中的id和getBean的id不一致2.是否是忘记加注解了,3.启动类包扫描路径是否正确经过测试发......
  • 深入浅出Java多线程(九):synchronized与锁
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第九篇内容:synchronized与锁。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在现代软件开发中,多线程技术是提升系统性能和并发能力的关键手段之一。Java作为主流的编程语言,其内置的多线程机制为开发者......
  • 【adb基础】adb详解及使用
    dumpsysdumpsys是Android系统的调试工具,提供有关系统服务的信息pm(PackageManager)主要用于获取和安装在Android设备上的应用信息。ADB运行架构adbclient--->adbshellechoxxxadbserver--->adb-ltcp:5037fork-serverserver--reply-fd4(可使用命令查看此服务ps......
  • asyncio高性能异步编程
    实现协程有这么几种方法:•greenlet,早期模块。•yield关键字。•asyncio装饰器(py3.4)•async、await关键字(py3.5)【推荐】 greenlet:#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2024/1/2222:44#@Author:Lhtester#@Filename:greenlet使用.pyfromgreenlet......