【问题标题】:Android self-signed MotionEvent APKAndroid 自签名 MotionEvent APK
【发布时间】:2017-08-02 08:52:13
【问题描述】:

我正在开发一个 android APK,当单击某个按钮时,它将在我的手机中执行自动触摸事件,我正在遵循链接提供的解决方案:

How to simulate touch from background service with sendevent or other way?

我有来自heresignapk.jar,我还使用提供的公共和私人测试密钥,我输入的命令是:

java -jar ./signapk.jar ./testkey.x509.pem ./testkey.pk8 ./app-debug.apk ./app-signed.apk

它确实像我预期的那样为我生成了一个新的签名 APK:

应用签名.apk

然后我使用以下命令安装并运行 APK:

adb install app-signed.apk
adb shell ps

每当我点击按钮时,什么都没有发生,我做错了什么?

注意

当我输入参数时:

android:sharedUserId="android.uid.system"

进入我的AndroidManifest.xml,发生错误:

失败 [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE]

我以前从未这样做过,我以前从未尝试过自签名 APK,请指导我哪里出了问题。提前致谢。

【问题讨论】:

  • 嗨,我建议 testkeys: "./testkey.x509.pem ./testkey.pk8" 不会将您的应用程序作为系统签名。
  • 另外,“adb shell ps”不参与应用安装,它只显示安卓设备上正在运行的进程。我只用它来检查我的应用程序的进程是否正确运行。
  • 我明白了,我现在已经生成了我自己的密钥文件,它只在应用程序中工作,当我在其他应用程序上使用motionevent时,它不会工作并崩溃,root设备是唯一的选择?
  • 我不确定,该设备是否应该植根,我想在这种情况下,我会在关于触摸模拟的回答中注意到它。无论如何,它适用于原生 android 闹钟应用程序,并关闭了原生闹钟对话框,因此它不仅在应用程序内部运行良好。但它正在研究 Lollipop 和以前的版本,也许政治已经改变了。您是如何生成密钥文件的?实际上,您应该将系统应用程序视为一个 android 构建链接应用程序,因此您应该使用您的 android 操作系统源密钥文件,它只能在源代码中具有相同文件的 android 上工作。
  • 是的,我怀疑 android 策略已经更新,所以你发现的以前的解决方案在当前最新的 android 中不起作用,现在我通过 root 设备解决了它

标签: android shell android-studio android-service adb


【解决方案1】:

一些事情:

验证您的 APK 是否已正确签名:

jarsigner -verify -verbose -certs app-signed.apk

然后使用adb install -r app-signed.apk替换现有的应用程序。

有关应用签名的更多信息,请参阅 this 指南。

您最好使用official Command Line Tools

(我没有看到使用您所指的 github 项目的好处,而且它似乎也被放弃了。)

【讨论】:

    猜你喜欢
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2016-06-29
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多