Android8.1(O1)CTS失败项纪录

1、CtsLibcoreTestCases libcore.java.net.SocketTest#testSocketTestAllAddresses

  • 网络问题,需要在IPV6的环境下进行测试

2、CtsLocationTestCases android.location.cts.GnssPseudorangeVerificationTest#testPseudoPosition

  • 在测试之前确保工模下有搜到卫星信号,可以在笔记本上设定cts 环境,然后在户外测试。或者使用室内GPS信号放大器

3、CtsKeystoreTestCases android.keystore.cts.KeyAttestationTest#testEcAttestation

  • 该项测试需要申请google key

4、CtsCarrierApiTestCases
android.carrierapi.cts.CarrierApiTest#testGetIccAuthentication
android.carrierapi.cts.CarrierApiTest#testHasCarrierPrivileges
android.carrierapi.cts.CarrierApiTest#testSendDialerSpecialCode

  • 需要使用特殊sim卡

5、CtsAutoFillServiceTestCases
android.autofillservice.cts.WebViewActivityTest#testAutofillAndSave
android.autofillservice.cts.WebViewActivityTest#testAutofillNoDatasets
android.autofillservice.cts.WebViewActivityTest#testAutofillOneDataset
android.autofillservice.cts.WebViewActivityTest#testSaveOnly

  • 可申请豁免,Google bug id :70815921

6、CtsDeqpTestCases
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_elements_instanced_base_vertex_invalid_map
GLES31.functional.debug.negative_coverage.get_error.vertex_array#draw_range_elements_base_vertex_invalid_map

  • 可申请豁免,Google bug id : 37942569

7、CtsIncidentHostTestCases(cts-on-gsi)
com.android.server.cts.BatteryStatsValidationTest#testWifiDownload
com.android.server.cts.BatteryStatsValidationTest#testWifiUpload

  • 可申请豁免,Google bug id : 69386624

8、CtsAppSecurityHostTestCases(cts-on-gsi)
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallAllFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallDependentFeatureSplitsAndConfigSplits
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplit
android.appsecurity.cts.IsolatedSplitsTests#testInstallOneFeatureSplitAndConfigSplits

  • 可申请豁免,Google bug id : 70697855

android.appsecurity.cts.OverlayHostTest#testInstallingOverlayHasNoEffect

  • 可申请豁免,Google bug id : 71958344

android.appsecurity.cts.UsesLibraryHostTest#testMissingLibrary
android.appsecurity.cts.UsesLibraryHostTest#testUsesLibrary

  • 可申请豁免,Google bug id : 71958671

9、CtsAutoFillServiceTestCases(cts-on-gsi)
android.autofillservice.cts.AttachedContextActivityTest#testAutofill

  • 可申请豁免,Google bug id : 71960322

10、CtsSpeechTestCases(cts-on-gsi)
android.speech.tts.cts.TextToSpeechTest#testSpeak
android.speech.tts.cts.TextToSpeechTest#testSpeakStop
android.speech.tts.cts.TextToSpeechTest#testSynthesizeToFile

  • 可申请豁免,Google bug id : 64204643

11、CtsDeqpTestCases(cts-on-gsi)
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#compute
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#fragment
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex
EGL.functional.robustness.reset_context.shaders.infinite_loop.shared_context_status#vertex_and_fragment

12、CtsDumpsysHostTestCases(cts-on-gsi)
android.dumpsys.cts.ProcessStatsDumpsysTest#testProcstatsOutput

  • 可申请豁免,Google bug id : 72540761

13、CtsPermission2TestCases android.permission2.cts.PrivappPermissionsTest#testPrivappPermissionsEnforcement

 

Android8.1认证新特性与要求

本文主要说明Android8.1过GMS认证的一些新特性和新要求。

新增测试

Android7.x以及之前的版本,如果要过GMS认证,只需要完成CTS测试、GTS测试和CTS Verifier,如果全部通过,将软件送给google授权的实验室即可。

Android8.0以后,除了要完成默认版本的CTS测试、GTS测试和CTS Verifier之外,新增加了两个新的测试。

这两个新的测试需要在替换谷歌提供AOSP的system.img (GSI)的版本上进行,分别是:

新特性与新要求

认证要求

google Key

从Android O开始,必须实现一个硬件支持的密钥库,google要求使用Google key来进行认证。

Google key将以keybox.ml文件的方式提供给OEM厂商,包含以下内容:

  • 请求keybox.ml时由OEM分配的设备唯一设备ID。
  • 一个ECDSA认证密钥,采用PEM格式。
  • 一个RSA认证密钥,采用PEM格式。
 
image.png

如何申请google key

官方说明如下:

