ya-webadb
ya-webadb copied to clipboard
App management
- [ ] Enumrate installed apps
- [ ] icon, name, package name, version, target api, arch
- [ ] permission
- ❓ size
- [ ] Install app
- [ ] apk
- [ ] legacy mode
- [x] normal push
- [ ] fast deploy
- [ ] stream mode
- [ ] normal stream
- [ ] fast deploy
- [ ]
cmd package
- [ ] legacy mode
- ❓ aab
- ❓ apkm (by apkmirror)
- ❓ xapk (by apkpure)
- [ ] apk
- [ ] Uninstall app
- [ ]
pm
- [ ]
cmd package
- [ ]
- [ ] Launch app/activities (
am
) #366 - [ ] Backup/restore individual app data (
bu
) #354 - [ ] Demo
and apk extraction of an app. https://gist.github.com/ctrl-freak/24ac0e61b7cf550a6945
Add a function to browse app files, for rooted devices it does normal stuff , in debuggable apps it does https://android.stackexchange.com/questions/48609/how-can-i-access-the-files-in-data-data-and-copy-them-into-memory-card-withou/50411 commands and there is a storage emulated 0 Android data packageid folder browser and for backup able apps make a backup but load it to the ram then use a tar extractor to extract it.
And
Updates
- It should be impossible to get app icons using only ADB commands. A Java package similar to Scrcpy is required to call Android framework APIs to retrieve the icon. Using APIs also greatly simplify parsing the results. But it's kind of out of scope for this project, so won't be supported.
- Similar story for
am
. I have some strange error likeError: Activity not started, unable to resolve Intent
when usingam
to launch the main activity of apps, whilemonkey
works. So it's better to use the same API asmonkey
to resolve the main activity component name beforehand, than usingaction.MAIN
andcategory.LAUNCHER
directly. This also requires Java code so won't be supported. (I needam
parameters like--display
so usingmonkey
is also not an option)
Similar story for am. I have some strange error like Error: Activity not started, unable to resolve Intent when using am to launch the main activity of apps.
A workaround is first resolving the activity using pm resolve-activity
(PackageManager#resolveActivity
) then am start
(ActivityManager#startActivity
).
All main goals are completed, other stretch goals will be investigated when required.