2012-11-22 11 views
8

जब मैं नेक्सस 7 पर सभी ऐप्स पर सभी अनुमतियों का डंप करता हूं तो मुझे सुरक्षा स्तर 0 (सामान्य), 1 (खतरनाक), 2 (हस्ताक्षर) के साथ अनुमति (अपेक्षित) अनुमति मिलती है। 3 (SIGNATURE_OR_SYSTEM) * के तहत लॉगिंग कुछ भी नहीं है।एंड्रॉइड अनुमतियां सुरक्षा स्तर 18 और 50

लेकिन वहां कई अनुमतियां भी हैं जिनके संरक्षण स्तर '18' पर सेट किए गए हैं और कुछ '50' हैं।

मुझे ये मानदंडों का प्रतिनिधित्व करने के लिए कोई दस्तावेज नहीं मिल रहा है। क्या कोई जानता है?

* यह 3.

के तहत कुछ भी प्रवेश करने नहीं कर रहा है ये क्या लॉग इन किया गया था इस प्रकार हैं:

android.permission.ACCESS_CACHE_FILESYSTEM - 18 
android.permission.ACCESS_CHECKIN_PROPERTIES - 18 
android.permission.ACCESS_DOWNLOAD_MANAGER - 18 
android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED - 18 
android.permission.ACCESS_MTP - 18 
android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK - 18 
android.permission.BACKUP - 18 
android.permission.BIND_APPWIDGET - 18 
android.permission.BIND_DIRECTORY_SEARCH - 18 
android.permission.BIND_KEYGUARD_APPWIDGET - 18 
android.permission.BIND_REMOTEVIEWS - 18 
android.permission.BIND_WALLPAPER - 18 
android.permission.CALL_PRIVILEGED - 18 
android.permission.CHANGE_COMPONENT_ENABLED_STATE - 18 
android.permission.CHANGE_CONFIGURATION - 18 
android.permission.CONNECTIVITY_INTERNAL - 18 
android.permission.CONTROL_LOCATION_UPDATES - 18 
android.permission.CRYPT_KEEPER - 18 
android.permission.DELETE_CACHE_FILES - 18 
android.permission.DELETE_PACKAGES - 18 
android.permission.DOWNLOAD_CACHE_NON_PURGEABLE - 18 
android.permission.GLOBAL_SEARCH - 18 
android.permission.INSTALL_LOCATION_PROVIDER - 18 
android.permission.INSTALL_PACKAGES - 18 
android.permission.MANAGE_USB - 18 
android.permission.MANAGE_USERS - 18 
android.permission.MASTER_CLEAR - 18 
android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS - 18 
android.permission.MODIFY_NETWORK_ACCOUNTING - 18 
android.permission.MODIFY_PHONE_STATE - 18 
android.permission.MOUNT_FORMAT_FILESYSTEMS - 18 
android.permission.MOUNT_UNMOUNT_FILESYSTEMS - 18 
android.permission.MOVE_PACKAGE - 18 
android.permission.PACKAGE_USAGE_STATS - 18 
android.permission.PACKAGE_VERIFICATION_AGENT - 18 
android.permission.PERFORM_CDMA_PROVISIONING - 18 
android.permission.READ_FRAME_BUFFER - 18 
android.permission.READ_NETWORK_USAGE_HISTORY - 18 
android.permission.READ_PRIVILEGED_PHONE_STATE - 18 
android.permission.REBOOT - 18 
android.permission.RECEIVE_DATA_ACTIVITY_CHANGE - 18 
android.permission.RECEIVE_EMERGENCY_BROADCAST - 18 
android.permission.RETRIEVE_WINDOW_CONTENT - 18 
android.permission.SEND_SMS_NO_CONFIRMATION - 18 
android.permission.SERIAL_PORT - 18 
android.permission.SET_TIME - 18 
android.permission.SET_WALLPAPER_COMPONENT - 18 
android.permission.SHUTDOWN - 18 
android.permission.STATUS_BAR - 18 
android.permission.STOP_APP_SWITCHES - 18 
android.permission.UPDATE_DEVICE_STATS - 18 
android.permission.UPDATE_LOCK - 18 
android.permission.WRITE_APN_SETTINGS - 18 
android.permission.WRITE_GSERVICES - 18 
android.permission.WRITE_MEDIA_STORAGE - 18 
com.android.chrome.TOS_ACKED - 18 
com.android.launcher.permission.PRELOAD_WORKSPACE - 18 
com.android.vending.TOS_ACKED - 18 
com.android.vending.billing.ADD_CREDIT_CARD - 18 
com.android.vending.billing.BILLING_ACCOUNT_SERVICE - 18 
com.google.android.c2dm.permission.SEND - 18 
com.google.android.gallery3d.permission.GALLERY_PROVIDER - 18 
com.google.android.gtalkservice.permission.SEND_HEARTBEAT - 18 
com.google.android.partnersetup.permission.UPDATE_CLIENT_ID - 18 
com.google.android.permission.BROADCAST_DATA_MESSAGE - 18 
com.google.android.providers.gsf.permission.WRITE_GSERVICES - 18 
com.google.android.xmpp.permission.BROADCAST - 18 
com.google.android.xmpp.permission.XMPP_ENDPOINT_BROADCAST - 18 