OEMs will upload a set of device IDs and download an XML keybox file containing keys for those device IDs

实际操作中可能需要提交相关信息给google授权的GMS实验室,从还实验室获取相关的 google key 文件。

测试相关

CTS测试

1、Cts Media Files

  • 版本要求 CTS Media 1.4 及以上版本
  • Media文件存放位置要求:在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

 

Android8.x新增cts测试(VTS下测试GSI版本)

Android 8.0之后,由于平台架构的更改,GMS认证增加了新的测试项,包括VTS和针对GSI版本的CTS测试,本文主要介绍Android8.1针对GSI版本的CTS测试,VTS测试可参考Android VTS测试

测试环境配置

1、更换google的GSI
  • 设置中打开 OEM unlocking 选项
  • 设置中打开 USB debugging 选项
  • 长按音量 + 和电源键进入fastboot模式
  • 连接到电脑上,分别执行fastboot flashing unlockfastboot oem unlock
    执行命令后需要选择音量 + 来确认unlock。
  • 执行 fastboot 命令刷入google提供的 system.img (GSI):
    fastboot flash system system.img(需要根据软件版本的信息来选择GSI版本)
  • 重启: fastboot reboot
2、测试前准备
  • cts测试环境配置 : CTS测试配置
  • vts测试环境配置 :
    安装 Python 开发工具包:sudo apt-get install python-dev
    安装协议缓冲区工具(适用于 Python):sudo apt-get install python-protobuf protobuf-compiler
    安装 Python 虚拟环境相关工具:sudo apt-get install python-virtualenv python-pip
  • Media 媒体包:要求 CTS Media 1.4 及以上版本,在Android8.1的测试中,media文件要放在电脑中的/tmp/android-cts-media路径下,测试前不需要将Media文件拷贝到手机中,测试时会自动拷贝。如果/tmp/android-cts-media路径下没有media文件,将会从网上下载,由于文件比较大,比较耗时

运行针对GSI版本的CTS

  • 1、下载并解压vts测试工具包
  • 2、切换到android-vts的位置下:
    $ cd android-vts
  • 3、进入android-vts目录下,运行vts测试的控制台程序
    $ ./android-vts/tools/vts-tradefed
  • 4、运行 cts-on-gsi 测试
    > run cts-on-gsi​​

 

Android GMS认证-CTS/GTS/CTSV

 

GMS认证包括三个部分:CTS、GTS、CTS Verifier;Android8.0以后,增加了两个新的测试,分别是:

VTS 测试 和 cts-on-gsi

CTS是兼容性测试,CTS Verifier是对CTS的补充,主要是通过手动测试来完成。

GTS的全称是Google Mobile Services Test Suite

1、测试工具和测试环境

1)测试工具

      测试工具分为三个部分,CTS工具、GTS工具和CTS Verifier工具

      CTS和CTS Verifier的官方获取路径为:CTS工具下载地址

      GTS的工具要google或者google授权的实验室获取。

2)测试环境搭建

      电脑的配置要求(电脑为ubuntu14.04、以CTS7.0_R16和GTS5.1_R2为例):

      1、从cts-tradefed脚本中可以看出,运行前首先会检查java、aapt、adb是否可用

          对于cts来说java版本的要求是:1.6, 1.7 or 1.8 is required

      2、从gts-tradefed脚本中可以看出,运行前首先会检查java、adb是否可用

          对于gts来说java版本的要求是:1.8 is required

      3、 保证手机可以连接到测试的ubuntu电脑 

          可以通过’adb devices’来查看手机是否正确连接电脑     

      手机的配置要求

      1、确保wifi可访问google服务且稳定,设置VPN,确保IPV6可用。

      2、确保测试设备附近有可用的蓝牙设备。

      3、如果不是刚刷机或者恢复出厂设置的的手机,需要设置Settings > Backup & reset > Factory data reset

      4、语言要设置为英语,Settings > Language & input > Language

      5、要打开位置,Settings > Location > On

      6、Settings > Security > Screen lock > None

      7、Settings > Developer options > USB debugging

      8、Settings > Date & time > Use 24-hour format > Off

      9、Settings > Developer options > Stay Awake > On

    10、下载最新的CTS Media Files,拷贝到手机里面,可以单独拷贝某个分辨率的。

        chmod u+x copy_media.sh

      ./copy_media.sh

    11、保证手机IMEI号正确

2、测试命令以及结果查看

1)CTS测试

1、运行CTS脚本

      a、进入cts目录/android-cts/tools

      b、执行sudo ./cts-tradefed

      c、进入后可以执行help或者run cts –help-all查看帮助命令

