0
Androidのカメラやマイクなどのハードウェア要素を使用して、アプリやプロセスの番号や名前にアクセスする可能性がありますか?現在、ハードウェア機能を使用しているすべてのアプリのアクセスリスト
Androidのカメラやマイクなどのハードウェア要素を使用して、アプリやプロセスの番号や名前にアクセスする可能性がありますか?現在、ハードウェア機能を使用しているすべてのアプリのアクセスリスト
これについては、まず機能を備えたアプリを見つけて、それに対応するPIDを見つけることです。あなたがrootでないなら、私はシステムサービスを受けることは可能ではないと思います。また、pidを取得することは困難です。 これを見てくださいgithub link .ItはAndroid Nの下でのみ動作します。
アプリはマニフェストでハードウェアを使用するための許可を必要としています。 たとえば、音声を録音するにはandroid.permission.RECORD_AUDIO、カメラを使用するにはandroid.permission.CAMERAを使用します。
許可の詳細については、この公式google docをご覧ください。
String[] permissions = context.getPackageManager().getPackageInfo("Enter Your PackageName Here", PackageManager.GET_PERMISSIONS)
.requestedPermissions
for (String permission : permissions) {
if(permission.equals("hardware permission like camera or record audio")){
//Do Stuff here
//Use the methods given in the gihtub link above to get PID
//Below code is take from the github link given above
List<AndroidAppProcess> processes =AndroidProcesses.getRunningAppProcesses();
for (AndroidAppProcess process : processes) {
// Get some information about the process
String processName = process.name;
Stat stat = process.stat();
int pid = stat.getPid();
int parentProcessId = stat.ppid();
long startTime = stat.stime();
int policy = stat.policy();
char state = stat.state();
Statm statm = process.statm();
long totalSizeOfProcess = statm.getSize();
long residentSetSize = statm.getResidentSetSize();
PackageInfo packageInfo = process.getPackageInfo(context, 0);
String appName = packageInfo.applicationInfo.loadLabel(pm).toString();
}
}
}
手動でadbシェルを実行し、対応するuidが実行されているかどうかを確認する場合は手動でチェックします。