【问题标题】:Rebuild android code with error “SSL error when connecting to the Jack server. Try 'jack-diagnose”连接到 Jack 服务器时出现错误“SSL 错误”重建 android 代码。尝试“千斤顶诊断”
【发布时间】:2021-07-25 12:24:21
【问题描述】:

系统:ubuntu 18.04 环境:VirtualBox 第一次在Ubuntu 18.04上编译AOSP源码,通过,第二次编译失败。 这是一条错误消息。

[ 10% 538/4980] Ensuring Jack server is installed and started
FAILED: setup-jack-server 
/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar  2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 4.11.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.32.CANDIDATE.jar 4.32.CANDIDATE || exit 47 )"
Jack server already installed in "/home/user/.jack-server"
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'
[ 10% 541/4980] build out/target/product/rk3399_mid/obj/ETC/precompiled_sepolicy_intermediates/precompiled_sepolicy
ninja: build stopped: subcommand failed.
22:32:18 ninja failed with: exit status 1

#### failed to build some targets (01:11 (mm:ss)) ####

Build android failed!

生成错误报告

/prebuilts/sdk/tools/report/18577$ unzip jack-report.18557.zip 存档:jack-report.18557.zip 膨胀:report.18557.txt
膨胀:launcher.jar
膨胀:config.properties
创建:日志/ 膨胀:logs/outputs.txt
膨胀:logs/jack-server-0-2.log
膨胀:logs/jack-server-1-0.log
膨胀:logs/jack-server-0-0.log
提取:logs/jack-server-0-0.log.lck
膨胀:logs/jack-server-0-1.log
膨胀:server-1.jar
创建:杰克/

report.18557.txt:

 ps -o "pid args" | grep com.android.jack.launcher.ServerLauncher | grep -v grep | awk '{print dump-report}' |  xargs kill -3

$ id -u
1000

$ ps -A -o "uid pid args" | grep com.android.jack.launcher.ServerLauncher | grep -v grep
 1000  6708 java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/zhangying/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher

$ lsof -i TCP:8376 -l
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    6708     1000   21u  IPv6  58493      0t0  TCP localhost:8376 (LISTEN)

$ lsof -i TCP:8377 -l
COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    6708     1000   23u  IPv6  58499      0t0  TCP localhost:8377 (LISTEN)

$ cat "$JACK_CLIENT_SETTING"
# Server settings
SERVER_HOST=localhost
SERVER_PORT_SERVICE=8376
SERVER_PORT_ADMIN=8377

# Internal, do not touch
SETTING_VERSION=4

$ cd "$JACK_HOME"; ls -l -R -n .
.:
total 10412
-rw------- 1 1000 1000    2097 May  2 10:04 client.jks
-rw------- 1 1000 1000    2814 May  2 21:48 client.pem
-rw------- 1 1000 1000     356 May  2 10:12 config.properties
drwxr-xr-x 2 1000 1000    4096 May  2 10:04 jack
-rw------- 1 1000 1000 5102506 May  2 10:04 launcher.jar
drwx------ 2 1000 1000    4096 May  2 21:48 logs
-rw------- 1 1000 1000     982 May  2 22:39 report.18557.txt
-rw------- 1 1000 1000 5522186 May  2 10:04 server-1.jar
-rw------- 1 1000 1000    2066 May  2 10:04 server.jks
-rw------- 1 1000 1000    1042 May  2 21:48 server.pem

./jack:
total 0

./logs:
total 32
-rw-r--r-- 1 1000 1000   689 May  2 22:03 jack-server-0-0.log
-rw-r--r-- 1 1000 1000     0 May  2 10:20 jack-server-0-0.log.lck
-rw-r--r-- 1 1000 1000   585 May  2 10:23 jack-server-0-1.log
-rw-r--r-- 1 1000 1000   689 May  2 10:19 jack-server-0-2.log
-rw-r--r-- 1 1000 1000   585 May  2 10:16 jack-server-1-0.log
-rw------- 1 1000 1000 13411 May  2 22:39 outputs.txt

$ curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL 

$ JACK_EXTRA_CURL_OPTIONS=-v jack-admin list server
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 8377 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /home/zhangying/.jack-server/server.pem
  CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8377 
* Closing connection 0
SSL error when connecting to the Jack server. Try 'jack-diagnose'

$ jack-admin server-stat
Getting statistic from background server
SSL error when connecting to the Jack server. Try 'jack-diagnose'

$ base64 --version
base64 (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Simon Josefsson.

$ (echo amFjaw==;echo LXNlcnZlcg==) | base64 --decode
当我切换到 Ubuntu 16.04 时,我得到了同样的错误。下面是 Ubuntu 18.04 的已安装 Curl 版本的列表。

警告:apt 没有稳定的 CLI 界面。在脚本中谨慎使用。

curl/bionic-updates,bionic-security,now 7.58.0-2ubuntu3.13 amd64 [已安装] libcurl3-gnutls/bionic-updates,bionic-security,现在 7.58.0-2ubuntu3.13 amd64 [已安装,自动] libcurl4/bionic-updates,bionic-security,now 7.58.0-2ubuntu3.13 amd64 [已安装,自动] libcurl4-openssl-dev/bionic-updates,bionic-security,now 7.58.0-2ubuntu3.13 amd64 [已安装]

我尝试了很多方法,但都无法解决。请帮助我,谢谢。

【问题讨论】:

  • 我的安卓版本是android 8.1

标签: android curl openssl libcurl android-source


【解决方案1】:

我只想给出解决问题的所有不同方法。 解决这个问题的方法很少,一个可能对某人有用 -

  1. 尝试通过以下命令在您的 android 根文件夹中简单地重新启动 jack 服务器

    ./prebuilts/sdk/tools/jack-admin kill-server

    ./prebuilts/sdk/tools/jack-admin start-server

  2. 尝试减少文件 $HOME/.jack-server/config.properties 中的并发服务数量 代码:

    jack.server.max-service=4

尝试将此值设为 2 或 1。

  1. 如果 jack 服务器未运行或尝试运行时挂起。不如尝试从 rom /etc/java-8-openjdk/security/java.security 中删除 TLSv1、TLSv1.1

解决方案 3 对我有用。

【讨论】:

    【解决方案2】:

    在你的 Dockerfile 中解决这个问题的方法:

    USER root
    
    # Fix jack server SSL issue during build
    RUN perl -0777 -i -p -e 's/(jdk.tls.disabledAlgorithms=.*?), TLSv1, TLSv1\.1/$1/g' \
         /etc/java-8-openjdk/security/java.security
    

    【讨论】:

      【解决方案3】:

      应用以下两个步骤后,AOSP 构建成功。

      1. 从 /etc/java-8-openjdk/security/java.security 文件中的 jdk.tls.disabledAlgorithms 中删除 TLSv1、TLSv1.1
      2. 重启jack服务器: cd /prebuilts/sdk/tools/ ./jack-admin kill-server ./jack-admin 启动服务器

      【讨论】:

      • 谢谢,请注意,停止后无需启动服务器。忍者会重新开始
      • 非常有用。非常感谢你为我工作
      • 从为我工作的 java.security 文件中删除 TLSv1、TLSv1.1。非常感谢,我可以知道这里发生了什么吗?删除 TLS 如何解决此问题?
      • @vijaypanwar TLS 版本 1.0 和 1.1 现在已弃用 (arstechnica.com/gadgets/2018/10/…) 所以这些算法在 Java 配置中默认被禁用。我猜杰克客户端正在使用其中一个 TLS 版本连接到服务器,因为它尚未更新。
      【解决方案4】:

      我刚刚找到答案,请看下面的链接 enter link description here

      把代码改成这样, 从 /etc/java-8-openjdk/security/java.security 中删除 TLSv1、TLSv1.1。

      jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,
      DH keySize 包括 jdk.disabled.namedCurves

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-28
        • 1970-01-01
        • 2017-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 1970-01-01
        相关资源
        最近更新 更多