2、执行CTS测试

      a、执行整个CTS的测试:

            run cts –plan CTS

            如果多台手机一起跑测,可使用下面命令:

          run cts –plan CTS –shards 2 -o -d –skip-system-status-check        com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker

            注:-o = –skip-preconditions ,-d =–skip-device-info, –skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker

则可以跳过网络连接检测,这样可以节省不少时间。

      b、CTS第一遍结束之后,会有很多没有执行的项,需要执行如下命令:

            run cts –retry session-id –retry-type NOT_EXECUTED

 
 

            假如第一次的session-id是0,则命令为

            run cts –retry 0 –retry-type NOT_EXECUTED

  c、继续未完成的cts测试

            执行l r 命令,锁定需要继续跑的session_id : run cts –retry session_id

 
 

            假如要重跑session-id为0的失败项,则执行:  run cts –retry 0

3、执行单独模块或者单独测试项

 
 

        a、测试单个模块

            run cts -m <模块名>

        b、测试单个测试项

            run cts -m <模块名> -t <test_name>

4、CTS测试报告及log

        1、测试报告

            路径:文件位于android-cts/results下面

            命名规则:以测试开始执行的日期和时间命名

            查看报告文件:test_result.xml(建议使用火狐浏览器打开)

        2、CTS log

            路径:文件位于android-cts/logs

            命名规则:以测试开始执行的日期和时间命名

2)GTS测试

1、GTS测试手机端配置

        GTS测试的配置和CTS基本上是一致的,但是不需要安装CTS media媒体包。

2、运行GTS脚本

        a、进入cts目录/android-gts/tools

        b、执行sudo ./gts-tradefed

        c、进入后可以执行help或者run gts –help-all查看帮助命令

3、执行GTS测试

        a、执行整个GTS的测试:

              run gts –plan GTS

        b、GTS第一遍结束之后,如没有执行的项,需要执行如下命令:

              run gts –retry session-id –retry-type NOT_EXECUTED

              假如第一次的session-id是0,则命令为:

              run gts –retry 0 –retry-type NOT_EXECUTED

        c、继续未完成的gts测试

            执行l r 命令,锁定需要继续跑的session_id:

            run gts –retry session_id

            假如要重跑session-id为0的失败项,则执行:

            run gts –retry 0

4、执行单独模块或者单独测试项

        a、测试单个模块 : run gts -m <模块名>

        b、测试单个测试项:run gts -m  <模块名> -t <test_name>

5、GTS测试报告及log

        1、测试报告

            路径:文件位于android-gts/results下面   

            命名规则:以测试开始执行的日期和时间命名

            查看报告文件:test_result.xml(建议使用火狐浏览器打开)

        2、GTS log

            路径:文件位于android-gts/logs

            命名规则:以测试开始执行的日期和时间命名

3)CTS Verifier测试相关

1、测试准备

        1、根目录下安装CtsVerifier.apk、NotificationBot.apk

            adb install -r CtsVerifier.apk         

            adb install -r  NotificationBot.apk

        2、设置里security-Device administrators开启cts verifier

        3、打开手机上的CTS Verifier应用,根据提示测试每一项

2、保存查看结果

        所有测试完成后,点击CTS Verifier测试工具右上角的保存按钮,会提示结果保存位置,连接电脑,将结果拷贝到电脑即可查看。

 

Android Go简述与其GMS认证

什么是 Android Go?

Android Go 是 google 基于 Android8.x之后的系统,提出的一个轻量级操作系统解决方案,可以在低内存的设备上以较好的体验运行Android系统。

Android Go 对手机的配置要求较低,最低为512M的内存,通常会在不超过1GB 内存的设备上运行。Android Go 是谷歌在新兴市场进一步扩展 Android 系统计划的一部分,其较低的价格能够涵盖大部分低端用户。

Android Go版本的一些特性:

  • Android Go不支持平板设备
  • 支持Android Go的芯片厂商有:MTK、展讯、高通
  • Android Go版本优化了速度、内存使用率;减少了apk的大小
  • Android Go版本和普通版本相比,在安全性上面并没有作出妥协
  • 部分功能,如画中画,多窗口等将不再在Android Go版本中提供
  • N版本无法通过OTA升级到Android Go

Android Go的官方网站:https://www.android.com/versions/oreo-8-0/go-edition/


Android Go 的特点

Android Go 包含三个方面的优化 :操作系统,谷歌Play商店,谷歌应用程序,将能更好地运行在入门设备上。

1、更大的可用空间

体积更小的应用程序,更多的可用存储空间,以及多样的内容的存储方式

  • 减少预装应用的数量,安装轻量级的app(占用更少的存储空间),将获取更多的剩余存储空间
  • 创建下载和更新更少的全新应用,不仅可以减少占用的空间,同时显著提高应用的性能
  • google的新应用Files Go,可以帮助快速查找文件,并且过滤不需要的内容
