├── .classpath
├── .project
├── AndroidManifest.xml
├── FlashGordon.apk
├── README.md
├── assets
├── busybox
└── zip
├── bin
├── AndroidManifest.xml
├── R.txt
├── RecoveryEmulator.apk
├── classes.dex
├── classes
│ └── com
│ │ ├── androguide
│ │ └── recovery
│ │ │ └── emulator
│ │ │ ├── BuildConfig.class
│ │ │ ├── CMDProcessor$CommandResult.class
│ │ │ ├── CMDProcessor$SH.class
│ │ │ ├── CMDProcessor.class
│ │ │ ├── Main$1.class
│ │ │ ├── Main$2.class
│ │ │ ├── Main$3.class
│ │ │ ├── Main$4.class
│ │ │ ├── Main.class
│ │ │ ├── R$attr.class
│ │ │ ├── R$color.class
│ │ │ ├── R$dimen.class
│ │ │ ├── R$drawable.class
│ │ │ ├── R$id.class
│ │ │ ├── R$layout.class
│ │ │ ├── R$menu.class
│ │ │ ├── R$string.class
│ │ │ ├── R$style.class
│ │ │ ├── R$xml.class
│ │ │ ├── R.class
│ │ │ ├── RebootActivity.class
│ │ │ └── helpers
│ │ │ ├── EdifyParser.class
│ │ │ ├── Help.class
│ │ │ └── MyPlayCard.class
│ │ ├── fima
│ │ └── cardsui
│ │ │ ├── R$color.class
│ │ │ ├── R$dimen.class
│ │ │ ├── R$drawable.class
│ │ │ ├── R$id.class
│ │ │ ├── R$layout.class
│ │ │ ├── R$style.class
│ │ │ └── R.class
│ │ └── ipaulpro
│ │ └── afilechooser
│ │ ├── R$dimen.class
│ │ ├── R$drawable.class
│ │ ├── R$id.class
│ │ ├── R$layout.class
│ │ ├── R$string.class
│ │ ├── R$style.class
│ │ ├── R$xml.class
│ │ └── R.class
├── dexedLibs
│ ├── afilechooser-28c456a6f01ff1bc8d1b3d403aac97d5.jar
│ ├── android-support-v4-df29491f95dcab6ece69ebb8486dfd08.jar
│ ├── android-support-v4-ea53522f6dd548c1c4576e52530c649f.jar
│ ├── cardsuilib-5369cb10471680feeb0f92153e57d0b8.jar
│ └── nineoldandroids-2.4.0-045865bf7ab890c433441facfa7f8fe3.jar
├── jarlist.cache
├── res
│ ├── drawable-hdpi
│ │ ├── ic_action_flash.png
│ │ ├── ic_action_select.png
│ │ └── ic_launcher.png
│ ├── drawable-mdpi
│ │ ├── ic_action_flash.png
│ │ ├── ic_action_select.png
│ │ └── ic_launcher.png
│ ├── drawable-xhdpi
│ │ ├── ic_action_flash.png
│ │ ├── ic_action_select.png
│ │ └── ic_launcher.png
│ └── drawable-xxhdpi
│ │ └── ic_launcher.png
└── resources.ap_
├── gen
└── com
│ ├── androguide
│ └── recovery
│ │ └── emulator
│ │ ├── BuildConfig.java
│ │ └── R.java
│ ├── fima
│ └── cardsui
│ │ └── R.java
│ └── ipaulpro
│ └── afilechooser
│ └── R.java
├── ic_launcher-web.png
├── proguard-project.txt
├── project.properties
├── res
├── drawable-hdpi
│ ├── ic_action_flash.png
│ ├── ic_action_select.png
│ └── ic_launcher.png
├── drawable-mdpi
│ ├── ic_action_flash.png
│ ├── ic_action_select.png
│ └── ic_launcher.png
├── drawable-xhdpi
│ ├── ic_action_flash.png
│ ├── ic_action_select.png
│ └── ic_launcher.png
├── drawable-xxhdpi
│ └── ic_launcher.png
├── drawable
│ └── selectable_background_cardbank.xml
├── layout
│ ├── card_play.xml
│ └── main.xml
├── menu
│ └── main.xml
├── values-sw600dp
│ └── dimens.xml
├── values-sw720dp-land
│ └── dimens.xml
├── values-v11
│ └── styles.xml
├── values-v14
│ └── styles.xml
└── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── styles.xml
└── src
└── com
└── androguide
└── recovery
└── emulator
├── CMDProcessor.java
├── Main.java
├── RebootActivity.java
└── helpers
├── EdifyParser.java
├── Help.java
└── MyPlayCard.java
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | RecoveryEmulator
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
18 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/FlashGordon.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/FlashGordon.apk
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | FlashGordon
2 | ===========
3 |
4 | Edify to Bash parser and translator, in the form of an Android app allowing to flash zips without using the recovery
5 |
6 | ## What is Flash Gordon ?
7 | In laymen's words, Flash Gordon is an apk which allows you to flash any flashable zip (except for Roms) without having a recovery installed.
8 | You just point it to the zip you want to flash, (be it a kernel, a mod, gapps...) and it will interpret the updater-script of this package and install its content just like a recovery would.
9 |
10 | ## How does it work ?
11 | Here is what happens step by step :
12 |
13 | * You tap the "select a zip" button, select the built-in file explorer to select the zip you want to flash
14 | * Flash Gordon will first extract this zip, depending on its size it can take a little time
15 | * When you press the "Flash Now" button, Flash Gordon will locate the updater-script and start translating it into shell code, line by line
16 | * It will output the resulting translated bash script on your sdcard and execute it, thus installing the zip's content
17 | * The app creates a notification, just tap on it to reboot
18 |
19 | In order to achieve those last 2 steps, I'm writing a full Edify to Bash parser and translator.
20 |
21 | Here is the list of all the Edify commands this parser can currently process and what their respective bash translation is (under each edify command), using examples:
22 | (more will be added over time, this is really just a draft)
23 |
24 | *By no means am I a bash expert, so if you have suggestions for better bash equivalents of any edify commands please post them*
25 |
26 | package_extract_file("path/to/source/file.txt", "/path/to/destination/file.txt");
27 |
28 | busybox cp -fp /path/to/source/file.txt /path/to/destination/file.txt
29 |
30 | -
31 |
32 | package_extract_dir("/source/folder", "/destination/folder");
33 |
34 | busybox cp -rfp /source/folder/* /destination/folder
35 |
36 | -
37 |
38 | set_perm(0, 2000, 0755, "/file/or/folder");
39 |
40 | chown 0:2000 /file/or/folder
41 | chmod 0755 /file/or/folder
42 |
43 | -
44 |
45 | set_perm_recursive(0, 2000, 0644, 0755, "/path/to/set/permissions/recursively);
46 |
47 | chown 0:2000 /path/to/set/permissions/recursively
48 | chown 0:2000 /path/to/set/permissions
49 | chown 0:2000 /path/to/set
50 | chown 0:2000 /path/to
51 | chown 0:2000 /path
52 | chmod 0644 /path/to/set/permissions/recursively
53 | chmod 0755 /path/to/set/permissions
54 | chmod 0755 /path/to/set
55 | chmod 0755 /path/to
56 | chmod 0755 /path
57 |
58 | -
59 |
60 | delete("file/to/delete");
61 |
62 | busybox rm -f /file/to/delete
63 |
64 | -
65 |
66 | run_program("/script/to/run.sh");
67 |
68 | sh /script/to/run.sh
69 |
70 | -
71 |
72 | mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
73 |
74 | busybox mount -o rw,remount -t auto /system (will soon change to -t mmcblk0p9 or whichever mount point is in the updater-script)
75 |
76 | -
77 |
78 | unmount("/system");
79 |
80 | busybox mount -o remount,ro /system
81 |
82 | -
83 |
84 | symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
85 | "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
86 | "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
87 | "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
88 | "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
89 | "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
90 | "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
91 | "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
92 | "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
93 | "/as/many/lines/as/you/want");
94 |
95 | ln -s busybox /system/xbin/[ /system/xbin/[[
96 | /system/xbin/adjtimex /system/xbin/arp /system/xbin/ash
97 | /system/xbin/awk /system/xbin/base64 /system/xbin/basename
98 | /system/xbin/bbconfig /system/xbin/blkid /system/xbin/blockdev
99 | /system/xbin/brctl /system/xbin/bunzip2 /system/xbin/bzcat
100 | /system/xbin/bzip2 /system/xbin/cal /system/xbin/cat
101 | /system/xbin/catv /system/xbin/chattr /system/xbin/chgrp
102 | /system/xbin/chmod /system/xbin/chown /system/xbin/chroot
103 | /system/xbin/clear /system/xbin/cmp /system/xbin/comm
104 | /as/many/lines/as/you/want
105 |
106 | -
107 |
108 | write_raw_image("/tmp/boot.img", "mmcblk0p5");
109 | dd if=/tmp/boot.img of=/dev/block/mmcblk0p5
110 |
111 |
112 | ## Dependencies
113 | This app depends on the following open source libraries:
114 |
115 | * [My fork of of the CardsUI library by Nadav Fima](https://github.com/Androguide/cardsui-for-android)
116 | * [aFileChooser by Paul Burke](https://github.com/iPaulPro/aFileChooser)
117 |
118 |
119 | ## Contribute
120 | You can discuss about this project on xda-developers.com at the following threads :
121 |
122 | * [General Thread](http://forum.xda-developers.com/showthread.php?t=2250555)
123 | * [Development Thread](http://forum.xda-developers.com/showthread.php?t=2250632)
124 |
125 | If you want to contribute, please make a pull request or post your suggestions on the xda thread.
126 |
127 |
128 | ## Screenshots
129 |   
130 |   
131 |  
132 |
--------------------------------------------------------------------------------
/assets/busybox:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/assets/busybox
--------------------------------------------------------------------------------
/assets/zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/assets/zip
--------------------------------------------------------------------------------
/bin/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
18 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/bin/R.txt:
--------------------------------------------------------------------------------
1 | int color card_border 0x7f050007
2 | int color card_grid_text 0x7f050005
3 | int color card_light_text 0x7f050004
4 | int color card_separator 0x7f050006
5 | int color card_text 0x7f050002
6 | int color card_title_text 0x7f050003
7 | int color stroke 0x7f050000
8 | int color text_light 0x7f050001
9 | int dimen action_bar_switch_padding 0x7f060044
10 | int dimen action_confirm_button_margin 0x7f060064
11 | int dimen activity_horizontal_margin 0x7f0600ae
12 | int dimen activity_vertical_margin 0x7f0600af
13 | int dimen app_icon_area_height 0x7f06007f
14 | int dimen app_icon_area_width 0x7f06007e
15 | int dimen at_place_card_content_height 0x7f060027
16 | int dimen auto_scroll_padding 0x7f06002b
17 | int dimen card_action_button_height 0x7f0600a0
18 | int dimen card_action_small_text 0x7f060097
19 | int dimen card_action_text 0x7f060098
20 | int dimen card_grid_font_size 0x7f060091
21 | int dimen card_horizontal_map_height 0x7f06009e
22 | int dimen card_large_text 0x7f060094
23 | int dimen card_medium_text 0x7f060095
24 | int dimen card_minimum_padding 0x7f060066
25 | int dimen card_padding 0x7f060099
26 | int dimen card_small_padding 0x7f0600a1
27 | int dimen card_small_text 0x7f060096
28 | int dimen card_spacer_margin 0x7f0600a2
29 | int dimen card_temperature_size 0x7f060092
30 | int dimen card_xl_text 0x7f060093
31 | int dimen cards_max_column_width 0x7f060026
32 | int dimen cards_padding_inbetween 0x7f060024
33 | int dimen cards_padding_inbetween_adjusted 0x7f060025
34 | int dimen contact_avatar_height 0x7f060080
35 | int dimen contact_avatar_width 0x7f060081
36 | int dimen contact_select_fragment_padding 0x7f060082
37 | int dimen context_header_padding 0x7f06004d
38 | int dimen control_size 0x7f06002f
39 | int dimen corpus_bar_left_padding 0x7f06001e
40 | int dimen corpus_bar_more_padding 0x7f06001f
41 | int dimen corpus_bar_vertical_padding 0x7f06001d
42 | int dimen corpus_selector_element_margin 0x7f060022
43 | int dimen corpus_selector_horizontal_margin 0x7f060020
44 | int dimen corpus_selector_text_size 0x7f060021
45 | int dimen correction_popup_width_1buttons 0x7f060051
46 | int dimen correction_popup_width_2buttons 0x7f060052
47 | int dimen correction_popup_width_3buttons 0x7f060053
48 | int dimen dialog_corner_radius 0x7f060056
49 | int dimen dialog_height 0x7f060058
50 | int dimen dialog_pos_left 0x7f06005a
51 | int dimen dialog_pos_top 0x7f06005b
52 | int dimen dialog_text_size 0x7f060060
53 | int dimen dialog_width 0x7f060057
54 | int dimen divider_height 0x7f06005e
55 | int dimen extra_height_to_account_for_system_space_in_landscape 0x7f060015
56 | int dimen first_run_context_image_height 0x7f060023
57 | int dimen first_run_padding 0x7f06009a
58 | int dimen footer_height 0x7f06001b
59 | int dimen gmail_card_button_height 0x7f06001c
60 | int dimen google_header_margin_bottom 0x7f060016
61 | int dimen google_logo_margin_left 0x7f060033
62 | int dimen google_logo_margin_right 0x7f060034
63 | int dimen half_unit 0x7f060070
64 | int dimen hands_free_padding 0x7f060086
65 | int dimen hands_free_small_padding 0x7f060085
66 | int dimen header_footer_size 0x7f06005f
67 | int dimen high_confidence_answer_card_image_height 0x7f06006b
68 | int dimen high_confidence_answer_card_image_width 0x7f06006c
69 | int dimen high_confidence_answer_card_min_spacing 0x7f06006a
70 | int dimen hint_bubble_offset 0x7f060055
71 | int dimen histogram_bar_padding 0x7f0600aa
72 | int dimen histogram_bar_size 0x7f0600a9
73 | int dimen histogram_width 0x7f0600ab
74 | int dimen horizontal_static_map_height 0x7f06009f
75 | int dimen image_result_carousel_height 0x7f060043
76 | int dimen image_result_height 0x7f060042
77 | int dimen image_view_padding 0x7f060037
78 | int dimen ime_button_text_size 0x7f06008c
79 | int dimen ime_land_height 0x7f060088
80 | int dimen ime_mic_size 0x7f06008d
81 | int dimen ime_padding_bottom 0x7f06008e
82 | int dimen ime_padding_top 0x7f06008f
83 | int dimen ime_port_height 0x7f060087
84 | int dimen ime_spinner_text 0x7f060089
85 | int dimen ime_state_text_size 0x7f06008b
86 | int dimen ime_title_text_size 0x7f06008a
87 | int dimen indicator_size 0x7f06005c
88 | int dimen indicator_stroke 0x7f06005d
89 | int dimen intent_api_mic_area_size 0x7f060090
90 | int dimen large_preview_width 0x7f060028
91 | int dimen list_item_padding 0x7f0600ad
92 | int dimen list_padding 0x7f0600ac
93 | int dimen load_more_button_margin 0x7f0600a3
94 | int dimen local_result_vertical_divider_height 0x7f06006d
95 | int dimen local_results_item_margin 0x7f06006e
96 | int dimen local_results_map_height 0x7f06006f
97 | int dimen main_fragment_top_padding 0x7f060013
98 | int dimen map_preview_image_height 0x7f060069
99 | int dimen map_preview_image_width 0x7f060068
100 | int dimen max_height_for_fullscreen 0x7f060059
101 | int dimen max_preview_area_width 0x7f06002d
102 | int dimen max_waveform_height 0x7f060061
103 | int dimen mic_height 0x7f060063
104 | int dimen min_height_background_image 0x7f06004c
105 | int dimen min_preview_area_width 0x7f06002c
106 | int dimen negative_unit 0x7f060075
107 | int dimen photo_crop_stroke_width 0x7f060002
108 | int dimen photo_crop_width 0x7f060001
109 | int dimen photo_preview_size 0x7f060003
110 | int dimen playpausebutton_size 0x7f060031
111 | int dimen preview_image_height 0x7f06002a
112 | int dimen preview_image_size 0x7f060067
113 | int dimen preview_image_width 0x7f060029
114 | int dimen recording_popup_size 0x7f060054
115 | int dimen retry_button_size 0x7f060004
116 | int dimen sample_card_width 0x7f0600a4
117 | int dimen searchResultListItemHeight 0x7f060050
118 | int dimen search_bar_padding 0x7f060038
119 | int dimen search_bar_text_size 0x7f060035
120 | int dimen search_box_width 0x7f060036
121 | int dimen search_device_footer_bottom_margin 0x7f060008
122 | int dimen search_plate_expand_threshold 0x7f06007a
123 | int dimen search_plate_height 0x7f060032
124 | int dimen search_plate_icon_height 0x7f06007d
125 | int dimen search_plate_icon_width 0x7f06007c
126 | int dimen search_plate_minimum_padding 0x7f06007b
127 | int dimen small_unit 0x7f060076
128 | int dimen small_units_2 0x7f060077
129 | int dimen small_units_3 0x7f060078
130 | int dimen small_units_4 0x7f060079
131 | int dimen speak_now_speech_height 0x7f06004b
132 | int dimen sports_card_image_height 0x7f060084
133 | int dimen sports_card_image_width 0x7f060083
134 | int dimen sticky_height 0x7f060000
135 | int dimen stock_chart_height 0x7f0600a7
136 | int dimen stock_chart_width 0x7f0600a8
137 | int dimen stock_price_padding 0x7f0600a6
138 | int dimen suggest_summons_area_padding 0x7f060039
139 | int dimen suggest_web_height 0x7f06003a
140 | int dimen suggest_web_padding 0x7f06003b
141 | int dimen suggestion_footer_view_height 0x7f060007
142 | int dimen suggestion_icon1_left_padding 0x7f06000f
143 | int dimen suggestion_icon_size 0x7f06000b
144 | int dimen suggestion_large_image_max_height 0x7f06000d
145 | int dimen suggestion_large_image_max_width 0x7f06000c
146 | int dimen suggestion_text2_height 0x7f06000e
147 | int dimen suggestion_text_padding 0x7f060010
148 | int dimen suggestion_view_height 0x7f060009
149 | int dimen suggestion_view_height_large 0x7f06000a
150 | int dimen suggestions_divider_margin_left_right 0x7f060012
151 | int dimen suggestions_padding 0x7f060011
152 | int dimen summons_height 0x7f06003c
153 | int dimen summons_inter_source_padding 0x7f06003f
154 | int dimen summons_padding 0x7f06003d
155 | int dimen summons_width 0x7f06003e
156 | int dimen suppressed_web_results_min_visible_height 0x7f060040
157 | int dimen table_row_vertical_padding 0x7f0600a5
158 | int dimen text_block_bottom_padding 0x7f06009c
159 | int dimen text_block_side_padding 0x7f06009d
160 | int dimen text_block_top_padding 0x7f06009b
161 | int dimen tidbit_padding 0x7f06002e
162 | int dimen unit 0x7f060071
163 | int dimen unit_small_caps 0x7f060065
164 | int dimen units_2 0x7f060072
165 | int dimen units_3 0x7f060073
166 | int dimen units_4 0x7f060074
167 | int dimen voice_popup_margin 0x7f060062
168 | int dimen weather_current_icon_height 0x7f06004f
169 | int dimen weather_forecast_icon_height 0x7f06004e
170 | int dimen web_snapshots_default_visible_width 0x7f060046
171 | int dimen web_snapshots_dismiss_from_offset 0x7f06004a
172 | int dimen web_snapshots_just_added_extra_height 0x7f060048
173 | int dimen web_snapshots_launch_browser_from_offset 0x7f060049
174 | int dimen web_snapshots_text_size 0x7f060047
175 | int dimen web_snapshots_width 0x7f060045
176 | int dimen web_suggestion_icon_size 0x7f060006
177 | int dimen web_suggestion_view_height 0x7f060005
178 | int dimen websearch_card_top_margin 0x7f060014
179 | int dimen websearch_collapse_card_padding_offscreen_leeway 0x7f060041
180 | int dimen websearch_fragment_inbetween_padding 0x7f060017
181 | int dimen websearch_header_left_padding 0x7f060018
182 | int dimen webview_margin_left 0x7f060030
183 | int dimen widget_margin_left_right 0x7f060019
184 | int dimen widget_margin_top_bottom 0x7f06001a
185 | int drawable card 0x7f020000
186 | int drawable card_background 0x7f020001
187 | int drawable card_background_shadow 0x7f020002
188 | int drawable card_shadow 0x7f020003
189 | int drawable ic_action_flash 0x7f020004
190 | int drawable ic_action_select 0x7f020005
191 | int drawable ic_chooser 0x7f020006
192 | int drawable ic_file 0x7f020007
193 | int drawable ic_folder 0x7f020008
194 | int drawable ic_launcher 0x7f020009
195 | int drawable selectable_background_cardbank 0x7f02000a
196 | int drawable top_shadow 0x7f02000b
197 | int id ScrollView1 0x7f0a0006
198 | int id action_settings 0x7f0a0019
199 | int id cardContent 0x7f0a000c
200 | int id cardsview 0x7f0a0018
201 | int id contentLayout 0x7f0a0001
202 | int id description 0x7f0a0003
203 | int id explorer_fragment 0x7f0a0008
204 | int id file_icon 0x7f0a0009
205 | int id file_name 0x7f0a000a
206 | int id flashNow 0x7f0a0017
207 | int id listView 0x7f0a0004
208 | int id pickZip 0x7f0a0012
209 | int id placeholder 0x7f0a000b
210 | int id stackContainer 0x7f0a000e
211 | int id stackTitle 0x7f0a000d
212 | int id sticky 0x7f0a0005
213 | int id stripe 0x7f0a0000
214 | int id tableLayout 0x7f0a0007
215 | int id title 0x7f0a0002
216 | int id tools 0x7f0a000f
217 | int id topDivider 0x7f0a0011
218 | int id tweaksSmall 0x7f0a0010
219 | int id wipeCache 0x7f0a0014
220 | int id wipeDalvik 0x7f0a0015
221 | int id wipeData 0x7f0a0016
222 | int id zipLocation 0x7f0a0013
223 | int layout card_play 0x7f030000
224 | int layout cards_view 0x7f030001
225 | int layout cards_view_multicolumn 0x7f030002
226 | int layout chooser 0x7f030003
227 | int layout file 0x7f030004
228 | int layout header 0x7f030005
229 | int layout item_card 0x7f030006
230 | int layout item_card_empty_first 0x7f030007
231 | int layout item_card_empty_last 0x7f030008
232 | int layout item_play_card_empty_first 0x7f030009
233 | int layout item_stack 0x7f03000a
234 | int layout main 0x7f03000b
235 | int menu main 0x7f090000
236 | int string action_settings 0x7f080005
237 | int string app_name 0x7f080004
238 | int string choose_file 0x7f080002
239 | int string chooser_title 0x7f080006
240 | int string empty_directory 0x7f080000
241 | int string error_selecting_file 0x7f080003
242 | int string storage_removed 0x7f080001
243 | int style AppBaseTheme 0x7f07000a
244 | int style AppTheme 0x7f07000b
245 | int style CardLightText 0x7f070001
246 | int style CardText 0x7f070000
247 | int style CardTitle 0x7f070002
248 | int style CardTitleBold 0x7f070003
249 | int style Item 0x7f070005
250 | int style Item_Sticky 0x7f070007
251 | int style Item_Top 0x7f070006
252 | int style StackTitle 0x7f070004
253 | int style fileChooserIcon 0x7f070009
254 | int style fileChooserName 0x7f070008
255 | int xml mimetypes 0x7f040000
256 |
--------------------------------------------------------------------------------
/bin/RecoveryEmulator.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/RecoveryEmulator.apk
--------------------------------------------------------------------------------
/bin/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes.dex
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/BuildConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/BuildConfig.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/CMDProcessor$CommandResult.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/CMDProcessor$CommandResult.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/CMDProcessor$SH.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/CMDProcessor$SH.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/CMDProcessor.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/CMDProcessor.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/Main$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/Main$1.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/Main$2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/Main$2.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/Main$3.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/Main$3.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/Main$4.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/Main$4.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/Main.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$attr.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$color.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$color.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$dimen.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$dimen.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$drawable.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$id.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$layout.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$menu.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$menu.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$string.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$style.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R$xml.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R$xml.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/R.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/RebootActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/RebootActivity.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/helpers/EdifyParser.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/helpers/EdifyParser.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/helpers/Help.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/helpers/Help.class
--------------------------------------------------------------------------------
/bin/classes/com/androguide/recovery/emulator/helpers/MyPlayCard.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/androguide/recovery/emulator/helpers/MyPlayCard.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$color.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$color.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$dimen.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$dimen.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$drawable.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$id.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$layout.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R$style.class
--------------------------------------------------------------------------------
/bin/classes/com/fima/cardsui/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/fima/cardsui/R.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$dimen.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$dimen.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$drawable.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$id.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$layout.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$string.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$style.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$style.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R$xml.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R$xml.class
--------------------------------------------------------------------------------
/bin/classes/com/ipaulpro/afilechooser/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/classes/com/ipaulpro/afilechooser/R.class
--------------------------------------------------------------------------------
/bin/dexedLibs/afilechooser-28c456a6f01ff1bc8d1b3d403aac97d5.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/dexedLibs/afilechooser-28c456a6f01ff1bc8d1b3d403aac97d5.jar
--------------------------------------------------------------------------------
/bin/dexedLibs/android-support-v4-df29491f95dcab6ece69ebb8486dfd08.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/dexedLibs/android-support-v4-df29491f95dcab6ece69ebb8486dfd08.jar
--------------------------------------------------------------------------------
/bin/dexedLibs/android-support-v4-ea53522f6dd548c1c4576e52530c649f.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/dexedLibs/android-support-v4-ea53522f6dd548c1c4576e52530c649f.jar
--------------------------------------------------------------------------------
/bin/dexedLibs/cardsuilib-5369cb10471680feeb0f92153e57d0b8.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/dexedLibs/cardsuilib-5369cb10471680feeb0f92153e57d0b8.jar
--------------------------------------------------------------------------------
/bin/dexedLibs/nineoldandroids-2.4.0-045865bf7ab890c433441facfa7f8fe3.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/dexedLibs/nineoldandroids-2.4.0-045865bf7ab890c433441facfa7f8fe3.jar
--------------------------------------------------------------------------------
/bin/jarlist.cache:
--------------------------------------------------------------------------------
1 | # cache for current jar dependecy. DO NOT EDIT.
2 | # format is
3 | # Encoding is UTF-8
4 |
--------------------------------------------------------------------------------
/bin/res/drawable-hdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-hdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/bin/res/drawable-hdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-hdpi/ic_action_select.png
--------------------------------------------------------------------------------
/bin/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/drawable-mdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-mdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/bin/res/drawable-mdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-mdpi/ic_action_select.png
--------------------------------------------------------------------------------
/bin/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/drawable-xhdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-xhdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/bin/res/drawable-xhdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-xhdpi/ic_action_select.png
--------------------------------------------------------------------------------
/bin/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/bin/resources.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/bin/resources.ap_
--------------------------------------------------------------------------------
/gen/com/androguide/recovery/emulator/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package com.androguide.recovery.emulator;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/gen/com/androguide/recovery/emulator/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package com.androguide.recovery.emulator;
9 |
10 | public final class R {
11 | public static final class attr {
12 | }
13 | public static final class color {
14 | public static final int card_border=0x7f050007;
15 | public static final int card_grid_text=0x7f050005;
16 | public static final int card_light_text=0x7f050004;
17 | public static final int card_separator=0x7f050006;
18 | public static final int card_text=0x7f050002;
19 | public static final int card_title_text=0x7f050003;
20 | public static final int stroke=0x7f050000;
21 | public static final int text_light=0x7f050001;
22 | }
23 | public static final class dimen {
24 | public static final int action_bar_switch_padding=0x7f060044;
25 | public static final int action_confirm_button_margin=0x7f060064;
26 | /** Default screen margins, per the Android Design guidelines.
27 |
28 | Customize dimensions originally defined in res/values/dimens.xml (such as
29 | screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
30 |
31 | */
32 | public static final int activity_horizontal_margin=0x7f0600ae;
33 | public static final int activity_vertical_margin=0x7f0600af;
34 | public static final int app_icon_area_height=0x7f06007f;
35 | public static final int app_icon_area_width=0x7f06007e;
36 | public static final int at_place_card_content_height=0x7f060027;
37 | public static final int auto_scroll_padding=0x7f06002b;
38 | public static final int card_action_button_height=0x7f0600a0;
39 | public static final int card_action_small_text=0x7f060097;
40 | public static final int card_action_text=0x7f060098;
41 | public static final int card_grid_font_size=0x7f060091;
42 | public static final int card_horizontal_map_height=0x7f06009e;
43 | public static final int card_large_text=0x7f060094;
44 | public static final int card_medium_text=0x7f060095;
45 | public static final int card_minimum_padding=0x7f060066;
46 | public static final int card_padding=0x7f060099;
47 | public static final int card_small_padding=0x7f0600a1;
48 | public static final int card_small_text=0x7f060096;
49 | public static final int card_spacer_margin=0x7f0600a2;
50 | public static final int card_temperature_size=0x7f060092;
51 | public static final int card_xl_text=0x7f060093;
52 | public static final int cards_max_column_width=0x7f060026;
53 | public static final int cards_padding_inbetween=0x7f060024;
54 | public static final int cards_padding_inbetween_adjusted=0x7f060025;
55 | public static final int contact_avatar_height=0x7f060080;
56 | public static final int contact_avatar_width=0x7f060081;
57 | public static final int contact_select_fragment_padding=0x7f060082;
58 | public static final int context_header_padding=0x7f06004d;
59 | public static final int control_size=0x7f06002f;
60 | public static final int corpus_bar_left_padding=0x7f06001e;
61 | public static final int corpus_bar_more_padding=0x7f06001f;
62 | public static final int corpus_bar_vertical_padding=0x7f06001d;
63 | public static final int corpus_selector_element_margin=0x7f060022;
64 | public static final int corpus_selector_horizontal_margin=0x7f060020;
65 | public static final int corpus_selector_text_size=0x7f060021;
66 | public static final int correction_popup_width_1buttons=0x7f060051;
67 | public static final int correction_popup_width_2buttons=0x7f060052;
68 | public static final int correction_popup_width_3buttons=0x7f060053;
69 | public static final int dialog_corner_radius=0x7f060056;
70 | public static final int dialog_height=0x7f060058;
71 | public static final int dialog_pos_left=0x7f06005a;
72 | public static final int dialog_pos_top=0x7f06005b;
73 | public static final int dialog_text_size=0x7f060060;
74 | public static final int dialog_width=0x7f060057;
75 | public static final int divider_height=0x7f06005e;
76 | public static final int extra_height_to_account_for_system_space_in_landscape=0x7f060015;
77 | public static final int first_run_context_image_height=0x7f060023;
78 | public static final int first_run_padding=0x7f06009a;
79 | public static final int footer_height=0x7f06001b;
80 | public static final int gmail_card_button_height=0x7f06001c;
81 | public static final int google_header_margin_bottom=0x7f060016;
82 | public static final int google_logo_margin_left=0x7f060033;
83 | public static final int google_logo_margin_right=0x7f060034;
84 | public static final int half_unit=0x7f060070;
85 | public static final int hands_free_padding=0x7f060086;
86 | public static final int hands_free_small_padding=0x7f060085;
87 | public static final int header_footer_size=0x7f06005f;
88 | public static final int high_confidence_answer_card_image_height=0x7f06006b;
89 | public static final int high_confidence_answer_card_image_width=0x7f06006c;
90 | public static final int high_confidence_answer_card_min_spacing=0x7f06006a;
91 | public static final int hint_bubble_offset=0x7f060055;
92 | public static final int histogram_bar_padding=0x7f0600aa;
93 | public static final int histogram_bar_size=0x7f0600a9;
94 | public static final int histogram_width=0x7f0600ab;
95 | public static final int horizontal_static_map_height=0x7f06009f;
96 | public static final int image_result_carousel_height=0x7f060043;
97 | public static final int image_result_height=0x7f060042;
98 | public static final int image_view_padding=0x7f060037;
99 | public static final int ime_button_text_size=0x7f06008c;
100 | public static final int ime_land_height=0x7f060088;
101 | public static final int ime_mic_size=0x7f06008d;
102 | public static final int ime_padding_bottom=0x7f06008e;
103 | public static final int ime_padding_top=0x7f06008f;
104 | public static final int ime_port_height=0x7f060087;
105 | public static final int ime_spinner_text=0x7f060089;
106 | public static final int ime_state_text_size=0x7f06008b;
107 | public static final int ime_title_text_size=0x7f06008a;
108 | public static final int indicator_size=0x7f06005c;
109 | public static final int indicator_stroke=0x7f06005d;
110 | public static final int intent_api_mic_area_size=0x7f060090;
111 | public static final int large_preview_width=0x7f060028;
112 | public static final int list_item_padding=0x7f0600ad;
113 | public static final int list_padding=0x7f0600ac;
114 | public static final int load_more_button_margin=0x7f0600a3;
115 | public static final int local_result_vertical_divider_height=0x7f06006d;
116 | public static final int local_results_item_margin=0x7f06006e;
117 | public static final int local_results_map_height=0x7f06006f;
118 | public static final int main_fragment_top_padding=0x7f060013;
119 | public static final int map_preview_image_height=0x7f060069;
120 | public static final int map_preview_image_width=0x7f060068;
121 | public static final int max_height_for_fullscreen=0x7f060059;
122 | public static final int max_preview_area_width=0x7f06002d;
123 | public static final int max_waveform_height=0x7f060061;
124 | public static final int mic_height=0x7f060063;
125 | public static final int min_height_background_image=0x7f06004c;
126 | public static final int min_preview_area_width=0x7f06002c;
127 | public static final int negative_unit=0x7f060075;
128 | public static final int photo_crop_stroke_width=0x7f060002;
129 | public static final int photo_crop_width=0x7f060001;
130 | public static final int photo_preview_size=0x7f060003;
131 | public static final int playpausebutton_size=0x7f060031;
132 | public static final int preview_image_height=0x7f06002a;
133 | public static final int preview_image_size=0x7f060067;
134 | public static final int preview_image_width=0x7f060029;
135 | public static final int recording_popup_size=0x7f060054;
136 | public static final int retry_button_size=0x7f060004;
137 | public static final int sample_card_width=0x7f0600a4;
138 | public static final int searchResultListItemHeight=0x7f060050;
139 | public static final int search_bar_padding=0x7f060038;
140 | public static final int search_bar_text_size=0x7f060035;
141 | public static final int search_box_width=0x7f060036;
142 | public static final int search_device_footer_bottom_margin=0x7f060008;
143 | public static final int search_plate_expand_threshold=0x7f06007a;
144 | public static final int search_plate_height=0x7f060032;
145 | public static final int search_plate_icon_height=0x7f06007d;
146 | public static final int search_plate_icon_width=0x7f06007c;
147 | public static final int search_plate_minimum_padding=0x7f06007b;
148 | public static final int small_unit=0x7f060076;
149 | public static final int small_units_2=0x7f060077;
150 | public static final int small_units_3=0x7f060078;
151 | public static final int small_units_4=0x7f060079;
152 | public static final int speak_now_speech_height=0x7f06004b;
153 | public static final int sports_card_image_height=0x7f060084;
154 | public static final int sports_card_image_width=0x7f060083;
155 | public static final int sticky_height=0x7f060000;
156 | public static final int stock_chart_height=0x7f0600a7;
157 | public static final int stock_chart_width=0x7f0600a8;
158 | public static final int stock_price_padding=0x7f0600a6;
159 | public static final int suggest_summons_area_padding=0x7f060039;
160 | public static final int suggest_web_height=0x7f06003a;
161 | public static final int suggest_web_padding=0x7f06003b;
162 | public static final int suggestion_footer_view_height=0x7f060007;
163 | public static final int suggestion_icon1_left_padding=0x7f06000f;
164 | public static final int suggestion_icon_size=0x7f06000b;
165 | public static final int suggestion_large_image_max_height=0x7f06000d;
166 | public static final int suggestion_large_image_max_width=0x7f06000c;
167 | public static final int suggestion_text2_height=0x7f06000e;
168 | public static final int suggestion_text_padding=0x7f060010;
169 | public static final int suggestion_view_height=0x7f060009;
170 | public static final int suggestion_view_height_large=0x7f06000a;
171 | public static final int suggestions_divider_margin_left_right=0x7f060012;
172 | public static final int suggestions_padding=0x7f060011;
173 | public static final int summons_height=0x7f06003c;
174 | public static final int summons_inter_source_padding=0x7f06003f;
175 | public static final int summons_padding=0x7f06003d;
176 | public static final int summons_width=0x7f06003e;
177 | public static final int suppressed_web_results_min_visible_height=0x7f060040;
178 | public static final int table_row_vertical_padding=0x7f0600a5;
179 | public static final int text_block_bottom_padding=0x7f06009c;
180 | public static final int text_block_side_padding=0x7f06009d;
181 | public static final int text_block_top_padding=0x7f06009b;
182 | public static final int tidbit_padding=0x7f06002e;
183 | public static final int unit=0x7f060071;
184 | public static final int unit_small_caps=0x7f060065;
185 | public static final int units_2=0x7f060072;
186 | public static final int units_3=0x7f060073;
187 | public static final int units_4=0x7f060074;
188 | public static final int voice_popup_margin=0x7f060062;
189 | public static final int weather_current_icon_height=0x7f06004f;
190 | public static final int weather_forecast_icon_height=0x7f06004e;
191 | public static final int web_snapshots_default_visible_width=0x7f060046;
192 | public static final int web_snapshots_dismiss_from_offset=0x7f06004a;
193 | public static final int web_snapshots_just_added_extra_height=0x7f060048;
194 | public static final int web_snapshots_launch_browser_from_offset=0x7f060049;
195 | public static final int web_snapshots_text_size=0x7f060047;
196 | public static final int web_snapshots_width=0x7f060045;
197 | public static final int web_suggestion_icon_size=0x7f060006;
198 | public static final int web_suggestion_view_height=0x7f060005;
199 | public static final int websearch_card_top_margin=0x7f060014;
200 | public static final int websearch_collapse_card_padding_offscreen_leeway=0x7f060041;
201 | public static final int websearch_fragment_inbetween_padding=0x7f060017;
202 | public static final int websearch_header_left_padding=0x7f060018;
203 | public static final int webview_margin_left=0x7f060030;
204 | public static final int widget_margin_left_right=0x7f060019;
205 | public static final int widget_margin_top_bottom=0x7f06001a;
206 | }
207 | public static final class drawable {
208 | public static final int card=0x7f020000;
209 | public static final int card_background=0x7f020001;
210 | public static final int card_background_shadow=0x7f020002;
211 | public static final int card_shadow=0x7f020003;
212 | public static final int ic_action_flash=0x7f020004;
213 | public static final int ic_action_select=0x7f020005;
214 | public static final int ic_chooser=0x7f020006;
215 | public static final int ic_file=0x7f020007;
216 | public static final int ic_folder=0x7f020008;
217 | public static final int ic_launcher=0x7f020009;
218 | public static final int selectable_background_cardbank=0x7f02000a;
219 | public static final int top_shadow=0x7f02000b;
220 | }
221 | public static final class id {
222 | public static final int ScrollView1=0x7f0a0006;
223 | public static final int action_settings=0x7f0a0019;
224 | public static final int cardContent=0x7f0a000c;
225 | public static final int cardsview=0x7f0a0018;
226 | public static final int contentLayout=0x7f0a0001;
227 | public static final int description=0x7f0a0003;
228 | public static final int explorer_fragment=0x7f0a0008;
229 | public static final int file_icon=0x7f0a0009;
230 | public static final int file_name=0x7f0a000a;
231 | public static final int flashNow=0x7f0a0017;
232 | public static final int listView=0x7f0a0004;
233 | public static final int pickZip=0x7f0a0012;
234 | public static final int placeholder=0x7f0a000b;
235 | public static final int stackContainer=0x7f0a000e;
236 | public static final int stackTitle=0x7f0a000d;
237 | public static final int sticky=0x7f0a0005;
238 | public static final int stripe=0x7f0a0000;
239 | public static final int tableLayout=0x7f0a0007;
240 | public static final int title=0x7f0a0002;
241 | public static final int tools=0x7f0a000f;
242 | public static final int topDivider=0x7f0a0011;
243 | public static final int tweaksSmall=0x7f0a0010;
244 | public static final int wipeCache=0x7f0a0014;
245 | public static final int wipeDalvik=0x7f0a0015;
246 | public static final int wipeData=0x7f0a0016;
247 | public static final int zipLocation=0x7f0a0013;
248 | }
249 | public static final class layout {
250 | public static final int card_play=0x7f030000;
251 | public static final int cards_view=0x7f030001;
252 | public static final int cards_view_multicolumn=0x7f030002;
253 | public static final int chooser=0x7f030003;
254 | public static final int file=0x7f030004;
255 | public static final int header=0x7f030005;
256 | public static final int item_card=0x7f030006;
257 | public static final int item_card_empty_first=0x7f030007;
258 | public static final int item_card_empty_last=0x7f030008;
259 | public static final int item_play_card_empty_first=0x7f030009;
260 | public static final int item_stack=0x7f03000a;
261 | public static final int main=0x7f03000b;
262 | }
263 | public static final class menu {
264 | public static final int main=0x7f090000;
265 | }
266 | public static final class string {
267 | public static final int action_settings=0x7f080005;
268 | public static final int app_name=0x7f080004;
269 | public static final int choose_file=0x7f080002;
270 | public static final int chooser_title=0x7f080006;
271 | public static final int empty_directory=0x7f080000;
272 | public static final int error_selecting_file=0x7f080003;
273 | public static final int storage_removed=0x7f080001;
274 | }
275 | public static final class style {
276 | /**
277 | Base application theme, dependent on API level. This theme is replaced
278 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
279 |
280 |
281 | Theme customizations available in newer API levels can go in
282 | res/values-vXX/styles.xml, while customizations related to
283 | backward-compatibility can go here.
284 |
285 |
286 | Base application theme for API 11+. This theme completely replaces
287 | AppBaseTheme from res/values/styles.xml on API 11+ devices.
288 |
289 | API 11 theme customizations can go here.
290 |
291 | Base application theme for API 14+. This theme completely replaces
292 | AppBaseTheme from BOTH res/values/styles.xml and
293 | res/values-v11/styles.xml on API 14+ devices.
294 |
295 | API 14 theme customizations can go here.
296 | */
297 | public static final int AppBaseTheme=0x7f07000a;
298 | /** Application theme.
299 | All customizations that are NOT specific to a particular API-level can go here.
300 | */
301 | public static final int AppTheme=0x7f07000b;
302 | public static final int CardLightText=0x7f070001;
303 | /**
304 |
313 |
314 | */
315 | public static final int CardText=0x7f070000;
316 | public static final int CardTitle=0x7f070002;
317 | public static final int CardTitleBold=0x7f070003;
318 | public static final int Item=0x7f070005;
319 | public static final int Item_Sticky=0x7f070007;
320 | public static final int Item_Top=0x7f070006;
321 | public static final int StackTitle=0x7f070004;
322 | public static final int fileChooserIcon=0x7f070009;
323 | public static final int fileChooserName=0x7f070008;
324 | }
325 | public static final class xml {
326 | public static final int mimetypes=0x7f040000;
327 | }
328 | }
329 |
--------------------------------------------------------------------------------
/gen/com/fima/cardsui/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 | package com.fima.cardsui;
8 |
9 | public final class R {
10 | public static final class id {
11 | public static final int listView = 0x7f0a0004;
12 | public static final int sticky = 0x7f0a0005;
13 | public static final int cardContent = 0x7f0a000c;
14 | public static final int placeholder = 0x7f0a000b;
15 | public static final int tableLayout = 0x7f0a0007;
16 | public static final int stackContainer = 0x7f0a000e;
17 | public static final int ScrollView1 = 0x7f0a0006;
18 | public static final int stackTitle = 0x7f0a000d;
19 | }
20 | public static final class style {
21 | public static final int CardTitleBold = 0x7f070003;
22 | public static final int CardLightText = 0x7f070001;
23 | public static final int CardText = 0x7f070000;
24 | public static final int Item_Top = 0x7f070006;
25 | public static final int Item = 0x7f070005;
26 | public static final int Item_Sticky = 0x7f070007;
27 | public static final int CardTitle = 0x7f070002;
28 | public static final int StackTitle = 0x7f070004;
29 | }
30 | public static final class color {
31 | public static final int stroke = 0x7f050000;
32 | public static final int text_light = 0x7f050001;
33 | public static final int card_text = 0x7f050002;
34 | public static final int card_border = 0x7f050007;
35 | public static final int card_light_text = 0x7f050004;
36 | public static final int card_separator = 0x7f050006;
37 | public static final int card_title_text = 0x7f050003;
38 | public static final int card_grid_text = 0x7f050005;
39 | }
40 | public static final class layout {
41 | public static final int item_card = 0x7f030006;
42 | public static final int item_card_empty_first = 0x7f030007;
43 | public static final int item_stack = 0x7f03000a;
44 | public static final int item_card_empty_last = 0x7f030008;
45 | public static final int cards_view = 0x7f030001;
46 | public static final int cards_view_multicolumn = 0x7f030002;
47 | public static final int item_play_card_empty_first = 0x7f030009;
48 | public static final int header = 0x7f030005;
49 | }
50 | public static final class drawable {
51 | public static final int card_background_shadow = 0x7f020002;
52 | public static final int card = 0x7f020000;
53 | public static final int card_background = 0x7f020001;
54 | public static final int card_shadow = 0x7f020003;
55 | public static final int top_shadow = 0x7f02000b;
56 | }
57 | public static final class dimen {
58 | public static final int web_suggestion_icon_size = 0x7f060006;
59 | public static final int suggestion_icon1_left_padding = 0x7f06000f;
60 | public static final int hint_bubble_offset = 0x7f060055;
61 | public static final int cards_padding_inbetween = 0x7f060024;
62 | public static final int preview_image_size = 0x7f060067;
63 | public static final int voice_popup_margin = 0x7f060062;
64 | public static final int corpus_bar_vertical_padding = 0x7f06001d;
65 | public static final int min_height_background_image = 0x7f06004c;
66 | public static final int control_size = 0x7f06002f;
67 | public static final int high_confidence_answer_card_image_height = 0x7f06006b;
68 | public static final int suppressed_web_results_min_visible_height = 0x7f060040;
69 | public static final int app_icon_area_width = 0x7f06007e;
70 | public static final int text_block_side_padding = 0x7f06009d;
71 | public static final int min_preview_area_width = 0x7f06002c;
72 | public static final int hands_free_padding = 0x7f060086;
73 | public static final int web_snapshots_just_added_extra_height = 0x7f060048;
74 | public static final int corpus_selector_element_margin = 0x7f060022;
75 | public static final int unit_small_caps = 0x7f060065;
76 | public static final int preview_image_width = 0x7f060029;
77 | public static final int suggestion_view_height_large = 0x7f06000a;
78 | public static final int card_small_padding = 0x7f0600a1;
79 | public static final int contact_avatar_width = 0x7f060081;
80 | public static final int dialog_width = 0x7f060057;
81 | public static final int summons_width = 0x7f06003e;
82 | public static final int divider_height = 0x7f06005e;
83 | public static final int weather_forecast_icon_height = 0x7f06004e;
84 | public static final int card_action_text = 0x7f060098;
85 | public static final int corpus_selector_text_size = 0x7f060021;
86 | public static final int card_minimum_padding = 0x7f060066;
87 | public static final int weather_current_icon_height = 0x7f06004f;
88 | public static final int card_temperature_size = 0x7f060092;
89 | public static final int sample_card_width = 0x7f0600a4;
90 | public static final int card_medium_text = 0x7f060095;
91 | public static final int indicator_size = 0x7f06005c;
92 | public static final int units_2 = 0x7f060072;
93 | public static final int correction_popup_width_1buttons = 0x7f060051;
94 | public static final int units_3 = 0x7f060073;
95 | public static final int local_results_item_margin = 0x7f06006e;
96 | public static final int units_4 = 0x7f060074;
97 | public static final int suggestion_view_height = 0x7f060009;
98 | public static final int auto_scroll_padding = 0x7f06002b;
99 | public static final int sticky_height = 0x7f060000;
100 | public static final int dialog_text_size = 0x7f060060;
101 | public static final int search_plate_expand_threshold = 0x7f06007a;
102 | public static final int google_logo_margin_right = 0x7f060034;
103 | public static final int webview_margin_left = 0x7f060030;
104 | public static final int max_waveform_height = 0x7f060061;
105 | public static final int action_confirm_button_margin = 0x7f060064;
106 | public static final int suggestions_padding = 0x7f060011;
107 | public static final int search_device_footer_bottom_margin = 0x7f060008;
108 | public static final int suggestion_large_image_max_width = 0x7f06000c;
109 | public static final int stock_chart_height = 0x7f0600a7;
110 | public static final int map_preview_image_width = 0x7f060068;
111 | public static final int suggest_web_height = 0x7f06003a;
112 | public static final int websearch_collapse_card_padding_offscreen_leeway = 0x7f060041;
113 | public static final int correction_popup_width_2buttons = 0x7f060052;
114 | public static final int high_confidence_answer_card_min_spacing = 0x7f06006a;
115 | public static final int corpus_bar_more_padding = 0x7f06001f;
116 | public static final int web_snapshots_launch_browser_from_offset = 0x7f060049;
117 | public static final int local_result_vertical_divider_height = 0x7f06006d;
118 | public static final int ime_mic_size = 0x7f06008d;
119 | public static final int widget_margin_left_right = 0x7f060019;
120 | public static final int web_snapshots_dismiss_from_offset = 0x7f06004a;
121 | public static final int suggest_web_padding = 0x7f06003b;
122 | public static final int web_snapshots_width = 0x7f060045;
123 | public static final int websearch_header_left_padding = 0x7f060018;
124 | public static final int header_footer_size = 0x7f06005f;
125 | public static final int websearch_card_top_margin = 0x7f060014;
126 | public static final int indicator_stroke = 0x7f06005d;
127 | public static final int first_run_padding = 0x7f06009a;
128 | public static final int table_row_vertical_padding = 0x7f0600a5;
129 | public static final int map_preview_image_height = 0x7f060069;
130 | public static final int suggestion_icon_size = 0x7f06000b;
131 | public static final int mic_height = 0x7f060063;
132 | public static final int card_action_small_text = 0x7f060097;
133 | public static final int retry_button_size = 0x7f060004;
134 | public static final int cards_max_column_width = 0x7f060026;
135 | public static final int widget_margin_top_bottom = 0x7f06001a;
136 | public static final int at_place_card_content_height = 0x7f060027;
137 | public static final int preview_image_height = 0x7f06002a;
138 | public static final int sports_card_image_width = 0x7f060083;
139 | public static final int suggestion_text2_height = 0x7f06000e;
140 | public static final int contact_select_fragment_padding = 0x7f060082;
141 | public static final int photo_preview_size = 0x7f060003;
142 | public static final int sports_card_image_height = 0x7f060084;
143 | public static final int card_spacer_margin = 0x7f0600a2;
144 | public static final int first_run_context_image_height = 0x7f060023;
145 | public static final int text_block_bottom_padding = 0x7f06009c;
146 | public static final int card_action_button_height = 0x7f0600a0;
147 | public static final int suggestions_divider_margin_left_right = 0x7f060012;
148 | public static final int contact_avatar_height = 0x7f060080;
149 | public static final int summons_height = 0x7f06003c;
150 | public static final int playpausebutton_size = 0x7f060031;
151 | public static final int small_unit = 0x7f060076;
152 | public static final int search_plate_minimum_padding = 0x7f06007b;
153 | public static final int intent_api_mic_area_size = 0x7f060090;
154 | public static final int dialog_height = 0x7f060058;
155 | public static final int text_block_top_padding = 0x7f06009b;
156 | public static final int photo_crop_stroke_width = 0x7f060002;
157 | public static final int hands_free_small_padding = 0x7f060085;
158 | public static final int load_more_button_margin = 0x7f0600a3;
159 | public static final int small_units_4 = 0x7f060079;
160 | public static final int small_units_3 = 0x7f060078;
161 | public static final int small_units_2 = 0x7f060077;
162 | public static final int summons_inter_source_padding = 0x7f06003f;
163 | public static final int ime_padding_bottom = 0x7f06008e;
164 | public static final int search_bar_padding = 0x7f060038;
165 | public static final int ime_button_text_size = 0x7f06008c;
166 | public static final int ime_port_height = 0x7f060087;
167 | public static final int websearch_fragment_inbetween_padding = 0x7f060017;
168 | public static final int suggest_summons_area_padding = 0x7f060039;
169 | public static final int gmail_card_button_height = 0x7f06001c;
170 | public static final int negative_unit = 0x7f060075;
171 | public static final int high_confidence_answer_card_image_width = 0x7f06006c;
172 | public static final int card_xl_text = 0x7f060093;
173 | public static final int card_horizontal_map_height = 0x7f06009e;
174 | public static final int action_bar_switch_padding = 0x7f060044;
175 | public static final int web_suggestion_view_height = 0x7f060005;
176 | public static final int google_logo_margin_left = 0x7f060033;
177 | public static final int max_preview_area_width = 0x7f06002d;
178 | public static final int tidbit_padding = 0x7f06002e;
179 | public static final int search_plate_icon_height = 0x7f06007d;
180 | public static final int ime_spinner_text = 0x7f060089;
181 | public static final int dialog_corner_radius = 0x7f060056;
182 | public static final int card_small_text = 0x7f060096;
183 | public static final int stock_chart_width = 0x7f0600a8;
184 | public static final int horizontal_static_map_height = 0x7f06009f;
185 | public static final int ime_padding_top = 0x7f06008f;
186 | public static final int image_result_carousel_height = 0x7f060043;
187 | public static final int search_bar_text_size = 0x7f060035;
188 | public static final int recording_popup_size = 0x7f060054;
189 | public static final int cards_padding_inbetween_adjusted = 0x7f060025;
190 | public static final int histogram_width = 0x7f0600ab;
191 | public static final int max_height_for_fullscreen = 0x7f060059;
192 | public static final int searchResultListItemHeight = 0x7f060050;
193 | public static final int google_header_margin_bottom = 0x7f060016;
194 | public static final int photo_crop_width = 0x7f060001;
195 | public static final int web_snapshots_default_visible_width = 0x7f060046;
196 | public static final int local_results_map_height = 0x7f06006f;
197 | public static final int image_view_padding = 0x7f060037;
198 | public static final int footer_height = 0x7f06001b;
199 | public static final int dialog_pos_left = 0x7f06005a;
200 | public static final int image_result_height = 0x7f060042;
201 | public static final int card_grid_font_size = 0x7f060091;
202 | public static final int ime_state_text_size = 0x7f06008b;
203 | public static final int summons_padding = 0x7f06003d;
204 | public static final int suggestion_text_padding = 0x7f060010;
205 | public static final int speak_now_speech_height = 0x7f06004b;
206 | public static final int extra_height_to_account_for_system_space_in_landscape = 0x7f060015;
207 | public static final int corpus_selector_horizontal_margin = 0x7f060020;
208 | public static final int half_unit = 0x7f060070;
209 | public static final int context_header_padding = 0x7f06004d;
210 | public static final int histogram_bar_size = 0x7f0600a9;
211 | public static final int app_icon_area_height = 0x7f06007f;
212 | public static final int large_preview_width = 0x7f060028;
213 | public static final int suggestion_footer_view_height = 0x7f060007;
214 | public static final int stock_price_padding = 0x7f0600a6;
215 | public static final int correction_popup_width_3buttons = 0x7f060053;
216 | public static final int search_plate_icon_width = 0x7f06007c;
217 | public static final int web_snapshots_text_size = 0x7f060047;
218 | public static final int main_fragment_top_padding = 0x7f060013;
219 | public static final int histogram_bar_padding = 0x7f0600aa;
220 | public static final int dialog_pos_top = 0x7f06005b;
221 | public static final int corpus_bar_left_padding = 0x7f06001e;
222 | public static final int ime_land_height = 0x7f060088;
223 | public static final int unit = 0x7f060071;
224 | public static final int search_plate_height = 0x7f060032;
225 | public static final int card_large_text = 0x7f060094;
226 | public static final int ime_title_text_size = 0x7f06008a;
227 | public static final int suggestion_large_image_max_height = 0x7f06000d;
228 | public static final int search_box_width = 0x7f060036;
229 | public static final int card_padding = 0x7f060099;
230 | }
231 | }
232 |
--------------------------------------------------------------------------------
/gen/com/ipaulpro/afilechooser/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 | package com.ipaulpro.afilechooser;
8 |
9 | public final class R {
10 | public static final class id {
11 | public static final int file_name = 0x7f0a000a;
12 | public static final int explorer_fragment = 0x7f0a0008;
13 | public static final int file_icon = 0x7f0a0009;
14 | }
15 | public static final class style {
16 | public static final int fileChooserIcon = 0x7f070009;
17 | public static final int fileChooserName = 0x7f070008;
18 | }
19 | public static final class string {
20 | public static final int empty_directory = 0x7f080000;
21 | public static final int error_selecting_file = 0x7f080003;
22 | public static final int storage_removed = 0x7f080001;
23 | public static final int choose_file = 0x7f080002;
24 | }
25 | public static final class layout {
26 | public static final int chooser = 0x7f030003;
27 | public static final int file = 0x7f030004;
28 | }
29 | public static final class drawable {
30 | public static final int ic_folder = 0x7f020008;
31 | public static final int ic_chooser = 0x7f020006;
32 | public static final int ic_file = 0x7f020007;
33 | }
34 | public static final class xml {
35 | public static final int mimetypes = 0x7f040000;
36 | }
37 | public static final class dimen {
38 | public static final int list_item_padding = 0x7f0600ad;
39 | public static final int list_padding = 0x7f0600ac;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/ic_launcher-web.png
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-17
15 | android.library.reference.1=../../Android/Libraries/aFileChooser-master/aFileChooser
16 | android.library.reference.2=../../Android/Libraries/CardsUI/cardsui-for-android-master/CardsUILib
17 |
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-hdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-hdpi/ic_action_select.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-mdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-mdpi/ic_action_select.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_flash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-xhdpi/ic_action_flash.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_action_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-xhdpi/ic_action_select.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Androguide/FlashGordon/c39334499848446a09738bd542d7e7d3637a808d/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/res/drawable/selectable_background_cardbank.xml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/res/layout/card_play.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
14 |
15 |
23 |
24 |
31 |
32 |
40 |
41 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
14 |
29 |
30 |
43 |
44 |
50 |
51 |
61 |
62 |
72 |
73 |
81 |
82 |
87 |
88 |
95 |
96 |
103 |
104 |
105 |
110 |
111 |
118 |
119 |
120 |
133 |
134 |
138 |
139 |
140 |
141 |
--------------------------------------------------------------------------------
/res/menu/main.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values-sw720dp-land/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | 128dp
8 |
9 |
--------------------------------------------------------------------------------
/res/values-v11/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/res/values-v14/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Flash Gordon
5 | Settings
6 | Choose a flashable zip
7 |
8 |
--------------------------------------------------------------------------------
/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
14 |
15 |
16 |
19 |
20 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/CMDProcessor.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator;
2 |
3 | import java.io.DataInputStream;
4 | import java.io.DataOutputStream;
5 | import java.io.InputStream;
6 |
7 | import android.util.Log;
8 |
9 | public class CMDProcessor {
10 |
11 | private final String TAG = getClass().getSimpleName();
12 | private static final boolean DEBUG = false;
13 | private Boolean can_su;
14 | public SH sh;
15 | public SH su;
16 |
17 | public CMDProcessor() {
18 | sh = new SH("sh");
19 | su = new SH("su");
20 | }
21 |
22 | public SH suOrSH() {
23 | return canSU() ? su : sh;
24 | }
25 |
26 | public boolean canSU() {
27 | return canSU(false);
28 | }
29 |
30 | public class CommandResult {
31 | private final String resultTag = TAG + '.' + getClass().getSimpleName();
32 | public final String stdout;
33 | public final String stderr;
34 | public final Integer exit_value;
35 |
36 | CommandResult(final Integer exit_value_in) {
37 | this(exit_value_in, null, null);
38 | }
39 |
40 | CommandResult(final Integer exit_value_in, final String stdout_in,
41 | final String stderr_in) {
42 | exit_value = exit_value_in;
43 | stdout = stdout_in;
44 | stderr = stderr_in;
45 | if (DEBUG)
46 | Log.d(TAG, resultTag + "( exit_value=" + exit_value
47 | + ", stdout=" + stdout + ", stderr=" + stderr + " )");
48 | }
49 |
50 | public boolean success() {
51 | return exit_value != null && exit_value == 0;
52 | }
53 |
54 | }
55 |
56 | public class SH {
57 | private String SHELL = "sh";
58 |
59 | public SH(final String SHELL_in) {
60 | SHELL = SHELL_in;
61 | }
62 |
63 | private String getStreamLines(final InputStream is) {
64 | String out = null;
65 | StringBuffer buffer = null;
66 | final DataInputStream dis = new DataInputStream(is);
67 | try {
68 | if (dis.available() > 0) {
69 | buffer = new StringBuffer(dis.readLine());
70 | while (dis.available() > 0) {
71 | buffer.append("\n").append(dis.readLine());
72 | }
73 | }
74 | dis.close();
75 | } catch (final Exception ex) {
76 | Log.e(TAG, ex.getMessage());
77 | }
78 | if (buffer != null) {
79 | out = buffer.toString();
80 | }
81 | return out;
82 | }
83 |
84 | public Process run(final String s) {
85 | Process process = null;
86 | try {
87 | process = Runtime.getRuntime().exec(SHELL);
88 | final DataOutputStream toProcess = new DataOutputStream(
89 | process.getOutputStream());
90 | toProcess.writeBytes("exec " + s + "\n");
91 | toProcess.flush();
92 | } catch (final Exception e) {
93 | Log.e(TAG,
94 | "Exception while trying to run: '" + s + "' "
95 | + e.getMessage());
96 | process = null;
97 | }
98 | return process;
99 | }
100 |
101 | public CommandResult runWaitFor(final String s) {
102 | if (DEBUG)
103 | Log.d(TAG, "runWaitFor( " + s + " )");
104 | final Process process = run(s);
105 | Integer exit_value = null;
106 | String stdout = null;
107 | String stderr = null;
108 | if (process != null) {
109 | try {
110 | exit_value = process.waitFor();
111 | stdout = getStreamLines(process.getInputStream());
112 | stderr = getStreamLines(process.getErrorStream());
113 | } catch (final InterruptedException e) {
114 | Log.e(TAG, "runWaitFor " + e.toString());
115 | } catch (final NullPointerException e) {
116 | Log.e(TAG, "runWaitFor " + e.toString());
117 | }
118 | }
119 | return new CommandResult(exit_value, stdout, stderr);
120 | }
121 | }
122 |
123 | public boolean canSU(final boolean force_check) {
124 | if (can_su == null || force_check) {
125 | final CommandResult r = su.runWaitFor("id");
126 | final StringBuilder out = new StringBuilder();
127 | if (r.stdout != null) {
128 | out.append(r.stdout).append(" ; ");
129 | }
130 | if (r.stderr != null) {
131 | out.append(r.stderr);
132 | }
133 | Log.d(TAG, "canSU() su[" + r.exit_value + "]: " + out);
134 | can_su = r.success();
135 | }
136 | return can_su;
137 | }
138 | }
139 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/Main.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.File;
5 | import java.io.IOException;
6 | import java.io.InputStream;
7 | import java.io.InputStreamReader;
8 | import java.io.OutputStream;
9 |
10 | import android.app.Activity;
11 | import android.app.NotificationManager;
12 | import android.app.PendingIntent;
13 | import android.app.ProgressDialog;
14 | import android.content.ActivityNotFoundException;
15 | import android.content.Context;
16 | import android.content.Intent;
17 | import android.graphics.Bitmap;
18 | import android.graphics.BitmapFactory;
19 | import android.net.Uri;
20 | import android.os.Bundle;
21 | import android.os.Environment;
22 | import android.os.Handler;
23 | import android.os.Message;
24 | import android.support.v4.app.NotificationCompat;
25 | import android.util.Log;
26 | import android.view.Menu;
27 | import android.view.View;
28 | import android.view.View.OnClickListener;
29 | import android.widget.Button;
30 | import android.widget.CheckBox;
31 | import android.widget.CompoundButton;
32 | import android.widget.CompoundButton.OnCheckedChangeListener;
33 | import android.widget.TextView;
34 | import android.widget.Toast;
35 |
36 | import com.androguide.recovery.emulator.helpers.EdifyParser;
37 | import com.androguide.recovery.emulator.helpers.Help;
38 | import com.androguide.recovery.emulator.helpers.MyPlayCard;
39 | import com.fima.cardsui.views.CardUI;
40 | import com.ipaulpro.afilechooser.utils.FileUtils;
41 |
42 | public class Main extends Activity implements OnCheckedChangeListener,
43 | OnClickListener {
44 |
45 | private static final int REQUEST_CODE = 6384; // onActivityResult request
46 | // code
47 | private CheckBox cache, dalvik, data;
48 | private Button selectZip, flashNow;
49 | private TextView zipLoc;
50 | private Boolean wipeCache = false, wipeDalvik = false, wipeData = false;
51 | private File zipToFlash;
52 | private CardUI mCardView;
53 | private static String file = "";
54 | private static String chained[] = { "" };
55 |
56 | public static String sd = Environment.getExternalStorageDirectory()
57 | .toString();
58 | public static String temp = sd + "/RecoveryEmulator/tmp";
59 | public static String updaterScript = "META-INF/com/google/android/updater-script";
60 | public static String homeDir = sd + "/RecoveryEmulator";
61 | private static Handler handler;
62 | Context context = this;
63 |
64 | @Override
65 | protected void onCreate(Bundle savedInstanceState) {
66 | super.onCreate(savedInstanceState);
67 | setContentView(R.layout.main);
68 |
69 | zipLoc = (TextView) findViewById(R.id.zipLocation);
70 | cache = (CheckBox) findViewById(R.id.wipeCache);
71 | dalvik = (CheckBox) findViewById(R.id.wipeDalvik);
72 | data = (CheckBox) findViewById(R.id.wipeData);
73 |
74 | selectZip = (Button) findViewById(R.id.pickZip);
75 | flashNow = (Button) findViewById(R.id.flashNow);
76 |
77 | mCardView = (CardUI) findViewById(R.id.cardsview);
78 | mCardView.setSwipeable(true);
79 |
80 | cache.setOnCheckedChangeListener(this);
81 | dalvik.setOnCheckedChangeListener(this);
82 | data.setOnCheckedChangeListener(this);
83 |
84 | selectZip.setOnClickListener(this);
85 | flashNow.setOnClickListener(this);
86 |
87 | MyPlayCard card = new MyPlayCard(
88 | "Do Not Flash ROMs",
89 | "Flashing ROMs with Flash Gordon isn\'t currently possible,"
90 | + " because certain system files crash the device if they are replaced while it is running,"
91 | + " this will cut the installation halfway and result in a bootloop.",
92 | "#e00707", "#222222", false, false);
93 | mCardView.addCard(card);
94 | mCardView.refresh();
95 | }
96 |
97 | @Override
98 | public boolean onCreateOptionsMenu(Menu menu) {
99 | getMenuInflater().inflate(R.menu.main, menu);
100 | return true;
101 | }
102 |
103 | @Override
104 | public void onCheckedChanged(CompoundButton cb, boolean b) {
105 | switch (cb.getId()) {
106 |
107 | case R.id.wipeCache:
108 | if (b = true)
109 | wipeCache = true;
110 | break;
111 |
112 | case R.id.wipeDalvik:
113 | if (b = true)
114 | wipeDalvik = true;
115 | break;
116 |
117 | case R.id.wipeData:
118 | if (b = true)
119 | wipeData = true;
120 | break;
121 |
122 | default:
123 | return;
124 | }
125 |
126 | }
127 |
128 | @Override
129 | public void onClick(View v) {
130 |
131 | switch (v.getId()) {
132 |
133 | case R.id.pickZip:
134 | showChooser();
135 | break;
136 |
137 | case R.id.flashNow:
138 | flashNow();
139 | isWhichWipe();
140 |
141 | break;
142 |
143 | default:
144 | return;
145 | }
146 | }
147 |
148 | private void flashNow() {
149 | final ProgressDialog flashDialog = new ProgressDialog(this);
150 | flashDialog.setIndeterminate(true);
151 | flashDialog.setMessage("Flashing...");
152 | flashDialog.setTitle("Please Wait");
153 | flashDialog.setCanceledOnTouchOutside(false);
154 | flashDialog.show();
155 |
156 | new Thread() {
157 | public void run() {
158 | EdifyParser.readUpdaterScript(temp + "/" + updaterScript);
159 | CMDProcessor cmd = new CMDProcessor();
160 | cmd.su.runWaitFor("busybox mount -o remount,rw /system");
161 | cmd.su.runWaitFor("busybox mount -o remount,rw /");
162 | cmd.su.runWaitFor("mkdir /tmp");
163 | cmd.su.runWaitFor("sh " + temp + "/" + "flash_gordon.sh");
164 | cmd.su.runWaitFor("busybox rm -f /tmp/*");
165 | cmd.su.runWaitFor("busybox mount -o remount,ro /");
166 | cmd.su.runWaitFor("busybox mount -o remount,ro /system");
167 | handler.sendEmptyMessage(0);
168 | }
169 | }.start();
170 |
171 | handler = new Handler() {
172 |
173 | @Override
174 | public void handleMessage(Message msg) {
175 | flashDialog.dismiss();
176 | createNotification(1234);
177 | CMDProcessor cmd = new CMDProcessor();
178 | cmd.su.runWaitFor("busybox sed -i \'/^$/d\' " + temp
179 | + "/flash_gordon.sh");
180 | super.handleMessage(msg);
181 | }
182 | };
183 | }
184 |
185 | private void showChooser() {
186 | Intent target = FileUtils.createGetContentIntent();
187 | Intent intent = Intent.createChooser(target,
188 | getString(R.string.chooser_title));
189 | try {
190 | startActivityForResult(intent, REQUEST_CODE);
191 | } catch (ActivityNotFoundException e) {
192 | }
193 | }
194 |
195 | private void isWhichWipe() {
196 |
197 | if (wipeCache == true)
198 | Help.wipeCache();
199 | if (wipeDalvik == true)
200 | Help.wipeDalvik();
201 | if (wipeData == true)
202 | Help.wipeData();
203 |
204 | }
205 |
206 | private void createNotification(long when) {
207 |
208 | String notificationContent = "The changes you made require a reboot.";
209 | String notificationTitle = "Reboot Required";
210 | Bitmap largeIcon = BitmapFactory.decodeResource(getResources(),
211 | R.drawable.ic_launcher);
212 | int smalIcon = R.drawable.ic_launcher;
213 |
214 | Intent intent = new Intent(getApplicationContext(),
215 | RebootActivity.class);
216 |
217 | intent.setData(Uri.parse("content://" + when));
218 |
219 | PendingIntent pendingIntent = PendingIntent.getActivity(
220 | getApplicationContext(), 0, intent,
221 | Intent.FLAG_ACTIVITY_NEW_TASK);
222 |
223 | NotificationManager notificationManager = (NotificationManager) getApplicationContext()
224 | .getSystemService(Context.NOTIFICATION_SERVICE);
225 |
226 | NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
227 | getApplicationContext()).setWhen(when)
228 | .setContentText(notificationContent)
229 | .setContentTitle(notificationTitle)
230 | .setContentInfo("Tap to Reboot").setSmallIcon(smalIcon)
231 | .setAutoCancel(true).setTicker(notificationTitle)
232 | .setLargeIcon(largeIcon).setContentIntent(pendingIntent);
233 |
234 | notificationManager.notify((int) when,
235 | notificationBuilder.getNotification());
236 | }
237 |
238 | @Override
239 | protected void onActivityResult(int requestCode, int resultCode, Intent data) {
240 | switch (requestCode) {
241 | case REQUEST_CODE:
242 | if (resultCode == RESULT_OK) {
243 | if (data != null) {
244 | final Uri uri = data.getData();
245 |
246 | try {
247 | final File file = FileUtils.getFile(uri);
248 | zipToFlash = file;
249 | zipLoc.setText(zipToFlash.toString());
250 |
251 | final ProgressDialog myProgress = new ProgressDialog(
252 | this);
253 | myProgress.setIndeterminate(true);
254 | myProgress.setMessage("Extracting...");
255 | myProgress.setTitle("Please Wait");
256 | myProgress.setCanceledOnTouchOutside(false);
257 | myProgress.show();
258 |
259 | new Thread() {
260 | public void run() {
261 | Help.installZipBinary(context);
262 | CMDProcessor cmd = new CMDProcessor();
263 | cmd.su.runWaitFor("busybox rm -rf " + temp);
264 | cmd.su.runWaitFor("mkdir " + homeDir + "/tmp");
265 | cmd.su.runWaitFor("unzip " + zipToFlash
266 | + " -d " + homeDir + "/tmp ");
267 |
268 | handler.sendEmptyMessage(0);
269 | }
270 | }.start();
271 |
272 | handler = new Handler() {
273 |
274 | @Override
275 | public void handleMessage(Message msg) {
276 | myProgress.dismiss();
277 |
278 | if (((CheckBox) findViewById(R.id.safeMode))
279 | .isChecked()) {
280 |
281 | if (!zipToFlash.toString().contains(".zip")) {
282 | Toast.makeText(
283 | context,
284 | "The file you selected is not a zip!",
285 | Toast.LENGTH_LONG).show();
286 | }
287 |
288 | if (!Help.isFlashable()) {
289 | Toast.makeText(
290 | context,
291 | "The package you selected is not a valid flashable zip!",
292 | Toast.LENGTH_SHORT).show();
293 | }
294 | }
295 | super.handleMessage(msg);
296 | }
297 | };
298 | } catch (Exception e) {
299 | Log.e("Recovery Emulator", "File select error", e);
300 | }
301 | }
302 | }
303 | break;
304 | }
305 | super.onActivityResult(requestCode, resultCode, data);
306 | }
307 |
308 | public static void readUpdaterScript(String scriptLocation,
309 | ProgressDialog dialog) {
310 |
311 | try {
312 | String line;
313 | Process process = Runtime.getRuntime().exec("su");
314 | OutputStream stdin = process.getOutputStream();
315 | InputStream stderr = process.getErrorStream();
316 | InputStream stdout = process.getInputStream();
317 |
318 | stdin.write(("cat " + scriptLocation + "\n").getBytes());
319 | stdin.write("exit\n".getBytes());
320 | stdin.flush();
321 |
322 | stdin.close();
323 |
324 | BufferedReader br = new BufferedReader(
325 | new InputStreamReader(stdout));
326 | while ((line = br.readLine()) != null) {
327 | file += line;
328 | // Log.d("[Output]", line);
329 | // Log.d("[Output Chained]", file);
330 | // interpreterAlgorithm(line);
331 | }
332 | loop(dialog);
333 | br.close();
334 |
335 | br = new BufferedReader(new InputStreamReader(stderr));
336 | while ((line = br.readLine()) != null) {
337 | // Log.e("[Error]", line);
338 | }
339 | br.close();
340 |
341 | process.waitFor();
342 | process.destroy();
343 |
344 | } catch (IOException e) {
345 | e.printStackTrace();
346 | } catch (InterruptedException e) {
347 | e.printStackTrace();
348 | }
349 | }
350 |
351 | public static void loop(ProgressDialog dialog) {
352 | file = file.replaceAll("\\),", ");");
353 | chained = file.split("\\);");
354 | chained = file.split("\\);");
355 | int i = 0;
356 | while (i < chained.length) {
357 |
358 | String curr = chained[i];
359 | if (curr.contains("ui_print(")) {
360 | curr = curr.replaceAll("\"", "");
361 | curr = curr.replaceAll("\\)", "");
362 | curr = curr.replaceAll(";", "");
363 | curr = curr.replaceAll("ui_print\\(", "");
364 | dialog.setMessage(curr);
365 | }
366 | EdifyParser.interpreterAlgorithm(curr);
367 | i++;
368 | }
369 | }
370 |
371 | }
372 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/RebootActivity.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator;
2 |
3 | import android.app.Activity;
4 | import android.content.SharedPreferences;
5 | import android.os.Bundle;
6 |
7 | public class RebootActivity extends Activity {
8 |
9 | SharedPreferences rPrefs;
10 | int mode = 1;
11 |
12 | @Override
13 | protected void onCreate(Bundle savedInstanceState) {
14 | super.onCreate(savedInstanceState);
15 | setContentView(R.layout.main);
16 |
17 | //hotReboot();
18 | normalReboot();
19 | }
20 |
21 | private void hotReboot() {
22 |
23 | CMDProcessor cmd = new CMDProcessor();
24 | cmd.su.runWaitFor("busybox killall system_server");
25 | }
26 |
27 | private void normalReboot() {
28 |
29 | CMDProcessor cmd = new CMDProcessor();
30 | cmd.su.runWaitFor("busybox reboot");
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/helpers/EdifyParser.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator.helpers;
2 |
3 | import java.io.BufferedReader;
4 | import java.io.IOException;
5 | import java.io.InputStream;
6 | import java.io.InputStreamReader;
7 | import java.io.OutputStream;
8 |
9 | import android.os.Environment;
10 | import android.util.Log;
11 |
12 | import com.androguide.recovery.emulator.CMDProcessor;
13 |
14 | public class EdifyParser {
15 |
16 | public static CMDProcessor cmd = new CMDProcessor();
17 | public static String updaterScript = "META-INF/com/google/android/updater-script";
18 | private static String file = "";
19 | private static String chained[] = { "" };
20 | public static String sd = Environment.getExternalStorageDirectory()
21 | .toString();
22 | public static String temp = sd + "/RecoveryEmulator/tmp";
23 |
24 | public static void interpreterAlgorithm(String curr) {
25 |
26 | // delete all ");"
27 | curr = curr.replaceAll("\\s+", " ");
28 | curr = curr.replaceAll("assert\\(", "");
29 |
30 | // symlink() parsing & translation
31 | if (curr.contains("symlink(")) {
32 |
33 | curr = curr.replaceAll(",", "");
34 | curr = curr.replaceAll("\"", "");
35 | curr = curr.replaceAll("\\)", "");
36 | curr = curr.replaceAll(";", "");
37 | curr = curr.replaceAll("symlink\\(", "ln -s ");
38 | Log.v("Recovery Emulator", curr);
39 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
40 | + "/flash_gordon.sh");
41 |
42 | // avoiding assert() lines
43 | } else if (curr.contains("getprop")) {
44 | // TODO: translate assert() with the getBuildPropValueOf("") method
45 | // from CMDProcessor
46 |
47 | // avoiding format() lines
48 | } else if (curr.contains("format(")) {
49 | // TODO: learn what the translation for format() would be in bash
50 |
51 | // Avoiding commented-out lines
52 | } else if (curr.contains("#")) {
53 |
54 | // Deleting useless show_progress() lines
55 | } else if (curr.contains("show_progress(")) {
56 | curr = curr.replaceAll(",", "");
57 | curr = curr.replaceAll("\"", "");
58 | curr = curr.replaceAll("\\)", "");
59 | curr = curr.replaceAll(";", "");
60 | curr = curr.replaceAll("show_progress\\(.*", "");
61 | Log.v("Recovery Emulator", curr);
62 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
63 | + "/flash_gordon.sh");
64 |
65 | // Deleting useless ui_print() lines
66 | } else if (curr.contains("ui_print(")) {
67 | curr = curr.replaceAll(",", "");
68 | curr = curr.replaceAll("\"", "");
69 | curr = curr.replaceAll("\\)", "");
70 | curr = curr.replaceAll(";", "");
71 | curr = curr.replaceAll("ui_print\\(.*", "");
72 | Log.v("Recovery Emulator", curr);
73 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
74 | + "/flash_gordon.sh");
75 |
76 | // package_extract_file() parsing & translation
77 | } else if (curr.contains("package_extract_file(")) {
78 |
79 | curr = curr.replaceAll("\"", "");
80 | curr = curr.replaceAll("\\)", "");
81 | curr = curr.replaceAll(";", "");
82 |
83 | if (curr.contains("boot.img")) {
84 | curr = curr.replaceAll("package_extract_file\\(", "dd if="
85 | + temp + "/");
86 | curr = curr.replaceAll(", ", " of=");
87 |
88 | Log.v("Recovery Emulator", curr);
89 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
90 | + "/flash_gordon.sh");
91 |
92 | } else {
93 | curr = curr.replaceAll(",", "");
94 |
95 | curr = curr.replaceAll("package_extract_file\\(",
96 | "busybox cp -fp " + temp + "/");
97 |
98 | Log.v("Recovery Emulator", curr);
99 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
100 | + "/flash_gordon.sh");
101 | }
102 |
103 | // package_extract_dir() parsing & translation
104 | } else if (curr.contains("package_extract_dir(")) {
105 | String original = curr;
106 | curr = curr.replace("package_extract_dir(\"", "");
107 | curr = curr.replaceAll("\"", "");
108 | curr = curr.replaceAll("\\)", "");
109 | curr = curr.replaceAll(";", "");
110 |
111 | String arr[] = curr.split(", ");
112 |
113 | Log.v("Recovery Emulator", "mkdir -p " + arr[1]);
114 | cmd.su.runWaitFor("echo \"mkdir -p " + arr[1] + "\" >> " + temp
115 | + "/flash_gordon.sh");
116 |
117 |
118 | original = original.replace("package_extract_dir(\"", "busybox cp -rfp "
119 | + temp + "/");
120 | original = original.replaceAll("\", \"", "/* ");
121 | original = original.replaceAll(",", "");
122 | original = original.replaceAll("\"", "");
123 | original = original.replaceAll("\\)", "");
124 | original = original.replaceAll(";", "");
125 | Log.v("Recovery Emulator", original);
126 | cmd.su.runWaitFor("echo \"" + original + "\" >> " + temp
127 | + "/flash_gordon.sh");
128 |
129 | // set_perm() parsing & translation
130 | } else if (curr.contains("set_perm(")) {
131 | curr = curr.replaceAll("\"", "");
132 | curr = curr.replaceAll("\\)", "");
133 | curr = curr.replaceAll(";", "");
134 | curr = curr.replaceAll("set_perm\\(", "");
135 | String[] array = curr.split(",\\s");
136 |
137 | Log.v("Recovery Emulator", "chown " + array[0] + ":" + array[1]
138 | + " " + array[3]);
139 | cmd.su.runWaitFor("echo \"" + "chown " + array[0] + ":" + array[1]
140 | + " " + array[3] + "\" >> " + temp + "/flash_gordon.sh");
141 | Log.v("Recovery Emulator", "chmod " + array[2] + " " + array[3]);
142 | cmd.su.runWaitFor("echo \"" + "chmod " + array[2] + " " + array[3]
143 | + "\" >> " + temp + "/flash_gordon.sh");
144 |
145 | // set_perm_recursive() parsing & translation
146 | } else if (curr.contains("set_perm_recursive(")) {
147 | curr = curr.replaceAll("\\)", "");
148 | curr = curr.replaceAll(";", "");
149 | curr = curr.replaceAll("set_perm_recursive\\(", "");
150 | String[] array = curr.split(",\\s");
151 |
152 | Log.v("Recovery Emulator", "chown -R " + array[0] + ":" + array[1]
153 | + " " + array[3]);
154 | cmd.su.runWaitFor("echo \"" + "chown -R " + array[0] + ":" + array[1]
155 | + " " + array[3] + "\" >> " + temp + "/flash_gordon.sh");
156 | Log.v("Recovery Emulator", "chmod -R " + array[2] + " " + array[3]);
157 | cmd.su.runWaitFor("echo \"" + "chmod -R " + array[2] + " " + array[3]
158 | + "\" >> " + temp + "/flash_gordon.sh");
159 |
160 | // delete() parsing & translation
161 | } else if (curr.contains("delete(\"")) {
162 | curr = curr.replaceAll(",", "");
163 | curr = curr.replaceAll("\"", "");
164 | curr = curr.replaceAll("\\)", "");
165 | curr = curr.replaceAll(";", "");
166 | curr = curr.replaceAll("delete\\(", "busybox rm -f ");
167 | Log.v("Recovery Emulator", curr);
168 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
169 | + "/flash_gordon.sh");
170 |
171 | // run_program() parsing & translation
172 | } else if (curr.contains("run_program(\"")) {
173 |
174 | if (curr.contains("/sbin/busybox")) {
175 | curr = curr.replaceAll("\\)", "");
176 | curr = curr.replaceAll(";", "");
177 | curr = curr.replaceAll("\"", "");
178 | curr = curr.replaceAll("run_program\\(/sbin/busybox",
179 | "busybox ");
180 | String arr[] = curr.split(",");
181 | int i = 0;
182 | String chain = "";
183 | while (i < arr.length) {
184 | chain = chain + arr[i];
185 | i++;
186 | }
187 | Log.v("Recovery Emulator", chain);
188 | } else {
189 | curr = curr.replaceAll(",", "");
190 | curr = curr.replaceAll("\"", "");
191 | curr = curr.replaceAll("\\)", "");
192 | curr = curr.replaceAll(";", "");
193 | curr = curr.replaceAll("run_program\\(", "sh ");
194 | Log.v("Recovery Emulator", curr);
195 | cmd.su.runWaitFor("echo \"" + curr + "\" >> " + temp
196 | + "/flash_gordon.sh");
197 | }
198 |
199 | // mount() / unmount() parsing & translation
200 | } else if (curr.contains("mount(")) {
201 | if (curr.contains("/system")) {
202 | if (curr.contains("unmount(")) {
203 | // Log.v("Recovery Emulator",
204 | // "busybox mount -o ro,remount -t auto /system");
205 | // cmd.su.runWaitFor("echo \""+"busybox mount -o ro,remount -t auto /system");
206 |
207 | } else {
208 |
209 | Log.v("Recovery Emulator",
210 | "busybox mount -o rw,remount -t auto /system");
211 | cmd.su.runWaitFor("echo \""
212 | + "busybox mount -o rw,remount -t auto /system"
213 | + "\" >> " + temp + "/flash_gordon.sh");
214 | }
215 | }
216 |
217 | // write_raw_image() parsing & translation
218 | } else if (curr.contains("write_raw_image(")) {
219 | curr = curr.replaceAll("write_raw_image\\(", "dd if=");
220 | String[] arr = curr.split("\", \"");
221 | arr[0] = arr[0].replaceAll("\"", "");
222 | arr[1] = arr[1].replaceAll("\"", "");
223 | Log.v("Recovery Emulator", arr[0] + " of=" + arr[1]);
224 | cmd.su.runWaitFor("echo \"" + arr[0] + " of=" + arr[1] + "\" >> "
225 | + temp + "/flash_gordon.sh");
226 |
227 | } else {
228 | Log.v("Recovery Emulator", curr);
229 | }
230 |
231 | }
232 |
233 | public static void loop() {
234 | file = file.replaceAll("\\),", ");");
235 | chained = file.split("\\);");
236 | chained = file.split("\\);");
237 | int i = 0;
238 | while (i < chained.length) {
239 | String curr = chained[i];
240 | interpreterAlgorithm(curr);
241 | i++;
242 | }
243 | }
244 |
245 | public static void noQuote(String line) {
246 | line = line.replaceAll("\"", "");
247 | }
248 |
249 | public static void noComma(String line) {
250 | line = line.replaceAll("[,]", "");
251 | }
252 |
253 | public static void noEnd(String line) {
254 | line = line.replaceAll("(\\);)", "");
255 | }
256 |
257 | public static void readUpdaterScript(String scriptLocation) {
258 |
259 | try {
260 | String line;
261 | Process process = Runtime.getRuntime().exec("su");
262 | OutputStream stdin = process.getOutputStream();
263 | InputStream stderr = process.getErrorStream();
264 | InputStream stdout = process.getInputStream();
265 |
266 | stdin.write(("cat " + scriptLocation + "\n").getBytes());
267 | stdin.write("exit\n".getBytes());
268 | stdin.flush();
269 |
270 | stdin.close();
271 |
272 | BufferedReader br = new BufferedReader(
273 | new InputStreamReader(stdout));
274 | while ((line = br.readLine()) != null) {
275 | file += line;
276 | // Log.d("[Output]", line);
277 | // Log.d("[Output Chained]", file);
278 | // interpreterAlgorithm(line);
279 | }
280 | loop();
281 | br.close();
282 |
283 | br = new BufferedReader(new InputStreamReader(stderr));
284 | while ((line = br.readLine()) != null) {
285 | // Log.e("[Error]", line);
286 | }
287 | br.close();
288 |
289 | process.waitFor();
290 | process.destroy();
291 |
292 | } catch (IOException e) {
293 | e.printStackTrace();
294 | } catch (InterruptedException e) {
295 | e.printStackTrace();
296 | }
297 | }
298 |
299 | }
300 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/helpers/Help.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator.helpers;
2 |
3 | import java.io.File;
4 | import java.io.FileOutputStream;
5 | import java.io.IOException;
6 | import java.io.InputStream;
7 |
8 | import android.content.Context;
9 | import android.os.Environment;
10 | import android.util.Log;
11 |
12 | import com.androguide.recovery.emulator.CMDProcessor;
13 |
14 | public class Help {
15 |
16 | public static String sd = Environment.getExternalStorageDirectory()
17 | .toString();
18 |
19 | public static CMDProcessor cmd = new CMDProcessor();
20 |
21 | public static String homeDir = sd + "/RecoveryEmulator";
22 | public static String temp = sd + "/RecoveryEmulator/tmp";
23 | public static String updaterScript = "META-INF/com/google/android/updater-script";
24 |
25 |
26 | public static void unpackZip(File selectedZip) {
27 |
28 | cmd.su.runWaitFor("busybox mkdir " + homeDir + "/tmp");
29 | cmd.su.runWaitFor("busybox unzip -d " + homeDir + "/tmp " + selectedZip);
30 | }
31 |
32 | public static Boolean isFlashable() {
33 |
34 | File check = new File(temp + "/" + updaterScript);
35 | if (check.exists())
36 | return true;
37 | else
38 | return false;
39 | }
40 |
41 | public static void moveScriptToTmp(){
42 |
43 | cmd.su.runWaitFor("busybox cp -fp "+ temp + updaterScript + " " + temp + "/updater-script");
44 | }
45 |
46 | public static void installZipBinary(Context context) {
47 |
48 | cmd.su.runWaitFor("busybox mkdir " + homeDir);
49 |
50 | File update = new File(homeDir + "/zip");
51 | File zipBin = new File("/system/xbin/zip");
52 |
53 | if (update.exists())
54 | Log.v("Recovery Emulator", "zip already exists");
55 | else {
56 |
57 | try {
58 | update.createNewFile();
59 | System.out.println("File created successfully");
60 | InputStream is = context.getAssets().open("zip");
61 | FileOutputStream fos = new FileOutputStream(update);
62 | byte[] buffer = new byte[1024];
63 | int length = 0;
64 | while ((length = is.read(buffer)) > 0) {
65 | fos.write(buffer, 0, length);
66 | }
67 | Log.v("Recovery Emulator",
68 | "zip binary successfully moved to sd");
69 | fos.flush();
70 | fos.close();
71 | is.close();
72 | } catch (IOException e) {
73 | e.printStackTrace();
74 | }
75 |
76 | cmd.su.runWaitFor("busybox mount -o remount,rw /system");
77 | cmd.su.runWaitFor("busybox cp -fp " + sd
78 | + "/RecoveryEmulator/zip /system/xbin/zip");
79 | cmd.su.runWaitFor("busybox chmod 775 /system/xbin/zip");
80 | cmd.su.runWaitFor("busybox chown 0.2000 /system/xbin/zip");
81 | cmd.su.runWaitFor("busybox mount -o remount,ro /system");
82 | }
83 | }
84 |
85 | public static void wipeCache() {
86 |
87 | cmd.su.runWaitFor("busybox rm -rf /cache/*");
88 | }
89 |
90 | public static void wipeDalvik() {
91 |
92 | cmd.su.runWaitFor("busybox rm -f /cache/dalvik-cache/*");
93 | cmd.su.runWaitFor("busybox rm -f /data/dalvik-cache/*");
94 | }
95 |
96 | public static void wipeData() {
97 | cmd.su.runWaitFor("busybox rm -rf /data/*");
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/src/com/androguide/recovery/emulator/helpers/MyPlayCard.java:
--------------------------------------------------------------------------------
1 | package com.androguide.recovery.emulator.helpers;
2 |
3 | import android.content.Context;
4 | import android.graphics.Color;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.widget.ImageView;
8 | import android.widget.LinearLayout;
9 | import android.widget.TextView;
10 |
11 | import com.androguide.recovery.emulator.R;
12 | import com.fima.cardsui.objects.Card;
13 |
14 | public class MyPlayCard extends Card {
15 |
16 | public MyPlayCard(String titlePlay, String description, String color,
17 | String titleColor, Boolean hasOverflow, Boolean isClickable) {
18 | super(titlePlay, description, color, titleColor, hasOverflow,
19 | isClickable);
20 | }
21 |
22 | @Override
23 | public View getCardContent(Context context) {
24 | View v = LayoutInflater.from(context).inflate(R.layout.card_play, null);
25 |
26 | ((TextView) v.findViewById(R.id.title)).setText(titlePlay);
27 | ((TextView) v.findViewById(R.id.title)).setTextColor(Color
28 | .parseColor(titleColor));
29 | ((TextView) v.findViewById(R.id.description)).setText(description);
30 | ((ImageView) v.findViewById(R.id.stripe)).setBackgroundColor(Color
31 | .parseColor(color));
32 |
33 | if (isClickable == true)
34 | ((LinearLayout) v.findViewById(R.id.contentLayout))
35 | .setBackgroundResource(R.drawable.selectable_background_cardbank);
36 |
37 | return v;
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------