SkillAgentSearch skills...

ArscDecoder

Decode Android resources.arsc file

Install / Use

/learn @xinghui/ArscDecoder
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

ArscDecoder

Decode Android resources.arsc file

STRUCTURE:

COMMON STRUCTURE

// Header that appears at the front of every data chunk in a resource.

  • ResChunk_header

      short type
      short headerSize
      int bodySize
    
      chunk size: 2 + 2 + 4;
    

UNIQUE STRUCTURE

// Header for a resource table.

  • ResTable_header

      ResChunk_header header
      int packageCount
    
      chunk size: ResChunk_header.size + 4;
    

    // Definition for a pool of strings.

  • ResStringPool_header

      ResChunk_header header
      int stringCount
      int styleCount
      int flags
      int stringsStart
      int stylesStart
    
      chunk size: ResChunk_header.size + 4 * 5
    

    // Convenience class for assessing data in a ResStringPool resource.

  • ResStringPool

      skip: stringsStart - header.headerSize = stringCount * 4 + styleCount * 4
          stringOffsets = int[stringCount]
          styleOffsets = int[styleCount]
      read string content, UTF8 or UTF16
      read style content
    

    // A collection of resource data types within a packages.

  • ResTable_package

      ResChunk_header header
      int id
      char[128] name
      int typeStrings
      int lastPublicType
      int keyStrings
      int lastPublicKey
    
      chunk size: ResChunk_header.size + 4 * 5 + 128 * 2
    

    // A specification of the resources defined by a particular type.

  • ResTable_typeSpec

      ResChunk_header header
      byte id
      byte res0
      short res1
      int entryCount
    
      chunk size: ResChunk_header.size + 1 * 2 + 2 + 4
    

    // A collection of resource entries for a particular resource data type.

  • ResTable_type

      ResChunk_header
      byte id
      byte res0
      short res1
      int entryCount
      int entriesStart
      ResTable_config config
    
      chunk size: ResChunk_header.size + 1 * 2 + 2 + 4 * 2 + ResTable_config.size
    

    // Describes a particular resource configuration.

  • ResTable_config

      int size
      short mcc
      short mnc
      char[2] language
      char[2] country
      byte orientation
      byte touchscreen
      short density
      byte keyboard
      byte navigation
      byte inputFlags
      byte inputPad0
      short screenWidth
      short screenHeight
      short sdkVersion
      short minorVersion
      byte screenLayout
      byte uiMode
      short smallestScreenWidthDp
    
      // connect with the size value
      // short screenWidthDp
      // short screenHeightDp
      // short layoutDirection
    

SAMPLE:

              type:  : 02 00           2
        headerSize:  : 0C 00           12
              size:  : 84 14 00 00           5252
      packageCount:  : 01 00 00 00           1
"...RES_TABLE_TYPE.............................."
              type:  : 01 00           1
        headerSize:  : 1C 00           28
              size:  : 30 04 00 00           1072
       stringCount:  : 2E 00 00 00           46
        styleCount:  : 00 00 00 00           0
             flags:  : 00 01 00 00           256
      stringsStart:  : D4 00 00 00           212
       stylesStart:  : 00 00 00 00           0
