* commit 'be49403a0362c18edaeafe59ac09baac14294dee': New command line tool 'idmap'
This commit is contained in:
@@ -69,6 +69,7 @@ struct ResTable_config;
|
||||
*/
|
||||
class AssetManager : public AAssetManager {
|
||||
public:
|
||||
static const char* RESOURCES_FILENAME;
|
||||
typedef enum CacheMode {
|
||||
CACHE_UNKNOWN = 0,
|
||||
CACHE_OFF, // don't try to cache file locations
|
||||
@@ -218,6 +219,13 @@ public:
|
||||
*/
|
||||
void getLocales(Vector<String8>* locales) const;
|
||||
|
||||
/**
|
||||
* Generate idmap data to translate resources IDs between a package and a
|
||||
* corresponding overlay package.
|
||||
*/
|
||||
bool createIdmap(const char* targetApkPath, const char* overlayApkPath,
|
||||
uint32_t targetCrc, uint32_t overlayCrc, uint32_t** outData, uint32_t* outSize);
|
||||
|
||||
private:
|
||||
struct asset_path
|
||||
{
|
||||
|
||||
@@ -1638,9 +1638,19 @@ public:
|
||||
// Return value: on success: NO_ERROR; caller is responsible for free-ing
|
||||
// outData (using free(3)). On failure, any status_t value other than
|
||||
// NO_ERROR; the caller should not free outData.
|
||||
status_t createIdmap(const ResTable& overlay, uint32_t originalCrc, uint32_t overlayCrc,
|
||||
status_t createIdmap(const ResTable& overlay, uint32_t targetCrc, uint32_t overlayCrc,
|
||||
void** outData, size_t* outSize) const;
|
||||
|
||||
status_t createIdmap(const ResTable& overlay,
|
||||
uint32_t targetCrc, uint32_t overlayCrc,
|
||||
const char* targetPath, const char* overlayPath,
|
||||
void** outData, uint32_t* outSize) const
|
||||
{
|
||||
(void)targetPath;
|
||||
(void)overlayPath;
|
||||
return createIdmap(overlay, targetCrc, overlayCrc, outData, outSize);
|
||||
}
|
||||
|
||||
enum {
|
||||
IDMAP_HEADER_SIZE_BYTES = 3 * sizeof(uint32_t),
|
||||
};
|
||||
@@ -1649,7 +1659,18 @@ public:
|
||||
// This function only requires the idmap header (the first
|
||||
// IDMAP_HEADER_SIZE_BYTES) bytes of an idmap file.
|
||||
static bool getIdmapInfo(const void* idmap, size_t size,
|
||||
uint32_t* pOriginalCrc, uint32_t* pOverlayCrc);
|
||||
uint32_t* pTargetCrc, uint32_t* pOverlayCrc);
|
||||
|
||||
static bool getIdmapInfo(const void* idmap, size_t size,
|
||||
uint32_t* pTargetCrc, uint32_t* pOverlayCrc,
|
||||
String8* pTargetPath, String8* pOverlayPath)
|
||||
{
|
||||
if (*pTargetPath)
|
||||
*pTargetPath = String8();
|
||||
if (*pOverlayPath)
|
||||
*pOverlayPath = String8();
|
||||
return getIdmapInfo(idmap, size, pTargetCrc, pOverlayCrc);
|
||||
}
|
||||
|
||||
void print(bool inclValues) const;
|
||||
static String8 normalizeForOutput(const char* input);
|
||||
|
||||
Reference in New Issue
Block a user