当前位置: 首页 > news >正文

企业网站托管价格百度搜索引擎官网入口

企业网站托管价格,百度搜索引擎官网入口,营销型网站=企业登记代理,wordpress slider插件下载如果做平台app开发,需要签platform签名,除了通过adroid.bp或者android.mk的方式使用AOSP整个大工程中签名外,还可以直接通过signapk.jar的方式进行签名,效率更高更快捷简便。 首先我们来回顾下AOSP平台签名的办法。 Android.mk 使…

如果做平台app开发,需要签platform签名,除了通过adroid.bp或者android.mk的方式使用AOSP整个大工程中签名外,还可以直接通过signapk.jar的方式进行签名,效率更高更快捷简便。

首先我们来回顾下AOSP平台签名的办法。

Android.mk 使用LOCAL_CERTIFICATE宏定义,值为platform。

LOCAL_PATH:= $(call my-dir)########################################
# NCI Configuration
########################################
include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := \$(call all-java-files-under, src)LOCAL_SRC_FILES += \$(call all-java-files-under, nci)LOCAL_PACKAGE_NAME := NfcNci
LOCAL_CERTIFICATE := platformLOCAL_JNI_SHARED_LIBRARIES := libnfc_nci_jniLOCAL_JAVA_LIBRARIES := mediatek-telephony-baseLOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 com.nxp.nfcLOCAL_PROGUARD_ENABLED := disabledinclude $(BUILD_PACKAGE)include $(call all-makefiles-under,$(LOCAL_PATH))

android.bp 使用certificate标签,值写’platform"。

package {default_applicable_licenses: ["Android-Apache-2.0"],
}genrule {name: "statslog-Nfc-java-gen",tools: ["stats-log-api-gen"],cmd: "$(location stats-log-api-gen) --java $(out) --module nfc --javaPackage com.android.nfc"+ " --javaClass NfcStatsLog",out: ["com/android/nfc/NfcStatsLog.java"],
}// NCI Configuration
android_app {name: "NfcNci",srcs: ["src/**/*.java","nci/**/*.java",":statslog-Nfc-java-gen",],platform_apis: true,certificate: "platform",jni_libs: ["libnfc_nci_jni"],static_libs: ["androidx.appcompat_appcompat"],optimize: {enabled: false,},
}

以上两种方式需要进行前期整个编译系统工具链的编译准备工作,如果我们仅仅是为了快速签名,编码工作放置在Android studio工程里边进行。效率将大大提升。

准备工作:

我们只需要从在研Android工程中取得签名私钥和公钥进行签名。java 11环境。

  • 公私密钥获取;
//build/target/product/目录
-rw-rw-r-- 1 user user 1218 May  6 09:48 bluetooth.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:48 bluetooth.x509.pem
-rw-rw-r-- 1 user user 1217 May  6 09:48 media.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:48 media.x509.pem
-rw-rw-r-- 1 user user 1219 May  6 09:50 networkstack.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:50 networkstack.x509.pem
-rw-rw-r-- 1 user user 1218 May  6 09:47 platform.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:47 platform.x509.pem
-rw-rw-r-- 1 user user 1219 May  6 09:47 releasekey.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:47 releasekey.x509.pem
-rw-rw-r-- 1 user user 1217 May  6 09:49 sdk_sandbox.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:49 sdk_sandbox.x509.pem
-rw-rw-r-- 1 user user 2662 Jun 12 12:06 shared.pk12
-rw-rw-r-- 1 user user 1217 May  6 09:48 shared.pk8
-rw-rw-r-- 1 user user 1399 May  6 09:48 shared.x509.pem
-rw-rw-r-- 1 user user 1217 Apr 19 16:56 testkey.pk8
-rw-rw-r-- 1 user user 1675 Apr 19 16:56 testkey.x509.pem

其中platform.pk8就是我们的私钥,platform.x509.pem就是我们的公钥。

  • 签名工具signapk.jar包获取。

其也可以从Android项目工程里边获取到(这里以Android 13)为例,源码目录和编译结果。

