AAR
application/octet-stream
Magic Bytes
Offset: 0
50 4B 03 04 50 4B 05 06 50 4B 07 08
The Android Archive (AAR) is a binary distribution format developed and maintained by Google for the Android operating system. Software developers utilize these files to bundle compiled Java or Kotlin code, resource files, and manifest declarations into reusable library modules for mobile applications. As a compressed ZIP archive, the format is generally considered safe, though developers should verify library origins to prevent the inclusion of malicious code during the application build process.
Validation Code
How to validate .aar files in Python
Python
def is_aar(file_path: str) -> bool:
"""Check if file is a valid AAR by magic bytes."""
signature = bytes([0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08])
with open(file_path, "rb") as f:
return f.read(12) == signature
How to validate .aar files in Node.js
Node.js
function isAAR(buffer: Buffer): boolean {
const signature = Buffer.from([0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08]);
return buffer.subarray(0, 12).equals(signature);
}
Go
func IsAAR(data []byte) bool {
signature := []byte{0x50, 0x4B, 0x03, 0x04, 0x50, 0x4B, 0x05, 0x06, 0x50, 0x4B, 0x07, 0x08}
if len(data) < 12 {
return false
}
return bytes.Equal(data[:12], signature)
}
API Endpoint
GET
/api/v1/aar
curl https://filesignature.org/api/v1/aar