相关疑难解决方法(0)

区分Android上的开发模式和发布模式环境设置

我正在构建一个Android应用程序,并希望维护一些我可以调整的环境变量,具体取决于我是处于开发模式还是发布模式.例如,我需要调用Web服务,并且在任一模式下URL都会略有不同.我想将此设置和其他设置外部化,以便我可以根据目标部署轻松更改它们.

SDK中是否有任何最佳实践或任何内容可以满足此需求?

android development-environment release-management

55
推荐指数
4
解决办法
1万
查看次数

确定Android设备是否以编程方式为根?

可能重复:
确定是否在root设备上运行

如何(以编程方式)确定Android设备是否:rooted运行软件或ROM的破解副本.

我的数据库中有一些敏感信息,我希望在手机被root用户时加密,即用户可以访问数据库.我怎么检测到?

android

37
推荐指数
2
解决办法
4万
查看次数

Google IAP会返回简短的购买令牌以进行验证

我已经实施了服务器端验证Google IAP购买令牌.我的移动应用程序将此令牌发送给我,因为它来自Google.

常规令牌看起来像

minodojglppganfbiedlabed.AO-J1OyNtpooSraUdtKlZ_9gYs0o20ZF_0ryTNACmvaaaG5EwPX0hPruUdGbE3XejoXYCYzJA2xjjAxrDLFhmu9WC4fvTDNL-RDXCWjlHKpzLOigxCr1QhScXR8uXtX8R94iV6MmMHqD

但有时我会得到一个像这样的短标记

korpimulxmslxissnschtkdb

当我通过Google Play Developer API验证此令牌时:https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/subscriptions/subscriptionId/tokens/token,对于短令牌,我收到404错误.

问题出在哪儿?这个短令牌可能代表真实交易吗?

android in-app-purchase in-app-billing google-play

32
推荐指数
1
解决办法
8862
查看次数

如何检查Android手机是否已植根?

我想在我的应用程序中以编程方式查找Android手机是否已植根.我找到了许多链接:确定是否在root设备上运行 有效的方式以编程方式检查我是否植根于Android?讨论同一主题.然而,正如那些链接所提到的,没有一个明确的方法可以找到答案.这些帖子很老了,我想知道在最近的版本中是否有更好的方法可以实现它?

提前致谢!

android root

8
推荐指数
2
解决办法
3万
查看次数

我可以在我的Android应用程序中禁用systemui吗?

我使用此答案为我的应用程序实现了Kiosk模式:https://stackoverflow.com/a/26013850

我使用Kingo Root生成平板电脑,然后执行以下命令:

adb shell >
 su >
 pm disable com.android.systemui >
Run Code Online (Sandbox Code Playgroud)

我正在构建一个只会在我们的设备上用作自助服务终端的应用....

它工作得很好但是我想从Android应用程序本身执行系统ui的禁用和启用.

系统命令是否可以在应用程序中执行?

android root kiosk-mode

8
推荐指数
1
解决办法
9710
查看次数

如何在android中检查root访问权限?

我创建了一个检查Android手机是否已植根的方法.这样做如下

public int checkrootcommand(String string) {
    // TODO Auto-generated method stub
    Process exec;
    try {

        exec = Runtime.getRuntime().exec(new String[]{"su","-c"});

        final OutputStreamWriter out = new OutputStreamWriter(exec.getOutputStream());
        out.write("exit");
        out.flush();

        Log.i(SUPER_USER_COMMAND, "su command executed successfully");
        return 0; // returns zero when the command is executed successfully
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }  
    return 1; //returns one when the command execution fails
}
Run Code Online (Sandbox Code Playgroud)

但问题是方法checkrootcommand()首先执行完美,但是当再次调用相同的方法时,超级用户会话仍在运行.有没有办法在执行方法后结束超级用户会话?

android command root

7
推荐指数
1
解决办法
6604
查看次数

如何检查设备是否已在 Flutter 中 root

Flutter中有没有插件可以检查设备是否已root。我是移动应用程序开发的初学者,据我所知,有一些系统目录需要搜索su二进制文件。

android ios flutter

7
推荐指数
1
解决办法
8311
查看次数

如何检查android设备是rooted设备?

我如何检查Android设备是否已植根?我使用以下代码:

Process proc = Runtime.getRuntime ().exec ("su");
Run Code Online (Sandbox Code Playgroud)

当我在设备上运行它时,我得到了以下异常.

Causes by:Permission denied
Run Code Online (Sandbox Code Playgroud)

但是在模拟器上运行不会给出任何异常.

我正在使用另一种方式来检查.输入adb shell模拟器的命令行返回#,但是对于设备写入adb shell会出现以下错误:

shell@android:/ $ su  
su   
/system/bin/sh: su: not found   
127|shell@android:/ $  
Run Code Online (Sandbox Code Playgroud)

那么如何检查设备是否已植根.

提前致谢.

android adb

5
推荐指数
1
解决办法
1万
查看次数

如何以编程方式找到有根设备?

在安装我的应用程序之前,我希望它检查设备是否已 root。我使用了以下代码

private static boolean isRooted()

                 return findBinary("su");
        }
    public static boolean findBinary(String binaryName) {

        boolean found = false;
        if (!found) {

            String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
                    "/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
            for (String where : places) {
                if ( new File( where + binaryName ).exists() ) {

                    found = true;
                    break;
                }
            }
        }
        return found;
    } 
Run Code Online (Sandbox Code Playgroud)

它工作正常。但我听说可以更改文件名“su”,并且可以在非根设备中创建名为“su”的文件。在这种情况下,此源不可靠。所以我想除了搜索“su”之外,还知道其他一些方法来找到有根设备。我使用了以下代码

   Public static boolean checkRootMethod1()

     {
        String buildTags = android.os.Build.TAGS;

        if (buildTags != null && buildTags.contains("test-keys")) {

            return true;
        }

        return …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
1万
查看次数

如何检测设备是否植根于应用程序?

可能重复:
确定是否在root设备上运行

在启动应用程序时,我想检测运行的设备是否已植根.有没有正确的方法来检测它?

我不认为尝试将文件写入'\ data'以查看root是否是一个很好的解决方案.(因为即使是有根设备的设备也可能没有特权)

android root detect

4
推荐指数
1
解决办法
1万
查看次数

Android中无法绕过的根检测方法

我知道运行在root设备上拥有敏感信息的应用程序根本不安全。因此,开发人员通常会在这种情况下进行根目录检测,如果发现设备已植根,则该应用程序将不会安装。一切都好。

开发人员在根检测中使用的主要技术是检查superuser.apk文件,检查chainfire,busybox,执行su命令等。但是,攻击者可以通过几种方法来绕过这些检查,例如将superuser.apk重命名为superuser0.apk。

因此,我正在寻找的是针对此问题的独特解决方案,其中攻击者无法绕过根检测。即使不存在这样的解决方案,也请分享您的观点。因为你们的解决方案可能有助于至少加强根检测代码。

security android root su

4
推荐指数
2
解决办法
2万
查看次数

Android:如何检测Android应用程序中的生根

我想知道如何检测Android应用程序中的rooting.

android

-5
推荐指数
1
解决办法
103
查看次数