Esempio n. 1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Load the XML
            Container xml = Container.getContainer();

            Console.WriteLine("hello!");
            if (xml.Config.host == null)
            {
                //load the configuration form
                Application.Run(new ConfigForm());
            }
            else
            {
                Application.Run(new AppList());
            }
        }
Esempio n. 2
0
        public static void getIPAs(String location)
        {
            DirectoryInfo di        = new DirectoryInfo(location);
            Container     container = Container.getContainer();

            container.IPAItems = new List <IPAInfo>();
            FileInfo[] files;
            //byte[] data;

            if (!di.Exists)
            {
                Console.WriteLine("Error: Directory not found?");
                return;
            }
            try
            {
                files = di.GetFiles("*.ipa", SearchOption.TopDirectoryOnly);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: Exception occured, perhaps no permissions for directory?");
                Console.WriteLine(e.ToString());
                return;
            }
            foreach (FileInfo file in files)
            {
                try {
                    Debug("IPA found: " + file.Name);
                    using (ZipFile ipa = ZipFile.Read(file.FullName))
                    {
                        foreach (ZipEntry e in ipa)
                        {
                            Debug("ZipEntry: " + e.FileName);
                            if (e.FileName.Contains(".app/Info.plist"))
                            {
                                Debug("INFO.PLIST FOUND!!!!! " + GetTemporaryDirectory());
                                e.Extract(GetTemporaryDirectory(), ExtractExistingFileAction.OverwriteSilently);
                                string plistLocation = Path.Combine(GetTemporaryDirectory(), e.FileName);
                                //unpackDirectory + "/" + e.FileName;
                                Debug("yo yo yo");
                                Dictionary <string, object> plist = (Dictionary <string, object>)Plist.readPlist(plistLocation);
                                Debug("plist data: " + plist.ToString());
                                Debug("Bundle Name: " + plist["CFBundleExecutable"]);
                                IPAInfo info = new IPAInfo();
                                info.AppBundle = (string)plist["CFBundleExecutable"];
                                if (plist.ContainsKey("CFBundleDisplayName"))
                                {
                                    info.AppName = (string)plist["CFBundleDisplayName"];
                                }
                                else
                                {
                                    info.AppName = (string)plist["CFBundleName"];
                                }
                                info.AppVersion     = (string)plist["CFBundleVersion"];
                                info.Location       = file.FullName;
                                info.BinaryLocation = e.FileName.Replace("Info.plist", "") + info.AppBundle;
                                container.IPAItems.Add(info);
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    Debug("Error: could not analyze " + file.Name);
                    Debug("Error: " + ex.ToString());
                }
            }

            /*using (StreamWriter writer = new StreamWriter("Brake.xml")) {
             *  XmlSerializer serializer = new XmlSerializer (typeof(Container));
             *  serializer.Serialize (writer, container);
             *  Debug ("serializing data");
             * }*/
            container.SaveXML();
            DeleteDirectory(GetTemporaryDirectory());
        }