2、更好的性能

通过使用增强型应用程序和一些新应用程序,构建快速流畅的手机体验,可以比以往更快地发送邮件,获取答案,查找路线和玩游戏。

  • Google Go 应用Google Go 可以通过简单的输入轻松快速地找到热门的搜索、网站和应用程序,趋势图像和GIF动画。
  • Google Assistant Go 应用Google Assistant 可以在低于1G的设备上使用,给用户带来轻量化的语音交互体验
  • Gboard 应用自动更正错误、语音输入、多语言打字帮你更轻松的沟通,还提供了GIF动画、表情符号。目前有220语言,是支持语言最多的输入法
3、节省流量

通过一个内置的数据管理器和更多的选项来对流量进行检测和管理,而不仅仅是控制流量的使用。

  • Data Saver默认是打开的,可即时节省流量。 用来控制哪些应用程序可以使用您的流量,何时可以使用
  • Peer-to-Peer Sharing
    随时随地分享您最喜爱的内容。 通过Files Go去分享视频,不会消耗流量。
  • Chrome 浏览器
    Chrome浏览器配备了自己的流量节省程序,默认是打开的,它限制后台数据,并帮助您节省多达60%的移动数据。

4、系统安全

Android Go在用户安全方面也没有妥协,具有和Android Oreo相同的关键安全服务,带有Google Play Protect内置的移动安全功能,可保护应用程序和数据的安全

  • 每天有超过20亿台设备受到保护,扫描程序针对移动数据使用进行了优化,因此不会浪费您的流量。
  • 内置查找我的设备功能如果设备丢失或被盗,只需从其他设备登录到您的Google帐户,即可追踪,设置密码或清除密码。
  • 扫描所有安装的应用
    可以扫描所有应用的安装,无论从何处下载,无论是否连接到网络。
5、其他
  • 专门为 Android Go推出的 Google Play 应用商店,该版本的应用商店可以收到 Google 专门为Android Go设备推荐的轻量化应用,尤其是那些不吃内存、不抢空间、节省流量的应用。
    play-store-apps_1x.png
  • 为了配合 Android Go,Google 推出了一系列新应用:<Google Go>、 <Google Assistant Go>、<Gboard>、<Google Play>、<Chrome>、<YouTube Go>、<Google Maps Go>、<Gmail Go>、<Files Go>

这些应用的特征都是占用空间小,速度流畅,就是所谓的轻量化。以Google Go为例,与之前版本相比它最多消耗 40% 的流量,安装包大小不超过 5MB,使用体验更快也更加简单。


Android Go的GMS认证

这里暂时只列出Android Go版本以GMS Express plus方式过认证的部分要求:

  • Google Search 搜索:要预装Google search Go的版本,默认在default Home screen 且为唯一的搜索apk。
  • Google Assistant 语音助手:要预装Assistant Go的版本,要成为设备上唯一的语音助手。
  • Mail 信件:要预装Gmail Go的版本,Gmail是设备上唯一的信件app。
  • Calendar 日历:要预装Google Calendar的一般版本,是设备上唯一的日历应用
  • keyboard 输入键盘:要预装Gboard Go的版本,是设备上唯一的输入键盘app。
  • Gallery 相册:预装 Google Photos一般版本,没有特殊要求。
  • SMS Messaging: 预装Android Messages一般版本,要求为设备上唯一的短信app,且位置要在Hotseat上
  • Browser浏览器 : 预装Chrome Browser一般版本,作为默认浏览器,且摆放在Hotseat位置。
  • Video Conferencing:预装Google Duo的一般版本,没有要求。
  • Google Feed: 预装google Feed,没有特殊要求。
  • Youtube: 预装一般版本或者Go版本,依据Go的Geo-table表格来判断,放在首页上。
  • Google Map :预装Google Maps go版本,只能在大于512M的设备上加入。
  • Files Go: 要求预装 Files Go,要求为设备上唯一的文件管理应用。

注意点:
1、Youtube&Youtube Go 依据Geo-table放置在主页面上

2、Messaging和Chrome需要放置在hotseat,其中Chrome要设置为默认浏览器

3、其他的按照一般GMS配置

4、Android Go不能出俄罗斯市场。

 

Android VTS测试

1、VTS简介

VTS的全称是 Vendor Test Suite(供应商测试套件)。

为何引入VTS测试?

目前Android的系统升级是很麻烦的,为了能更快的将设备升级到新的Android版本,Android O 开始新引入了 Project Treble,Project Treble 适用于搭载 Android O 及后续版本的所有新设备。

