8

シェルからアプリケーションをアンインストールしようとしていますが、このアプリケーションはデバイス管理者として実行されているため、機能shell> adb uninstall com.example.testしませんでした。

シェルからデバイス管理者を無効にするにはどうすればよいですか?

4

3 に答える 3

18

通常、管理アクセスはデバイス管理者画面から取り消され、アプリはアンインストールされます。以降の例では、airdroid ( com.sand.airdroid) がデバイス管理者として構成されており、アンインストールされるものとします。したがって、この例を調整するには、 のインスタンスをcom.sand.airdroid独自のアプリ名に置き換えます。

きれいな方法

デバイス管理者にアクセスするには、設定セキュリティデバイス管理者に移動します。次に、管理アクセスの設定を解除するア​​プリケーションのチェックを外します。

シェルを使用してこのアクティビティを開くこともできます。

adb shell am start -S "com.android.settings/.Settings\$DeviceAdminSettingsActivity"

これが完了すると、アクティビティは通常どおりアンインストールできます。

adb uninstall com.sand.airdroid

ブルートフォース方式 (root が必要)

力ずくの方法は存在します。これには、/system および /data ファイルシステム内のすべてのファイルの検索と、見つかった各アイテムの削除が含まれます。免責事項: 注意して使用してください (最初にエミュレーターでテストしてください)。

adb shell

# Switch to root
su -

# Search for all installed files using the fully-qualified app name
find /system /data -name \*com.sand.airdroid\* 

...ファイル (ディレクトリを含む) のリストが表示されます -- 各ファイルについて、次のプレフィックスを付けて削除しますrm -f:

rm -r /data/media/0/Android/data/com.sand.airdroid
rm -r /data/data/com.sand.airdroid
rm -r /data/app-lib/com.sand.airdroid-1
rm -r /data/app/com.sand.airdroid-1.apk
rm -r /data/dalvik-cache/data@app@com.sand.airdroid-1.apk@classes.dex

# Run the find command again to ensure nothing was missed
find /system /data -name \*com.sand.airdroid\* 

# exit root
exit
# exit Android shell
exit

Android がファイルをクリーンアップできるようにするには、デバイスを再起動します。

adb reboot

uninstallデバイスが再起動したら、クリーンアップを完了するコマンドを使用してアプリケーションをアンインストールできます。

adb uninstall com.sand.airdroid
于 2015-03-17T07:19:15.867 に答える