Android R otapackage生成

软件环境

Android R

编译命令

在AOSP目录下执行以下命令。
$ source build/envsetup.sh
$ lunch
–> 选择编译的平台。
$ make otapackage

错误信息:

2022-08-25 11:05:10 - common.py - INFO    :   Running: "java -Xmx2048m -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar -w build/make/target/product/security/testkey.x509.pem build/make/target/product/security/testkey.pk8 /home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/soong/.temp/tmpp3oPHS.zip /home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/soong/.temp/tmpn6he42.zip"
2022-08-25 11:05:10 - ota_from_target_files.py - ERROR   : 
   ERROR:
Traceback (most recent call last):
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 2258, in <module>
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 2231, in main
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 1932, in GenerateAbOtaPackage
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 1328, in FinalizeMetadata
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 1314, in ComputeAllPropertyFiles
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/ota_from_target_files.py", line 492, in SignOutput
  File "/home/danny/work/la1.2.1-cs2/la121-cs-qcom/aosp/out/host/linux-x86/bin/ota_from_target_files/common.py", line 1848, in SignFile
    proc.returncode, stdoutdata))
ExternalError: Failed to run signapk.jar: return code 1:
Error: Unable to access jarfile out/host/linux-x86/framework/signapk.jar

11:05:10 ninja failed with: exit status 1

#### failed to build some targets (08:20 (mm:ss)) ####

解决方案:

$ make signapk

然后再次执行命令:

$ make otapackage

2022-08-25 11:05:11 - common.py - INFO    :   Running: "java -Xmx2048m -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar -w build/make/target/product/security/testkey.x509.pem build/make/target/product/security/testkey.pk8 /opt/danny/work/la1.2.1-cs2/la121-vapi-cs/aosp/out/soong/.temp/tmpcYUgX4.zip /opt/danny/work/la1.2.1-cs2/la121-vapi-cs/aosp/out/soong/.temp/tmpAc680A.zip"
2022-08-25 11:05:18 - common.py - INFO    :   Running: "zip -d /opt/danny/work/la1.2.1-cs2/la121-vapi-cs/aosp/out/soong/.temp/tmpAc680A.zip META-INF/com/android/metadata"
2022-08-25 11:05:18 - common.py - INFO    : deleting: META-INF/com/android/metadata
2022-08-25 11:05:18 - common.py - INFO    :   Running: "java -Xmx2048m -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar -w build/make/target/product/security/testkey.x509.pem build/make/target/product/security/testkey.pk8 /opt/danny/work/la1.2.1-cs2/la121-vapi-cs/aosp/out/soong/.temp/tmpAc680A.zip out/target/product/msmnile_au/msmnile_au-ota-eng.danny.zip"
2022-08-25 11:05:22 - ota_from_target_files.py - INFO    : done.

#### build completed successfully (08:53 (mm:ss)) ####

查看生成结果

danny@ubuntu:~/aosp$ ls out/target/product/msmnile_au/*.zip -lh
-rw-rw-r-- 1 danny danny 496M Aug 25 11:05 out/target/product/msmnile_au/msmnile_au-ota-eng.danny.zip

其他小知识

以上可利用Android源代码生成的签名文件signapk.jar给apk签名。

依赖文件

aosp/out/host/linux-x86/framework/signapk.jar
aosp/build/make/target/product/security/platform.x509.pem
aosp/build/make/target/product/security/platform.pk8

apk签名示例

给asign-test.apk进行系统签名,生成签名apk为sign-test-out.apk

$ java -Djava.library.path=out/host/linux-x86/lib64 -jar  out/host/linux-x86/framework/signapk.jar  build/make/target/product/security/platform.x509.pem  build/make/target/product/security/platform.pk8 sign-test.apk sign-test-out.apk
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android UserAgent 批量生成指的是通过程序一次性生成多个 Android 设备的 UserAgent。UserAgent 是一个 HTTP 请求的头部信息,用于标识浏览器或客户端的身份。生成不同的 UserAgent 可以用于模拟不同的 Android 设备,测试或爬虫等用途。 要批量生成 Android UserAgent,可以使用编程语言(如 Python、Java 等)编写一个脚本,通过循环生成不同的 UserAgent。生成 UserAgent 时需要考虑以下几点: 1. Android 版本:可以选择不同的 Android 版本,如 Android 4.4、Android 5.0、Android 6.0 等。 2. 设备型号:可以选择不同的设备型号,如 Samsung Galaxy S10、Google Pixel 3、OnePlus 7 等。 3. 浏览器:可以选择不同的浏览器,如 Chrome、Firefox、Opera 等。 4. 随机化:可以对上述参数进行随机化,以模拟更多不同的设备和浏览器组合。 以下是一个使用 Python 生成 Android UserAgent 的简单示例: ``` import random android_versions = ["Android 4.4", "Android 5.0", "Android 6.0"] device_models = ["Samsung Galaxy S10", "Google Pixel 3", "OnePlus 7"] browsers = ["Chrome", "Firefox", "Opera"] user_agents = [] # 循环生成 UserAgent for _ in range(10): # 生成 10 个 UserAgent android_version = random.choice(android_versions) device_model = random.choice(device_models) browser = random.choice(browsers) user_agent = f"Mozilla/5.0 ({android_version}; {device_model}) AppleWebKit/537.36 (KHTML, like Gecko) " \ f"{browser}/73.0.3683.75 Mobile Safari/537.36" user_agents.append(user_agent) # 打印生成的 UserAgent for user_agent in user_agents: print(user_agent) ``` 该示例生成了 10 个随机的 Android UserAgent,并输出到控制台。可以根据需要调整生成的数量、可选参数等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值