Esempio n. 1
0
File: Device.cs Progetto: wannxy/LDC
 /// <summary>
 /// 控制台错误委托
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ErrReceived(object sender, DataReceivedEventArgs e)
 {
     if (e.Data != null)
     {
         Xlog.E(EmulatorName, "{0}", e.Data);
     }
 }
Esempio n. 2
0
File: Device.cs Progetto: wannxy/LDC
 /// <summary>
 ///
 /// </summary>
 /// <param name="emulatorName">设备名</param>
 /// <param name="phoneNumber">设备名对应的手机号</param>
 /// <param name="listPosition">再列表中对应的索引位置</param>
 public Device(string emulatorName, int listPosition, ListViewItem item)
 {
     EmulatorName = emulatorName;
     ListPosition = listPosition;
     InitADBShell();
     this.item           = item;
     this.item.ForeColor = Color.Green;
     HomePath            = AppDomain.CurrentDomain.BaseDirectory;
     Xlog.I(emulatorName, "HomePath: {0}", HomePath);
     Actions.UpdateState(ListPosition, "已初始化连接!");
 }
Esempio n. 3
0
File: Device.cs Progetto: wannxy/LDC
        /// <summary>
        /// 读取当前流内的所有行,尾行总是为0
        /// </summary>
        /// <returns></returns>
        private List <string> ReadLines(bool NeedLog)
        {
            List <string> lines = new List <string>();
            string        line;
            int           counter = 1;

            try
            {
                do
                {
                    line = P.StandardOutput.ReadLine();
                    lines.Add(line);
                    if (NeedLog)
                    {
                        Xlog.I(EmulatorName, "{0}: {1}", counter++, line);
                    }
                } while (!line.Equals(string.Empty) && !line.EndsWith("}"));
            }
            catch (Exception ex)
            {
                Xlog.E(EmulatorName, "读取流时发生错误,{0}", ex.Message);
            }
            return(lines);
        }
Esempio n. 4
0
File: Device.cs Progetto: wannxy/LDC
        /// <summary>
        /// 拉取数据
        /// </summary>
        public void FetchData()
        {
            try
            {
                Actions.UpdateState(ListPosition, "正准备读取手机号码!");
                string pn = ReadPhoneNumber();// 读取最后登陆的手机号码
                Actions.UpdateState(ListPosition, string.Format("读取到的号码为:{0}", pn));
                if ("".Equals(pn))
                {
                    Actions.UpdateState(ListPosition, "未检测到已登录的号码!是否数据已经清理或者未登录!");
                    return;
                }
                else
                {
                    PhoneNumber = pn;
                    Actions.UpdatePN(ListPosition, PhoneNumber);
                    Actions.UpdateState(ListPosition, "正在构建用户目录!");
                    DataPath = string.Format("{0}{1}", HomePath, PhoneNumber);
                    if (!Directory.Exists(DataPath))
                    {
                        Directory.CreateDirectory(DataPath);
                        Xlog.I(EmulatorName, "Created DataDir: {0}", DataPath);
                    }
                }

                Actions.UpdateState(ListPosition, "正准备清理历史数据 db.tar!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} shell rm /sdcard/db.tar", EmulatorName));
                ReadLines(true);
                Actions.UpdateState(ListPosition, "正准备清理历史数据 sp.tar!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} shell rm /sdcard/sp.tar", EmulatorName));
                ReadLines(true);
                Actions.UpdateState(ListPosition, "正准备打包数据库!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} shell tar -cvf sdcard/db.tar /data/data/com.btd.wallet/databases", EmulatorName));
                ReadLines(true);
                Actions.UpdateState(ListPosition, "正准备打包配置文件!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} shell tar -cvf sdcard/sp.tar /data/data/com.btd.wallet/shared_prefs", EmulatorName));
                ReadLines(true);
                Actions.UpdateState(ListPosition, "正准备拷贝 db.tar 到本地!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} pull /sdcard/db.tar {1}", EmulatorName, DataPath));
                ReadLines(true);
                Actions.UpdateState(ListPosition, "正准备拷贝 sp.tar 到本地!");
                P.StandardInput.WriteLine(string.Format("adb -s {0} pull /sdcard/sp.tar {1}", EmulatorName, DataPath));
                ReadLines(true);

                Actions.UpdateState(ListPosition, "正准备读取DeviceKey!");
                string key = ReadDeviceKey();// 读取deviceKey
                Actions.UpdateState(ListPosition, string.Format("读取到的DeviceKey为:{0}", key));
                if (File.Exists(string.Format("{0}\\{1}.txt", DataPath, PhoneNumber)))
                {
                    File.Delete(string.Format("{0}\\{1}.txt", DataPath, PhoneNumber));
                }
                if (!"".Equals(key))
                {
                    File.AppendAllText(string.Format("{0}\\{1}.txt", DataPath, PhoneNumber), key + "\r\n");
                }
                Actions.UpdateState(ListPosition, "正准备读取Cookie!");
                string cookie = ReadCookie(); // 读取cookie
                Actions.UpdateState(ListPosition, string.Format("DeviceKey: {0}, Cookie: {1}", key, cookie));
                if (!"".Equals(cookie))
                {
                    File.AppendAllText(string.Format("{0}\\{1}.txt", DataPath, PhoneNumber), cookie);
                }
            }
            catch (Exception ex)
            {
                Xlog.E(EmulatorName, "拉取数据发生错误!{0}", ex.Message);
            }
        }