Android 7.x 及更早版本中没有正式的Vendor层接口,因此每次更新系统都相对耗时和困难:

 
treble_blog_before.png

Android O 之后,Treble 提供了稳定的Vendor层接口,供设备制造商访问 Android 代码中特定于硬件的部分,这样就可以只更新框架层,减少升级系统带来的成本和困难:

 
treble_blog_after.png

为了确保Vendor层实现的前向兼容性,新的Vendor层接口会由供应商测试套件 (VTS) 进行验证,该套件类似于兼容性测试套件 (CTS)

2、VTS测试流程

1)替换谷歌system.img

VTS测试要求刷入谷歌提供AOSP的system.img (GSI)。在user版本中,如果直接使用flash tool单独烧录GSI时,会导致无法开机。

之所以会出现这种问题,是由于在user/userdebug版本中,dm-verity是使能的,替换GSI后导致dm-verity不能通过。 如果要解决这个问题,就需要进行unlock操作,并且要用fastboot来刷入刷入谷歌提供的system.img .

具体操作如下:
    1. 在设置中打开 OEM unlocking 选项
    1. 在设置中打开 USB debugging 选项
    1. 长按音量 + 和电源键进入fastboot模式
    1. 连接到电脑上,分别执行fastboot flashing unlockfastboot oem unlock
      执行命令后需要选择音量 + 来确认unlock。
    1. 执行 fastboot 命令刷入google提供的 system.img (GSI):
      fastboot flash system system.img(需要根据软件版本的信息来选择GSI版本)
    1. 重启: fastboot reboot

2)VTS测试

Running VTS
主机端设置
  • 首先设置基本测试环境 GMS测试环境.
  • VTS测试环境配置:
    安装 Python 开发工具包:sudo apt-get install python-dev
    安装协议缓冲区工具(适用于 Python):sudo apt-get install python-protobuf protobuf-compiler
    安装 Python 虚拟环境相关工具:sudo apt-get install python-virtualenv python-pip
  • 下载并解压VTS测试工具
手机端设置
  • 擦除设备上的用户数据(即运行fastboot -w)。
  • 刷入谷歌提供的system.img (GSI),使用与设备的ABI相对应的GSI,是否支持A / B更新以及设备的security_patch_level:
    ABI A/B Non A/B security_patch_level
    Arm64 aosp_arm64_ab aosp_arm64_a Uses the format: [year][month][date]
    Arm32 aosp_arm_ab aosp_arm_a Uses the format: [year][month][date]
    x86_64 aosp_x86_64_ab aosp_x86_64_a Uses the format: [year][month][date]
    x86_32 aosp_x86_32_ab aosp_x86_32_a Uses the format: [year][month][date]
  • Android 8.x的设备不需要安装SIM卡,但是Android P及更高版本的设备将需要SIM卡进行VTS测试。
  • 确保手机可以连接到IPV6的wifi网络,如果设备具有GPS / Wi-Fi / Cellular功能,则必须重置设备并打开位置设置。
  • 通过usb将手机连接到电脑上,通过 adb shell 来保证可以正确的连接。
运行VTS测试
  • 打开终端命令行
  • 切换到android-vts路径下$ cd *installation-path*/android-vts/tools
  • 通过下面的命令来进入到vts的控制台$ .vts-tradefed
  • 运行vts的测试命令> run vts
VTS常用命令
  • 列出所有跑测结果> l r
  • 列出所有检测到或已知的设备> l d
  • 单跑某一个模块> run vts -m <模块名>
  • 单跑某个测试项> run vts -m <模块名> -t <测试项名>
  • 可用选项> run vts -s <device_id> --logcat-on-failure --screenshot-on-failure --shard-count <shards>‘-s <device_id>’:可指定运行测试的设备
    ‘–logcat-on-failure’:当测试失败时捕获logcat
    ‘–screenshot-on-failure’:当测试失败时截取屏幕截图
    ‘–shard-count <shards>’:用多个设备上同时跑测,可节省时间
  • 更多的命令可通过 help all 来查看:
 

 

谷歌认证的Android设备制造商ODM-20180326

已通过谷歌认证的ODM厂商,以下数据来自谷歌网站:

https://www.android.com/intl/zh-CN_cn/certified/partners/

Cannot restart samba, samba.service is masked

之前共享可以在windows下正常访问,某天不知道什么原因不能访问了,找不到网络路径。

1. 查看共享配置是否正常

$vi /etc/samba/smb.conf

配置是正常的。

2.重启samba服务

$ service smbd restart

Failed to restart smbd.service: Unit smbd.service is masked.

有状况了!出现了异常。到网上先查下看:

When I try to restart Samba, I am receiving the following error message:

