diff options
Diffstat (limited to 'include/androidfw/ResourceTypes.h')
-rw-r--r-- | include/androidfw/ResourceTypes.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/include/androidfw/ResourceTypes.h b/include/androidfw/ResourceTypes.h index 5130e6c..ae955c6 100644 --- a/include/androidfw/ResourceTypes.h +++ b/include/androidfw/ResourceTypes.h @@ -1547,10 +1547,11 @@ public: status_t add(const void* data, size_t size, const int32_t cookie=-1, bool copyData=false); status_t add(const void* data, size_t size, const void* idmapData, size_t idmapDataSize, - const int32_t cookie=-1, bool copyData=false); + const int32_t cookie=-1, bool copyData=false, const uint32_t pkgIdOverride=0); status_t add(Asset* asset, const int32_t cookie=-1, bool copyData=false); - status_t add(Asset* asset, Asset* idmapAsset, const int32_t cookie=-1, bool copyData=false); + status_t add(Asset* asset, Asset* idmapAsset, const int32_t cookie=-1, bool copyData=false, + const uint32_t pkgIdOverride=0); status_t add(ResTable* src); status_t addEmpty(const int32_t cookie); @@ -1637,7 +1638,7 @@ public: void lock() const; ssize_t getBagLocked(uint32_t resID, const bag_entry** outBag, - uint32_t* outTypeSpecFlags=NULL) const; + uint32_t* outTypeSpecFlags=NULL, bool performMapping=true) const; void unlock() const; @@ -1830,10 +1831,11 @@ public: // NO_ERROR; the caller should not free outData. status_t createIdmap(const ResTable& overlay, uint32_t targetCrc, uint32_t overlayCrc, + time_t targetMtime, time_t overlayMtime, const char* targetPath, const char* overlayPath, void** outData, size_t* outSize) const; - static const size_t IDMAP_HEADER_SIZE_BYTES = 4 * sizeof(uint32_t) + 2 * 256; + static const size_t IDMAP_HEADER_SIZE_BYTES = 6 * sizeof(uint32_t) + 2 * 256; // Retrieve idmap meta-data. // @@ -1844,6 +1846,8 @@ public: uint32_t* pTargetCrc, uint32_t* pOverlayCrc, String8* pTargetPath, String8* pOverlayPath); + void removeAssetsByCookie(const String8 &packageName, int32_t cookie); + void print(bool inclValues) const; static String8 normalizeForOutput(const char* input); @@ -1857,20 +1861,26 @@ private: typedef Vector<Type*> TypeList; status_t addInternal(const void* data, size_t size, const void* idmapData, size_t idmapDataSize, - const int32_t cookie, bool copyData); + const int32_t cookie, bool copyData, const uint32_t pkgIdOverride); ssize_t getResourcePackageIndex(uint32_t resID) const; status_t getEntry( const PackageGroup* packageGroup, int typeIndex, int entryIndex, const ResTable_config* config, - Entry* outEntry) const; + Entry* outEntry, const bool performMapping=true) const; uint32_t findEntry(const PackageGroup* group, ssize_t typeIndex, const char16_t* name, size_t nameLen, uint32_t* outTypeSpecFlags) const; status_t parsePackage( - const ResTable_package* const pkg, const Header* const header); + const ResTable_package* const pkg, const Header* const header, + const uint32_t pkgIdOverride); + + bool isResTypeAllowed(const char* type) const; + bool isDynamicPackageId(const uint32_t pkgId) const; + bool isProtectedAttr(uint32_t resID) const; + status_t removeIdmappedTypesFromPackageGroup(PackageGroup* packageGroup) const; void print_value(const Package* pkg, const Res_value& value) const; |