Android应用程序分为用户级别和系统级别。
push 与install的区别:
adb push是指定安装目录
例如,adb push xxx.apk system/app,是安装到了system/app目录下,在该目录下的程序是系统级别的。
adb install是安装到data/app目录,属于用户级应用
通过命令行 adb push安装程序到系统目录下,而AndroidStudio是使用adb instanll安装到手机上的。
众所周知,在6.0以下,软件在安装时候会被授予权限,在6.0及其以上,是动态申请权限。
但是,不是全部的权限都会被系统赋予,有些权限只能赋予系统级别运用程序。
以下,是无法赋予用户级别运用程序的权限列表(只能在系统级别程序使用的):
android.permission.ACCESS_CHECKIN_PROPERTIES android.permission.ACCESS_SURFACE_FLINGER android.permission.ACCOUNT_MANAGER android.permission.BIND_APPWIDGET android.permission.BIND_DEVICE_ADMIN android.permission.BIND_INPUT_METHOD android.permission.BIND_WALLPAPER android.permission.BRICK android.permission.BROADCAST_PACKAGE_REMOVED android.permission.BROADCAST_SMS android.permission.BROADCAST_WAP_PUSH android.permission.CALL_PRIVILEGED android.permission.CHANGE_COMPONENT_ENABLED_STATE android.permission.CLEAR_APP_USER_DATA android.permission.CONTROL_LOCATION_UPDATES android.permission.DELETE_CACHE_FILES android.permission.DELETE_PACKAGES android.permission.DEVICE_POWER android.permission.DIAGNOSTIC android.permission.FACTORY_TEST android.permission.FORCE_BACK android.permission.GLOBAL_SEARCH android.permission.HARDWARE_TEST android.permission.INJECT_EVENTS android.permission.INSTALL_LOCATION_PROVIDER android.permission.INSTALL_PACKAGES android.permission.INTERNAL_SYSTEM_WINDOW android.permission.MANAGE_APP_TOKENS android.permission.MASTER_CLEAR android.permission.READ_FRAME_BUFFER android.permission.READ_INPUT_STATE android.permission.REBOOT android.permission.SET_ACTIVITY_WATCHER android.permission.SET_ORIENTATION android.permission.SET_PREFERRED_APPLICATIONS android.permission.SET_TIME android.permission.STATUS_BAR android.permission.UPDATE_DEVICE_STATS android.permission.WRITE_GSERVICES android.permission.WRITE_SECURE_SETTINGS要获取这些权限,应用程序必须使用平台的系统密钥进行签名,即与系统保持一致的签名。但是,制造商不同,手机大厂不一样,基本排除了将这些权限赋予给用户级别的应 用程序。
个人觉得,这个目前适合,自家的系统定制的应用程序。
如何使用adb push命令行,下篇介绍。
资源参考:
资料来源:http://www.devlper.com/2010/10/security-permissions-in-android/