In addition, when I run systemctl, it shows smbd.service in red showing failed.

At the same time restart began to fail, I have lost the share ability in folders created and cannot access. Any help would be appreciated!!!

看来有人遇到了同样的状况。

Try service smbd restart.

Try:

试了下,不行

Unit samba.service does not exist, proceeding anyway

apt install samba

Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked.
/usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory
Processing triggers for libc-bin (2.26-0ubuntu2.1) …

ls -la /etc/systemd/system/samba-ad-dc.service
lrwxrwxrwx 1 root root 9 3月 3 18:01 /etc/systemd/system/samba-ad-dc.service -> /dev/null

dpkg -s samba
Package: samba
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 10941
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: amd64
Version: 2:4.6.7+dfsg-1ubuntu3.2
Depends: adduser, libpam-modules, libpam-runtime (>= 1.0.1-11), lsb-base (>= 4.1+Debian), procps, python (<< 2.8), python-dnspython, python-samba, samba-common (= 2:4.6.7+dfsg-1ubuntu3.2), samba-common-bin (= 2:4.6.7+dfsg-1ubuntu3.2), tdb-tools, init-system-helpers (>= 1.18~), python (>= 2.7~), python2.7:any, python:any (<< 2.8), python:any (>= 2.7~), libattr1 (>= 1:2.4.46-8), libbsd0 (>= 0.0), libc6 (>= 2.14), libldb1 (>= 0.9.21), libpopt0 (>= 1.14), libpython2.7 (>= 2.7), libtalloc2 (>= 2.0.4~git20101213), libtdb1 (>= 1.2.7+git20101214), libtevent0 (>= 0.9.16), libwbclient0 (= 2:4.6.7+dfsg-1ubuntu3.2), samba-libs (= 2:4.6.7+dfsg-1ubuntu3.2)
Pre-Depends: dpkg (>= 1.15.6~)
Recommends: attr, logrotate, samba-dsdb-modules, samba-vfs-modules
Suggests: bind9 (>= 1:9.5.1), bind9utils, ctdb, ldb-tools, ntp | chrony (>= 3.0-1), smbldap-tools, ufw, winbind
Enhances: bind9, ntp
Conffiles:
/etc/cron.daily/samba f6519535df7964f95cdd7db501bf3ad2
/etc/init.d/nmbd c5945c7ddd7c64e44095c0702eb13095
/etc/init.d/samba-ad-dc 53f4dbe1f4fefabb82f98ab56c2753ef
/etc/init.d/smbd 5218124fdeda5bf0035704c9c97104e6
/etc/logrotate.d/samba af6680b8a624ba7d1f6730af61262e8d
/etc/ufw/applications.d/samba 9d474788f9a1955e16134f2794be473d
Description: SMB/CIFS file, print, and login server for Unix
Samba is an implementation of the SMB/CIFS protocol for Unix systems,
providing support for cross-platform file and printer sharing with
Microsoft Windows, OS X, and other Unix systems. Samba can also function
as an NT4-style domain controller, and can integrate with both NT4 domains
and Active Directory realms as a member server.
.
This package provides the components necessary to use Samba as a stand-alone
file and print server or as an NT4 or Active Directory domain controller.
For use in an NT4 domain or Active Directory realm, you will also need the
winbind package.
.
This package is not required for connecting to existing SMB/CIFS servers
(see smbclient) or for mounting remote filesystems (see cifs-utils).
Homepage: http://www.samba.org
Original-Maintainer: Debian Samba Maintainers <pkg-samba-maint@lists.alioth.debian.org>

$systemctl mask samba-ad-dc.service
$apt-get install -f
Reading package lists… Done
Building dependency tree
Reading state information… Done
0 upgraded, 0 newly installed, 0 to remove and 64 not upgraded.
$apt install samba
Reading package lists… Done
Building dependency tree
Reading state information… Done
samba is already the newest version (2:4.6.7+dfsg-1ubuntu3.2).
0 upgraded, 0 newly installed, 0 to remove and 64 not upgraded.
$ service smbd restart
$service nmbd restart

问题解决了,可以正常访问共享。但是,引起问题的原因仍未知。

配置CTS测试环境

设置 CTS

物理环境


蓝牙 LE 信标

如果 DUT 支持蓝牙 LE 功能,则应在与 DUT 的距离不超过五米的范围内放置至少三个蓝牙 LE 信标,以进行蓝牙 LE 扫描测试。这些信标可以为任何类型,不需要进行配置或发射任何特定信号,并且可以包括 iBeacon、Eddystone,甚至模拟 BLE 信标的设备。

GPS/GNSS

