@@ -4120,6 +4120,28 @@ void dumpPackageLPr(PrintWriter pw, String prefix, String checkinTag,
41204120 pw .print (prefix ); pw .print (" pkgFlags=" ); printFlags (pw , ps .pkgFlags , FLAG_DUMP_SPEC );
41214121 pw .println ();
41224122
4123+ if (ps .pkg != null && ps .pkg .permissions != null && ps .pkg .permissions .size () > 0 ) {
4124+ final ArrayList <PackageParser .Permission > perms = ps .pkg .permissions ;
4125+ pw .print (prefix ); pw .println (" declared permissions:" );
4126+ for (int i =0 ; i <perms .size (); i ++) {
4127+ PackageParser .Permission perm = perms .get (i );
4128+ if (permissionNames != null
4129+ && !permissionNames .contains (perm .info .name )) {
4130+ continue ;
4131+ }
4132+ pw .print (prefix ); pw .print (" " ); pw .print (perm .info .name );
4133+ pw .print (": prot=" );
4134+ pw .print (PermissionInfo .protectionToString (perm .info .protectionLevel ));
4135+ if ((perm .info .flags &PermissionInfo .FLAG_COSTS_MONEY ) != 0 ) {
4136+ pw .print (", COSTS_MONEY" );
4137+ }
4138+ if ((perm .info .flags &PermissionInfo .FLAG_INSTALLED ) != 0 ) {
4139+ pw .print (", INSTALLED" );
4140+ }
4141+ pw .println ();
4142+ }
4143+ }
4144+
41234145 if (ps .sharedUser == null || permissionNames != null ) {
41244146 PermissionsState permissionsState = ps .getPermissionsState ();
41254147 dumpInstallPermissionsLPr (pw , prefix + " " , permissionNames , permissionsState );
@@ -4155,14 +4177,14 @@ void dumpPackageLPr(PrintWriter pw, String prefix, String checkinTag,
41554177 if (cmp != null && cmp .size () > 0 ) {
41564178 pw .print (prefix ); pw .println (" disabledComponents:" );
41574179 for (String s : cmp ) {
4158- pw .print (prefix ); pw .print (" " ); pw .println (s );
4180+ pw .print (prefix ); pw .print (" " ); pw .println (s );
41594181 }
41604182 }
41614183 cmp = ps .getEnabledComponents (user .id );
41624184 if (cmp != null && cmp .size () > 0 ) {
41634185 pw .print (prefix ); pw .println (" enabledComponents:" );
41644186 for (String s : cmp ) {
4165- pw .print (prefix ); pw .print (" " ); pw .println (s );
4187+ pw .print (prefix ); pw .print (" " ); pw .println (s );
41664188 }
41674189 }
41684190 }
@@ -4267,11 +4289,14 @@ void dumpPermissionsLPr(PrintWriter pw, String packageName, ArraySet<String> per
42674289 pw .print (" type=" ); pw .print (p .type );
42684290 pw .print (" prot=" );
42694291 pw .println (PermissionInfo .protectionToString (p .protectionLevel ));
4270- if (p .packageSetting != null ) {
4271- pw .print (" packageSetting=" ); pw .println (p .packageSetting );
4272- }
42734292 if (p .perm != null ) {
42744293 pw .print (" perm=" ); pw .println (p .perm );
4294+ if (p .perm .info .flags != PermissionInfo .FLAG_INSTALLED ) {
4295+ pw .print (" flags=0x" ); pw .println (Integer .toHexString (p .perm .info .flags ));
4296+ }
4297+ }
4298+ if (p .packageSetting != null ) {
4299+ pw .print (" packageSetting=" ); pw .println (p .packageSetting );
42754300 }
42764301 if (READ_EXTERNAL_STORAGE .equals (p .name )) {
42774302 pw .print (" enforced=" );
@@ -4372,24 +4397,32 @@ void dumpRuntimePermissionsLPr(PrintWriter pw, String prefix, ArraySet<String> p
43724397 continue ;
43734398 }
43744399 pw .print (prefix ); pw .print (" " ); pw .print (permissionState .getName ());
4375- pw .print (", granted=" ); pw .print (permissionState .isGranted ());
4376- pw .print ( ", flags=" ); pw . println ( permissionFlagsToString (
4377- permissionState .getFlags ()));
4400+ pw .print (": granted=" ); pw .print (permissionState .isGranted ());
4401+ pw .println ( permissionFlagsToString ( ", flags=" ,
4402+ permissionState .getFlags ()));
43784403 }
43794404 }
43804405 }
43814406
4382- private static String permissionFlagsToString (int flags ) {
4383- StringBuilder flagsString = new StringBuilder ();
4384- flagsString .append ("[ " );
4407+ private static String permissionFlagsToString (String prefix , int flags ) {
4408+ StringBuilder flagsString = null ;
43854409 while (flags != 0 ) {
4410+ if (flagsString == null ) {
4411+ flagsString = new StringBuilder ();
4412+ flagsString .append (prefix );
4413+ flagsString .append ("[ " );
4414+ }
43864415 final int flag = 1 << Integer .numberOfTrailingZeros (flags );
43874416 flags &= ~flag ;
43884417 flagsString .append (PackageManager .permissionFlagToString (flag ));
43894418 flagsString .append (' ' );
43904419 }
4391- flagsString .append (']' );
4392- return flagsString .toString ();
4420+ if (flagsString != null ) {
4421+ flagsString .append (']' );
4422+ return flagsString .toString ();
4423+ } else {
4424+ return "" ;
4425+ }
43934426 }
43944427
43954428 void dumpInstallPermissionsLPr (PrintWriter pw , String prefix , ArraySet <String > permissionNames ,
@@ -4403,8 +4436,8 @@ void dumpInstallPermissionsLPr(PrintWriter pw, String prefix, ArraySet<String> p
44034436 continue ;
44044437 }
44054438 pw .print (prefix ); pw .print (" " ); pw .print (permissionState .getName ());
4406- pw .print (", granted=" ); pw .print (permissionState .isGranted ());
4407- pw .print ( ", flags=" ); pw . println ( permissionFlagsToString (
4439+ pw .print (": granted=" ); pw .print (permissionState .isGranted ());
4440+ pw .println ( permissionFlagsToString ( ", flags=" ,
44084441 permissionState .getFlags ()));
44094442 }
44104443 }
0 commit comments