SORTED_FLAG = 1
UTF8_FLAG = 256
         intArray{0] : 00 00 00 00           0
         intArray{1] : 1B 00 00 00           27
         intArray{2] : 3B 00 00 00           59
         intArray{3] : 56 00 00 00           86
         intArray{4] : 73 00 00 00           115
         intArray{5] : 91 00 00 00           145
         intArray{6] : AE 00 00 00           174
         intArray{7] : C0 00 00 00           192
         intArray{8] : E7 00 00 00           231
         intArray{9] : 0E 01 00 00           270
        intArray{10] : 36 01 00 00           310
        intArray{11] : 5F 01 00 00           351
        intArray{12] : 6F 01 00 00           367
        intArray{13] : 77 01 00 00           375
        intArray{14] : 7B 01 00 00           379
        intArray{15] : 7F 01 00 00           383
        intArray{16] : 84 01 00 00           388
        intArray{17] : 8D 01 00 00           397
        intArray{18] : 9A 01 00 00           410
        intArray{19] : A3 01 00 00           419
        intArray{20] : AD 01 00 00           429
        intArray{21] : B7 01 00 00           439
        intArray{22] : BC 01 00 00           444
        intArray{23] : C1 01 00 00           449
        intArray{24] : CE 01 00 00           462
        intArray{25] : D4 01 00 00           468
        intArray{26] : DA 01 00 00           474
        intArray{27] : E5 01 00 00           485
        intArray{28] : F4 01 00 00           500
        intArray{29] : 03 02 00 00           515
        intArray{30] : 10 02 00 00           528
        intArray{31] : 56 02 00 00           598
        intArray{32] : 64 02 00 00           612
        intArray{33] : 6E 02 00 00           622
        intArray{34] : 7E 02 00 00           638
        intArray{35] : 87 02 00 00           647
        intArray{36] : A1 02 00 00           673
        intArray{37] : B0 02 00 00           688
        intArray{38] : CC 02 00 00           716
        intArray{39] : D7 02 00 00           727
        intArray{40] : F7 02 00 00           759
        intArray{41] : 08 03 00 00           776
        intArray{42] : 1F 03 00 00           799
        intArray{43] : 29 03 00 00           809
        intArray{44] : 3E 03 00 00           830
        intArray{45] : 55 03 00 00           853
