LoginSignup
1
0

More than 3 years have passed since last update.

android studioで削除したパーミッションが生き残ってる時の対応

Last updated at Posted at 2019-10-19

経緯

android manifestでいらないパーミッションを消したい
>間違いなく消してるのにどっかから検出されてる
>別ライブラリで使ってるオチ

普通に全部検索して消せばOKなのですが、それをやってられない時用の対応メモ

参考サイト

http://blog.riskfinder.co.jp/2015/10/android-studio.html
https://mrtry.hatenablog.jp/entry/2017/12/07/000000
https://developer.android.com/studio/build/manifest-merge.html
一番最後のは公式

対応方針

上記参考サイトによると、ライブラリとか使ってて複数manifestがあるときはビルドの時に統合されるらしい。
今回いじるアプリは大量のライブラリを使ってるので確かにこの中にあってもおかしくない…
この統合ツールは結構いろんなことができるらしいので、今回はそれを使って「特定のパーミッションは統合しない」という対応

ひとまず現状確認
ちなみに今回消したいのはC2D_MESSAGEです。GCM用のものなので不要
./build/intermediates/manifests/full/debug/AndroidManifest.xml
が統合結果とのこと。確かに

<permission
    android:name="{パッケージ名}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

の記述がある。これを見て削除できたかどうかのチェックをする。逐一クリーンビルドして確認

対応

>applicatonタグにxmlns:tools="http://schemas.android.com/tools"を追加したのち、

<{消したいパーミッションと全く同じ記述} tools:node="remove"/>

をmanifestに追加で消えるはず

引っかかったところメモ

パッケージ名はもちろん、タグ名や他のプロパティまで全く同じ記述にしないと消えないようです。
下記は実際の事例

<uses-permission android:name="{パッケージ名}.permission.C2D_MESSAGE" tools:node="remove"/>

を追加
>消えない
>他のプロパティを記述してなかったので、

<uses-permission
    android:name="{パッケージ名}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"
    tools:node="remove"/>

に変更
>消えない
>統合結果をよーーーく見ると、

<permission
    android:name="{パッケージ名}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

だった…(uses-permissionじゃない。)

<permission
    android:name="{パッケージ名}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"
    tools:node="remove"/>

に変更
>消えた!が、

<uses-permission android:name="{パッケージ名}.permission.C2D_MESSAGE"/>

が生き残ってた…

<uses-permission android:name="{パッケージ名}.permission.C2D_MESSAGE" tools:node="remove"/>

を追加
>これで全部消えた!!

所感

記述は簡単(今回は消したいパーミッションの末尾にtools:node="remove"をつけるだけ)
結構いろんなことやってくれて便利そう。
ただ記述は正確にしないとはまる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0