Android 从本机客户端中应用程序的uid/pid获取包名和签名

Android 从本机客户端中应用程序的uid/pid获取包名和签名,android,android-ndk,android-framework,Android,Android Ndk,Android Framework,这是我在android平台上的第一个项目,我还不适应这个环境 我需要编写一个本机应用程序,它可以从[应用程序的用户id和应用程序运行实例的pid]中派生应用程序包名称和签名 我浏览了android应用程序框架,发现PackageManger能够获得软件包签名。.getPackageManager().getPackageInfo(packageName,获取签名) 但是,这显示了在Java应用程序中从包名获取签名的可能性。正如我所说,我们的输入参数只是应用程序的用户id/运行实例进程id。我还需

这是我在android平台上的第一个项目,我还不适应这个环境

我需要编写一个本机应用程序,它可以从[应用程序的用户id和应用程序运行实例的pid]中派生应用程序包名称和签名

我浏览了android应用程序框架,发现PackageManger能够获得软件包签名。.getPackageManager().getPackageInfo(packageName,获取签名)

但是,这显示了在Java应用程序中从包名获取签名的可能性。正如我所说,我们的输入参数只是应用程序的用户id/运行实例进程id。我还需要本机客户端,而不是java应用程序

我的问题可以分为以下几点

  • 有没有办法从本机程序中运行的应用程序的uid和pid中获取包名?如果无法使用本机客户端,也欢迎使用Java的方法

  • 有没有办法从包名中获取签名?正如我所说,我已经找到了它的java解决方案

  • 本机客户端是否可以使用活页夹服务?这个方法对我的问题有帮助吗?如果是,怎么做


  • 提前谢谢

    A1:我假设可以在应用程序目录中扫描包名,然后尝试在本机代码中匹配关联的用户id。在Java中,您可以直接使用

    A2:还没有看到任何本地人可以这样做。事实上,在非根目录手机上不可能访问任意的
    .apk
    文件

    A3:“可能不会”和“可能不会”以及:我不知道怎么做。绑定到远程服务不提供该服务的身份验证信息;即使有:如何在不访问签名内容的情况下验证签名,即
    .apk

    编辑:


    如前所述,
    pm
    工具可能会有所帮助。

    实际上,位于
    /data/app
    中的APK文件是世界可读的。很多年前就有一种拷贝保护机制,现在已经不存在了,看到了吗