如果 DUT 支持全球定位系统 (GPS)/全球导航卫星系统 (GNSS) 功能,则应该以合适的信号电平向 DUT 提供 GPS/GNSS 信号(GPS 部分符合 ICD-GPS-200C 标准),以便其接收到相应信号并计算 GPS 位置。GPS/GNSS 信号源的种类不限(可以是卫星模拟器,也可以是室外 GPS/GNSS 信号中继器),只需将 DUT 放在距离窗口足够近的位置以使其可以直接接收到足够强的 GPS/GNSS 信号即可。

WLAN 和 IPv6

CTS 测试需要满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离客户端,并可以连接到互联网。隔离客户端是一种配置,可使 DUT 无法接收子网络上的广播/多网消息;这种配置可通过 WLAN AP 配置或通过在未连接其他设备的隔离子网络上运行 DUT 来实现。

如果您无法访问原生 IPv6 网络、IPv6 运营商网络或 IPv6 VPN,以致无法通过基于 IPv6 的一些测试,则可以改为使用 WLAN 接入点和 IPv6 隧道。请参阅维基百科 IPv6 隧道代理列表

台式机设置


ADB 和 AAPT

在运行 CTS 之前,请确保您已安装最新版本的 Android 调试桥 (adb) 和 Android 资源打包工具 (AAPT),并将这些工具的位置添加到计算机的系统路径中。

要安装 ADB,请下载适用于您的操作系统的 Android SDK 工具包,打开它,然后按照附带的 README 文件中的说明进行操作。要了解问题排查相关信息,请参阅安装独立 SDK 工具

确保 adb 和 aapt 位于您的系统路径下。以下命令假定您已在主目录中打开了软件包归档文件:


注意:请确保起始路径和目录名称均准确无误。

Java 开发套件 (JDK)

安装正确版本的 Java 开发套件 (JDK)。对于 Android 7.0 –

如需了解详情,请参阅 JDK 要求

CTS 文件

下载并打开与您设备的 Android 版本以及您的设备支持的所有应用二进制接口 (ABI) 相匹配的 CTS 包。

下载并打开最新版本的 CTS 媒体文件

设备检测

请按照相应的步骤设置您的系统以检测设备,例如为 Ubuntu Linux 创建 udev 规则文件。

Android 设备设置


用户版本

兼容的设备被定义为具有 user/release-key 签名版本的设备,因此您的设备应运行基于代号、标签和版本号中已知兼容的用户版本(Android 4.0 及更高版本)的系统映像。

注意:使用 CTS 确认最终系统映像的 Android 兼容性时,您必须在具有用户版本的设备上执行 CTS。

初始 API 级别版本属性

某些 CTS 要求取决于设备最初搭载的版本。例如,如果设备最初搭载的是较低的版本,则不一定需要遵循适用于搭载较高版本的设备的系统要求。

为了保证 CTS 可读取到这些信息,设备制造商可以定义编译时属性:ro.product.first_api_level。该属性的值是对该设备进行商业化发布时所采用的初始 API 级别。

OEM 可以将 PRODUCT_PROPERTY_OVERRIDES 添加到其 device.mk 文件以设置这项属性,具体如以下示例所示:

CTS Shim 应用

Android 7.0 包含以下预编译的应用(根据此处的源代码编译),这些应用不包含除清单以外的任何代码:

CTS 会使用这些应用来测试特权和权限。要通过测试,您必须将应用预加载到系统映像上的相应目录下,但不能对它们重新签名。

存储空间要求

CTS 媒体压力测试要求将视频剪辑存放在外部存储设备 (/sdcard) 上。大部分剪辑来自 Big Buck Bunny,其版权归 Blender Foundation 所有并采用 Creative Commons Attribution 3.0 许可

所需空间取决于设备支持的最高视频播放分辨率(要查看所需分辨率的平台版本,请参阅兼容性定义文档中的第 5 部分)。请注意,被测设备的视频播放功能将通过 android.media.CamcorderProfile API(针对早期 Android 版本)和 android.media.MediaCodecInfo.CodecCapabilities API(针对 Android 5.0)进行检测。

以下是按最大视频播放分辨率列出的存储空间要求:

  • 480×360:98 MB
  • 720×480:193 MB
  • 1280×720:606 MB
  • 1920×1080:1863 MB

屏幕和存储空间

  1. 任何没有嵌入式屏幕的设备一律需要连接到屏幕。
  2. 如果设备具有存储卡插槽,请插入空的 SD 卡。请使用支持超高速 (UHS) 总线且具有 SDHC 或 SDXC 容量的 SD 卡,或使用至少具有 Class 10 速度的 SD 卡,以确保设备能够通过 CTS。

    警告:CTS 可能会修改/清空插入设备的 SD 卡上的数据。

  3. 如果设备具有 SIM 卡插槽,请将激活的 SIM 卡插入每个插槽。如果设备支持短信,则应填充每个 SIM 卡的号码字段。

