2014-03-03 84 views
0

我使用构造2来构建我的应用程序,然后将它们导出到CocoonJS,然后将它们编译为本机应用程序。我下载了一个未签名的.apk文件,签名并上传Google Play。这些应用程序非常棒,就像它们本地编写的一样。Ludei Android应用程序需要不必要的权限

当我用CocoonJS编译我的应用程序时,它需要我的应用程序不需要的所有这些权限。我如何删除不需要的权限?

回答

1

直到Ludei在他们的云编译器上实现一个可选的权限,我们必须做一些“黑客”来自己修复这个问题。

获取附件中的apktool.zip,将其解压缩到C:\ Android文件夹中(以便于以后使用)。 https://static3.scirra.net/uploads/articles/1071/apktool.zip

复制您发布CJS编译game.apk(从在此,指的是APK文件game.apk)到C:\ Android的因此其在同一文件夹中提取apktool文件。

在按住SHIFT键的同时右键单击该文件夹中的某个位置,打开C:\ Android中的命令提示符。

首先,我们需要安装我们的CJS编译game.apk的框架内,在键入:

apktool如果game.apk

它的瞬间,一个反馈,它安装在位置127或左右。现在我们要反编译APK,输入此命令:

apktool d game.apk游戏

这需要一段时间,具体取决于你的电脑游戏&速度的大小,但你game.apk的所有内容将被反编译并存储在与您的game.apk相同的子文件夹中,即。游戏。请注意,如果您使用不同版本的apktool,则可能需要将标志更改为:apktool d game.apk -o游戏,以便正确反编译。

浏览新游戏子文件夹,你会看到所有的内容。我们之后的是AndroidManifest.xml,用Notepad ++打开它

高分辨率版本:halfgeekstudios.files.wordpress.com/2014/07/androidmanifest.jpg 通过删除灰色突出显示的行来删除权限!

权限ACCESS_NETWORK_STATE &互联网是必需的,如果你删除它,你的游戏很可能在启动时崩溃。即使您没有广告或IAP或社交插件,情况也是如此。 CJS需要这些,因为它有一些内置的分析需要它。如果您实施IAP,则还需要BILLING。有趣的是,谷歌已经决定,这三个上述权限现在将被视为正常,并且当游戏只有这三个权限时,它们不会警告用户,只要它包含其他权限!

在这里,我想指出这一行:

您可以编辑你的游戏将它们设置为false,在手机或平板电脑。如果你设置了smallScreens & normalScreens =“false”,游戏只与平板电脑兼容,反之亦然(我已经用我自己的游戏测试过)。如果您将目标设计为平板电脑,并且不想手动过滤6,400台设备(每次只能一个设备),则此功能非常方便。 :D

更改完成后,保存它。回到命令提示符下,键入这给它重新编译成一个新的APK:

apktool b游戏game_new.apk

需要一段时间,但你会得到你game_new.apk被修改。现在,您需要在上传到Google Play之前进行正常的签名和zip对齐。

https://www.scirra.com/tutorials/1071/removing-permissions-from-cocoonjs-compiled-apk

+0

感谢你,我也试试这个(我应该提到),我甚至产生了一堆的批处理文件来自动完成一切。唯一的问题是,它是“捣乱”,有时不起作用。 (还是)感谢你的建议。 – jabelone

0

您无法删除它。尝试其他工具,如Phonegap。 phonegap

相关问题