----++--size = 860
          readString : 18 18 72 65 73 2F 78 6D 6C 2F 70 72 65 66 5F 67 65 6E 65 72 61 6C 2E 78 6D 6C 00 1D 1D 72 65 73 2F 78 6D 6C 2F 70 72 65 66 5F 6E 6F 74 69 66 69 63 61 74 69 6F 6E 2E 78 6D 6C 00 18 18 72 65 73 2F 78 6D 6C 2F 70 72 65 66 5F 68 65 61 64 65 72 73 2E 78 6D 6C 00 1A 1A 72 65 73 2F 6C 61 79 6F 75 74 2F 61 63 74 69 76 69 74 79 5F 6D 79 2E 78 6D 6C 00 1B 1B 72 65 73 2F 6C 61 79 6F 75 74 2F 66 6C 6F 61 74 5F 77 69 6E 64 6F 77 2E 78 6D 6C 00 1A 1A 72 65 73 2F 78 6D 6C 2F 70 72 65 66 5F 64 61 74 61 5F 73 79 6E 63 2E 78 6D 6C 00 0F 0F 72 65 73 2F 6D 65 6E 75 2F 6D 79 2E 78 6D 6C 00 24 24 72 65 73 2F 64 72 61 77 61 62 6C 65 2D 6D 64 70 69 2D 76 34 2F 69 63 5F 6C 61 75 6E 63 68 65 72 2E 70 6E 67 00 24 24 72 65 73 2F 64 72 61 77 61 62 6C 65 2D 68 64 70 69 2D 76 34 2F 69 63 5F 6C 61 75 6E 63 68 65 72 2E 70 6E 67 00 25 25 72 65 73 2F 64 72 61 77 61 62 6C 65 2D 78 68 64 70 69 2D 76 34 2F 69 63 5F 6C 61 75 6E 63 68 65 72 2E 70 6E 67 00 26 26 72 65 73 2F 64 72 61 77 61 62 6C 65 2D 78 78 68 64 70 69 2D 76 34 2F 69 63 5F 6C 61 75 6E 63 68 65 72 2E 70 6E 67 00 0D 0D 57 68 65 6E 20 70 6F 73 73 69 62 6C 65 00 05 05 4E 65 76 65 72 00 01 01 31 00 01 01 30 00 02 02 2D 31 00 06 06 41 6C 77 61 79 73 00 0A 0A 33 30 20 6D 69 6E 75 74 65 73 00 06 06 31 20 68 6F 75 72 00 07 07 33 20 68 6F 75 72 73 00 07 07 36 20 68 6F 75 72 73 00 02 02 31 35 00 02 02 33 30 00 0A 0A 31 35 20 6D 69 6E 75 74 65 73 00 03 03 31 38 30 00 03 03 33 36 30 00 08 08 53 65 74 74 69 6E 67 73 00 0C 0C 44 65 76 41 73 73 69 73 74 61 6E 74 00 0C 0C 48 65 6C 6C 6F 20 77 6F 72 6C 64 21 00 0A 0A 4A 6F 68 6E 20 53 6D 69 74 68 00 43 43 52 65 63 6F 6D 6D 65 6E 64 61 74 69 6F 6E 73 20 66 6F 72 20 70 65 6F 70 6C 65 20 74 6F 20 63 6F 6E 74 61 63 74 20 62 61 73 65 64 20 6F 6E 20 79 6F 75 72 20 6D 65 73 73 61 67 65 20 68 69 73 74 6F 72 79 00 0B 0B 44 61 74 61 20 26 20 73 79 6E 63 00 07 07 47 65 6E 65 72 61 6C 00 0D 0D 4E 6F 74 69 66 69 63 61 74 69 6F 6E 73 00 06 06 53 69 6C 65 6E 74 00 17 17 41 64 64 20 66 72 69 65 6E 64 73 20 74 6F 20 6D 65 73 73 61 67 65 73 00 0C 0C 44 69 73 70 6C 61 79 20 6E 61 6D 65 00 19 19 4E 65 77 20 6D 65 73 73 61 67 65 20 6E 6F 74 69 66 69 63 61 74 69 6F 6E 73 00 08 08 52 69 6E 67 74 6F 6E 65 00 1D 1D 45 6E 61 62 6C 65 20 73 6F 63 69 61 6C 20 72 65 63 6F 6D 6D 65 6E 64 61 74 69 6F 6E 73 00 0E 0E 53 79 6E 63 20 66 72 65 71 75 65 6E 63 79 00 14 14 53 79 73 74 65 6D 20 73 79 6E 63 20 73 65 74 74 69 6E 67 73 00 07 07 56 69 62 72 61 74 65 00 06 12 E6 98 BE E7 A4 BA E6 B5 AE E5 8A A8 E6 97 A5 E5 BF 97 00 0C 14 E6 98 BE E7 A4 BA E6 B5 AE E5 8A A8 41 63 74 69 76 69 74 79 00 02 02 36 30 00 00 00

 entry=== res/xml/pref_general.xml

 entry=== res/xml/pref_notification.xml

 entry=== res/xml/pref_headers.xml

 entry=== res/layout/activity_my.xml

 entry=== res/layout/float_window.xml

 entry=== res/xml/pref_data_sync.xml

 entry=== res/menu/my.xml

 entry=== res/drawable-mdpi-v4/ic_launcher.png

 entry=== res/drawable-hdpi-v4/ic_launcher.png

 entry=== res/drawable-xhdpi-v4/ic_launcher.png

 entry=== res/drawable-xxhdpi-v4/ic_launcher.png

 entry=== When possible

 entry=== Never

 entry=== 1

 entry=== 0

 entry=== -1

 entry=== Always

 entry=== 30 minutes

 entry=== 1 hour

 entry=== 3 hours

 entry=== 6 hours

 entry=== 15

 entry=== 30

 entry=== 15 minutes

 entry=== 180

 entry=== 360

 entry=== Settings

 entry=== DevAssistant

 entry=== Hello world!

 entry=== John Smith

 entry=== Recommendations for people to contact based on your message history

 entry=== Data & sync

 entry=== General

 entry=== Notifications

 entry=== Silent

 entry=== Add friends to messages

 entry=== Display name

 entry=== New message notifications

 entry=== Ringtone

 entry=== Enable social recommendations

 entry=== Sync frequency

 entry=== System sync settings

 entry=== Vibrate

 entry=== 显示浮动日志

 entry=== 显示浮动Activity

 entry=== 60
"...RES_TABLE_PACKAGE_TYPE.............................."
              type:  : 00 02           512
        headerSize:  : 
View on GitHub
GitHub Stars28
CategoryDevelopment
Updated9mo ago
Forks15

Languages

Java

Security Score

67/100

Audited on Jun 29, 2025

No findings