开发者 UICC

为了执行 CTS 运营商 API 测试,该设备需要使用运营商授权的 SIM 卡。请参阅准备 UICC

Android 设备配置


  1. 将设备恢复出厂设置:设置 > 备份和重置 > 恢复出厂设置

    警告:这将清空设备中的所有用户数据。

  2. 将设备的语言设置为英语(美国):设置 > 语言和输入法 > 语言
  3. 如果设备具有 GPS 或 WLAN/移动网络功能,则打开位置信息设置:设置 > 位置信息 > 开启
  4. 连接到满足以下要求的 WLAN 网络:支持 IPv6,可以将被测设备 (DUT) 视为隔离的客户端(请参阅上文的物理环境部分),并可以连接到互联网:设置 > WLAN
  5. 确保设备上未设置锁定图案或密码:设置 > 安全 > 屏幕锁定 > 无
  6. 在设备上启用 USB 调试设置 > 开发者选项 > USB 调试

    注意:在 Android 4.2 及更高版本中,默认情况下会隐藏开发者选项。要显示这些选项,请依次转到设置 > 关于手机,然后点按版本号七次。返回上一屏幕以查找开发者选项。要查看其他详细信息,请参阅启用设备上的开发者选项

  7. 确保将时间设置为 12 小时格式:设置 > 日期和时间 > 使用 24 小时制 > 关闭
  8. 依次选择:设置 > 开发者选项 > 不锁定屏幕 > 开启
  9. 依次选择:设置 > 开发者选项 > 允许模拟位置 > 开启

    注意:此模拟位置设置仅适用于 Android 5.x 和 4.4.x。

  10. 依次选择:设置 > 开发者选项 > 通过 USB 验证应用 > 关闭

    注意:此验证应用步骤在 Android 4.2 中为必需步骤。

  11. 启动浏览器并关闭任何启动/设置屏幕。
  12. 使用 USB 数据线连接用于测试设备的台式机

    注意:将运行 Android 4.2.2 或更高版本的设备连接到计算机时,系统会显示一个对话框,询问您是否接受允许通过此计算机进行调试的 RSA 密钥。选择“允许 USB 调试”。

  13. 在设备上安装和配置帮助程序应用。

    注意:对于 CTS 版本 2.1 R2 至 4.2 R4,请通过以下命令设置您的设备(或模拟器),以便执行无障碍测试:
    adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
    在设备上,依次启用:设置 > 无障碍 > 无障碍 > Delegating Accessibility Service

    注意:对于 7.0 之前的 CTS 版本,请在声明 android.software.device_admin 的设备上,使用以下命令设置您的设备,以便执行设备管理测试:
    adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk

    依次选择“设置”>“安全”>“设备管理器”,然后启用两个 android.deviceadmin.cts.CtsDeviceAdminReceiver* 设备管理器。确保 android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver 和任何其他预加载的设备管理器均保持停用状态。

  14. 将 CTS 媒体文件复制到设备上,如下所示:

    注意:对于 CTS 2.3 R12 及更高版本,如果设备支持视频编解码器,则必须将 CTS 媒体文件复制到设备上。

    • 导航 (cd) 到下载并解压缩媒体文件的目标路径。
    • 更改文件权限:chmod u+x copy_media.sh
    • 运行 copy_media.sh
      • 要复制分辨率不超过 720×480 的剪辑,请运行:./copy_media.sh 720x480
      • 如果您不确定最大分辨率,请尝试运行 ./copy_media.sh all,以便复制所有文件。
      • 如果 adb 下有多个设备,请将 -s(序列号)选项添加到末尾。例如,要将分辨率不超过 720×480 的文件复制到序列号为 1234567 的设备,请运行:./copy_media.sh 720x480 -s 1234567

Android O 8.0 8.1 VTS测试环境配置

要进行 VTS 测试,首先需要搭建测试环境,我们需要以下配置:

+ 64-bit Ubuntu Linux

+ Java 8
openjdk version “1.8.0_151”
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.17.10.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

+ Python 2.7
Python 2.7.14

+ ADB 1.0.39
Android Debug Bridge version 1.0.39
Version 0.0.1-4500957

具体的搭建步骤是:
1) 安装 python 开发包

2) 安装 Protocol Buffer 工具

3) 安装 Python 虚拟环境相关工具

4) 在设备上启用开发者模式并打开 USB 调试功能
5) 检查设备是否能被 ADB 探测到

6) 使用 ADB 登录设备