如何使用 Xamarin 调试平台签名的系统应用 Android
How to debug a platform signed system app using Xamarin Android
我目前正在开发一个项目,该项目必须是平台签名的系统应用程序才能有权在专有 Android 设备的 I2C 总线上进行通信。
清单包含 android:sharedUserId="android.uid.system" 并且生成的未签名 apk 已签名、zipaligned 并与此批次一起安装...
java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk
zipalign -f -v 4 signed.apk aligned.apk
adb install -rg aligned.apk
这很好用。但是,我需要进行广泛的开发 运行 此权限需要附加调试器。我尝试使用自定义配置,该配置保留调试器符号,同时在包中包含 Mono 运行时,结果发现您无法从 Xamarin 附加到已经 运行 Android 的应用程序。
有没有办法创建一个使用平台签名签名的密钥库,我可以将其放入...\AppData\Local\Xamarin\Mono for Android\ 以替换 debug.keystore?这个想法是调试构建部署过程会选择它并且我将拥有我需要的特权并且具有调试器的附件。
非常感谢任何帮助。
您可以从 DER 编码的 PKCS #8 私钥和相应的 PEM 编码的 X.509 证书创建 JKS 密钥库,如下所示:
openssl pkcs8 -inform der -in platform.pk8 -nocrypt -out platform.key
openssl pkcs12 -export -in platform.x509.pem -inkey platform.key -out platform.p12
keytool -importkeystore \
-srckeystore platform.p12 -srcstoretype pkcs12 \
-destkeystore platform.keystore \
-deststorepass android -destkeypass android
shred -u platform.key platform.p12
对于以下内容,在我执行 Alex 的步骤后,我将其添加到 .csproj 文件以获取 Visual Studio 以将其用于此特定示例。
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>(path)\platform.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>android</AndroidSigningStorePass>
<AndroidSigningKeyAlias>1</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>android</AndroidSigningKeyPass>
</PropertyGroup>
我目前正在开发一个项目,该项目必须是平台签名的系统应用程序才能有权在专有 Android 设备的 I2C 总线上进行通信。
清单包含 android:sharedUserId="android.uid.system" 并且生成的未签名 apk 已签名、zipaligned 并与此批次一起安装...
java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk
zipalign -f -v 4 signed.apk aligned.apk
adb install -rg aligned.apk
这很好用。但是,我需要进行广泛的开发 运行 此权限需要附加调试器。我尝试使用自定义配置,该配置保留调试器符号,同时在包中包含 Mono 运行时,结果发现您无法从 Xamarin 附加到已经 运行 Android 的应用程序。
有没有办法创建一个使用平台签名签名的密钥库,我可以将其放入...\AppData\Local\Xamarin\Mono for Android\ 以替换 debug.keystore?这个想法是调试构建部署过程会选择它并且我将拥有我需要的特权并且具有调试器的附件。
非常感谢任何帮助。
您可以从 DER 编码的 PKCS #8 私钥和相应的 PEM 编码的 X.509 证书创建 JKS 密钥库,如下所示:
openssl pkcs8 -inform der -in platform.pk8 -nocrypt -out platform.key
openssl pkcs12 -export -in platform.x509.pem -inkey platform.key -out platform.p12
keytool -importkeystore \
-srckeystore platform.p12 -srcstoretype pkcs12 \
-destkeystore platform.keystore \
-deststorepass android -destkeypass android
shred -u platform.key platform.p12
对于以下内容,在我执行 Alex 的步骤后,我将其添加到 .csproj 文件以获取 Visual Studio 以将其用于此特定示例。
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>(path)\platform.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>android</AndroidSigningStorePass>
<AndroidSigningKeyAlias>1</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>android</AndroidSigningKeyPass>
</PropertyGroup>