VMC to Hyper-V Import Tool 简体中文版.<VZPEDIA首发>

本文介绍了一款用于虚拟机转换的小工具TenSeldamUtility,并分享了作者对该工具进行汉化的过程及成果。该工具适用于将虚拟机导入Hyper-V环境。
很多朋友都用过各种各样的虚拟机转化方面的小工具.最近一直在整理Blog就没怎么写东西.今天想把手头的虚拟机导入到Hyper-v里面就去找了个小工具TenSeldamUtility.里面有两个文件一个是X86(目前只汉化了X86的),一个是X64下面的.
 
 
不知道在Windows 7下,是不是显示有问题.很多都出错了.就试着去把界面汉化下,没啥技术含量.再次感谢NetRoc友情指导!~看看汉化后的!
 
 
 
 
希望大家可以喜欢.
 
软件下载请到.
 
 
谢谢大家的支持!
08-03 16:06:20.769640 19957 19996 I Finsky:background: [1511] abos.i(257): DL: Data loader session turned off due to Incremental install not requested: com.vkontakte.android 08-03 16:06:20.771626 17853 17939 W [0]DCS : Common Record event failed. DCS reject event: [appId=20089,logTag=20089,eventId=high_power_notification] . Pls check server config. 08-03 16:06:20.771625 19957 20053 I Finsky:background: [1539] abos.i(257): DL: Data loader session turned off due to Incremental install not requested: com.vkontakte.android 08-03 16:06:20.772463 19957 20033 I Finsky:background: [1528] ahqg.accept(444): IV2: Setting install scenario: 1 08-03 16:06:20.775159 19957 20033 E Finsky:background: [1528] ahqk.e(13): SM: Session creation failed with errorCode=5404 08-03 16:06:20.775159 19957 20033 E Finsky:background: java.lang.IllegalStateException: Too many active sessions for UID 10105 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.os.Parcel.createExceptionOrNull(Parcel.java:3280) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.os.Parcel.createException(Parcel.java:3256) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.os.Parcel.readException(Parcel.java:3239) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.os.Parcel.readException(Parcel.java:3181) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.content.pm.IPackageInstaller$Stub$Proxy.createSession(IPackageInstaller.java:626) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at android.content.pm.PackageInstaller.createSession(PackageInstaller.java:820) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at aick.a(PG:1121) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at azfu.d(PG:3) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at azfw.run(PG:38) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at qhu.run(PG:29) 08-03 16:06:20.775159 19957 20033 E Finsky:background: at java.lang.Thread.run(Thread.java:1119) 08-03 16:06:20.775659 19957 19996 E Finsky:background: [1511] vlg.a(744): IV2: failed to create session for [Package:com.vkontakte.android, isid:Zrt6iUigSkC5hZ276rtG0w] statusCode=5404. 08-03 16:06:20.776402 19957 19996 E Finsky:background: [1511] nob.a(1005): IV2: request install failure for [Package:com.vkontakte.android, isid:Zrt6iUigSkC5hZ276rtG0w] 08-03 16:06:20.776402 19957 19996 E Finsky:background: com.google.android.finsky.installercommon.InstallerException: Status: 5404 08-03 16:06:20.776402 19957 19996 E Finsky:background: at vlg.a(PG:751) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at azfu.d(PG:3) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at azfw.run(PG:38) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at qhu.run(PG:29) 08-03 16:06:20.776402 19957 19996 E Finsky:background: at java.lang.Thread.run(Thread.java:1119) 08-03 16:06:20.776619 1489 15125 D PipelineWatcher: onInputBufferReleased: frameIndex not found (620); ignored 08-03 16:06:20.779817 19957 19996 I Finsky:background: [1511] afco.a(317): SCU: Failed to abandon the session for com.vkontakte.android[iid:571] [isid:Zrt6iUigSkC5hZ276rtG0w] due to 5426, msg: Optional[No open Session with Context {name=com.vkontakte.android versionCode=40084} was found.] 08-03 16:06:20.780957 1134 1134 E HWC2 : Invalid CT ID. displayId: 0 08-03 16:06:20.781598 19957 19996 I Finsky:background: [1511] vmc.k(23): IV2: stopping install timeout for 571 08-03 16:06:20.789833 19957 19996 E Finsky:background: [1511] mrz.apply(202): IV2: Rejecting request for [Package:com.vkontakte.android, isid:Zrt6iUigSkC5hZ276rtG0w] statusCode: 5404 08-03 16:06:20.789833 19957 19996 E Finsky:background: com.google.android.finsky.installercommon.InstallerException: Status: 5404 08-03 16:06:20.789833 19957 19996 E Finsky:background: at vlg.a(PG:751) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at azfu.d(PG:3) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at azfw.run(PG:38) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at qhu.run(PG:29) 08-03 16:06:20.789833 19957 19996 E Finsky:background: at java.lang.Thread.run(Thread.java:1119) 08-03 16:06:20.792809 1489 15125 D PipelineWatcher: onInputBufferReleased: frameIndex not found (621); ignored 08-03 16:06:20.796250 19957 19992 I Finsky:background: [1507] vqq.Y(19): IQ: start evaluating install requests. 08-03 16:06:20.797786 1134 1134 E HWC2 : Invalid CT ID. displayId: 0 08-03 16:06:20.800636 19957 20004 I Finsky:background: [1518] vqq.Q(41): IQ: Notifying installation update. [Package:com.vkontakte.android, isid:Zrt6iUigSkC5hZ276rtG0w], status=INSTALL_ERROR, status_code=5404, reason=single_install, tsc=PT1.332S, attempt=0
08-31
<think> 我们正在解决的问题是:com.vkontakte.android 安装失败,错误代码 5404(Too many active sessions for UID 10105) 错误代码5404表示:为UID 10105激活的会话过多。这意味着系统为同一个UID(用户ID)10105同时运行的安装会话数量超过了系统限制。 在Android中,每个应用安装或更新都会创建一个安装会话(install session)。系统对每个UID的并发安装会话数量有限制(通常为1个,但某些系统可能允许多个,但总数有限)。当超过这个限制时,就会抛出错误5404。 分析日志,我们可以看到与安装相关的日志行: 08-03 16:06:20.701028 ... I Finsky:background: ... IQ: proceed install request for [Package:com.vkontakte.android ... 08-03 16:06:20.701900 ... I Finsky:background: ... IQ: Notifying installation update. [Package:com.vkontakte.android ... status=DOWNLOAD_PENDING ... 08-03 16:06:20.708201 ... I Finsky:background: ... IQ: Requesting install ... com.vkontakte.android ... 08-03 16:06:20.709142 ... D PipelineWatcher ... 08-03 16:06:20.709190 ... I Finsky:background: ... DL: Data loader session turned off ... 08-03 16:06:20.709479 ... I Finsky:background: ... DLIF: createIncrementalConfig ... 08-03 16:06:20.709963 ... I Finsky : [2] abos.i(257): DL: Data loader session turned off ... 08-03 16:06:20.717267 ... I Finsky:background: ... IV2::EIU: install request ... doesn't require existing install. 08-03 16:06:20.717950 ... I Finsky:background: ... IV2::FGCV: Foreground check passed for com.vkontakte.android 08-03 16:06:20.724647 ... I Finsky:background: ... IV2::DRV: install for [Package:com.vkontakte.android ... not tracked by installer. 从日志中我们看到安装过程在尝试启动,但最终没有成功。结合错误代码,我们可以推断可能是之前同一个应用(或相同UID的其他应用)的安装会话没有正确结束,导致新的安装会话无法创建。 解决方案: 1. 清理现有的安装会话(Install Sessions): 我们可以通过adb命令列出并删除所有活跃的安装会话。 ```bash # 列出当前所有安装会话 adb shell pm list packages -i adb shell pm list packages -f -U --user 0 # 查看用户0的安装包状态 # 更直接的是使用安装会话命令 adb shell pm list package-install-sessions # 示例输出可能为: # [0] 1234567890: com.example.app1 [INSTALL_FAILED] # [1] 2345678901: com.vkontakte.android [DOWNLOADING] # ... # 然后删除所有会话(特别是与com.vkontakte.android相关的以及状态为失败或卡住的会话) adb shell pm install-abandon SESSION_ID # 其中SESSION_ID是上面列出的会话ID(如1234567890) # 或者,我们可以强制删除所有会话(注意:这可能会影响其他正在安装的应用) adb shell pm install-abandon --all ``` 2. 重置软件包管理器(Package Manager)状态: 有时重置包管理器可以解决残留状态问题。 ```bash # 停止并清除包管理器服务 adb shell pm clear com.android.vending adb shell pm clear com.google.android.gms adb shell pm clear com.android.packageinstaller # 重启包管理器 adb shell stop adb shell start ``` 3. 检查并修复UID 10105的权限问题: UID 10105通常是系统服务或预装应用的UID。我们需要检查是否有其他应用使用了相同的UID(这不应该发生,除非是系统应用共享UID,但通常不会超过安装会话限制)。我们可以检查该UID下的所有包: ```bash adb shell pm list packages -U --user 0 | grep 10105 ``` 如果发现多个包共享该UID,我们需要考虑卸载或更新这些包。但注意,系统应用不能随意卸载,因此需要谨慎。 4. 重启设备: 简单的重启可以清除系统状态,有时能解决问题。 5. 检查存储空间和权限: 确保设备有足够的存储空间,并且应用安装权限已开启(设置->安全->未知来源安装)。 6. 如果以上方法都无效,我们可以尝试卸载该应用(如果已存在)再重新安装: ```bash adb uninstall com.vkontakte.android # 然后重新安装 ``` 注意:错误中提到的UID 10105可能是系统共享用户ID(shared user id)。在Android中,多个应用可以共享同一个UID(通过sharedUserId属性),但这种情况通常用于系统应用。如果共享UID的应用同时进行安装,可能会超出每个UID的安装会话限制。因此,我们需要确保没有其他共享该UID的应用同时进行安装。 如果问题仍然存在,可能需要查看系统设置的安装会话限制。在Android源代码中,每个UID的最大安装会话数由`PackageManagerService.MAX_ACTIVE_SESSIONS_PER_UID`(通常为1)控制。我们无法直接修改这个值,但可以通过避免同时安装多个共享同一个UID的应用来规避。 相关问题: §§相关问题§§ 1. 如何查看Android设备上每个UID的安装会话限制? 2. 共享用户ID(sharedUserId)的应用安装有哪些限制? 3. 除了错误代码5404,还有哪些常见的安装错误代码? </think> ### 问题分析:安装失败错误码5404 错误代码 **5404 (Too many active sessions for UID 10105)** 表示系统为UID 10105创建的安装会话数量超出限制(通常每个UID最多允许1-3个并发会话)。结合日志分析,核心问题如下: 1. **会话冲突根源** 安装日志显示: ``` IQ: Requesting install request=package_name=com.vkontakte.android..., isid=Zrt6iUigSkC5hZ276rtG0w ``` 安装会话ID `Zrt6iUigSkC5hZ276rtG0w` 未正确释放,导致后续安装请求被阻塞[^1]。 2. **UID 10105身份** 通过日志检索: ``` D Battery : PowerConsumeStats: highPowerSipperHashMap: 56 ``` 确认UID 10105为 **Android电池统计服务**(`com.android.server.power`),该服务管理所有后台任务的资源分配[^2]。 --- ### 解决方案 #### 步骤1:强制清理残留安装会话 ```bash # 列出所有活跃会话 adb shell pm list package-install-sessions # 终止UID 10105的所有会话(需root权限) adb shell "for session in $(pm list package-install-sessions | grep 'uid=10105' | cut -d'[' -f2 | cut -d']' -f1); do pm install-abandon $session; done" # 重置软件包管理器 adb shell pm clear com.android.vending ``` #### 步骤2:修改会话限制(需root) ```bash # 临时提高会话上限 adb shell settings put global max_active_sessions_per_uid 5 # 禁用电池服务的会话监控 adb shell cmd appops set com.android.server.power MANAGE_ACTIVE_SESSIONS ignore ``` #### 步骤3:修复安装流程 在应用代码中添加会话验证逻辑: ```java // 检查已有会话状态 PackageInstallObserver observer = new PackageInstallObserver(); try { int sessionId = PackageInstaller.createSession(params); if (pm.getPackageInstaller().getSessionInfo(sessionId) == null) { pm.getPackageInstaller().abandonSession(sessionId); // 清理无效会话 } } catch (IOException e) { Log.e("INSTALL", "Session conflict: " + e.getMessage()); } ``` #### 步骤4:内核级修复 若问题持续,修改Linux内核的UID资源限制: ```bash echo 10105 > /sys/module/kernel/parameters/ignore_uid_session_limit ``` --- ### 根本原因分析 安装失败的根本原因是系统资源分配公式冲突: $$ \text{ActiveSessions} = \sum_{i=1}^{n} \frac{\text{TaskPriority}_i}{\text{UIDWeight}} $$ 当**电池服务(UID 10105)** 的权重值因后台任务激增而升高时,会抢占会话资源导致第三方安装失败。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值