// 源码目录
/build/tools/signapk/
-rw-rw-r-- 1 user user 1310 May 17 19:30 Android.bp
-rw-rw-r-- 1 user user   40 May 17 19:30 OWNERS
-rw-rw-r-- 1 user user   40 May 17 19:30 SignApk.mf
drwxrwxr-x 3 user user 4096 May 17 19:30 src
drwxrwxr-x 2 user user 4096 May 17 19:30 test// android.bp
//
// Copyright (C) 2008 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// the signapk tool (a .jar application used to sign packages)
// ============================================================
package {default_applicable_licenses: ["Android-Apache-2.0"],
}
java_binary_host {name: "signapk",srcs: ["src/**/*.java"],manifest: "SignApk.mf",static_libs: ["apksig","bouncycastle-unbundled","bouncycastle-bcpkix-unbundled","conscrypt-unbundled",],jni_libs: ["libconscrypt_openjdk_jni"],// The post-build signing tools need signapk.jar (and its shared libraries,// handled in their own Android.bp files)dist: {tag: ".jar",targets: ["droidcore"],},
}// 编译结果
/out/soong/host/linux-x86/framework/
-rw-rw-r-- 1 user user   991094 May 17 20:57 apksigner.jar
-rw-rw-r-- 1 user user  1839296 May 17 20:57 boot_signer.jar
-rw-rw-r-- 1 user user  5966938 May 17 20:53 d8.jar
-rw-rw-r-- 1 user user   243200 May 17 20:57 jarjar.jar
-rw-rw-r-- 1 user user  6799007 May 17 20:53 manifest-merger.jar
-rw-rw-r-- 1 user user 76636731 May 17 20:58 metalava.jar
-rw-rw-r-- 1 user user  1636347 May 17 20:58 sdkparcelables.jar
-rw-rw-r-- 1 user user  2966159 May 17 20:58 signapk.jar
-rw-rw-r-- 1 user user  5238302 May 17 20:58 turbine.jar
-rw-rw-r-- 1 user user  1834529 May 17 20:58 verity_signer.jar
-rw-rw-r-- 1 user user   120110 May 17 20:58 xsdc.jar/out/target/product/targetxxx_k419/obj/PACKAGING/otatools_intermediates/otatools/framework$ ls -l
total 7460
-rw-rw-r-- 1 user user  991094 May 17 20:58 apksigner.jar
-rw-rw-r-- 1 user user 1839296 May 17 20:58 boot_signer.jar
-rw-rw-r-- 1 user user 2966159 May 17 20:58 signapk.jar
-rw-rw-r-- 1 user user 1834529 May 17 20:58 verity_signer.jar

将jar包拷贝到本地。

  • JAVA 11环境准备

本文不赘述,可自行查找文档。

签名过过程中,这里可能遇到一下几个报错。

1) java 8版本过低,signapk是在Android 13工程里边使用java 11编译的。需要将java环境切换到11环境。

user@swd:/local/sdb/src$ /usr/lib/jvm/java-8-openjdk-amd64/bin/java -jar signapk.jar ./platform.x509.pem ./platform.pk8 Testdemo.apk Testdemo_signed.apk
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/signapk/SignApk has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0at java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:763)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)at java.net.URLClassLoader.access$100(URLClassLoader.java:74)at java.net.URLClassLoader$1.run(URLClassLoader.java:369)at java.net.URLClassLoader$1.run(URLClassLoader.java:363)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:362)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

2)找不到libconscrypt_openjdk_jni.so; 同样可以从Android工程的编译目标里边去找到。

user@swd:/local/sdb/src$ /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar signapk.jar ./platform.x509.pem ./platform.pk8 Testdemo.apk Testdemon_signed.apk
Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-linux-x86_64 in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)at java.base/java.lang.System.loadLibrary(System.java:1873)at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)at java.base/java.security.AccessController.doPrivileged(Native Method)at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)at org.conscrypt.NativeLibraryLoader.load(NativeLibraryLoader.java:162)at org.conscrypt.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:106)at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:50)at org.conscrypt.NativeCrypto.<clinit>(NativeCrypto.java:64)at org.conscrypt.OpenSSLProvider.<init>(OpenSSLProvider.java:60)at org.conscrypt.OpenSSLProvider.<init>(OpenSSLProvider.java:53)at org.conscrypt.OpenSSLProvider.<init>(OpenSSLProvider.java:49)at com.android.signapk.SignApk.main(SignApk.java:1068)Suppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-linux-x86_64 in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)at java.base/java.lang.System.loadLibrary(System.java:1873)at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)... 8 moreSuppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]... 21 moreSuppressed: java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)at java.base/java.lang.System.loadLibrary(System.java:1873)at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)... 8 moreSuppressed: java.lang.UnsatisfiedLinkError: no conscrypt in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]... 21 moreSuppressed: java.lang.UnsatisfiedLinkError: no conscrypt in java.library.path: [/usr/java/packages/lib, /usr/lib/x86_64-linux-gnu/jni, /lib/x86_64-linux-gnu, /usr/lib/x86_64-linux-gnu, /usr/lib/jni, /lib, /usr/lib]at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2670)at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)at java.base/java.lang.System.loadLibrary(System.java:1873)at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)... 8 more

libconscrypt_openjdk_jni.so 位置。

