如何从 apk 文件中删除权限?

How to remove a permission from an apk file?

我想从权限中删除“SYSTEM_ALERT_WINDOW”。我通过 expo-Reactnative 创建了我的 apk 文件。所以我无法直接访问 android 项目。现在回答其中一个问题会对我有很大帮助。

  1. 如何从 raw-apk 文件中删除权限?
  2. 如何在不分离的情况下从 expo 项目中删除“SYSTEM_ALERT_WINDOW”权限?

这是我的 app.json 来自 expo 项目的文件:

{
"expo": {
"name": "hipotrip",
"description": "This project is really great.",
"slug": "hipotrip",
"privacy": "public",
"sdkVersion": "31.0.0",
"platforms": ["ios", "android"],
"version": "1.0.3",
"orientation": "portrait",
"icon": "./assets/icon.png",
"scheme": "hipotrip",
"splash": {
  "image": "./assets/splash.png",
  "resizeMode": "contain",
  "backgroundColor": "#ffffff"
},
"updates": {
  "fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
  "**/*"
],
"ios": {
  "bundleIdentifier": "com.berjistrip.flight",
  "supportsTablet": true,
  "buildNumber": "285"
},
"android": {
  "package": "com.hamitrip.trip360",
  "versionCode":285,
  "permissions": [
    "WRITE_CALENDAR",
    "READ_EXTERNAL_STORAGE",
    "READ_PHONE_STATE",
    "USE_FINGERPRINT",
    "VIBRATE",
    "WAKE_LOCK",
    "WRITE_EXTERNAL_STORAGE",
    "com.anddoes.launcher.permission.UPDATE_COUNT",
    "com.android.launcher.permission.INSTALL_SHORTCUT",
    "com.google.android.c2dm.permission.RECEIVE",
    "com.google.android.gms.permission.ACTIVITY_RECOGNITION",
    "com.google.android.providers.gsf.permission.READ_GSERVICES",
    "com.htc.launcher.permission.READ_SETTINGS",
    "com.htc.launcher.permission.UPDATE_SHORTCUT",
    "com.majeur.launcher.permission.UPDATE_BADGE",
    "com.sec.android.provider.badge.permission.READ",
    "com.sec.android.provider.badge.permission.WRITE",
    "com.sonyericsson.home.permission.BROADCAST_BADGE"
  ]
}

你可以做的是使用 apktool 反编译你的 APK,从清单中删除权限,增加 versionCode,也可以选择更改 versionName,然后重新编译它使用 apktool.

如果您希望能够再次将它上传到 Play 商店,您仍然需要用于 sign the APK 的原始密钥库。