hiện nay Android Permission System causes the following issue:lập trình thay đổi Manifest - cho phép tùy chỉnh Android
App Một định nghĩa sự cho phép tùy chỉnh của:
com.package.permission.READ_APP_DATA
Khi ứng dụng được cài đặt B tuyên bố sự cho phép tùy chỉnh, nó được cấp.
Tuy nhiên, nếu ứng dụng được cài đặt Một sau ứng dụng B, sau đó cho phép là không cấp cho app B.
Trong khi điều này có thể không phải là một lỗi thường xảy ra, do ứng dụng B thường là một plugin của ứng dụng A, tất nhiên nó có thể xảy ra và làm cho ứng dụng của tôi.
Với các ứng dụng SuperUser đồng ý giới thiệu quyền tùy chỉnh toàn cầu của android.permission.ACCESS_SUPERUSER
, đây có thể là một vấn đề lớn nếu người dùng quyết định chuyển đổi ứng dụng SuperUser.
Để xử lý vấn đề này, tôi có ý định sử dụng đoạn mã sau vào ứng dụng của tôi cho phép tùy chỉnh Tôi về để bắt đầu tuyên bố:
checkPermissions(this, getCallingActivity().getPackageName()); // get the package name from the sender first
private boolean checkPermissions(Context context, String callingPackage) {
final List<PackageInfo> apps = context.getPackageManager().getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (PackageInfo pi : apps) {
if (pi.packageName.equals(callingPackage)) {
String[] permissions = pi.requestedPermissions;
if (permissions != null) {
for (String permission : permissions) {
if (permission.equals("com.package.permission.READ_APP_DATA")) {
return true;
}
}
}
}
}
return false;
Theo tiêu đề của câu hỏi này: Liệu phương pháp này 'an toàn'? Hoặc là có một cách/root-hack rằng một biểu hiện của ứng dụng có thể được thay đổi sau khi nó được cài đặt và cho phép lập trình 'thêm' vào ứng dụng B?
"Tuy nhiên, nếu ứng dụng A được cài đặt sau ứng dụng B thì quyền sẽ không được cấp cho ứng dụng B." - có cùng một phần tử '' trong cả hai ứng dụng, đặc biệt nếu đây là quyền cấp 'signature'. –
CommonsWare
@CommonsWare - Cảm ơn. Có thể bạn có thể xây dựng mặc dù xin vui lòng? Tôi tin rằng đây là những gì tôi đang làm, nhưng quyền ứng dụng B vẫn không được phát hiện/cấp. Tôi nhận thấy báo cáo lỗi được liên kết cuối cùng được gán là lỗi. – brandall
"Tôi tin rằng đây là những gì tôi đang làm" - câu hỏi của bạn chỉ ra rằng chỉ có một ứng dụng A có một phần tử '' và rằng ứng dụng B chỉ có phần tử ''. Tôi cũng đang nói thêm phần tử '' vào ứng dụng B, do đó thứ tự cài đặt không còn quan trọng nữa. –
CommonsWare