public static void StartServer(Command.WaitingForProcessToExit waitingForProcessToExit) { AndroidSDKTools instance = AndroidSDKTools.GetInstance(); Process process2 = new Process { StartInfo = { FileName = instance.ADB, Arguments = "start-server", WorkingDirectory = instance.SDKRootDir, CreateNoWindow = true, UseShellExecute = true, WindowStyle = ProcessWindowStyle.Hidden } }; using (Process process = process2) { process.Start(); do { if (waitingForProcessToExit != null) { waitingForProcessToExit(null); } }while (!process.WaitForExit(100)); } }
public static string[] GetAvailableKeys(string keystore, string storepass) { if ((keystore.Length == 0) || (storepass.Length == 0)) { return((string[])(s_AvailableKeyalias = null)); } if ((s_AvailableKeyalias != null) && keystore.Equals(s_CurrentKeystore)) { return(s_AvailableKeyalias); } s_CurrentKeystore = keystore; try { if (AndroidSDKTools.GetInstance() == null) { throw new UnityException("Unable to find Android SDK!"); } return(s_AvailableKeyalias = AndroidSDKTools.GetInstanceOrThrowException().ReadAvailableKeys(keystore, storepass)); } catch (Exception exception) { Debug.LogError(exception.ToString()); return(null); } }
public static AndroidSDKTools GetInstanceOrThrowException() { AndroidSDKTools instance = GetInstance(); if (instance == null) { throw new UnityException("Unable to locate Android SDK!"); } return(instance); }
private static string RunInternal(string[] command, Command.WaitingForProcessToExit waitingForProcessToExit, string errorMsg) { AndroidSDKTools instance = AndroidSDKTools.GetInstance(); ProcessStartInfo psi = new ProcessStartInfo { FileName = instance.ADB, Arguments = string.Join(" ", command), WorkingDirectory = instance.SDKRootDir, CreateNoWindow = true, StandardOutputEncoding = Encoding.UTF8 }; return(Command.Run(psi, waitingForProcessToExit, errorMsg)); }
public static AndroidSDKTools GetInstance() { string path = EditorPrefs.GetString("AndroidSdkRoot"); if (!AndroidSdkRoot.IsSdkDir(path)) { path = AndroidSdkRoot.Browse(path); if (!AndroidSdkRoot.IsSdkDir(path)) { return(null); } EditorPrefs.SetString("AndroidSdkRoot", path); } if ((s_Instance == null) || (path != s_Instance.SDKRootDir)) { s_Instance = new AndroidSDKTools(path); } return(s_Instance); }
private bool CreateKey(string keystore, string storepass) { string[] array = new string[0]; if (this.m_Name.Length != 0) { ArrayUtility.Add <string>(ref array, "CN=" + escapeDName(this.m_Name)); } if (this.m_OrgUnit.Length != 0) { ArrayUtility.Add <string>(ref array, "OU=" + escapeDName(this.m_OrgUnit)); } if (this.m_Organization.Length != 0) { ArrayUtility.Add <string>(ref array, "O=" + escapeDName(this.m_Organization)); } if (this.m_City.Length != 0) { ArrayUtility.Add <string>(ref array, "L=" + escapeDName(this.m_City)); } if (this.m_State.Length != 0) { ArrayUtility.Add <string>(ref array, "ST=" + escapeDName(this.m_State)); } if (this.m_Country.Length != 0) { ArrayUtility.Add <string>(ref array, "C=" + escapeDName(this.m_Country)); } string dname = string.Join(", ", array); try { AndroidSDKTools.GetInstanceOrThrowException().CreateKey(keystore, storepass, this.m_Alias, this.m_Password, dname, this.m_Validity * 0x16d); s_AvailableKeyalias = null; } catch (Exception exception) { Debug.LogError(exception.ToString()); return(false); } return(true); }
private static bool VerifyJava(string javaExe) { try { string[] sdkToolCommand = new string[] { "javaversion" }; string str = AndroidSDKTools.RunCommandSafe(javaExe, null, sdkToolCommand, 0x800, null, null, "Incompatible java version '" + javaExe + "'"); char[] separator = new char[] { '.' }; string[] strArray = str.Split(separator); if ((((strArray.Length <= 1) || (Convert.ToUInt32(strArray[0]) != 1)) || (Convert.ToUInt32(strArray[1]) < 7)) && ((strArray.Length <= 0) || (Convert.ToUInt32(strArray[0]) < 7))) { throw new Exception($"Incompatible java version: {str} ('{javaExe}')"); } return(true); } catch (Exception exception) { Console.WriteLine($"Failed java version detection for '{javaExe}'"); Console.WriteLine(exception); } return(false); }
public static void ShowAndroidKeystoreWindow(string company, string keystore, string storepass) { if (File.Exists(keystore)) { try { AndroidSDKTools.GetInstanceOrThrowException().ReadAvailableKeys(keystore, storepass); } catch (Exception exception) { Debug.LogError(exception.ToString()); return; } } Rect rect = new Rect(100f, 100f, 500f, 330f); AndroidKeystoreWindow window = (AndroidKeystoreWindow)EditorWindow.GetWindowWithRect(typeof(AndroidKeystoreWindow), rect, true, EditorGUIUtility.TextContent("Create a new key").text); window.position = rect; window.m_Parent.window.m_DontSaveToLayout = true; window.m_Organization = company; window.m_Keystore = keystore; window.m_StorePass = storepass; }
public override void ExportWithCurrentSettings() { string str; bool flag = false; if (base.m_TargetPath == null) { str = Path.Combine("Temp", "gradleOut"); flag = true; Directory.CreateDirectory(str); string[] strArray = AndroidFileLocator.Find(Path.Combine(str, "*")); foreach (string str2 in strArray) { string fileName = Path.GetFileName(str2); if ((fileName != "build") && (fileName != ".gradle")) { try { FileUtil.DeleteFileOrDirectory(str2); } catch (IOException) { } } } } else { str = Path.Combine(base.m_TargetPath, base.m_ProductName); } int targetSDKVersion = base.m_TargetSDKVersion; Dictionary <string, string> templateValues = new Dictionary <string, string> { { "BUILDTOOLS", base.m_GoogleBuildTools.ToString() }, { "APIVERSION", targetSDKVersion.ToString() }, { "TARGETSDKVERSION", targetSDKVersion.ToString() } }; string[] components = new string[] { str, "src", "main" }; string str4 = Paths.Combine(components); string target = Path.Combine(str, "libs"); Directory.CreateDirectory(str); string sDKRootDir = AndroidSDKTools.GetInstance().SDKRootDir; string path = Path.Combine(str, "local.properties"); if (!File.Exists(path) || flag) { File.WriteAllText(path, $"sdk.dir={sDKRootDir.Replace(@"\", @"\\")} "); } AndroidProjectExport.CopyFile(base.m_UnityJavaLibrary, Path.Combine(Path.Combine(str, "libs"), "unity-classes.jar")); AndroidProjectExport.CopyFile(Path.Combine(base.m_UnityAndroidBuildTools, "UnityProGuardTemplate.txt"), Path.Combine(str, "proguard-unity.txt")); try { string[] textArray2 = new string[] { str4, "assets", "bin", "Data" }; Directory.Delete(Paths.Combine(textArray2), true); } catch (IOException) { } try { Directory.Delete(Path.Combine(str4, "res"), true); } catch (IOException) { } AndroidProjectExport.CopyDir(Path.Combine(base.m_StagingArea, "res"), Path.Combine(str4, "res")); AndroidProjectExport.CopyDir(Path.Combine(base.m_StagingArea, "plugins"), target); AndroidProjectExport.CopyDir(Path.Combine(base.m_StagingArea, "libs"), Path.Combine(str4, "jniLibs")); AndroidProjectExport.CopyDir(Path.Combine(base.m_StagingArea, "assets"), Path.Combine(str4, "assets")); string[] strArray3 = AndroidFileLocator.Find(Path.Combine(Path.Combine(base.m_StagingArea, "aar"), "*.aar")); string str9 = ""; foreach (string str10 in strArray3) { string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(str10); string str12 = Path.GetFileName(str10); str9 = str9 + $" compile(name: '{fileNameWithoutExtension}', ext:'aar') "; AndroidProjectExport.CopyFile(str10, Path.Combine(target, str12)); } templateValues["DEPS"] = str9; if (flag) { AndroidProjectExport.CopyFile(Path.Combine(base.m_StagingArea, "AndroidManifest.xml"), Path.Combine(str4, "AndroidManifest.xml")); } else { AndroidProjectExport.GenerateAndroidManifest(str4, base.m_StagingArea, base.m_PackageName, false); AndroidProjectExport.CopyAndPatchJavaSources(Path.Combine(str4, "java"), base.m_UnityJavaSources, base.m_PackageName); } string str13 = Path.Combine(str, "build.gradle"); if (File.Exists(str13) && !File.ReadAllText(str13).StartsWith("// GENERATED BY UNITY")) { str13 = Path.Combine(str, "build.gradle.NEW"); } this.WriteGradleBuildFiles(str, str13, templateValues); if (base.m_UseObb) { AndroidProjectExport.CopyFile(Path.Combine(base.m_StagingArea, "main.obb"), Path.Combine(str, $"{base.m_ProductName}.main.obb")); } else { AndroidProjectExport.CopyDir(Path.Combine(base.m_StagingArea, "raw"), Path.Combine(str4, "assets")); } }