IP地址检测
视频播放器
输入关键词搜索
登录
Android系统应用

Android系统应用

2024-10-09
暂无分类

App安装方式:install和push。install命令安装到/data/app目录,push命令一般往/system/app或/system/priv-app目录推送

Android中不同应用权限级别从低到高总结场景

(1)/data/app 普通应用。只用到了普通权限,比如上网权限等等。
(2)/system/app 系统应用,用来可以限制无法手动卸载,对系统权限没有要求的情况,无法调用系统api
(3)/system/priv-app 系统应用(未设置uid.system),无法手动卸载,可以调用部分系统api
(4)系统签名应用普通安装的方式,可以调用系统相关api,同时也可以被手动卸载,可以添加privileged特殊权限
(5)system/priv-app 系统应用(设置uid.system),无法手动卸载,可以调用全部系统api,可以添加privileged特殊权限

如何查看一个应用的权限情况?

adb shell dumpsys package XXX包名
Packages:
  Package [com.example.audiologdemo] (6b95b97):
    appId=10205
    pkg=Package{49e3184 com.example.audiologdemo}
    # 代码路径
    codePath=/data/app/~~sZWbsgqbPIIBWjmx3Dt6aA==/com.example.audiologdemo-iSYYu-qiwc7zAwkP_dA-wg==
    # 资源路径
    resourcePath=/data/app/~~sZWbsgqbPIIBWjmx3Dt6aA==/com.example.audiologdemo-iSYYu-qiwc7zAwkP_dA-wg==
    # lib库路径
    legacyNativeLibraryDir=/data/app/~~sZWbsgqbPIIBWjmx3Dt6aA==/com.example.audiologdemo-iSYYu-qiwc7zAwkP_dA-wg==/lib
    extractNativeLibs=false
    primaryCpuAbi=null
    secondaryCpuAbi=null
    cpuAbiOverride=null
    #  APP版本号
    versionCode=1 minSdk=24 targetSdk=34
    minExtensionVersions=[]
    versionName=1.0
    usesNonSdkApi=false
    splits=[base]
    apkSigningVersion=2
    flags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
    privateFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ALLOW_AUDIO_PLAYBACK_CAPTURE PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING ]
    forceQueryable=false
    dataDir=/data/user/0/com.example.audiologdemo
    supportsScreens=[small, medium, large, xlarge, resizeable, anyDensity]
    timeStamp=2024-10-09 23:21:47
    lastUpdateTime=2024-10-09 23:21:47
    installerPackageName=null
    installerPackageUid=-1
    initiatingPackageName=com.android.shell
    originatingPackageName=null
    packageSource=1
    appMetadataFilePath=null
    signatures=PackageSignatures{a897d6d version:2, signatures:[430e466a], past signatures:[]}
    installPermissionsFixed=true
    pkgFlags=[ DEBUGGABLE HAS_CODE ALLOW_CLEAR_USER_DATA TEST_ONLY ALLOW_BACKUP ]
    privatePkgFlags=[ PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION ALLOW_AUDIO_PLAYBACK_CAPTURE PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING ]
    apexModuleName=null
    # Manifest.xml中声明的权限
    declared permissions:
      com.example.audiologdemo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: prot=signature
    requested permissions:
      android.permission.FOREGROUND_SERVICE
      android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION
      android.permission.RECORD_AUDIO
      android.permission.INTERNET
      android.permission.SYSTEM_ALERT_WINDOW
      android.permission.SYSTEM_OVERLAY_WINDOW
      com.example.audiologdemo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    # 安装的权限
    install permissions:
      android.permission.SYSTEM_ALERT_WINDOW: granted=false, flags=[ USER_SET]
      android.permission.FOREGROUND_SERVICE: granted=true
      android.permission.INTERNET: granted=true
      com.example.audiologdemo.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted=true
      android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION: granted=true
    User 0: ceDataInode=328481 installed=true hidden=false suspended=false distractionFlags=0 stopped=false notLaunched=false enabled=0 instant=false virtual=false
      installReason=0
      # 首次安装时间
      firstInstallTime=2024-10-04 20:20:35
      uninstallReason=0
      overlay paths:
        /product/overlay/NavigationBarModeGestural/NavigationBarModeGesturalOverlay.apk
        /data/resource-cache/com.android.systemui-neutral-un4G.frro
        /data/resource-cache/com.android.systemui-accent-EIXS.frro
        /data/resource-cache/com.android.systemui-dynamic-QAke.frro
      legacy overlay paths:
        /product/overlay/NavigationBarModeGestural/NavigationBarModeGesturalOverlay.apk
      gids=[3003]
      # 运行时请求的权限
      runtime permissions:
        android.permission.RECORD_AUDIO: granted=true, flags=[ USER_SET|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]

从dumpsys package XXX 命令的日志,可以看到包名应用对应的Uid信息,版本信息,apk安装位置,安装时间,AndroidManifest声明的权限,实际获取到的权限等等信息。

requested permissions 下面的权限是应用声明的权限,runtime permissions的权限是当前获取到的权限。

值得注意的是即使是系统应用或者系统签名应用也是要在 AndroidManifest 中声明需要的权限。

THE END
0/500
暂无评论
📢网站公告
欢迎来到这里
⚙️实用工具
html转pdfmarkdown编辑器
本站推荐:腾讯云服务器仅需2.3折 (点击直达)
用户协议
隐私政策
Build Time: 2025-04-26 11:07:00