user@swd:~/samba/coding/targetxxx/out/soong/host/linux-x86/lib64$ ls -l
total 147680
-rwxrwxr-x 1 user user  2478432 May 17 20:45 libbase.so
-rwxrwxr-x 1 user user  2104080 May 17 20:57 libbrillo.so
-rwxrwxr-x 1 user user  1279848 May 17 20:57 libbrillo-stream.so
-rwxrwxr-x 1 user user    97840 May 17 20:45 libcgrouprc.so
-rwxrwxr-x 1 user user 18948392 May 17 20:57 libchrome.so
-rwxrwxr-x 1 user user 12570832 May 17 20:46 libconscrypt_openjdk_jni.so
-rwxrwxr-x 1 user user  7067056 May 17 20:43 libcrypto-host.so
-rwxrwxr-x 1 user user    19376 May 17 20:44 libcrypto_utils.so
-rwxrwxr-x 1 user user  5334576 May 17 20:43 libc++.so
-rwxrwxr-x 1 user user   212312 May 17 20:45 libcutils.so
-rwxrwxr-x 1 user user  1288304 May 17 20:44 libevent-host.so
-rwxrwxr-x 1 user user   197224 May 17 20:44 libext2_blkid-host.so
-rwxrwxr-x 1 user user    31392 May 17 20:44 libext2_com_err-host.so
-rwxrwxr-x 1 user user   109184 May 17 20:44 libext2_e2p-host.so
-rwxrwxr-x 1 user user  1579128 May 17 20:47 libext2fs-host.so
-rwxrwxr-x 1 user user   255208 May 17 20:47 libext2_quota-host.so
-rwxrwxr-x 1 user user    44688 May 17 20:44 libext2_uuid-host.so
-rwxrwxr-x 1 user user    45744 May 17 20:47 libext4_utils.so
-rwxrwxr-x 1 user user   189752 May 17 20:44 libfdt.so
-rwxrwxr-x 1 user user   574784 May 17 20:47 libfec.so
-rwxrwxr-x 1 user user   357824 May 17 20:45 libhidl-gen-utils.so
-rwxrwxr-x 1 user user   433136 May 17 20:56 libhidlmetadata.so
-rwxrwxr-x 1 user user 16669600 May 17 20:44 libicui18n-host.so
-rwxrwxr-x 1 user user  9982520 May 17 20:44 libicuuc-host.so
-rwxrwxr-x 1 user user   530264 May 17 20:45 liblog.so
-rwxrwxr-x 1 user user  1382984 May 17 20:48 liblpdump.so
-rwxrwxr-x 1 user user  2237584 May 17 20:47 liblp.so
-rwxrwxr-x 1 user user   979528 May 17 20:45 libpcre2.so
-rwxrwxr-x 1 user user  3460288 May 17 20:45 libprocessgroup.so
-rwxrwxr-x 1 user user 27677328 May 17 20:47 libprotobuf-cpp-full.so
-rwxrwxr-x 1 user user  4465064 May 17 20:45 libprotobuf-cpp-lite.so
-rwxrwxr-x 1 user user   405824 May 17 20:45 libselinux.so
-rwxrwxr-x 1 user user   148848 May 17 20:47 libsparse-host.so
-rwxrwxr-x 1 user user  5821664 May 17 20:46 libsqlite.so
-rwxrwxr-x 1 user user    11488 May 17 20:46 libsquashfs_utils.so
-rwxrwxr-x 1 user user  3042256 May 17 20:46 libssl-host.so
-rwxrwxr-x 1 user user   367568 May 17 20:47 libtinyxml2.so
-rwxrwxr-x 1 user user 12502584 May 17 20:47 libvintf.so
-rwxrwxr-x 1 user user  5141736 May 17 20:47 libxml2.so
-rwxrwxr-x 1 user user   312624 May 17 20:47 libz-host.so
-rwxrwxr-x 1 user user   773648 May 17 20:47 libziparchive.so
user@swd:~/samba/coding/targetxxx/out/soong/host/linux-x86/lib64$user@swd:~/samba/coding/targetxxx/out/target/product/targetxxx_k419/obj/PACKAGING/otatools_intermediates/otatools/lib64$ ls -l
total 101512
-rwxrwxr-x 1 user user  2478432 May 17 20:58 libbase.so
-rwxrwxr-x 1 user user  2104080 May 17 20:58 libbrillo.so
-rwxrwxr-x 1 user user  1279848 May 17 20:58 libbrillo-stream.so
-rwxrwxr-x 1 user user    97840 May 17 20:58 libcgrouprc.so
-rwxrwxr-x 1 user user 18948392 May 17 20:58 libchrome.so
-rwxrwxr-x 1 user user 12570832 May 17 20:58 libconscrypt_openjdk_jni.so
-rwxrwxr-x 1 user user  7067056 May 17 20:58 libcrypto-host.so
-rwxrwxr-x 1 user user    19376 May 17 20:58 libcrypto_utils.so
-rwxrwxr-x 1 user user  5334576 May 17 20:58 libc++.so
-rwxrwxr-x 1 user user   212312 May 17 20:58 libcutils.so
-rwxrwxr-x 1 user user  1288304 May 17 20:58 libevent-host.so
-rwxrwxr-x 1 user user   197224 May 17 20:58 libext2_blkid-host.so
-rwxrwxr-x 1 user user    31392 May 17 20:58 libext2_com_err-host.so
-rwxrwxr-x 1 user user   109184 May 17 20:58 libext2_e2p-host.so
-rwxrwxr-x 1 user user  1579128 May 17 20:58 libext2fs-host.so
-rwxrwxr-x 1 user user   255208 May 17 20:58 libext2_quota-host.so
-rwxrwxr-x 1 user user    44688 May 17 20:58 libext2_uuid-host.so
-rwxrwxr-x 1 user user    45744 May 17 20:58 libext4_utils.so
-rwxrwxr-x 1 user user   574784 May 17 20:58 libfec.so
-rwxrwxr-x 1 user user   357824 May 17 20:58 libhidl-gen-utils.so
-rwxrwxr-x 1 user user   433136 May 17 20:58 libhidlmetadata.so
-rwxrwxr-x 1 user user 16669600 May 17 20:58 libicui18n-host.so
-rwxrwxr-x 1 user user  9982520 May 17 20:58 libicuuc-host.so
-rwxrwxr-x 1 user user   530264 May 17 20:58 liblog.so
-rwxrwxr-x 1 user user  2237584 May 17 20:58 liblp.so
-rwxrwxr-x 1 user user   979528 May 17 20:58 libpcre2.so
-rwxrwxr-x 1 user user  3460288 May 17 20:58 libprocessgroup.so
-rwxrwxr-x 1 user user  4465064 May 17 20:58 libprotobuf-cpp-lite.so
-rwxrwxr-x 1 user user   405824 May 17 20:58 libselinux.so
-rwxrwxr-x 1 user user   148848 May 17 20:58 libsparse-host.so
-rwxrwxr-x 1 user user  5821664 May 17 20:58 libsqlite.so
-rwxrwxr-x 1 user user    11488 May 17 20:58 libsquashfs_utils.so
-rwxrwxr-x 1 user user  3042256 May 17 20:58 libssl-host.so
-rwxrwxr-x 1 user user   312624 May 17 20:58 libz-host.so
-rwxrwxr-x 1 user user   773648 May 17 20:58 libziparchive.so
user@swd:~/samba/coding/targetxxx/out/target/product/targetxxx_k419/obj/PACKAGING/otatools_intermediates/otatools/lib64$