android.permission.CHANGE_CONFIGURATION - 50 
android.permission.DUMP - 50 
android.permission.INTERACT_ACROSS_USERS - 50 
android.permission.READ_LOGS - 50 
android.permission.SET_ALWAYS_FINISH - 50 
android.permission.SET_ANIMATION_SCALE - 50 
android.permission.SET_DEBUG_APP - 50 
android.permission.SET_PROCESS_LIMIT - 50 
android.permission.SIGNAL_PERSISTENT_PROCESSES - 50 
android.permission.WRITE_SECURE_SETTINGS - 50 
+1

18 और 50 स्तरों के लिए अनुमति नाम और मूल्य क्या हैं? क्या एओएसपी से कोई भी ऐप है, जिसके लिए आप स्रोत की जांच कर सकते हैं? – CommonsWare

+0

आप इसे कैसे डंप करते हैं? 18 में से कई सिर्फ 'हस्ताक्षरऑरसिस्टम' हैं और 50 केवल 'खतरनाक' हैं। – kennytm

+0

इसे लॉककैट के माध्यम से डंप करना (सभी एप्लिकेशनइन्फो/पैकइन्फो में भरना और सभी अनुमतियों का एक सेट बनाना) मान PermissionInfo.protectionLevel से लिया जाता है। –

उत्तर

14

बस एक पुराने अनुत्तरित प्रश्न को देखा। यद्यपि आप पहले ही अपना जवाब प्राप्त कर सकते हैं, फिर भी मैं इसका उत्तर दूंगा। यह दूसरों की मदद कर सकता है। :)

वहां कई अनुमतियां भी हैं जिनकी सुरक्षा स्तर '18' पर सेट है और कुछ '50' हैं।

निम्नलिखित कोड एंड्रॉयड स्रोत में PermissionInfo.java से लिया गया है:

/** 
* Additional flag for {@link #protectionLevel}, corresponding 
* to the <code>system</code> value of 
* {@link android.R.attr#protectionLevel}. 
*/ 
public static final int PROTECTION_FLAG_SYSTEM = 0x10; 

/** 
* Additional flag for {@link #protectionLevel}, corresponding 
* to the <code>development</code> value of 
* {@link android.R.attr#protectionLevel}. 
*/ 
public static final int PROTECTION_FLAG_DEVELOPMENT = 0x20; 

तो अगर वहाँ एक हस्ताक्षर/प्रणाली की अनुमति है, के स्तर का होगा 18 (0x10 | 0x2)। यदि अनुमति का उपयोग विशेष विकास उपकरण के लिए किया जाता है, तो यह 50 (0x10 | 0x20 | 0x2) होगा।

मुझे इन मानों का प्रतिनिधित्व करने पर कोई दस्तावेज नहीं मिल रहा है। क्या कोई जानता है?

मैं answered in an existing question रूप में, आप सुरक्षा के स्तर पर और framework/base/core/res/AndroidManifest.xml और framework/base/data/etc/platform.xml में इन अनुमतियों के विवरण की जाँच की जा सकता है। मैं उनमें से कुछ को आपके संदर्भ के लिए यहां पोस्ट करता हूं।

<!-- Configure an application for debugging. --> 
<permission android:name="android.permission.SET_DEBUG_APP" 
    android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS" 
    android:protectionLevel="signature|system|development" 
    android:label="@string/permlab_setDebugApp" 
    android:description="@string/permdesc_setDebugApp" /> 

<!-- @hide Package verifier needs to have this permission before the PackageManager will 
    trust it to verify packages. 
--> 
<permission android:name="android.permission.PACKAGE_VERIFICATION_AGENT" 
    android:label="@string/permlab_packageVerificationAgent" 
    android:description="@string/permdesc_packageVerificationAgent" 
    android:protectionLevel="signature|system" /> 

अगर वहाँ उस xml खंड पर एक @hide एनोटेशन है, तो आप किसी भी संसाधनों इस अनुमति के बारे में दस्तावेज़ से पा सकते हैं।

1

विकास अनुमति 0x20 जो आप जिन लोगों का जिक्र कर रहे हैं उन्हें लिखते हैं, वे एंड्रॉइड विकास के दौरान Google द्वारा उपयोग की जाने वाली अनुमतियों का एक सेट हैं और उन्हें स्वचालित रूप से PackageManager द्वारा कभी भी प्रदान नहीं किया जाता है। उनका उपयोग करने में सक्षम होने के लिए आपको adb shell pm grant permission का उपयोग करना होगा।

आप यह कोड देख सकते हैं और यह परिवर्तन 02/21/2012 commit पर Google द्वारा पेश किया गया था।

+0

जब आप अनुमति कहते हैं तो आपका मतलब है एंड्रॉइड.permission.MAIN_APP_DISPLAYED? –

संबंधित मुद्दे