你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

android jack server问题总结

2021/12/28 11:24:38

这里以我的解决方法为例
1.确定自己安装的编译系统
    Linux test-Z490-UD 4.15.0-142-generic #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
2.java 版本
    test@test-Z490-UD:~$ java -version
    openjdk version "1.8.0_292"
    OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~16.04.1-b10)
    OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
    test@test-Z490-UD:~$ javac -version
    javac 1.8.0_292
    test@test-Z490-UD:~$
3. curl -v https://127.0.0.1:8076 这个包与连接要能执行,有错的话,我这边不影响,可以跳过做其它试验,回头来看这个问题
   
/
test@test-desktop:~$ curl -v https://127.0.0.1:8076
* Rebuilt URL to: https://127.0.0.1:8076/
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 8076 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS alert, Server hello (2):
* SSL certificate problem: self signed certificate
* stopped the pause stream!
* Closing connection 0
curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
test@test-desktop:~$

-bash: cd: /usr/lib/jvm/java-8-openjdk-amd64/bin/java: Not a directory
test@test-desktop:~$ cd /usr/lib/jvm/java-8-openjdk-amd64/
test@test-desktop:/usr/lib/jvm/java-8-openjdk-amd64$ ls
ASSEMBLY_EXCEPTION  THIRD_PARTY_README  bin  docs  include  jre  lib  man  src.zip
test@test-desktop:/usr/lib/jvm/java-8-openjdk-amd64$ cd ..
test@test-desktop:/usr/lib/jvm$ ls
java-1.8.0-openjdk-amd64  java-8-openjdk-amd64
test@test-desktop:/usr/lib/jvm$


/

[root@localhost ~]# whereis java

// 124服务器 //
test@test-Z490-UD:~$ curl -v https://127.0.0.1:8076
* Rebuilt URL to: https://127.0.0.1:8076/
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8076 (#0)
* found 129 certificates in /etc/ssl/certs/ca-certificates.crt
* found 521 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: The TLS connection was non-properly terminated.
* Closing connection 0
curl: (35) gnutls_handshake() failed: The TLS connection was non-properly terminated.
test@test-Z490-UD:~$
// 124服务器 //
   
4.配置文件的权限确定
  没有这个文件  ~/.jack-server/config.properties
  先编译一次android源码,或者修改一下 ~/.jack-settings  的端口,记录下来,先编译一下,我这边就生成了
  有这个文件,就可以修改端口了,没有这个文件,就不能修改,这个文件要编译自己生成的
  
5.tty只有一个人登录使用,不要多个tty登录去测试,如果一个tty登录编译能正确,那么就是多个用户端口的问题
  这里的多个用户,一是指ubuntu下,或者linux下的不同用户,二是不同人的tty登录情况,个人总结与理解
  所有,如果其它用户能编译能过,则自己在任何用户,任何tty的情况,包括ssh putty登录,都要重新统一配置jack-server的端口,并且
  对jack-server停止,再启动 jack-admin restart-server

    /*
        Warning:
        JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/ailiving/.jack-server/server.jks -destkeystore /home/test/.jack-server/server.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

        Warning:
        JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore /home/test/.jack-server/client.jks -destkeystore /home/test/.jack-server/client.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
        Communication error with Jack server (77), try 'jack-diagnose' or see Jack server log
        Failed to contact Jack server: Problem reading /home/test/.jack-server/server.pem. Try 'jack-diagnose'
        Failed to contact Jack server: Problem reading /home/test/.jack-server/server.pem. Try 'jack-diagnose'
        [ 20% 12670/62362] build out/target/product/msm8953_64/obj/kernel/msm-3.18/usr
        make: Entering directory '/home/share/test/sc60_android7.1.2_test/kernel/msm-3.18'
        make[1]: Entering directory '/home/share/test/sc60_android7.1.2_test/out/target/product/msm8953_64/obj/kernel/msm-3.18'
          GEN     ./Makefile
          HOSTCC  scripts/basic/fixdep
          SHIPPED scripts/kconfig/zconf.tab.c
          SHIPPED scripts/kconfig/zconf.hash.c
          HOSTCC  scripts/kconfig/conf.o
          SHIPPED scripts/kconfig/zconf.lex.c
          HOSTCC  scripts/kconfig/zconf.tab.o
          HOSTLD  scripts/kconfig/conf
        drivers/soc/qcom/Kconfig:368:warning: choice value used outside its choice group
        drivers/soc/qcom/Kconfig:373:warning: choice value used outside its choice group
        warning: (SND_SOC_APQ8084 && SND_SOC_MSM8994 && SND_SOC_MSM8996 && SND_SOC_MSM8X16 && SND_SOC_MDM9607 && SND_SOC_MDM9640) selects SND_SOC_WCD9330 which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && WCD9330_CODEC)
        warning: (SND_SOC_APQ8084 && SND_SOC_MSM8994 && SND_SOC_MSM8996 && SND_SOC_MSM8X16 && SND_SOC_MDM9607 && SND_SOC_MDM9640) selects SND_SOC_WCD9330 which has unmet direct dependencies (SOUND && !M68K && !UML && SND && SND_SOC && WCD9330_CODEC)
    */ 

5.jack-server的加密与连接问题
  尝试:
  #找到这段
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

#删掉其中的TLSv1, TLSv1.1 , 改成下面这样即可
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, anon, NULL, \
   include jdk.disabled.namedCurves
   
6.关闭所有的tty登录
  分别使用root用户与普通用户进行登录
  或者对android的源码进行 7777 权限处理再编译 
7.java方面的的修改,我没有使用过
  添加java运行参数-Xmx4g
还有一种方法是说修改prebuilts/sdk/tools/jack-admin脚本,修改java运行参数,添加-Xmx4g,其中4g是指内存大小,以自己编译机的实际内存的一半为宜。
修改方法如下:

-JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"
+JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g }"

-JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
+JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4g  -cp $LAUNCHER_JAR $LAUNCHER_NAME"

8.jacks-server curl 是否支持https方式或者其它的方式查资料学习确定