I am reading AndroidManifest.xml from APk in my C# code and I want to get the package name from my APK file. My code code is getting the string below into thecontent
variable. How can I get the package name?
<manifest versionCode=\"5\" versionName=\"1.0.5\" installLocation=\"0\" package=\"com.auditapp.securemeters.code\">
<uses-sdk minSdkVersion=\"15\" targetSdkVersion=\"27\"> </uses-sdk>
<uses-permission name=\"android.permission.INTERNET\"> </uses-permission>
<uses-permission name=\"android.permission.ACCESS_NETWORK_STATE\"> </uses-permission> \r\n <uses-permission name=\"android.permission.ACCESS_WIFI_STATE\"> </uses-permission> \r\n <uses-permission name=\"android.permission.INSTALL_PACKAGES\"> </uses-permission>
<uses-permission name=\"android.permission.REQUEST_INSTALL_PACKAGES \"> </uses-permission>
<uses-permission name=\"android.permission.WRITE_EXTERNAL_STORAGE\"> </uses-permission>
<uses-permission name=\"android.permission.WRITE_SYNC_SETTINGS\"> </uses-permission>
<uses-permission name=\"android.permission.READ_EXTERNAL_STORAGE\"> </uses-permission>
<application theme=\"2131623943\" label=\"2131558434\" icon=\"2131230820\" name=\"com.auditapp.securemeters.code.helper.AppController\" allowBackup=\"-1\" largeHeap=\"-1\" supportsRtl=\"-1\">
<receiver name=\"com.auditapp.securemeters.code.helper.ConnectivityReceiver\" enabled=\"-1\">
<intent-filter>
<action name=\"android.net.conn.CONNECTIVITY_CHANGE\"> </action>
</intent-filter>
</receiver>
<provider name=\"android.support.v4.content.FileProvider\" exported=\"0\" authorities=\"com.auditapp.securemeters.code.provider\" grantUriPermissions=\"-1\">
<meta-data name=\"android.support.FILE_PROVIDER_PATHS\" resource=\"2131755008\"> </meta-data>
</provider>
<activity theme=\"2131624229\" name=\"com.auditapp.securemeters.code.activity.SplashActivity\" screenOrientation=\"1\">
<intent-filter>
<action name=\"android.intent.action.MAIN\"> </action>
<category name=\"android.intent.category.LAUNCHER\"> </category>
</intent-filter>
</activity>
<activity name=\"com.auditapp.securemeters.code.activity.MainActivity\" screenOrientation=\"1\"> </activity> \r\n <activity name=\"com.auditapp.securemeters.code.activity.LoginActivity\" screenOrientation=\"1\"> </activity>
<activity name=\"com.auditapp.securemeters.code.activity.QuestionActivity\" screenOrientation=\"1\"> </activity>
<activity name=\"com.auditapp.securemeters.code.activity.SelectAuditActivity\" screenOrientation=\"1\"> </activity>
<activity name=\"com.auditapp.securemeters.code.activity.RevisedQuestionActivity\"> </activity>
<activity label=\"History\" name=\"com.auditapp.securemeters.code.activity.HistoryAuditListActivity\"> </activity>
<activity name=\"com.auditapp.securemeters.code.activity.HistoryQuestionActivity\"> </activity>
<meta-data name=\"android.arch.lifecycle.VERSION\" value=\"27.0.0-SNAPSHOT\"> </meta-data>
</application>
</manifest>
Code
using (BinaryReader s = new BinaryReader(strm))
{
byte[] bytes2 = new byte[size];
Array.Copy(bytes, bytes2, size);
AndroidDecompress decompress = new AndroidDecompress();
String content = decompress.decompressXML(bytes);
String regex = "package \\{color: (#(\\d|[a-f]){6};)}";
String input = content;
MatchCollection coll = Regex.Matches(input, regex);
String result1 = coll[0].Groups[1].Value;
}