├── .gitignore
├── AndroidManifest.xml
├── README.md
├── artworks
├── apptoolkit.ai
├── drawable-hdpi
│ ├── ic_launcher.png
│ └── icon.png
├── drawable-mdpi
│ ├── ic_launcher.png
│ └── icon.png
├── drawable-xhdpi
│ ├── ic_launcher.png
│ └── icon.png
├── ic_launcher.png
├── ic_launcher.psd
├── icon.psd
└── screenshots
│ ├── Screenshot_2013-06-22-18-43-27.png
│ ├── Screenshot_2013-06-22-18-43-51.png
│ ├── Screenshot_2013-06-22-18-44-10.png
│ ├── Screenshot_2013-06-22-18-44-22.png
│ ├── Screenshot_2013-06-22-18-44-28.png
│ ├── Screenshot_2013-06-22-18-44-37.png
│ ├── Screenshot_2013-06-22-18-44-53.png
│ └── Screenshot_2013-06-22-18-45-01.png
├── jni
└── android_os_FileUtils.cpp
├── mcxiaoke.keystore
├── pom.xml
├── release
└── apptoolkit.apk
├── res
├── anim
│ ├── fade_out_long.xml
│ ├── zoom_enter.xml
│ ├── zoom_enter_2.xml
│ ├── zoom_exit.xml
│ └── zoom_exit_2.xml
├── color
│ ├── text_primary_selectable.xml
│ └── text_secondary_selectable.xml
├── drawable-hdpi
│ ├── ic_action_about.png
│ ├── ic_action_help.png
│ ├── ic_action_search.png
│ ├── ic_action_settings.png
│ ├── ic_av_replay.png
│ ├── ic_collections_view_as_list.png
│ ├── ic_content_attachment.png
│ ├── ic_content_copy.png
│ ├── ic_content_cut.png
│ ├── ic_content_discard.png
│ ├── ic_content_remove.png
│ ├── ic_content_select_all.png
│ ├── ic_device_access_storage.png
│ ├── ic_launcher.png
│ ├── ic_navigation_accept.png
│ ├── ic_navigation_cancel.png
│ ├── ic_navigation_refresh.png
│ ├── ic_social_send_now.png
│ ├── ic_social_share.png
│ ├── icon.png
│ ├── spinner_48_inner_holo.png
│ └── spinner_48_outer_holo.png
├── drawable-mdpi
│ ├── ic_action_about.png
│ ├── ic_action_help.png
│ ├── ic_action_search.png
│ ├── ic_action_settings.png
│ ├── ic_av_replay.png
│ ├── ic_collections_view_as_list.png
│ ├── ic_content_attachment.png
│ ├── ic_content_copy.png
│ ├── ic_content_cut.png
│ ├── ic_content_discard.png
│ ├── ic_content_remove.png
│ ├── ic_device_access_storage.png
│ ├── ic_launcher.png
│ ├── ic_navigation_accept.png
│ ├── ic_navigation_cancel.png
│ ├── ic_navigation_refresh.png
│ ├── ic_social_send_now.png
│ ├── ic_social_share.png
│ ├── icon.png
│ ├── spinner_48_inner_holo.png
│ └── spinner_48_outer_holo.png
├── drawable-xhdpi
│ ├── ic_action_about.png
│ ├── ic_action_help.png
│ ├── ic_action_search.png
│ ├── ic_action_settings.png
│ ├── ic_av_replay.png
│ ├── ic_collections_view_as_list.png
│ ├── ic_content_attachment.png
│ ├── ic_content_copy.png
│ ├── ic_content_cut.png
│ ├── ic_content_discard.png
│ ├── ic_content_remove.png
│ ├── ic_content_select_all.png
│ ├── ic_device_access_storage.png
│ ├── ic_fso_default.png
│ ├── ic_fso_folder.png
│ ├── ic_launcher.png
│ ├── ic_navigation_accept.png
│ ├── ic_navigation_cancel.png
│ ├── ic_navigation_refresh.png
│ ├── ic_social_send_now.png
│ ├── ic_social_share.png
│ ├── icon.png
│ ├── spinner_48_inner_holo.png
│ └── spinner_48_outer_holo.png
├── drawable
│ ├── app_item_label.xml
│ ├── background_transparent.xml
│ ├── list_item_activated.xml
│ ├── progress_medium_holo.xml
│ ├── progress_small_holo.xml
│ ├── selector.xml
│ ├── selector_drawer_menu.xml
│ ├── selector_drawer_menu_checked.xml
│ ├── selector_drawer_menu_light_checked.xml
│ ├── selector_drawer_menu_light_pressed.xml
│ ├── selector_pressed.xml
│ ├── spinner_32_inner_holo.png
│ └── spinner_32_outer_holo.png
├── layout
│ ├── action_bar_indeterminate_progress.xml
│ ├── appdetail_header.xml
│ ├── fm_appactions.xml
│ ├── fm_appdetail.xml
│ ├── fm_applist.xml
│ ├── fm_menu.xml
│ ├── list_item_action.xml
│ ├── list_item_app.xml
│ ├── list_item_menu.xml
│ └── main.xml
├── menu
│ ├── menu_home.xml
│ └── menu_mode_applist.xml
├── raw
│ ├── aid.properties
│ ├── changelog
│ └── mime_types.properties
├── values-v14
│ └── themes.xml
├── values-zh-rCN
│ ├── arrays.xml
│ └── strings.xml
├── values
│ ├── analytics.xml
│ ├── arrays.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── ids.xml
│ ├── strings.xml
│ ├── styles.xml
│ └── themes.xml
└── xml
│ └── settings.xml
└── src
└── com
└── mcxiaoke
├── apptoolkit
├── AppConfig.java
├── AppContext.java
├── Intents.java
├── adapter
│ ├── AppActionsAdapter.java
│ ├── AppListAdapter.java
│ ├── ArrayAdapterCompat.java
│ ├── BaseArrayAdapter.java
│ └── MultiChoiceArrayAdapter.java
├── app
│ ├── UIBaseSupport.java
│ ├── UIHome.java
│ ├── UISettings.java
│ └── UIWelcome.java
├── cache
│ └── CacheManager.java
├── callback
│ └── IPackageMonitor.java
├── compress
│ ├── Compress.java
│ ├── Decompress.java
│ ├── ZipFolder.java
│ └── ZipUtils.java
├── db
│ └── Database.java
├── exception
│ └── NoPermissionException.java
├── fragment
│ ├── AlertDialogFragment.java
│ ├── BaseDialogFragment.java
│ ├── BaseFragment.java
│ ├── PackageListFragment.java
│ └── Refreshable.java
├── menu
│ ├── MenuCallback.java
│ ├── MenuFragment.java
│ ├── MenuItemResource.java
│ ├── PopupMenuFragment.java
│ └── PopupMenuItem.java
├── model
│ ├── AppInfo.java
│ └── BaseModel.java
├── preference
│ └── MultipleChoicePreference.java
├── receiver
│ └── PackageMonitor.java
├── service
│ ├── BackgroundService.java
│ ├── BaseService.java
│ └── ExtendedRunnable.java
├── task
│ ├── AsyncTaskBase.java
│ ├── AsyncTaskCallback.java
│ ├── BackupAppsApkTask.java
│ ├── BackupAppsDataTask.java
│ ├── LoadAppsTask.java
│ ├── LoadRunningProcessTask.java
│ ├── SimpleAsyncTask.java
│ ├── SimpleAsyncTaskCallback.java
│ ├── SimpleCommandTask.java
│ ├── TaskMessage.java
│ └── ThreadPool.java
└── util
│ ├── AppUtils.java
│ ├── DeviceUtils.java
│ ├── DialogUtils.java
│ ├── IOHelper.java
│ ├── StringHelper.java
│ └── Utils.java
├── shell
├── Shell.java
├── model
│ ├── ErrorCode.java
│ ├── Mount.java
│ ├── Permissions.java
│ ├── Symlink.java
│ └── fso
│ │ ├── AID.java
│ │ ├── BlockDevice.java
│ │ ├── CharacterDevice.java
│ │ ├── Directory.java
│ │ ├── DiskUsage.java
│ │ ├── DomainSocket.java
│ │ ├── FileSystemObject.java
│ │ ├── Group.java
│ │ ├── GroupPermission.java
│ │ ├── Identity.java
│ │ ├── MountPoint.java
│ │ ├── NamedPipe.java
│ │ ├── OthersPermission.java
│ │ ├── ParentDirectory.java
│ │ ├── Permission.java
│ │ ├── Permissions.java
│ │ ├── Query.java
│ │ ├── RegularFile.java
│ │ ├── SearchResult.java
│ │ ├── Symlink.java
│ │ ├── SystemFile.java
│ │ ├── User.java
│ │ └── UserPermission.java
├── others
│ ├── ApkUtils.java
│ ├── BusyboxUtils.java
│ ├── CacheUtils.java
│ ├── ComponentUtils.java
│ ├── Compress.java
│ ├── DIPairUtils.java
│ ├── DalvikUtils.java
│ ├── Decompress.java
│ ├── DeviceUtils.java
│ ├── FileBrowser.java
│ ├── HostsUtils.java
│ ├── MemorySpecialList.java
│ ├── MemoryUtils.java
│ ├── ProcessUtils.java
│ ├── RemoteAdbd.java
│ └── ShellInterface.java
└── utils
│ ├── AIDHelper.java
│ ├── FileHelper.java
│ ├── ParseHelper.java
│ └── Remounter.java
└── view
└── ABSListView.java
/.gitignore:
--------------------------------------------------------------------------------
1 | # built application files
2 | *.ap_
3 |
4 | # files for the dex VM
5 | *.dex
6 |
7 | # Java class files
8 | *.class
9 |
10 | # generated files
11 | bin/
12 | gen/
13 | target/
14 | gen-external-apklibs/
15 |
16 | # Local configuration file (sdk path, etc)
17 | local.properties
18 | project.properties
19 |
20 | # Eclipse project files
21 | .classpath
22 | .project
23 | .idea
24 | *.iml
25 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
35 |
36 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/README.md
--------------------------------------------------------------------------------
/artworks/apptoolkit.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/apptoolkit.ai
--------------------------------------------------------------------------------
/artworks/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/artworks/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/artworks/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/artworks/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/artworks/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/artworks/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/artworks/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/ic_launcher.png
--------------------------------------------------------------------------------
/artworks/ic_launcher.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/ic_launcher.psd
--------------------------------------------------------------------------------
/artworks/icon.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/icon.psd
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-43-27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-43-27.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-43-51.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-43-51.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-44-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-44-10.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-44-22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-44-22.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-44-28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-44-28.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-44-37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-44-37.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-44-53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-44-53.png
--------------------------------------------------------------------------------
/artworks/screenshots/Screenshot_2013-06-22-18-45-01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/artworks/screenshots/Screenshot_2013-06-22-18-45-01.png
--------------------------------------------------------------------------------
/mcxiaoke.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/mcxiaoke.keystore
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | 4.0.0
5 | com.mcxiaoke.apptoolkit
6 | apptoolkit
7 | 1.0.0-SNAPSHOT
8 | apk
9 | App Toolkit
10 |
11 |
12 | UTF-8
13 | UTF-8
14 | 1.6
15 | 4.1.1.4
16 | 17
17 | r13
18 | 3.6.0
19 | 4.3.1
20 |
21 |
22 |
23 |
24 | github-repo
25 | github-repo
26 | https://raw.github.com/mcxiaoke/mavenrepo/master/repository/
27 |
28 |
29 |
30 |
31 |
32 | com.google.android
33 | android
34 | ${android.version}
35 | provided
36 |
37 |
38 |
39 | com.google.android
40 | support-v4
41 | ${android-support.version}
42 |
43 |
44 |
45 | com.google.android.analytics
46 | analytics
47 | 3
48 |
49 |
50 |
51 | com.google.code.gson
52 | gson
53 | 2.2.4
54 |
55 |
56 |
57 | com.actionbarsherlock
58 | actionbarsherlock
59 | ${actionbarsherlock.version}
60 | apklib
61 |
62 |
63 |
64 | de.psdev.licensesdialog
65 | licensesdialog
66 | 1.1.0
67 | apklib
68 |
69 |
70 |
71 |
72 |
73 |
74 | ${project.artifactId}
75 | src
76 |
77 |
78 |
79 | com.jayway.maven.plugins.android.generation2
80 | android-maven-plugin
81 | ${android-maven.version}
82 | true
83 |
84 |
85 |
86 |
87 |
88 | com.jayway.maven.plugins.android.generation2
89 | android-maven-plugin
90 |
91 |
92 | ${android.platform}
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/release/apptoolkit.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/release/apptoolkit.apk
--------------------------------------------------------------------------------
/res/anim/fade_out_long.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/res/anim/zoom_enter.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
18 |
20 |
21 |
29 |
30 |
--------------------------------------------------------------------------------
/res/anim/zoom_enter_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
24 |
33 |
34 |
38 |
--------------------------------------------------------------------------------
/res/anim/zoom_exit.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
26 |
29 |
30 |
38 |
39 |
43 |
44 |
--------------------------------------------------------------------------------
/res/anim/zoom_exit_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
18 |
20 |
21 |
29 |
30 |
35 |
36 |
--------------------------------------------------------------------------------
/res/color/text_primary_selectable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/color/text_secondary_selectable.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_action_about.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_action_help.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_action_search.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_av_replay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_av_replay.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_collections_view_as_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_collections_view_as_list.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_attachment.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_copy.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_cut.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_discard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_discard.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_remove.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_content_select_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_content_select_all.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_device_access_storage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_device_access_storage.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_navigation_accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_navigation_accept.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_navigation_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_navigation_cancel.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_navigation_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_navigation_refresh.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_social_send_now.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_social_send_now.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_social_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/ic_social_share.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/spinner_48_inner_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/spinner_48_inner_holo.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/spinner_48_outer_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-hdpi/spinner_48_outer_holo.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_action_about.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_action_help.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_action_search.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_av_replay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_av_replay.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_collections_view_as_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_collections_view_as_list.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_content_attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_content_attachment.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_content_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_content_copy.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_content_cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_content_cut.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_content_discard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_content_discard.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_content_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_content_remove.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_device_access_storage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_device_access_storage.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_navigation_accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_navigation_accept.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_navigation_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_navigation_cancel.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_navigation_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_navigation_refresh.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_social_send_now.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_social_send_now.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_social_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/ic_social_share.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/spinner_48_inner_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/spinner_48_inner_holo.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/spinner_48_outer_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-mdpi/spinner_48_outer_holo.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_action_about.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_action_help.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_action_search.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_action_settings.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_av_replay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_av_replay.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_collections_view_as_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_collections_view_as_list.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_attachment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_attachment.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_copy.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_cut.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_discard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_discard.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_remove.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_content_select_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_content_select_all.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_device_access_storage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_device_access_storage.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_fso_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_fso_default.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_fso_folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_fso_folder.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_navigation_accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_navigation_accept.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_navigation_cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_navigation_cancel.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_navigation_refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_navigation_refresh.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_social_send_now.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_social_send_now.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_social_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/ic_social_share.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/spinner_48_inner_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/spinner_48_inner_holo.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/spinner_48_outer_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable-xhdpi/spinner_48_outer_holo.png
--------------------------------------------------------------------------------
/res/drawable/app_item_label.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
33 |
34 |
--------------------------------------------------------------------------------
/res/drawable/background_transparent.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/list_item_activated.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
24 |
25 |
--------------------------------------------------------------------------------
/res/drawable/progress_medium_holo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
10 |
11 | -
12 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/res/drawable/progress_small_holo.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 | -
19 |
25 |
26 | -
27 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/res/drawable/selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/selector_drawer_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/drawable/selector_drawer_menu_checked.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/selector_drawer_menu_light_checked.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/selector_drawer_menu_light_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/selector_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/spinner_32_inner_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable/spinner_32_inner_holo.png
--------------------------------------------------------------------------------
/res/drawable/spinner_32_outer_holo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mcxiaoke/apptoolkit/1887ad22890c83d13c4f2ebfc727b3f886e9126c/res/drawable/spinner_32_outer_holo.png
--------------------------------------------------------------------------------
/res/layout/action_bar_indeterminate_progress.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
--------------------------------------------------------------------------------
/res/layout/appdetail_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/res/layout/fm_appactions.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/layout/fm_appdetail.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/res/layout/fm_applist.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/layout/fm_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
13 |
20 |
21 |
22 |
28 |
29 |
--------------------------------------------------------------------------------
/res/layout/list_item_action.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
20 |
21 |
--------------------------------------------------------------------------------
/res/layout/list_item_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
22 |
23 |
--------------------------------------------------------------------------------
/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
14 |
15 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/res/menu/menu_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/menu/menu_mode_applist.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/res/raw/aid.properties:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (C) 2012 The CyanogenMod Project
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | #
16 |
17 | #
18 | # Android ID list (from system/core/include/private/android_filesystem_config.h)
19 | #
20 | # Format:
21 | # =
22 | #
23 |
24 | 0 = root
25 | 1000 = system
26 | 1001 = radio
27 | 1002 = bluetooth
28 | 1003 = graphics
29 | 1004 = input
30 | 1005 = audio
31 | 1006 = camera
32 | 1007 = log
33 | 1008 = compass
34 | 1009 = mount
35 | 1010 = wifi
36 | 1011 = adb
37 | 1012 = install
38 | 1013 = media
39 | 1014 = dhcp
40 | 1015 = sdcard_rw
41 | 1016 = vpn
42 | 1017 = keystore
43 | 1018 = usb
44 | 1019 = drm
45 | 1020 = mdnsr
46 | 1021 = gps
47 | 1023 = media_rw
48 | 1024 = mtp
49 | 1026 = drmrpc
50 | 1027 = nfc
51 | 1028 = sdcard_r
52 | 2000 = shell
53 | 2001 = cache
54 | 2002 = diag
55 | 3001 = net_bt_admin
56 | 3002 = net_bt
57 | 3003 = inet
58 | 3004 = net_raw
59 | 3005 = net_admin
60 | 3006 = net_bw_stats
61 | 3007 = net_bw_acct
62 | 3008 = qcom_oncrpc
63 | 3009 = qcom_diag
64 | 9998 = misc
65 | 9999 = nobody
66 |
67 |
--------------------------------------------------------------------------------
/res/raw/changelog:
--------------------------------------------------------------------------------
1 | CyanogenMod File Manager
2 | ========================
3 |
4 | Version 1.0.1
5 | -------------
6 | * NFC support
7 | * Themes support
8 |
9 | Version 1.0.0
10 | -------------
11 | Initial release.
12 |
13 | Features:
14 |
15 | * 3 navigation modes:
16 | · Safe mode (by default)
17 | · Prompt user mode
18 | · Root mode
19 | * History
20 | * Bookmarks
21 | * Search
22 | * Pick browsing
23 | * Breadcrumb browsing
24 | * Multiple selection
25 | * Layout view selection
26 | * Sort order selection
27 | * Show/Hide system files
28 | * Compression and uncompression
29 | * Add shortcuts to desktop
30 | * Mount and unmount file systems
31 | * Change file permissions
32 | * File system information
33 | * File information
34 | * Open and Open With
35 | * Send to
36 | * Internal editor
37 |
38 |
--------------------------------------------------------------------------------
/res/values-v14/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
15 |
16 |
23 |
24 |
--------------------------------------------------------------------------------
/res/values-zh-rCN/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | - 应用管理
6 | - 进程管理
7 | - 服务管理
8 | - 自启动管理
9 |
10 |
--------------------------------------------------------------------------------
/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | App Toolkit
4 | 获取ROOT权限成功
5 | 获取ROOT权限失败
6 | 刷新
7 | 设置
8 | 备份
9 |
10 |
11 | 选择应用
12 | 已选择%1$d项
13 | 选择全部
14 | 取消选择
15 | 卸载应用
16 | 备份应用
17 | 备份数据
18 |
19 | 正在备份
20 |
21 | 备份应用
22 | 备份数据
23 | 确定备份所选应用的安装文件到存储卡?
24 | 确定备份所选应用的数据到存储卡?
25 |
26 | 应用备份完成
27 | 应用已全部备份到%1$s,备份应用总数:%2$d,本次新增: %3$d
28 | 数据备份完成
29 | 数据已全部备份到%1$s,备份应用数据总数:%2$d,本次新增: %3$d
30 |
31 | %1$s的安装文件已成功备份到%2$s
32 | %1$s的数据已成功备份到%2$s
33 | %1$s数据已从备份中恢复
34 | Root权限获取失败,无法备份数据.
35 |
36 |
37 | 进入应用管理
38 | 查看应用详情
39 | 备份安装文件
40 | 备份应用数据
41 | 从备份恢复数据
42 | 显示应用数据
43 | 清除应用数据
44 | 清除应用缓存
45 | 安装应用
46 | 卸载应用
47 | 静默安装
48 | 静默卸载
49 | 禁用此应用
50 | 启用此应用
51 | 结束应用
52 | 结束进程
53 | 安装为系统应用
54 | 删除系统应用
55 | 市场信息
56 | 复制包名
57 | 查看清单文件
58 | 查看资源文件
59 |
60 |
61 | 应用管理
62 | 备份管理
63 | 进程管理
64 | 组件管理
65 | 启动管理
66 | 服务管理
67 | 文件管理
68 | 缓存清理
69 | 网络防火墙
70 | 工具箱
71 | 关于应用
72 |
73 | 选择操作
74 |
75 |
76 | 版本信息
77 | 当前版本: %1$s
78 |
79 | 项目地址
80 |
81 |
82 |
--------------------------------------------------------------------------------
/res/values/analytics.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | UA-41944843-1
5 |
6 |
7 | true
8 |
9 |
10 | true
11 |
--------------------------------------------------------------------------------
/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | - Apps
6 | - Processes
7 | - Services
8 | - Receivers
9 |
10 |
--------------------------------------------------------------------------------
/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #FFFFFFFF
5 | #FF000000
6 | #FFFFFFFF
7 | #FF000000
8 | #FF999999
9 | #FF333333
10 | #FFCCCCCC
11 | #FF333333
12 | #FF666666
13 | #FF999999
14 |
15 |
16 | #FFCC0000
17 |
18 |
19 |
20 | #20999999
21 |
22 | #66CCCCCC
23 |
24 | #C0000000
25 |
26 | #33666666
27 | #66666666
28 | #CC269926
29 | #FF269926
30 |
31 | #FF101010
32 | #FF666666
33 |
34 | #FFF0F0F0
35 | #FFE0E0E0
36 |
37 |
38 | #ff0099cc
39 | #800099cc
40 | #200099cc
41 | #ff28a5c0
42 |
43 | #ffb2cb39
44 | #80b2cb39
45 | #20b2cb39
46 | #ff96aa39
47 |
48 | #ff3f9fe0
49 | #803f9fe0
50 | #203f9fe0
51 | #ff3687bf
52 |
53 | #ffc74b46
54 | #80c74b46
55 | #20c74b46
56 | #ff943c39
57 |
58 | #fff4842d
59 | #80f4842d
60 | #20f4842d
61 | #ffd77428
62 |
63 | #ff5161bc
64 | #805161bc
65 | #205161bc
66 | #ff384c9e
67 |
68 | #ff585858
69 | #80585858
70 | #20585858
71 | #ff4d4d4d
72 |
73 | #FF33B5E5
74 |
75 | #FFE0E0E0
76 | #6633B5E5
77 |
78 | #FFE0E0E0
79 | #8033B5E5
80 |
81 |
--------------------------------------------------------------------------------
/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10dp
6 | 12dp
7 | 14dp
8 | 16dp
9 | 18dp
10 | 20dp
11 | 24dp
12 |
13 | 48dp
14 | 48dp
15 | 48dp
16 |
17 |
--------------------------------------------------------------------------------
/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
14 |
15 |
17 |
18 |
25 |
26 |
27 |
31 |
32 |
35 |
36 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/res/xml/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
12 |
13 |
14 |
18 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/AppConfig.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit;
2 |
3 | /**
4 | * Project: filemanager
5 | * Package: com.com.mcxiaoke.appmanager
6 | * User: com.mcxiaoke
7 | * Date: 13-6-11
8 | * Time: 下午1:20
9 | */
10 | public class AppConfig {
11 |
12 | public static final String APP_TOOL_DIR = "AppToolkit";
13 | public static final String BACKUP_APPS_DIR = "apps";
14 | public static final String BACKUP_DATA_DIR = "data";
15 |
16 | public static final String EXTRA_APPINFO = "extra_appinfo";
17 | public static final String EXTRA_ID = "extra_ID";
18 | public static final String EXTRA_TYPE = "extra_type";
19 | public static final String EXTRA_TEXT = "extra_text";
20 | public static final String EXTRA_COUNT = "extra_count";
21 | public static final String EXTRA_FLAG = "extra_flag";
22 | public static final String EXTRA_ADVANCED = "extra_advanced";
23 | public static final String EXTRA_SYSTEM = "extra_system";
24 | public static final String EXTRA_PACKAGE = "extra_package";
25 | public static final String EXTRA_STRING_LIST = "extra_string_list";
26 | public static final String EXTRA_CACHE_ID = "extra_cache_id";
27 |
28 | public static final int TYPE_USER_APP_MANAGER = 0;
29 | public static final int TYPE_SYSTEM_APP_MANAGER = 2;
30 | public static final int TYPE_PROCESS_MANAGER = 4;
31 | public static final int TYPE_DATA_MANAGER = 6;
32 | public static final int TYPE_CACHE_MANAGER = 8;
33 | public static final int TYPE_COMPONENT_MANAGER = 10;
34 | public static final int TYPE_FILE_MANAGER = 12;
35 |
36 | public static final int CMD_BACKUP_APP_ONE = 50;
37 | public static final int CMD_BACKUP_DATA_ONE = 52;
38 | public static final int CMD_SILENT_INSTAlL_ONE = 54;
39 | public static final int CMD_SILENT_UNINSTALL_ONE = 56;
40 | public static final int CMD_CLEAR_CACHE_ONE = 58;
41 | public static final int CMD_CLEAR_DATA_ONE = 60;
42 | public static final int CMD_INSTALL_SYSTEM_APP_ONE = 62;
43 | public static final int CMD_UNINSTALL_SYSTEM_APP_ONE = 64;
44 |
45 | public static final int CMD_RESTORE_APP_ONE = 70;
46 | public static final int CMD_RESTORE_DATA_ONE = 71;
47 |
48 | public static final int DOMAIN_ANDROID = 101;
49 | public static final int DOMAIN_GOOGLE = 102;
50 | public static final int DOMAIN_WHITELIST = 103;
51 | public static final int DOMAIN_BLACKLIST = 104;
52 | public static final int DOMAIN_NORMAL = 105;
53 |
54 | public static final String DOMAIN_NAME_ANDROID = "Android";
55 | public static final String DOMAIN_NAME_GOOGLE = "Google";
56 | public static final String DOMAIN_NAME_WHITELIST = "Whitelist";
57 | public static final String DOMAIN_NAME_BLACKLIST = "Blacklist";
58 | public static final String DOMAIN_NAME_NORMAL = "Normal";
59 |
60 |
61 | public static final String APK_MIME_TYPE = "application/vnd.android.package-archive";
62 | /**
63 | * The patch for some android version and devices. Install may fail without
64 | * this patch.
65 | */
66 | public static final String COMMAND_INSTALL_PATCH = "LD_LIBRARY_PATH=/vendor/lib:/system/lib ";
67 |
68 | public static final String SETTINGS_PACKAGE = "com.android.settings";
69 |
70 | public static final String SYSTEM_APP_PATH = "/system/app";
71 | public static final String USER_APP_PATH = "/data/app";
72 | public static final String APP_DATA_PATH = "/data/data";
73 | public static final String BUSYBOX_PATH = "/system/xbin/busybox";
74 | public static final String ANDROID_APP_PACKAGE_PREFIX = "com.android.";
75 | public static final String GOOGLE_APP_PACKAGE_PREFIX = "com.google.android";
76 |
77 | public static final int UID_ROOT = 0;
78 | public static final int UID_SYSTEM = 1000;
79 | }
80 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/Intents.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit;
2 |
3 | /**
4 | * Project: apptoolkit
5 | * Package: com.mcxiaoke
6 | * User: mcxiaoke
7 | * Date: 13-6-16
8 | * Time: 下午1:50
9 | */
10 | public class Intents {
11 | }
12 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/adapter/AppActionsAdapter.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.adapter;
2 |
3 | import android.content.Context;
4 | import android.view.View;
5 | import android.view.ViewGroup;
6 | import android.widget.TextView;
7 | import com.mcxiaoke.apptoolkit.R;
8 | import com.mcxiaoke.apptoolkit.menu.PopupMenuItem;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * Project: filemanager
14 | * Package: com.mcxiaoke.appmanager.adapter
15 | * User: mcxiaoke
16 | * Date: 13-6-12
17 | * Time: 下午11:00
18 | */
19 | public class AppActionsAdapter extends BaseArrayAdapter {
20 |
21 | public AppActionsAdapter(Context context, List objects) {
22 | super(context, objects);
23 | }
24 |
25 | @Override
26 | public View getView(int position, View convertView, ViewGroup parent) {
27 | ViewHolder holder;
28 | if (convertView == null) {
29 | convertView = mInflater.inflate(R.layout.list_item_action, null);
30 | holder = new ViewHolder();
31 | holder.textView = (TextView) convertView.findViewById(R.id.action);
32 | convertView.setTag(holder);
33 | } else {
34 | holder = (ViewHolder) convertView.getTag();
35 | }
36 |
37 | holder.textView.setText(getItem(position).name);
38 | return convertView;
39 | }
40 |
41 | private static class ViewHolder {
42 | TextView textView;
43 | }
44 |
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/adapter/BaseArrayAdapter.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.adapter;
2 |
3 | import android.content.Context;
4 | import android.os.Handler;
5 | import android.os.Looper;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * Project: filemanager
14 | * Package: com.mcxiaoke.appmanager.adapter
15 | * User: mcxiaoke
16 | * Date: 13-6-12
17 | * Time: 下午11:00
18 | */
19 | public abstract class BaseArrayAdapter extends ArrayAdapterCompat {
20 | protected Context mContext;
21 | protected LayoutInflater mInflater;
22 | protected Handler mUiHandler;
23 |
24 | public BaseArrayAdapter(Context context, List objects) {
25 | super(context, objects);
26 | initialize(context);
27 | }
28 |
29 | private void initialize(Context context) {
30 | mContext = context;
31 | mInflater = LayoutInflater.from(context);
32 | mUiHandler = new Handler(Looper.getMainLooper());
33 | }
34 |
35 | @Override
36 | public abstract View getView(int position, View convertView, ViewGroup parent);
37 |
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/app/UIBaseSupport.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.app;
2 |
3 | import android.os.Bundle;
4 | import android.os.Looper;
5 | import com.actionbarsherlock.app.SherlockFragmentActivity;
6 | import com.actionbarsherlock.view.MenuItem;
7 | import com.actionbarsherlock.view.Window;
8 | import com.mcxiaoke.apptoolkit.AppContext;
9 |
10 | /**
11 | * Project: DoubanShuo
12 | * User: com.mcxiaoke
13 | * Date: 13-5-30
14 | * Time: 上午9:58
15 | */
16 | public class UIBaseSupport extends SherlockFragmentActivity {
17 |
18 | protected static final boolean DEBUG = AppContext.isDebug();
19 |
20 | protected void debug(String message) {
21 | AppContext.v(message);
22 | }
23 |
24 | protected void error(String message) {
25 | AppContext.e(message);
26 | }
27 |
28 | @Override
29 | protected void onCreate(Bundle savedInstanceState) {
30 | super.onCreate(savedInstanceState);
31 | requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
32 | }
33 |
34 | @Override
35 | protected void onResume() {
36 | super.onResume();
37 | }
38 |
39 |
40 | @Override
41 | protected void onPause() {
42 | super.onPause();
43 | }
44 |
45 | @Override
46 | protected void onPostResume() {
47 | super.onPostResume();
48 | }
49 |
50 |
51 | @Override
52 | protected void onStop() {
53 | super.onStop();
54 | }
55 |
56 | @Override
57 | protected void onStart() {
58 | super.onStart();
59 | }
60 |
61 |
62 | @Override
63 | protected void onDestroy() {
64 | super.onDestroy();
65 | }
66 |
67 |
68 | @Override
69 | public void onBackPressed() {
70 | super.onBackPressed();
71 | }
72 |
73 |
74 | @Override
75 | protected void onRestoreInstanceState(Bundle savedInstanceState) {
76 | super.onRestoreInstanceState(savedInstanceState);
77 | }
78 |
79 | @Override
80 | protected void onSaveInstanceState(Bundle outState) {
81 | super.onSaveInstanceState(outState);
82 | }
83 |
84 | @Override
85 | protected void onTitleChanged(CharSequence title, int color) {
86 | super.onTitleChanged(title, color);
87 | }
88 |
89 |
90 | @Override
91 | public void onContentChanged() {
92 | super.onContentChanged();
93 | }
94 |
95 | @Override
96 | public boolean onOptionsItemSelected(MenuItem item) {
97 | if (android.R.id.home == item.getItemId()) {
98 | onHomeClick();
99 | return true;
100 | }
101 | return super.onOptionsItemSelected(item);
102 | }
103 |
104 | protected void onHomeClick() {
105 | onBackPressed();
106 | }
107 |
108 | private boolean mRefreshing;
109 |
110 | public boolean isRefreshing() {
111 | return mRefreshing;
112 | }
113 |
114 | private void showActionBarProgress() {
115 | ensureMainThread();
116 | mRefreshing = true;
117 | invalidateOptionsMenu();
118 | }
119 |
120 | private void hideActionBarProgress() {
121 | ensureMainThread();
122 | mRefreshing = false;
123 | invalidateOptionsMenu();
124 | }
125 |
126 | protected void showProgressIndicator() {
127 | setSupportProgressBarIndeterminateVisibility(true);
128 | }
129 |
130 | protected void hideProgressIndicator() {
131 | setSupportProgressBarIndeterminateVisibility(false);
132 | }
133 |
134 |
135 | public void showProgress() {
136 | if (hasRefreshAction()) {
137 | showActionBarProgress();
138 | } else {
139 | showProgressIndicator();
140 | }
141 | }
142 |
143 | public void hideProgress() {
144 | if (hasRefreshAction()) {
145 | hideActionBarProgress();
146 | } else {
147 | hideProgressIndicator();
148 | }
149 | }
150 |
151 | protected void ensureMainThread() {
152 | Looper looper = Looper.myLooper();
153 | if (looper != null && looper != getMainLooper()) {
154 | throw new IllegalStateException("Only call this from your main thread.");
155 | }
156 | }
157 |
158 | protected boolean hasRefreshAction() {
159 | return false;
160 | }
161 | }
162 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/app/UISettings.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.app;
2 |
3 | import android.os.Bundle;
4 | import android.preference.Preference;
5 | import com.actionbarsherlock.app.SherlockPreferenceActivity;
6 | import com.actionbarsherlock.view.MenuItem;
7 | import com.mcxiaoke.apptoolkit.AppContext;
8 | import com.mcxiaoke.apptoolkit.R;
9 |
10 | /**
11 | * Project: apptoolkit
12 | * Package: com.mcxiaoke.apptoolkit.app
13 | * User: mcxiaoke
14 | * Date: 13-6-22
15 | * Time: 下午6:02
16 | */
17 | public class UISettings extends SherlockPreferenceActivity {
18 |
19 | @Override
20 | protected void onCreate(Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 |
23 | getSupportActionBar().setDisplayHomeAsUpEnabled(true);
24 | addPreferencesFromResource(R.xml.settings);
25 |
26 | StringBuilder builder = new StringBuilder();
27 | builder.append("v").append(AppContext.getVersionName()).append(" Build").append(AppContext.getVersionCode());
28 | String versionInfo = String.format(getString(R.string.pref_version_summary, builder.toString()));
29 | Preference version = findPreference(getString(R.string.pref_version_key));
30 | version.setSummary(versionInfo);
31 | }
32 |
33 | @Override
34 | public boolean onOptionsItemSelected(MenuItem item) {
35 | if (android.R.id.home == item.getItemId()) {
36 | onBackPressed();
37 | return true;
38 | }
39 | return super.onOptionsItemSelected(item);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/app/UIWelcome.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.app;
2 |
3 | import android.content.Intent;
4 | import android.os.Bundle;
5 |
6 | public class UIWelcome extends UIBaseSupport {
7 |
8 | @Override
9 | protected void onCreate(Bundle savedInstanceState) {
10 | super.onCreate(savedInstanceState);
11 | startActivity(new Intent(this, UIHome.class));
12 | finish();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/cache/CacheManager.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.cache;
2 |
3 | import android.graphics.drawable.Drawable;
4 | import com.mcxiaoke.apptoolkit.model.AppInfo;
5 |
6 | import java.util.Collection;
7 | import java.util.HashMap;
8 | import java.util.List;
9 | import java.util.concurrent.CopyOnWriteArrayList;
10 |
11 | /**
12 | * Project: apptoolkit
13 | * Package: com.mcxiaoke.apptoolkit.cache
14 | * User: com.mcxiaoke
15 | * Date: 13-6-11
16 | * Time: 上午12:09
17 | */
18 | public class CacheManager {
19 | private static CacheManager sInstance = new CacheManager();
20 |
21 | private final Object mLock = new Object();
22 |
23 | private HashMap mIconCache;
24 | private List mAppInfoCache;
25 |
26 | public static CacheManager getInstance() {
27 | return sInstance;
28 | }
29 |
30 | private CacheManager() {
31 | mIconCache = new HashMap();
32 | mAppInfoCache = new CopyOnWriteArrayList();
33 | }
34 |
35 | public boolean addAll(Collection apps) {
36 | if (apps == null || apps.isEmpty()) {
37 | return false;
38 | }
39 | synchronized (mLock) {
40 | mAppInfoCache.addAll(apps);
41 | }
42 | return true;
43 | }
44 |
45 | public List getAll() {
46 | return mAppInfoCache;
47 | }
48 |
49 | public boolean remove(AppInfo app) {
50 | synchronized (mLock) {
51 | return mAppInfoCache.remove(app);
52 | }
53 | }
54 |
55 | public boolean putIcon(String key, Drawable drawable) {
56 | if (key == null || drawable == null) {
57 | return false;
58 | }
59 | synchronized (mLock) {
60 | mIconCache.put(key, drawable);
61 | }
62 | return true;
63 | }
64 |
65 | public Drawable getIcon(String key) {
66 | if (key == null) {
67 | return null;
68 | }
69 | Drawable drawable = mIconCache.get(key);
70 | if (drawable == null) {
71 | synchronized (mLock) {
72 | mIconCache.remove(key);
73 | }
74 | }
75 | return drawable;
76 | }
77 |
78 | public synchronized void clear() {
79 | synchronized (mLock) {
80 | mIconCache.clear();
81 | mAppInfoCache.clear();
82 | }
83 | }
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/callback/IPackageMonitor.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.callback;
2 |
3 | /**
4 | * Project: appmanager
5 | * User: mcxiaoke
6 | * Date: 13-6-13
7 | * Time: 下午3:22
8 | */
9 | public interface IPackageMonitor {
10 |
11 | public void onPackageAdded(String packageName, int uid);
12 |
13 | public void onPackageRemoved(String packageName, int uid);
14 |
15 | public void onPackageModified(String packageName);
16 |
17 | public void onPackageChanged(String packageName, int uid, String[] components);
18 |
19 | public void onUidRemoved(int uid);
20 | }
21 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/compress/Compress.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.compress;
2 |
3 | import android.util.Log;
4 |
5 | import java.io.BufferedInputStream;
6 | import java.io.BufferedOutputStream;
7 | import java.io.FileInputStream;
8 | import java.io.FileOutputStream;
9 | import java.util.zip.ZipEntry;
10 | import java.util.zip.ZipOutputStream;
11 |
12 |
13 | public class Compress {
14 |
15 | private static final int BUFFER = 4096;
16 |
17 | private String[] files;
18 | private String zipFile;
19 |
20 | public Compress(String[] files, String zipFile) {
21 | this.files = files;
22 | this.zipFile = zipFile;
23 | }
24 |
25 | public void zip(String location) {
26 | try {
27 | BufferedInputStream origin = null;
28 | FileOutputStream dest = new FileOutputStream(zipFile);
29 |
30 | ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
31 |
32 | byte data[] = new byte[BUFFER];
33 |
34 | for (int i = 0; i < files.length; i++) {
35 | Log.v("Compress", "Adding: " + files[i]);
36 | FileInputStream fi = new FileInputStream(files[i]);
37 | origin = new BufferedInputStream(fi, BUFFER);
38 | ZipEntry entry = new ZipEntry(files[i].substring(files[i].lastIndexOf(location) + 1));
39 | out.putNextEntry(entry);
40 | int count;
41 | while ((count = origin.read(data, 0, BUFFER)) != -1) {
42 | out.write(data, 0, count);
43 | }
44 | origin.close();
45 | }
46 |
47 | out.close();
48 | } catch (Exception e) {
49 | e.printStackTrace();
50 | }
51 |
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/compress/Decompress.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.compress;
2 |
3 | import android.util.Log;
4 |
5 | import java.io.BufferedInputStream;
6 | import java.io.BufferedOutputStream;
7 | import java.io.File;
8 | import java.io.FileOutputStream;
9 | import java.io.IOException;
10 | import java.util.Enumeration;
11 | import java.util.zip.ZipEntry;
12 | import java.util.zip.ZipFile;
13 |
14 | public class Decompress {
15 | private String zipFile;
16 | private String location;
17 |
18 | public Decompress(String zipFile, String location) {
19 | this.zipFile = zipFile;
20 | this.location = location;
21 | }
22 |
23 | public void unzip() {
24 | try {
25 |
26 | File fSourceZip = new File(zipFile);
27 | String zipPath = zipFile.substring(0, zipFile.length() - 4);
28 | //File temp = new File(zipPath);
29 | //temp.mkdir();
30 | Log.v("Decompress", zipPath + " created");
31 |
32 | /*
33 | * Extract entries while creating required sub-directories
34 | */
35 | ZipFile zipFile = new ZipFile(fSourceZip);
36 | Enumeration> e = zipFile.entries();
37 |
38 | while (e.hasMoreElements()) {
39 | ZipEntry entry = (ZipEntry) e.nextElement();
40 | File destinationFilePath = new File(location, entry.getName());
41 |
42 | // create directories if required.
43 | destinationFilePath.getParentFile().mkdirs();
44 |
45 | // if the entry is directory, leave it. Otherwise extract it.
46 | if (entry.isDirectory()) {
47 | continue;
48 | } else {
49 | Log.v("Decompress", "Unzipping " + entry.getName());
50 |
51 | /*
52 | * Get the InputStream for current entry of the zip file
53 | * using
54 | *
55 | * InputStream getInputStream(Entry entry) method.
56 | */
57 | BufferedInputStream bis = new BufferedInputStream(
58 | zipFile.getInputStream(entry));
59 |
60 | int b;
61 | byte buffer[] = new byte[1024];
62 |
63 | /*
64 | * read the current entry from the zip file, extract it and
65 | * write the extracted file.
66 | */
67 | FileOutputStream fos = new FileOutputStream(destinationFilePath);
68 | BufferedOutputStream bos = new BufferedOutputStream(fos,
69 | 1024);
70 |
71 | while ((b = bis.read(buffer, 0, 1024)) != -1) {
72 | bos.write(buffer, 0, b);
73 | }
74 |
75 | // flush the output stream and close it.
76 | bos.flush();
77 | bos.close();
78 |
79 | // close the input stream.
80 | bis.close();
81 | }
82 | }
83 | } catch (IOException ioe) {
84 | Log.e("Decompress", "unzip", ioe);
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/compress/ZipFolder.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.compress;
2 |
3 | import java.io.File;
4 | import java.io.FileInputStream;
5 | import java.util.zip.ZipEntry;
6 | import java.util.zip.ZipOutputStream;
7 |
8 | public class ZipFolder {
9 | // here is the code for the method
10 | public void zipDir(String dir2zip, ZipOutputStream zos) {
11 | try {
12 | // create a new File object based on the directory we
13 | // have to zip File
14 | File zipDir = new File(dir2zip);
15 | // getIcon a listing of the directory content
16 | String[] dirList = zipDir.list();
17 | byte[] readBuffer = new byte[2156];
18 | int bytesIn = 0;
19 | // loop through dirList, and zip the files
20 | for (int i = 0; i < dirList.length; i++) {
21 | File f = new File(zipDir, dirList[i]);
22 | if (f.isDirectory()) {
23 | // if the File object is a directory, call this
24 | // function again to add its content recursively
25 | String filePath = f.getPath();
26 | zipDir(filePath, zos);
27 | // loop again
28 | continue;
29 | }
30 | // if we reached here, the File object f was not
31 | // a directory
32 | // create a FileInputStream on top of f
33 | FileInputStream fis = new FileInputStream(f);
34 | // create a new zip entry
35 | ZipEntry anEntry = new ZipEntry(f.getPath());
36 | // place the zip entry in the ZipOutputStream object
37 | zos.putNextEntry(anEntry);
38 | // now write the content of the file to the ZipOutputStream
39 | while ((bytesIn = fis.read(readBuffer)) != -1) {
40 | zos.write(readBuffer, 0, bytesIn);
41 | }
42 | // close the Stream
43 | fis.close();
44 | }
45 | } catch (Exception e) {
46 | // handle exception
47 | }
48 |
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/exception/NoPermissionException.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.exception;
2 |
3 | /**
4 | * Project: apptoolkit
5 | * Package: com.mcxiaoke.apptoolkit.exception
6 | * User: mcxiaoke
7 | * Date: 13-6-22
8 | * Time: 下午7:43
9 | */
10 | public class NoPermissionException extends Exception {
11 |
12 | public NoPermissionException() {
13 | }
14 |
15 | public NoPermissionException(String detailMessage) {
16 | super(detailMessage);
17 | }
18 |
19 | public NoPermissionException(String detailMessage, Throwable throwable) {
20 | super(detailMessage, throwable);
21 | }
22 |
23 | public NoPermissionException(Throwable throwable) {
24 | super(throwable);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/fragment/BaseDialogFragment.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.fragment;
2 |
3 | import com.actionbarsherlock.app.SherlockDialogFragment;
4 |
5 | /**
6 | * Project: filemanager
7 | * Package: com.mcxiaoke.appmanager.fragment
8 | * User: mcxiaoke
9 | * Date: 13-6-12
10 | * Time: 下午10:57
11 | */
12 | public class BaseDialogFragment extends SherlockDialogFragment {
13 | }
14 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/fragment/BaseFragment.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.fragment;
2 |
3 | import android.app.Activity;
4 | import com.actionbarsherlock.app.SherlockFragment;
5 | import com.mcxiaoke.apptoolkit.app.UIBaseSupport;
6 |
7 | /**
8 | * Project: filemanager
9 | * Package: com.com.mcxiaoke.appmanager.fragment
10 | * User: com.mcxiaoke
11 | * Date: 13-6-11
12 | * Time: 上午10:51
13 | */
14 | public abstract class BaseFragment extends SherlockFragment implements Refreshable {
15 | private UIBaseSupport mBaseSupport;
16 |
17 | @Override
18 | public void onAttach(Activity activity) {
19 | super.onAttach(activity);
20 | mBaseSupport = (UIBaseSupport) activity;
21 | }
22 |
23 | protected UIBaseSupport getBaseSupport() {
24 | return mBaseSupport;
25 | }
26 |
27 | @Override
28 | public void hideProgress() {
29 | mBaseSupport.hideProgress();
30 | }
31 |
32 | @Override
33 | public void showProgress() {
34 | mBaseSupport.showProgress();
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/fragment/Refreshable.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.fragment;
2 |
3 | /**
4 | * Project: filemanager
5 | * Package: com.com.mcxiaoke.appmanager.fragment
6 | * User: com.mcxiaoke
7 | * Date: 13-6-11
8 | * Time: 上午10:53
9 | */
10 | public interface Refreshable {
11 |
12 | public void refresh();
13 |
14 | public void showProgress();
15 |
16 | public void hideProgress();
17 | }
18 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/menu/MenuCallback.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package com.mcxiaoke.apptoolkit.menu;
5 |
6 | /**
7 | * @author mcxiaoke
8 | *
9 | */
10 | public interface MenuCallback {
11 |
12 | public void onMenuItemSelected(int position, MenuItemResource menuItem);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/menu/MenuItemResource.java:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | */
4 | package com.mcxiaoke.apptoolkit.menu;
5 |
6 | /**
7 | * @author mcxiaoke
8 | *
9 | */
10 | public class MenuItemResource {
11 | public final int id;
12 | public final int type;
13 | public final String text;
14 | public final int iconId;
15 | public boolean selected;
16 | public boolean highlight;// 如果是activity跳转就不需要高亮,本界面的fragment切换需要高亮
17 |
18 | public MenuItemResource(Builder builder) {
19 | this.id = builder.id;
20 | this.type = builder.type;
21 | this.text = builder.text;
22 | this.iconId = builder.iconId;
23 | this.selected = builder.selected;
24 | this.highlight = builder.highlight;
25 | }
26 |
27 | @Override
28 | public String toString() {
29 | StringBuilder builder2 = new StringBuilder();
30 | builder2.append("MenuItemResource [id=");
31 | builder2.append(id);
32 | builder2.append(", type=");
33 | builder2.append(type);
34 | builder2.append(", text=");
35 | builder2.append(text);
36 | builder2.append(", iconId=");
37 | builder2.append(iconId);
38 | builder2.append(", selected=");
39 | builder2.append(selected);
40 | builder2.append(", highlight=");
41 | builder2.append(highlight);
42 | builder2.append("]");
43 | return builder2.toString();
44 | }
45 |
46 | public static Builder newBuilder() {
47 | return new Builder();
48 | }
49 |
50 | public static class Builder {
51 | private int id;
52 | private int type;
53 | private String text;
54 | private int iconId;
55 | private boolean selected;
56 | private boolean highlight;
57 |
58 | public Builder() {
59 | }
60 |
61 | public MenuItemResource build() {
62 | return new MenuItemResource(this);
63 | }
64 |
65 | public Builder id(int id) {
66 | this.id = id;
67 | return this;
68 | }
69 |
70 | public Builder type(int type) {
71 | this.type = type;
72 | return this;
73 | }
74 |
75 | public Builder text(String text) {
76 | this.text = text;
77 | return this;
78 | }
79 |
80 | public Builder iconId(int iconId) {
81 | this.iconId = iconId;
82 | return this;
83 | }
84 |
85 | public Builder selected(boolean selected) {
86 | this.selected = selected;
87 | return this;
88 | }
89 |
90 | public Builder highlight(boolean highlight) {
91 | this.highlight = highlight;
92 | return this;
93 | }
94 | }
95 |
96 | }
97 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/menu/PopupMenuItem.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.menu;
2 |
3 | /**
4 | * Project: filemanager
5 | * Package: com.mcxiaoke.appmanager.model
6 | * User: mcxiaoke
7 | * Date: 13-6-12
8 | * Time: 下午11:01
9 | */
10 | public class PopupMenuItem {
11 |
12 | public int id;
13 | public int type;
14 | public String name;
15 | public boolean enabled;
16 | public boolean root;
17 | public boolean advanced;
18 |
19 | public PopupMenuItem(int id, String name) {
20 | this.id = id;
21 | this.name = name;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/model/BaseModel.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.model;
2 |
3 | import android.os.Parcelable;
4 | import com.mcxiaoke.apptoolkit.AppContext;
5 |
6 | /**
7 | * Project: filemanager
8 | * Package: com.com.mcxiaoke.appmanager.model
9 | * User: com.mcxiaoke
10 | * Date: 13-6-10
11 | * Time: 下午9:21
12 | */
13 | public abstract class BaseModel implements Parcelable {
14 |
15 | public long getId() {
16 | return 0;
17 | }
18 |
19 | @Override
20 | public int describeContents() {
21 | return 0;
22 | }
23 |
24 | public String jsonString() {
25 | return AppContext.getApp().getGson().toJson(this);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/preference/MultipleChoicePreference.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.preference;
2 |
3 | import android.app.AlertDialog.Builder;
4 | import android.content.Context;
5 | import android.content.DialogInterface;
6 | import android.preference.ListPreference;
7 | import android.util.AttributeSet;
8 |
9 | import java.util.Arrays;
10 | import java.util.HashSet;
11 | import java.util.Set;
12 |
13 | /**
14 | * Similar to a ListPreference, but uses a multi-choice list and saves the value as a comma-separated string.
15 | *
16 | * @author nlawson
17 | */
18 | public class MultipleChoicePreference extends ListPreference {
19 |
20 | public static final String DELIMITER = ",";
21 | boolean[] checkedDialogEntryIndexes;
22 |
23 | public MultipleChoicePreference(Context context, AttributeSet attrs) {
24 | super(context, attrs);
25 | }
26 |
27 | public MultipleChoicePreference(Context context) {
28 | super(context);
29 | }
30 |
31 | @Override
32 | protected void onPrepareDialogBuilder(Builder builder) {
33 |
34 | // convert comma-separated list to boolean array
35 |
36 | String value = getValue();
37 | Set commaSeparated = new HashSet(Arrays.asList(value.split(DELIMITER)));
38 |
39 | CharSequence[] entryValues = getEntryValues();
40 | final boolean[] checked = new boolean[entryValues.length];
41 | for (int i = 0; i < entryValues.length; i++) {
42 | checked[i] = commaSeparated.contains(entryValues[i]);
43 | }
44 |
45 | builder.setMultiChoiceItems(getEntries(), checked, new DialogInterface.OnMultiChoiceClickListener() {
46 |
47 | @Override
48 | public void onClick(DialogInterface dialog, int which, boolean isChecked) {
49 | checked[which] = isChecked;
50 | }
51 | });
52 | builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
53 |
54 | @Override
55 | public void onClick(DialogInterface dialog, int which) {
56 |
57 | checkedDialogEntryIndexes = checked;
58 |
59 | /*
60 | * Clicking on an item simulates the positive button
61 | * click, and dismisses the dialog.
62 | */
63 | MultipleChoicePreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE);
64 | dialog.dismiss();
65 |
66 | }
67 | });
68 | }
69 |
70 | @Override
71 | protected void onDialogClosed(boolean positiveResult) {
72 |
73 | if (positiveResult && checkedDialogEntryIndexes != null) {
74 | String value = createValueAsString(checkedDialogEntryIndexes);
75 | if (callChangeListener(value)) {
76 | setValue(value);
77 | }
78 | }
79 | }
80 |
81 | private String createValueAsString(boolean[] checked) {
82 | StringBuilder sb = new StringBuilder();
83 |
84 | for (int i = 0; i < checked.length; i++) {
85 | if (checked[i]) {
86 | sb.append(getEntryValues()[i]).append(DELIMITER);
87 | }
88 | }
89 | return sb.length() == 0 ? "" : sb.substring(0, sb.length() - 1);
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/service/BackgroundService.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.service;
2 |
3 | import android.content.Intent;
4 |
5 | /**
6 | * Project: apptoolkit
7 | * Package: com.mcxiaoke.apptoolkit.service
8 | * User: mcxiaoke
9 | * Date: 13-6-15
10 | * Time: 下午5:57
11 | */
12 | public final class BackgroundService extends BaseService {
13 | public static final int CMD_BACKUP_APPS = 1001; // 备份应用
14 | public static final int CMD_BACKUP_DATA = 1002; // 备份数据 ROOT
15 |
16 | public static final int CMD_RESTORE_APPS = 1011; // 恢复应用 ROOT
17 | public static final int CMD_RESTORE_DATA = 1012; // 恢复数据 ROOT
18 |
19 | public static final int CMD_INSTALL_APPS = 1021; // 批量安装 ROOT
20 | public static final int CMD_UNINSTALL_APPS = 1022;// 批量卸载 ROOT
21 |
22 | public static final int CMD_CLEAR_APPCACHE = 1031; // 清除缓存 ROOT
23 | public static final int CMD_CLEAR_APPDATA = 1032; // 清除数据 ROOT
24 |
25 | public static final int CMD_COPY_FILES = 1041; // 复制文件 ROOT*
26 | public static final int CMD_MOVE_FILES = 1042; // 移动文件 ROOT*
27 | public static final int CMD_DELETE_FILES = 1043; // 删除文件 ROOT*
28 |
29 |
30 | @Override
31 | public void onCreate() {
32 | super.onCreate();
33 | }
34 |
35 | @Override
36 | protected void onHandleIntent(long taskId, Intent intent) {
37 | }
38 |
39 | @Override
40 | protected boolean isDebug() {
41 | return false;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/service/ExtendedRunnable.java:
--------------------------------------------------------------------------------
1 | package com.mcxiaoke.apptoolkit.service;
2 |
3 | /**
4 | * Project: apptoolkit
5 | * Package: com.mcxiaoke.apptoolkit.task
6 | * User: mcxiaoke
7 | * Date: 13-6-15
8 | * Time: 下午6:59
9 | */
10 | public abstract class ExtendedRunnable implements Runnable {
11 | private String mName;
12 | private boolean mCancelled;
13 |
14 | public ExtendedRunnable(String name) {
15 | mName = name;
16 | mCancelled = false;
17 | }
18 |
19 | public void cancel() {
20 | mCancelled = true;
21 | }
22 |
23 | public boolean isCancelled() {
24 | return mCancelled;
25 | }
26 |
27 | public String getName() {
28 | return mName;
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/src/com/mcxiaoke/apptoolkit/task/AsyncTaskBase.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2005 - 2013, all rights reserved
3 | */
4 |
5 | package com.mcxiaoke.apptoolkit.task;
6 |
7 | import android.os.AsyncTask;
8 | import android.os.Build;
9 | import android.util.Pair;
10 |
11 | public abstract class AsyncTaskBase
12 | extends AsyncTask> {
13 |
14 | private AsyncTaskCallback