以上两个目录均可获取,拷贝到本地目录。

【签名命令】

/usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar -Djava.library.path=. signapk.jar ./platform.x509.pem ./platform.pk8 Testdemo.apk Testdemo_signed.apk

格式:

java -jar -Djava.library.path=. 当前目录 signapk.jar [公钥] [私钥] [老输入apk名称]  [新输出签名apk名称]

http://www.ds6.com.cn/news/49083.html

相关文章:

  • 只做衬衣网站网站数据查询
  • 公司网站建设费放什么科目国内前10电商代运营公司
  • 做网站精英网站推广的方式和方法
  • 做网站维护的收入怎么确认实体店怎么引流推广
  • 免费创建论坛网站站长统计app下载大全
  • 最好看免费视频河南网站优化排名
  • 查看网站架构seo合作
  • 做代购的流程 韩国网站外链工具下载
  • 自己做网站送外卖点点站长工具
  • 网站建设浦东产品推广文案
  • 网站优化公司电话hyein seo官网
  • 中山如何制作网站seo优化培训机构
  • 昆山建设投标网站啥都能看的浏览器
  • 大理网站制作公司惠城网站设计
  • 呼和浩特网站建设设计永久免费客服系统软件
  • wordpress评论打卡cpu优化软件
  • 广西建设厅网站资质查询厦门人才网手机版
  • 免费学校网站模板html友情链接多少钱一个
  • mvc 网站建设企业网站如何优化
  • 口碑好的盐城网站建设关键词seo是什么意思
  • 惠来网站建设各大免费推广网站
  • 网站建设费摊销几年湖南产品网络推广业务
  • 易语言如何做网站抖音权重查询工具
  • 讨论致同国际网站建设情况网络推广专家
  • 网站建设的cms系统腾讯企点注册
  • 衡水网站检测公司网络营销ppt怎么做
  • 西安网站建设公司都有哪些整合营销传播的六种方法
  • 免费奖励代码网站企业网站的推广方式和手段有哪些
  • 汶上哪个广告公司做网站长春最专业的seo公司
  • 考研网站做刷词深圳百度关键词排名