secureswitools/swisistools/source/interpretsislib/sisregistry.cpp
changeset 60 245df5276b97
parent 33 8110bf1194d1
child 76 f36d4ce8961e
equal deleted inserted replaced
53:ae54820ef82c 60:245df5276b97
    21 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    21 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
    22 
    22 
    23 #include "dbhelper.h"
    23 #include "dbhelper.h"
    24 #include "dblayer.h"
    24 #include "dblayer.h"
    25 #include "dbconstants.h"
    25 #include "dbconstants.h"
    26 #include "is_utils.h"
       
    27 #include "xmlgenerator.h"
    26 #include "xmlgenerator.h"
    28 #include "xmlparser.h"
    27 #include "xmlparser.h"
    29 #include "util.h"
    28 #include "util.h"
    30 #include <algorithm>
    29 #include <algorithm>
    31 #include <iostream>
    30 #include <iostream>
    51 #endif 
    50 #endif 
    52 
    51 
    53 // SisX Library Includes
    52 // SisX Library Includes
    54 #include "sisfiledescription.h"
    53 #include "sisfiledescription.h"
    55 #include "sisstring.h"
    54 #include "sisstring.h"
       
    55 #include "utility.h"
    56 
    56 
    57 // User Includes
    57 // User Includes
    58 #include "sisregistry.h"
    58 #include "sisregistry.h"
    59 #include "errors.h"
    59 #include "errors.h"
    60 #include "rommanager.h"
    60 #include "rommanager.h"
    64 #include "sisregistrypackage.h"
    64 #include "sisregistrypackage.h"
    65 #include "sisregistryobject.h"
    65 #include "sisregistryobject.h"
    66 #include "configmanager.h"
    66 #include "configmanager.h"
    67 
    67 
    68 // Constants
    68 // Constants
       
    69 #ifndef __TOOLS2_LINUX__
    69 const std::wstring SisRegistry::KPathToRegistry(L"\\sys\\install\\sisregistry/");
    70 const std::wstring SisRegistry::KPathToRegistry(L"\\sys\\install\\sisregistry/");
    70 const std::wstring SisRegistry::KPathToRomStubs(L"\\system\\install\\");
    71 const std::wstring SisRegistry::KPathToRomStubs(L"\\system\\install\\");
    71 const std::wstring SisRegistry::KPathToRegistryVersionMarker(L"\\system\\data\\");
    72 const std::wstring SisRegistry::KPathToRegistryVersionMarker(L"\\system\\data\\");
       
    73 #else
       
    74 const std::wstring SisRegistry::KPathToRegistry(L"/sys/install/sisregistry/");
       
    75 const std::wstring SisRegistry::KPathToRomStubs(L"/system/install/");
       
    76 const std::wstring SisRegistry::KPathToRegistryVersionMarker(L"/system/data/");
       
    77 #endif
    72 const std::wstring KRegistryEntry(L"00000000.reg");
    78 const std::wstring KRegistryEntry(L"00000000.reg");
    73 const std::wstring KControllerEntry(L"00000000_0000.ctl");
    79 const std::wstring KControllerEntry(L"00000000_0000.ctl");
    74 const std::wstring KBackupLst(L"backup.lst");
    80 const std::wstring KBackupLst(L"backup.lst");
    75 
    81 
    76 const int SisRegistry::KSisRegistryMajorVersion = 5;
    82 const int SisRegistry::KSisRegistryMajorVersion = 5;
    81 const std::wstring SisRegistry::KRegistryV40(L"sisregistry_4.0.txt");
    87 const std::wstring SisRegistry::KRegistryV40(L"sisregistry_4.0.txt");
    82 const std::wstring SisRegistry::KRegistryV51(L"sisregistry_5.1.txt");
    88 const std::wstring SisRegistry::KRegistryV51(L"sisregistry_5.1.txt");
    83 const std::wstring SisRegistry::KRegistryV52(L"sisregistry_5.2.txt");
    89 const std::wstring SisRegistry::KRegistryV52(L"sisregistry_5.2.txt");
    84 const std::wstring SisRegistry::KRegistryV53(L"sisregistry_5.3.txt");
    90 const std::wstring SisRegistry::KRegistryV53(L"sisregistry_5.3.txt");
    85 const std::wstring SisRegistry::KRegistryV54(L"sisregistry_5.4.txt");
    91 const std::wstring SisRegistry::KRegistryV54(L"sisregistry_5.4.txt");
       
    92 #ifndef __TOOLS2_LINUX__
    86 const std::wstring SisRegistry::KRomStubDir(L"z:\\system\\install\\");
    93 const std::wstring SisRegistry::KRomStubDir(L"z:\\system\\install\\");
    87 const std::wstring SisRegistry::KRomRegistryVersionMarker(L"z:\\system\\data\\");
    94 const std::wstring SisRegistry::KRomRegistryVersionMarker(L"z:\\system\\data\\");
    88 
    95 #else
       
    96 const std::wstring SisRegistry::KRomStubDir(L"z:/system/install/");
       
    97 const std::wstring SisRegistry::KRomRegistryVersionMarker(L"z:/system/data/");
       
    98 #endif
    89 const std::string SisRegistry::KRegistryV40string("4.0");
    99 const std::string SisRegistry::KRegistryV40string("4.0");
    90 const std::string SisRegistry::KRegistryV50string("5.0");
   100 const std::string SisRegistry::KRegistryV50string("5.0");
    91 const std::string SisRegistry::KRegistryV51string("5.1");
   101 const std::string SisRegistry::KRegistryV51string("5.1");
    92 const std::string SisRegistry::KRegistryV52string("5.2");
   102 const std::string SisRegistry::KRegistryV52string("5.2");
    93 const std::string SisRegistry::KRegistryV53string("5.3");
   103 const std::string SisRegistry::KRegistryV53string("5.3");
   545 	{
   555 	{
   546 	EntryMap::iterator it = iEntries.find(aUid);
   556 	EntryMap::iterator it = iEntries.find(aUid);
   547 	
   557 	
   548 	while(it != iEntries.end())
   558 	while(it != iEntries.end())
   549 	    {
   559 	    {
   550 		if (aUid == it->first &&
   560 		if (aUid == it->first && !wcscmp(aPackageName.c_str(), it->second->GetPackageName().c_str()) && aVendorName == it->second->GetVendorName() )
   551 			aPackageName == it->second->GetPackageName() &&
       
   552 			aVendorName == it->second->GetVendorName())
       
   553 			{
   561 			{
   554 			LINFO(L"Removing package \"" << it->second->GetPackageName() 
   562 			LINFO(L"Removing package \"" << it->second->GetPackageName() 
   555 					<< L"\" prior to re-installation");
   563 					<< L"\" prior to re-installation");
   556 
   564 
   557 			// Remove .reg file
   565 			// Remove .reg file
   948 
   956 
   949 bool SisRegistry::IsFileWideCard(const std::wstring& aFileName)
   957 bool SisRegistry::IsFileWideCard(const std::wstring& aFileName)
   950 	{
   958 	{
   951 	return (aFileName.find(L'?') != std::wstring::npos || 
   959 	return (aFileName.find(L'?') != std::wstring::npos || 
   952 			aFileName.find(L'*') != std::wstring::npos || 
   960 			aFileName.find(L'*') != std::wstring::npos || 
       
   961 			#ifndef __TOOLS2_LINUX__
   953 			aFileName[aFileName.length() - 1] == L'\\');
   962 			aFileName[aFileName.length() - 1] == L'\\');
       
   963 			#else
       
   964 			aFileName[aFileName.length() - 1] == L'/');
       
   965 			#endif
   954 	}
   966 	}
   955 
   967 
   956 
   968 
   957 void SisRegistry::GenerateStubRegistry()
   969 void SisRegistry::GenerateStubRegistry()
   958 	{
   970 	{
  1030 		{
  1042 		{
  1031 		if (c->find(L".reg",0) == std::wstring::npos)
  1043 		if (c->find(L".reg",0) == std::wstring::npos)
  1032 			continue;
  1044 			continue;
  1033 		
  1045 		
  1034 		std::fstream input;
  1046 		std::fstream input;
       
  1047 		#ifndef __TOOLS2_LINUX__
  1035 		std::wstring filename(aPath + L"\\" + *c);
  1048 		std::wstring filename(aPath + L"\\" + *c);
       
  1049 		#else
       
  1050 		std::wstring filename(aPath + L"/" + *c);
       
  1051 		#endif
  1036 		
  1052 		
  1037 		OpenFile(filename.c_str(), input, std::fstream::in | std::fstream::binary);
  1053 		OpenFile(filename.c_str(), input, std::fstream::in | std::fstream::binary);
  1038 		
  1054 		
  1039 		if (!input.good())
  1055 		if (!input.good())
  1040 			continue;
  1056 			continue;
  1041 		
  1057 		
  1042 		SisRegistryObject* obj = new SisRegistryObject(iConfigManager);
  1058 		SisRegistryObject* obj = new SisRegistryObject(iConfigManager);
  1043 					
  1059 					
  1044 		if (!obj)
  1060 		if (!obj)
  1045 			{
  1061 			{
  1046 			throw std::runtime_error("Cannot create SisRegistryObject for " + Ucs2ToUtf8(filename));
  1062 			throw std::runtime_error("Cannot create SisRegistryObject for " + wstring2string(filename));
  1047 			}
  1063 			}
  1048 		Deserialiser des(input);
  1064 		Deserialiser des(input);
  1049 		
  1065 		
  1050 		des >> *obj;
  1066 		des >> *obj;
  1051 		iEntries.insert(EntryMap::value_type(obj->GetUid(), obj));
  1067 		iEntries.insert(EntryMap::value_type(obj->GetUid(), obj));
  1241 				// No SisRegistry file found!!
  1257 				// No SisRegistry file found!!
  1242 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1258 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1243 				
  1259 				
  1244 				msg.append(L" does not have any SisRegistry file");
  1260 				msg.append(L" does not have any SisRegistry file");
  1245 				
  1261 				
  1246 				throw std::runtime_error( Ucs2ToUtf8(msg) );
  1262 				throw std::runtime_error( wstring2string(msg) );
  1247 				}
  1263 				}
  1248 
  1264 
  1249 			aObj.SetIndex( index );
  1265 			aObj.SetIndex( index );
  1250 
  1266 
  1251 			if ( !CheckSisRegistryDirPresent(iParamList.SystemDrivePath(), pkgUid) )
  1267 			if ( !CheckSisRegistryDirPresent(iParamList.SystemDrivePath(), pkgUid) )
  1253 				// c:\sys\install\sisregistry\<UID>\ directory not exist
  1269 				// c:\sys\install\sisregistry\<UID>\ directory not exist
  1254 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1270 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1255 				
  1271 				
  1256 				msg.append(L" directory NOT found");
  1272 				msg.append(L" directory NOT found");
  1257 
  1273 
  1258 				throw std::runtime_error( Ucs2ToUtf8(msg) );
  1274 				throw std::runtime_error( wstring2string(msg) );
  1259 				}
  1275 				}
  1260 			}    
  1276 			}    
  1261 		}
  1277 		}
  1262 
  1278 
  1263 	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
  1279 	#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
  1276 				{
  1292 				{
  1277 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1293 				std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1278 				
  1294 				
  1279 				msg.append(L" directory NOT found");
  1295 				msg.append(L" directory NOT found");
  1280 
  1296 
  1281 				throw std::runtime_error( Ucs2ToUtf8(msg) );
  1297 				throw std::runtime_error( wstring2string(msg) );
  1282 				}
  1298 				}
  1283 			}    
  1299 			}    
  1284 		}
  1300 		}
  1285 
  1301 
  1286 	#endif //SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
  1302 	#endif //SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
  1329 			// No SIS controller file found!!
  1345 			// No SIS controller file found!!
  1330 			std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1346 			std::wstring msg = StringUtils::MakePathFromSID ( iParamList.SystemDrivePath()+L"\\", pkgUid );
  1331 		
  1347 		
  1332 			msg.append(L" does not have any Sis Controller file");
  1348 			msg.append(L" does not have any Sis Controller file");
  1333 
  1349 
  1334 			throw std::runtime_error( Ucs2ToUtf8(msg) );
  1350 			throw std::runtime_error( wstring2string(msg) );
  1335 			}
  1351 			}
  1336 		}
  1352 		}
  1337 
  1353 
  1338 	// Finally, externalise the new controller file
  1354 	// Finally, externalise the new controller file
  1339 	std::fstream ctlFile;
  1355 	std::fstream ctlFile;
  1448 	}
  1464 	}
  1449 
  1465 
  1450 void SisRegistry::UpdateInstallationInformation(XmlDetails::TScrPreProvisionDetail aScrPreProvisionDetail)
  1466 void SisRegistry::UpdateInstallationInformation(XmlDetails::TScrPreProvisionDetail aScrPreProvisionDetail)
  1451 	{
  1467 	{
  1452 	CXmlGenerator xmlGenerator;
  1468 	CXmlGenerator xmlGenerator;
  1453 	char* tmpFileName = tmpnam(NULL);
  1469 
       
  1470 	#ifndef __TOOLS2_LINUX__
       
  1471 		char* tmpFileName = tmpnam(NULL);	
       
  1472 	#else
       
  1473 		char tmpFileName[] = "/tmp/interpretsis_XXXXXX";	
       
  1474 		int temp_fd;
       
  1475 		temp_fd=mkstemp(tmpFileName); 
       
  1476 		fclose(fdopen(temp_fd,"w"));
       
  1477 	#endif
       
  1478 
  1454 	std::wstring filename(string2wstring(tmpFileName));
  1479 	std::wstring filename(string2wstring(tmpFileName));
  1455 
  1480 
  1456 	int isRomApplication = 0;
  1481 	int isRomApplication = 0;
  1457 	xmlGenerator.WritePreProvisionDetails(filename , aScrPreProvisionDetail, isRomApplication);
  1482 	xmlGenerator.WritePreProvisionDetails(filename , aScrPreProvisionDetail, isRomApplication);
  1458 						
  1483 
       
  1484 	#ifdef __TOOLS2_LINUX__
       
  1485 	std::string executable = "scrtool";
       
  1486 	#else
  1459 	std::string executable = "scrtool.exe";
  1487 	std::string executable = "scrtool.exe";
       
  1488 	#endif
       
  1489 
  1460 	std::string command;
  1490 	std::string command;
  1461 	command = executable + " -d " + GetDbPath() + " -p " + tmpFileName;
  1491 	command = executable + " -d " + GetDbPath() + " -p " + tmpFileName;
  1462 
  1492 
  1463 	int error = system(command.c_str());
  1493 	int error = system(command.c_str());
  1464 
  1494 
  1479 	if	( 
  1509 	if	( 
  1480 		(iParamList.RomLogFileNames().size() != 0 && iParamList.RomDrivePath().size() == 0 ) ||
  1510 		(iParamList.RomLogFileNames().size() != 0 && iParamList.RomDrivePath().size() == 0 ) ||
  1481 		iParamList.IsFlagSet(CParameterList::EFlagsDisableZDriveChecksSet) 
  1511 		iParamList.IsFlagSet(CParameterList::EFlagsDisableZDriveChecksSet) 
  1482 		)
  1512 		)
  1483 		{
  1513 		{
       
  1514 		#ifndef __TOOLS2_LINUX__
  1484 		return wstring2string(iParamList.SystemDrivePath()) + "\\sys\\install\\scr\\scr.db";
  1515 		return wstring2string(iParamList.SystemDrivePath()) + "\\sys\\install\\scr\\scr.db";
  1485 		}
  1516 		#else
  1486 
  1517 		return wstring2string(iParamList.SystemDrivePath()) + "/sys/install/scr/scr.db";
       
  1518 		#endif
       
  1519 		}
       
  1520 	#ifndef __TOOLS2_LINUX__
  1487 	return wstring2string(iParamList.RomDrivePath()) + "\\sys\\install\\scr\\provisioned\\scr.db";
  1521 	return wstring2string(iParamList.RomDrivePath()) + "\\sys\\install\\scr\\provisioned\\scr.db";
       
  1522 	#else
       
  1523 	    return wstring2string(iParamList.RomDrivePath()) + "/sys/install/scr/provisioned/scr.db";
       
  1524 	#endif
  1488 	
  1525 	
  1489 	}
  1526 	}
  1490 
  1527 
  1491 std::string SisRegistry::GetEpocRoot()
  1528 std::string SisRegistry::GetEpocRoot()
  1492 	{
  1529 	{
  1493 	const char* epocRoot = getenv("EPOCROOT");
  1530 	const char* epocRoot = getenv("EPOCROOT");	
  1494 	if(NULL == epocRoot)
  1531 	if(NULL == epocRoot)
  1495 		{
  1532 		{
  1496 		std::string err = "EPOCROOT environment variable not specified. Please specify it as part of your environment variable." \
  1533 		std::string err = "EPOCROOT environment variable not specified. Please specify it as part of your environment variable." \
  1497 		"It should point uptil the start of the epoc32 directory.";
  1534 		"It should point uptil the start of the epoc32 directory.";
  1498 		LERROR(L"EPOCROOT environment variable not specified. Please specify it as part of your environment variable." \
  1535 		LERROR(L"EPOCROOT environment variable not specified. Please specify it as part of your environment variable." \
  1511 #ifdef _MSC_VER
  1548 #ifdef _MSC_VER
  1512 		swprintf(textGlobalId,L"%08x",aUid);
  1549 		swprintf(textGlobalId,L"%08x",aUid);
  1513 #else		
  1550 #else		
  1514 		swprintf(textGlobalId,20,L"%08x",aUid);
  1551 		swprintf(textGlobalId,20,L"%08x",aUid);
  1515 #endif
  1552 #endif
  1516 	
  1553 		
       
  1554 
  1517 	std::wstring globalId = textGlobalId;
  1555 	std::wstring globalId = textGlobalId;
  1518 	
  1556 	
  1519 	if( aInstallType == CSISInfo::EInstAugmentation || aInstallType == CSISInfo::EInstPreInstalledPatch )
  1557 	if( aInstallType == CSISInfo::EInstAugmentation || aInstallType == CSISInfo::EInstPreInstalledPatch )
  1520 		{
  1558 		{
  1521 		if(aPackageName.empty())
  1559 		if(aPackageName.empty())
  1644 			std::string ifile = wstring2string(path1 +*currFile);
  1682 			std::string ifile = wstring2string(path1 +*currFile);
  1645 			std::string ibackupfile(ifile);
  1683 			std::string ibackupfile(ifile);
  1646 			ibackupfile.append("_backup");
  1684 			ibackupfile.append("_backup");
  1647 
  1685 
  1648 			int err=FileCopyA(ifile.c_str(),ibackupfile.c_str(),0);
  1686 			int err=FileCopyA(ifile.c_str(),ibackupfile.c_str(),0);
  1649 			if (err == 0)
  1687 			if (err != 0)
  1650 				LERROR(L"Failed to Backup .ctl ");
  1688 				LERROR(L"Failed to Backup .ctl ");
  1651 		}
  1689 		}
  1652 		++currFile;
  1690 		++currFile;
  1653     }
  1691     }
  1654 }
  1692 }
  1674 					std::string ibackupfile(ifile);
  1712 					std::string ibackupfile(ifile);
  1675 					ibackupfile.append("_backup");
  1713 					ibackupfile.append("_backup");
  1676 
  1714 
  1677 					RemoveFile(path + *currFile);
  1715 					RemoveFile(path + *currFile);
  1678 				 	int err = FileMoveA(ibackupfile.c_str(),ifile.c_str());
  1716 				 	int err = FileMoveA(ibackupfile.c_str(),ifile.c_str());
  1679 					if (err == 0)
  1717 					if (err != 0)
  1680 						LERROR(L"Failed to Restore .ctl ");
  1718 						LERROR(L"Failed to Restore .ctl ");
  1681 				}
  1719 				}
  1682 			}
  1720 			}
  1683 			else
  1721 			else
  1684 			{
  1722 			{
  1912 	
  1950 	
  1913 	int algorithmId = aHashContainer.GetHashId();
  1951 	int algorithmId = aHashContainer.GetHashId();
  1914 	// The property is a concatenation of the algorithm id and the hash data
  1952 	// The property is a concatenation of the algorithm id and the hash data
  1915 	const std::string hashData = aHashContainer.GetData();
  1953 	const std::string hashData = aHashContainer.GetData();
  1916 		
  1954 		
  1917 	std::string encodedHashData = Util::Base64Encode(hashData);
  1955 	std::string encodedHashData = Util::Base64Encode(hashData);	
  1918 	std::wstring wideHashData = Utils::string2wstring(encodedHashData);
  1956 	std::wstring wideHashData = string2wstring(encodedHashData);
  1919 	AddComponentProperty( aComponent, DbConstants::CompControllerHashData, wideHashData, aCount, true);
  1957 	AddComponentProperty( aComponent, DbConstants::CompControllerHashData, wideHashData, aCount, true);
  1920 
  1958 
  1921 	}
  1959 	}
  1922 
  1960 
  1923 
  1961 
  2073 	
  2111 	
  2074 	//Find Registration File from list of filelist
  2112 	//Find Registration File from list of filelist
  2075 	for(filedesIter = aFileDescription.begin() ; filedesIter != aFileDescription.end(); ++filedesIter)
  2113 	for(filedesIter = aFileDescription.begin() ; filedesIter != aFileDescription.end(); ++filedesIter)
  2076 	{
  2114 	{
  2077 		// if it has wild card characters then donot process. Continue.
  2115 		// if it has wild card characters then donot process. Continue.
  2078 		if( IsFileWideCard((*filedesIter)->GetLocalFile()) ) 
  2116 		if( IsFileWideCard((*filedesIter)->GetLocalFile()) )
  2079 		{
  2117 		{
  2080 			continue;
  2118 			continue;
  2081 		}
  2119 		}
  2082 
  2120 
  2083 		iLocalFile = (*filedesIter)->GetLocalFile();
  2121 		iLocalFile = (*filedesIter)->GetLocalFile();
  2099 
  2137 
  2100 		if(err)
  2138 		if(err)
  2101 			continue;
  2139 			continue;
  2102 
  2140 
  2103 		std::string folder;
  2141 		std::string folder;
  2104 		found=RegistrationFileName.find("private\\10003a3f\\");
  2142 		#ifdef __LINUX__
       
  2143 		const char *privateFolder = "private/10003a3f/";
       
  2144 		#else
       
  2145 		const char *privateFolder = "private\\10003a3f\\";
       
  2146 		#endif
       
  2147 
       
  2148 		found=RegistrationFileName.find(privateFolder);
  2105 
  2149 
  2106 		if( found != string::npos ) 
  2150 		if( found != string::npos ) 
  2107 			folder = RegistrationFileName.substr(0,found); 
  2151 			folder = RegistrationFileName.substr(0,found); 
  2108 		else
  2152 		else
  2109 			folder = RegistrationFileName; 
  2153 			folder = RegistrationFileName; 
  2182 		}
  2226 		}
  2183 	// file hash data
  2227 	// file hash data
  2184 	if(!aFileDescription->GetHash().GetData().empty())
  2228 	if(!aFileDescription->GetHash().GetData().empty())
  2185 		{
  2229 		{
  2186 		std::string binHashData = Util::Base64Encode(aFileDescription->GetHash().GetData());
  2230 		std::string binHashData = Util::Base64Encode(aFileDescription->GetHash().GetData());
  2187 		std::wstring hashData = Utils::string2wstring(binHashData);
  2231 		std::wstring hashData = string2wstring(binHashData);
  2188 		AddFileProperty( aComponentFile, DbConstants::FileHashData, hashData, true);
  2232 		AddFileProperty( aComponentFile, DbConstants::FileHashData, hashData, true);
  2189 		}
  2233 		}
  2190 	}
  2234 	}
  2191 
  2235 
  2192 void SisRegistry::AddTrustStatus	(	XmlDetails::TScrPreProvisionDetail::TComponent& aComponent, 
  2236 void SisRegistry::AddTrustStatus	(	XmlDetails::TScrPreProvisionDetail::TComponent& aComponent,